diff --git a/ghcjs-dom-jsffi.cabal b/ghcjs-dom-jsffi.cabal
--- a/ghcjs-dom-jsffi.cabal
+++ b/ghcjs-dom-jsffi.cabal
@@ -1,5 +1,5 @@
 name: ghcjs-dom-jsffi
-version: 0.7.1.0
+version: 0.8.0.0
 cabal-version: >=1.24
 build-type: Simple
 license: MIT
@@ -47,25 +47,29 @@
           GHCJS.DOM.JSFFI.Database
           GHCJS.DOM.JSFFI.DOMError
           GHCJS.DOM.JSFFI.Geolocation
-          GHCJS.DOM.JSFFI.FormData
-          GHCJS.DOM.JSFFI.MediaStreamTrack
           GHCJS.DOM.JSFFI.Navigator
           GHCJS.DOM.JSFFI.NavigatorUserMediaError
           GHCJS.DOM.JSFFI.PositionError
-          GHCJS.DOM.JSFFI.RTCPeerConnection
           GHCJS.DOM.JSFFI.RTCPeerConnectionError
           GHCJS.DOM.JSFFI.SQLError
           GHCJS.DOM.JSFFI.SQLTransaction
           GHCJS.DOM.JSFFI.Window
           GHCJS.DOM.JSFFI.XMLHttpRequest
 
+          -- (cd ghcjs-dom-jsffi/src/GHCJS/DOM/JSFFI/Generated && ls | sed 's|\(^.*\)\.hs|          GHCJS.DOM.JSFFI.Generated.\1|' | pbcopy)
           GHCJS.DOM.JSFFI.Generated.ANGLEInstancedArrays
-          GHCJS.DOM.JSFFI.Generated.AbstractView
           GHCJS.DOM.JSFFI.Generated.AbstractWorker
-          GHCJS.DOM.JSFFI.Generated.AllAudioCapabilities
-          GHCJS.DOM.JSFFI.Generated.AllVideoCapabilities
           GHCJS.DOM.JSFFI.Generated.AnalyserNode
+          GHCJS.DOM.JSFFI.Generated.Animatable
+          GHCJS.DOM.JSFFI.Generated.Animation
           GHCJS.DOM.JSFFI.Generated.AnimationEvent
+          GHCJS.DOM.JSFFI.Generated.ApplePayPaymentAuthorizedEvent
+          GHCJS.DOM.JSFFI.Generated.ApplePayPaymentMethodSelectedEvent
+          GHCJS.DOM.JSFFI.Generated.ApplePaySession
+          GHCJS.DOM.JSFFI.Generated.ApplePayShippingContactSelectedEvent
+          GHCJS.DOM.JSFFI.Generated.ApplePayShippingMethodSelectedEvent
+          GHCJS.DOM.JSFFI.Generated.ApplePayValidateMerchantEvent
+          GHCJS.DOM.JSFFI.Generated.ApplicationCache
           GHCJS.DOM.JSFFI.Generated.Attr
           GHCJS.DOM.JSFFI.Generated.AudioBuffer
           GHCJS.DOM.JSFFI.Generated.AudioBufferCallback
@@ -76,23 +80,24 @@
           GHCJS.DOM.JSFFI.Generated.AudioNode
           GHCJS.DOM.JSFFI.Generated.AudioParam
           GHCJS.DOM.JSFFI.Generated.AudioProcessingEvent
-          GHCJS.DOM.JSFFI.Generated.AudioStreamTrack
           GHCJS.DOM.JSFFI.Generated.AudioTrack
           GHCJS.DOM.JSFFI.Generated.AudioTrackList
           GHCJS.DOM.JSFFI.Generated.AutocompleteErrorEvent
           GHCJS.DOM.JSFFI.Generated.BarProp
-          GHCJS.DOM.JSFFI.Generated.BatteryManager
           GHCJS.DOM.JSFFI.Generated.BeforeLoadEvent
           GHCJS.DOM.JSFFI.Generated.BeforeUnloadEvent
           GHCJS.DOM.JSFFI.Generated.BiquadFilterNode
           GHCJS.DOM.JSFFI.Generated.Blob
-          GHCJS.DOM.JSFFI.Generated.CSSCharsetRule
+          GHCJS.DOM.JSFFI.Generated.Body
+          GHCJS.DOM.JSFFI.Generated.ByteLengthQueuingStrategy
+          GHCJS.DOM.JSFFI.Generated.CSS
           GHCJS.DOM.JSFFI.Generated.CSSFontFaceLoadEvent
           GHCJS.DOM.JSFFI.Generated.CSSFontFaceRule
           GHCJS.DOM.JSFFI.Generated.CSSImportRule
           GHCJS.DOM.JSFFI.Generated.CSSKeyframeRule
           GHCJS.DOM.JSFFI.Generated.CSSKeyframesRule
           GHCJS.DOM.JSFFI.Generated.CSSMediaRule
+          GHCJS.DOM.JSFFI.Generated.CSSNamespaceRule
           GHCJS.DOM.JSFFI.Generated.CSSPageRule
           GHCJS.DOM.JSFFI.Generated.CSSPrimitiveValue
           GHCJS.DOM.JSFFI.Generated.CSSRule
@@ -104,43 +109,37 @@
           GHCJS.DOM.JSFFI.Generated.CSSValue
           GHCJS.DOM.JSFFI.Generated.CSSValueList
           GHCJS.DOM.JSFFI.Generated.CanvasGradient
-          GHCJS.DOM.JSFFI.Generated.CanvasRenderingContext
+          GHCJS.DOM.JSFFI.Generated.CanvasPath
           GHCJS.DOM.JSFFI.Generated.CanvasRenderingContext2D
-          GHCJS.DOM.JSFFI.Generated.CapabilityRange
           GHCJS.DOM.JSFFI.Generated.CharacterData
           GHCJS.DOM.JSFFI.Generated.ChildNode
           GHCJS.DOM.JSFFI.Generated.ClientRect
           GHCJS.DOM.JSFFI.Generated.ClientRectList
+          GHCJS.DOM.JSFFI.Generated.ClipboardEvent
           GHCJS.DOM.JSFFI.Generated.CloseEvent
           GHCJS.DOM.JSFFI.Generated.CommandLineAPIHost
           GHCJS.DOM.JSFFI.Generated.Comment
           GHCJS.DOM.JSFFI.Generated.CompositionEvent
           GHCJS.DOM.JSFFI.Generated.ConvolverNode
           GHCJS.DOM.JSFFI.Generated.Coordinates
+          GHCJS.DOM.JSFFI.Generated.CountQueuingStrategy
           GHCJS.DOM.JSFFI.Generated.Counter
           GHCJS.DOM.JSFFI.Generated.Crypto
           GHCJS.DOM.JSFFI.Generated.CryptoKey
-          GHCJS.DOM.JSFFI.Generated.CryptoKeyPair
+          GHCJS.DOM.JSFFI.Generated.CustomElementRegistry
           GHCJS.DOM.JSFFI.Generated.CustomEvent
-          GHCJS.DOM.JSFFI.Generated.ApplicationCache
           GHCJS.DOM.JSFFI.Generated.DOMError
-          GHCJS.DOM.JSFFI.Generated.FormData
+          GHCJS.DOM.JSFFI.Generated.DOMException
           GHCJS.DOM.JSFFI.Generated.DOMImplementation
-          GHCJS.DOM.JSFFI.Generated.MimeType
-          GHCJS.DOM.JSFFI.Generated.MimeTypeArray
           GHCJS.DOM.JSFFI.Generated.DOMNamedFlowCollection
           GHCJS.DOM.JSFFI.Generated.DOMParser
-          GHCJS.DOM.JSFFI.Generated.Path2D
-          GHCJS.DOM.JSFFI.Generated.Plugin
-          GHCJS.DOM.JSFFI.Generated.PluginArray
-          GHCJS.DOM.JSFFI.Generated.SecurityPolicy
-          GHCJS.DOM.JSFFI.Generated.Selection
-          GHCJS.DOM.JSFFI.Generated.DOMSettableTokenList
+          GHCJS.DOM.JSFFI.Generated.DOMPoint
+          GHCJS.DOM.JSFFI.Generated.DOMPointReadOnly
+          GHCJS.DOM.JSFFI.Generated.DOMRect
+          GHCJS.DOM.JSFFI.Generated.DOMRectReadOnly
           GHCJS.DOM.JSFFI.Generated.DOMStringList
+          GHCJS.DOM.JSFFI.Generated.DOMStringMap
           GHCJS.DOM.JSFFI.Generated.DOMTokenList
-          GHCJS.DOM.JSFFI.Generated.URL
-          GHCJS.DOM.JSFFI.Generated.Window
-          GHCJS.DOM.JSFFI.Generated.CSS
           GHCJS.DOM.JSFFI.Generated.DataCue
           GHCJS.DOM.JSFFI.Generated.DataTransfer
           GHCJS.DOM.JSFFI.Generated.DataTransferItem
@@ -154,13 +153,14 @@
           GHCJS.DOM.JSFFI.Generated.DeviceProximityEvent
           GHCJS.DOM.JSFFI.Generated.Document
           GHCJS.DOM.JSFFI.Generated.DocumentFragment
+          GHCJS.DOM.JSFFI.Generated.DocumentOrShadowRoot
+          GHCJS.DOM.JSFFI.Generated.DocumentTimeline
           GHCJS.DOM.JSFFI.Generated.DocumentType
           GHCJS.DOM.JSFFI.Generated.DynamicsCompressorNode
           GHCJS.DOM.JSFFI.Generated.EXTBlendMinMax
-          GHCJS.DOM.JSFFI.Generated.EXTsRGB
           GHCJS.DOM.JSFFI.Generated.EXTTextureFilterAnisotropic
+          GHCJS.DOM.JSFFI.Generated.EXTsRGB
           GHCJS.DOM.JSFFI.Generated.Element
-          GHCJS.DOM.JSFFI.Generated.Entity
           GHCJS.DOM.JSFFI.Generated.Enums
           GHCJS.DOM.JSFFI.Generated.ErrorEvent
           GHCJS.DOM.JSFFI.Generated.Event
@@ -169,29 +169,36 @@
           GHCJS.DOM.JSFFI.Generated.EventTarget
           GHCJS.DOM.JSFFI.Generated.File
           GHCJS.DOM.JSFFI.Generated.FileError
+          GHCJS.DOM.JSFFI.Generated.FileException
           GHCJS.DOM.JSFFI.Generated.FileList
           GHCJS.DOM.JSFFI.Generated.FileReader
           GHCJS.DOM.JSFFI.Generated.FileReaderSync
           GHCJS.DOM.JSFFI.Generated.FocusEvent
-          GHCJS.DOM.JSFFI.Generated.FontLoader
+          GHCJS.DOM.JSFFI.Generated.FontFace
+          GHCJS.DOM.JSFFI.Generated.FontFaceSet
+          GHCJS.DOM.JSFFI.Generated.FormData
           GHCJS.DOM.JSFFI.Generated.GainNode
           GHCJS.DOM.JSFFI.Generated.Gamepad
           GHCJS.DOM.JSFFI.Generated.GamepadButton
           GHCJS.DOM.JSFFI.Generated.GamepadEvent
           GHCJS.DOM.JSFFI.Generated.Geolocation
           GHCJS.DOM.JSFFI.Generated.Geoposition
+          GHCJS.DOM.JSFFI.Generated.GlobalCrypto
+          GHCJS.DOM.JSFFI.Generated.GlobalEventHandlers
+          GHCJS.DOM.JSFFI.Generated.GlobalPerformance
           GHCJS.DOM.JSFFI.Generated.HTMLAllCollection
           GHCJS.DOM.JSFFI.Generated.HTMLAnchorElement
           GHCJS.DOM.JSFFI.Generated.HTMLAppletElement
           GHCJS.DOM.JSFFI.Generated.HTMLAreaElement
+          GHCJS.DOM.JSFFI.Generated.HTMLAttachmentElement
           GHCJS.DOM.JSFFI.Generated.HTMLBRElement
           GHCJS.DOM.JSFFI.Generated.HTMLBaseElement
-          GHCJS.DOM.JSFFI.Generated.HTMLBaseFontElement
           GHCJS.DOM.JSFFI.Generated.HTMLBodyElement
           GHCJS.DOM.JSFFI.Generated.HTMLButtonElement
           GHCJS.DOM.JSFFI.Generated.HTMLCanvasElement
           GHCJS.DOM.JSFFI.Generated.HTMLCollection
           GHCJS.DOM.JSFFI.Generated.HTMLDListElement
+          GHCJS.DOM.JSFFI.Generated.HTMLDataElement
           GHCJS.DOM.JSFFI.Generated.HTMLDataListElement
           GHCJS.DOM.JSFFI.Generated.HTMLDetailsElement
           GHCJS.DOM.JSFFI.Generated.HTMLDirectoryElement
@@ -209,6 +216,7 @@
           GHCJS.DOM.JSFFI.Generated.HTMLHeadElement
           GHCJS.DOM.JSFFI.Generated.HTMLHeadingElement
           GHCJS.DOM.JSFFI.Generated.HTMLHtmlElement
+          GHCJS.DOM.JSFFI.Generated.HTMLHyperlinkElementUtils
           GHCJS.DOM.JSFFI.Generated.HTMLIFrameElement
           GHCJS.DOM.JSFFI.Generated.HTMLImageElement
           GHCJS.DOM.JSFFI.Generated.HTMLInputElement
@@ -237,6 +245,7 @@
           GHCJS.DOM.JSFFI.Generated.HTMLQuoteElement
           GHCJS.DOM.JSFFI.Generated.HTMLScriptElement
           GHCJS.DOM.JSFFI.Generated.HTMLSelectElement
+          GHCJS.DOM.JSFFI.Generated.HTMLSlotElement
           GHCJS.DOM.JSFFI.Generated.HTMLSourceElement
           GHCJS.DOM.JSFFI.Generated.HTMLStyleElement
           GHCJS.DOM.JSFFI.Generated.HTMLTableCaptionElement
@@ -247,11 +256,13 @@
           GHCJS.DOM.JSFFI.Generated.HTMLTableSectionElement
           GHCJS.DOM.JSFFI.Generated.HTMLTemplateElement
           GHCJS.DOM.JSFFI.Generated.HTMLTextAreaElement
+          GHCJS.DOM.JSFFI.Generated.HTMLTimeElement
           GHCJS.DOM.JSFFI.Generated.HTMLTitleElement
           GHCJS.DOM.JSFFI.Generated.HTMLTrackElement
           GHCJS.DOM.JSFFI.Generated.HTMLUListElement
           GHCJS.DOM.JSFFI.Generated.HTMLVideoElement
           GHCJS.DOM.JSFFI.Generated.HashChangeEvent
+          GHCJS.DOM.JSFFI.Generated.Headers
           GHCJS.DOM.JSFFI.Generated.History
           GHCJS.DOM.JSFFI.Generated.IDBCursor
           GHCJS.DOM.JSFFI.Generated.IDBCursorWithValue
@@ -265,45 +276,53 @@
           GHCJS.DOM.JSFFI.Generated.IDBTransaction
           GHCJS.DOM.JSFFI.Generated.IDBVersionChangeEvent
           GHCJS.DOM.JSFFI.Generated.ImageData
+          GHCJS.DOM.JSFFI.Generated.InputEvent
           GHCJS.DOM.JSFFI.Generated.InspectorFrontendHost
-          GHCJS.DOM.JSFFI.Generated.InternalSettings
-          GHCJS.DOM.JSFFI.Generated.Internals
+          GHCJS.DOM.JSFFI.Generated.IntersectionObserver
+          GHCJS.DOM.JSFFI.Generated.IntersectionObserverCallback
+          GHCJS.DOM.JSFFI.Generated.IntersectionObserverEntry
           GHCJS.DOM.JSFFI.Generated.KeyboardEvent
+          GHCJS.DOM.JSFFI.Generated.KeyframeEffect
           GHCJS.DOM.JSFFI.Generated.Location
-          GHCJS.DOM.JSFFI.Generated.MallocStatistics
           GHCJS.DOM.JSFFI.Generated.MediaController
           GHCJS.DOM.JSFFI.Generated.MediaControlsHost
+          GHCJS.DOM.JSFFI.Generated.MediaDeviceInfo
+          GHCJS.DOM.JSFFI.Generated.MediaDevices
           GHCJS.DOM.JSFFI.Generated.MediaElementAudioSourceNode
+          GHCJS.DOM.JSFFI.Generated.MediaEncryptedEvent
           GHCJS.DOM.JSFFI.Generated.MediaError
-          GHCJS.DOM.JSFFI.Generated.MediaKeyError
-          GHCJS.DOM.JSFFI.Generated.MediaKeyEvent
           GHCJS.DOM.JSFFI.Generated.MediaKeyMessageEvent
-          GHCJS.DOM.JSFFI.Generated.MediaKeyNeededEvent
           GHCJS.DOM.JSFFI.Generated.MediaKeySession
+          GHCJS.DOM.JSFFI.Generated.MediaKeyStatusMap
+          GHCJS.DOM.JSFFI.Generated.MediaKeySystemAccess
           GHCJS.DOM.JSFFI.Generated.MediaKeys
           GHCJS.DOM.JSFFI.Generated.MediaList
           GHCJS.DOM.JSFFI.Generated.MediaQueryList
           GHCJS.DOM.JSFFI.Generated.MediaQueryListListener
+          GHCJS.DOM.JSFFI.Generated.MediaRemoteControls
+          GHCJS.DOM.JSFFI.Generated.MediaSession
           GHCJS.DOM.JSFFI.Generated.MediaSource
-          GHCJS.DOM.JSFFI.Generated.MediaSourceStates
           GHCJS.DOM.JSFFI.Generated.MediaStream
           GHCJS.DOM.JSFFI.Generated.MediaStreamAudioDestinationNode
           GHCJS.DOM.JSFFI.Generated.MediaStreamAudioSourceNode
           GHCJS.DOM.JSFFI.Generated.MediaStreamEvent
           GHCJS.DOM.JSFFI.Generated.MediaStreamTrack
           GHCJS.DOM.JSFFI.Generated.MediaStreamTrackEvent
-          GHCJS.DOM.JSFFI.Generated.MediaStreamTrackSourcesCallback
-          GHCJS.DOM.JSFFI.Generated.MediaTrackConstraints
-          GHCJS.DOM.JSFFI.Generated.MemoryInfo
           GHCJS.DOM.JSFFI.Generated.MessageChannel
           GHCJS.DOM.JSFFI.Generated.MessageEvent
           GHCJS.DOM.JSFFI.Generated.MessagePort
+          GHCJS.DOM.JSFFI.Generated.MimeType
+          GHCJS.DOM.JSFFI.Generated.MimeTypeArray
           GHCJS.DOM.JSFFI.Generated.MouseEvent
           GHCJS.DOM.JSFFI.Generated.MutationEvent
           GHCJS.DOM.JSFFI.Generated.MutationObserver
           GHCJS.DOM.JSFFI.Generated.MutationRecord
           GHCJS.DOM.JSFFI.Generated.NamedNodeMap
           GHCJS.DOM.JSFFI.Generated.Navigator
+          GHCJS.DOM.JSFFI.Generated.NavigatorConcurrentHardware
+          GHCJS.DOM.JSFFI.Generated.NavigatorID
+          GHCJS.DOM.JSFFI.Generated.NavigatorLanguage
+          GHCJS.DOM.JSFFI.Generated.NavigatorOnLine
           GHCJS.DOM.JSFFI.Generated.NavigatorUserMediaError
           GHCJS.DOM.JSFFI.Generated.NavigatorUserMediaErrorCallback
           GHCJS.DOM.JSFFI.Generated.NavigatorUserMediaSuccessCallback
@@ -311,6 +330,8 @@
           GHCJS.DOM.JSFFI.Generated.NodeFilter
           GHCJS.DOM.JSFFI.Generated.NodeIterator
           GHCJS.DOM.JSFFI.Generated.NodeList
+          GHCJS.DOM.JSFFI.Generated.NonDocumentTypeChildNode
+          GHCJS.DOM.JSFFI.Generated.NonElementParentNode
           GHCJS.DOM.JSFFI.Generated.Notification
           GHCJS.DOM.JSFFI.Generated.NotificationCenter
           GHCJS.DOM.JSFFI.Generated.NotificationPermissionCallback
@@ -320,15 +341,23 @@
           GHCJS.DOM.JSFFI.Generated.OfflineAudioCompletionEvent
           GHCJS.DOM.JSFFI.Generated.OfflineAudioContext
           GHCJS.DOM.JSFFI.Generated.OscillatorNode
+          GHCJS.DOM.JSFFI.Generated.OverconstrainedError
+          GHCJS.DOM.JSFFI.Generated.OverconstrainedErrorEvent
           GHCJS.DOM.JSFFI.Generated.OverflowEvent
           GHCJS.DOM.JSFFI.Generated.PageTransitionEvent
           GHCJS.DOM.JSFFI.Generated.PannerNode
+          GHCJS.DOM.JSFFI.Generated.ParentNode
+          GHCJS.DOM.JSFFI.Generated.Path2D
           GHCJS.DOM.JSFFI.Generated.Performance
           GHCJS.DOM.JSFFI.Generated.PerformanceEntry
-          GHCJS.DOM.JSFFI.Generated.PerformanceEntryList
           GHCJS.DOM.JSFFI.Generated.PerformanceNavigation
+          GHCJS.DOM.JSFFI.Generated.PerformanceObserver
+          GHCJS.DOM.JSFFI.Generated.PerformanceObserverCallback
+          GHCJS.DOM.JSFFI.Generated.PerformanceObserverEntryList
           GHCJS.DOM.JSFFI.Generated.PerformanceResourceTiming
           GHCJS.DOM.JSFFI.Generated.PerformanceTiming
+          GHCJS.DOM.JSFFI.Generated.Plugin
+          GHCJS.DOM.JSFFI.Generated.PluginArray
           GHCJS.DOM.JSFFI.Generated.PopStateEvent
           GHCJS.DOM.JSFFI.Generated.PositionCallback
           GHCJS.DOM.JSFFI.Generated.PositionError
@@ -337,27 +366,31 @@
           GHCJS.DOM.JSFFI.Generated.ProgressEvent
           GHCJS.DOM.JSFFI.Generated.QuickTimePluginReplacement
           GHCJS.DOM.JSFFI.Generated.RGBColor
-          GHCJS.DOM.JSFFI.Generated.RTCConfiguration
           GHCJS.DOM.JSFFI.Generated.RTCDTMFSender
           GHCJS.DOM.JSFFI.Generated.RTCDTMFToneChangeEvent
           GHCJS.DOM.JSFFI.Generated.RTCDataChannel
           GHCJS.DOM.JSFFI.Generated.RTCDataChannelEvent
           GHCJS.DOM.JSFFI.Generated.RTCIceCandidate
           GHCJS.DOM.JSFFI.Generated.RTCIceCandidateEvent
-          GHCJS.DOM.JSFFI.Generated.RTCIceServer
           GHCJS.DOM.JSFFI.Generated.RTCPeerConnection
-          GHCJS.DOM.JSFFI.Generated.RTCPeerConnectionErrorCallback
+          GHCJS.DOM.JSFFI.Generated.RTCRtpReceiver
+          GHCJS.DOM.JSFFI.Generated.RTCRtpSender
+          GHCJS.DOM.JSFFI.Generated.RTCRtpTransceiver
           GHCJS.DOM.JSFFI.Generated.RTCSessionDescription
-          GHCJS.DOM.JSFFI.Generated.RTCSessionDescriptionCallback
-          GHCJS.DOM.JSFFI.Generated.RTCStatsCallback
-          GHCJS.DOM.JSFFI.Generated.RTCStatsReport
-          GHCJS.DOM.JSFFI.Generated.RTCStatsResponse
+          GHCJS.DOM.JSFFI.Generated.RTCTrackEvent
           GHCJS.DOM.JSFFI.Generated.RadioNodeList
           GHCJS.DOM.JSFFI.Generated.Range
+          GHCJS.DOM.JSFFI.Generated.ReadableByteStreamController
           GHCJS.DOM.JSFFI.Generated.ReadableStream
+          GHCJS.DOM.JSFFI.Generated.ReadableStreamDefaultController
+          GHCJS.DOM.JSFFI.Generated.ReadableStreamDefaultReader
+          GHCJS.DOM.JSFFI.Generated.ReadableStreamSource
           GHCJS.DOM.JSFFI.Generated.Rect
+          GHCJS.DOM.JSFFI.Generated.Request
           GHCJS.DOM.JSFFI.Generated.RequestAnimationFrameCallback
+          GHCJS.DOM.JSFFI.Generated.Response
           GHCJS.DOM.JSFFI.Generated.SQLError
+          GHCJS.DOM.JSFFI.Generated.SQLException
           GHCJS.DOM.JSFFI.Generated.SQLResultSet
           GHCJS.DOM.JSFFI.Generated.SQLResultSetRowList
           GHCJS.DOM.JSFFI.Generated.SQLStatementCallback
@@ -383,12 +416,11 @@
           GHCJS.DOM.JSFFI.Generated.SVGAnimationElement
           GHCJS.DOM.JSFFI.Generated.SVGCircleElement
           GHCJS.DOM.JSFFI.Generated.SVGClipPathElement
-          GHCJS.DOM.JSFFI.Generated.SVGColor
           GHCJS.DOM.JSFFI.Generated.SVGComponentTransferFunctionElement
           GHCJS.DOM.JSFFI.Generated.SVGCursorElement
-          GHCJS.DOM.JSFFI.Generated.SVGDocument
           GHCJS.DOM.JSFFI.Generated.SVGElement
           GHCJS.DOM.JSFFI.Generated.SVGEllipseElement
+          GHCJS.DOM.JSFFI.Generated.SVGException
           GHCJS.DOM.JSFFI.Generated.SVGExternalResourcesRequired
           GHCJS.DOM.JSFFI.Generated.SVGFEBlendElement
           GHCJS.DOM.JSFFI.Generated.SVGFEColorMatrixElement
@@ -426,7 +458,6 @@
           GHCJS.DOM.JSFFI.Generated.SVGMatrix
           GHCJS.DOM.JSFFI.Generated.SVGNumber
           GHCJS.DOM.JSFFI.Generated.SVGNumberList
-          GHCJS.DOM.JSFFI.Generated.SVGPaint
           GHCJS.DOM.JSFFI.Generated.SVGPathElement
           GHCJS.DOM.JSFFI.Generated.SVGPathSeg
           GHCJS.DOM.JSFFI.Generated.SVGPathSegArcAbs
@@ -458,8 +489,8 @@
           GHCJS.DOM.JSFFI.Generated.SVGRect
           GHCJS.DOM.JSFFI.Generated.SVGRectElement
           GHCJS.DOM.JSFFI.Generated.SVGRenderingIntent
-          GHCJS.DOM.JSFFI.Generated.SVGScriptElement
           GHCJS.DOM.JSFFI.Generated.SVGSVGElement
+          GHCJS.DOM.JSFFI.Generated.SVGScriptElement
           GHCJS.DOM.JSFFI.Generated.SVGStopElement
           GHCJS.DOM.JSFFI.Generated.SVGStringList
           GHCJS.DOM.JSFFI.Generated.SVGStyleElement
@@ -478,16 +509,17 @@
           GHCJS.DOM.JSFFI.Generated.SVGZoomEvent
           GHCJS.DOM.JSFFI.Generated.Screen
           GHCJS.DOM.JSFFI.Generated.ScriptProcessorNode
-          GHCJS.DOM.JSFFI.Generated.ScriptProfile
-          GHCJS.DOM.JSFFI.Generated.ScriptProfileNode
           GHCJS.DOM.JSFFI.Generated.SecurityPolicyViolationEvent
+          GHCJS.DOM.JSFFI.Generated.Selection
+          GHCJS.DOM.JSFFI.Generated.ShadowRoot
+          GHCJS.DOM.JSFFI.Generated.Slotable
           GHCJS.DOM.JSFFI.Generated.SourceBuffer
           GHCJS.DOM.JSFFI.Generated.SourceBufferList
-          GHCJS.DOM.JSFFI.Generated.SourceInfo
           GHCJS.DOM.JSFFI.Generated.SpeechSynthesis
           GHCJS.DOM.JSFFI.Generated.SpeechSynthesisEvent
           GHCJS.DOM.JSFFI.Generated.SpeechSynthesisUtterance
           GHCJS.DOM.JSFFI.Generated.SpeechSynthesisVoice
+          GHCJS.DOM.JSFFI.Generated.StaticRange
           GHCJS.DOM.JSFFI.Generated.Storage
           GHCJS.DOM.JSFFI.Generated.StorageErrorCallback
           GHCJS.DOM.JSFFI.Generated.StorageEvent
@@ -501,6 +533,8 @@
           GHCJS.DOM.JSFFI.Generated.StyleSheetList
           GHCJS.DOM.JSFFI.Generated.SubtleCrypto
           GHCJS.DOM.JSFFI.Generated.Text
+          GHCJS.DOM.JSFFI.Generated.TextDecoder
+          GHCJS.DOM.JSFFI.Generated.TextEncoder
           GHCJS.DOM.JSFFI.Generated.TextEvent
           GHCJS.DOM.JSFFI.Generated.TextMetrics
           GHCJS.DOM.JSFFI.Generated.TextTrack
@@ -514,17 +548,15 @@
           GHCJS.DOM.JSFFI.Generated.TrackEvent
           GHCJS.DOM.JSFFI.Generated.TransitionEvent
           GHCJS.DOM.JSFFI.Generated.TreeWalker
-          GHCJS.DOM.JSFFI.Generated.TypeConversions
           GHCJS.DOM.JSFFI.Generated.UIEvent
-          GHCJS.DOM.JSFFI.Generated.UIRequestEvent
-          GHCJS.DOM.JSFFI.Generated.URLUtils
+          GHCJS.DOM.JSFFI.Generated.URL
+          GHCJS.DOM.JSFFI.Generated.URLSearchParams
           GHCJS.DOM.JSFFI.Generated.UserMessageHandler
           GHCJS.DOM.JSFFI.Generated.VTTCue
           GHCJS.DOM.JSFFI.Generated.VTTRegion
           GHCJS.DOM.JSFFI.Generated.VTTRegionList
           GHCJS.DOM.JSFFI.Generated.ValidityState
           GHCJS.DOM.JSFFI.Generated.VideoPlaybackQuality
-          GHCJS.DOM.JSFFI.Generated.VideoStreamTrack
           GHCJS.DOM.JSFFI.Generated.VideoTrack
           GHCJS.DOM.JSFFI.Generated.VideoTrackList
           GHCJS.DOM.JSFFI.Generated.VoidCallback
@@ -534,7 +566,6 @@
           GHCJS.DOM.JSFFI.Generated.WebGLCompressedTextureATC
           GHCJS.DOM.JSFFI.Generated.WebGLCompressedTexturePVRTC
           GHCJS.DOM.JSFFI.Generated.WebGLCompressedTextureS3TC
-          GHCJS.DOM.JSFFI.Generated.WebGLContextAttributes
           GHCJS.DOM.JSFFI.Generated.WebGLContextEvent
           GHCJS.DOM.JSFFI.Generated.WebGLDebugRendererInfo
           GHCJS.DOM.JSFFI.Generated.WebGLDebugShaders
@@ -544,29 +575,36 @@
           GHCJS.DOM.JSFFI.Generated.WebGLRenderingContextBase
           GHCJS.DOM.JSFFI.Generated.WebGLShaderPrecisionFormat
           GHCJS.DOM.JSFFI.Generated.WebKitAnimationEvent
-          GHCJS.DOM.JSFFI.Generated.WebKitCSSFilterValue
           GHCJS.DOM.JSFFI.Generated.WebKitCSSMatrix
           GHCJS.DOM.JSFFI.Generated.WebKitCSSRegionRule
-          GHCJS.DOM.JSFFI.Generated.WebKitCSSTransformValue
           GHCJS.DOM.JSFFI.Generated.WebKitCSSViewportRule
+          GHCJS.DOM.JSFFI.Generated.WebKitMediaKeyError
+          GHCJS.DOM.JSFFI.Generated.WebKitMediaKeyMessageEvent
+          GHCJS.DOM.JSFFI.Generated.WebKitMediaKeyNeededEvent
+          GHCJS.DOM.JSFFI.Generated.WebKitMediaKeySession
+          GHCJS.DOM.JSFFI.Generated.WebKitMediaKeys
           GHCJS.DOM.JSFFI.Generated.WebKitNamedFlow
           GHCJS.DOM.JSFFI.Generated.WebKitNamespace
           GHCJS.DOM.JSFFI.Generated.WebKitPlaybackTargetAvailabilityEvent
           GHCJS.DOM.JSFFI.Generated.WebKitPoint
+          GHCJS.DOM.JSFFI.Generated.WebKitSubtleCrypto
           GHCJS.DOM.JSFFI.Generated.WebKitTransitionEvent
           GHCJS.DOM.JSFFI.Generated.WebSocket
           GHCJS.DOM.JSFFI.Generated.WheelEvent
-          GHCJS.DOM.JSFFI.Generated.WindowBase64
-          GHCJS.DOM.JSFFI.Generated.WindowTimers
+          GHCJS.DOM.JSFFI.Generated.Window
+          GHCJS.DOM.JSFFI.Generated.WindowEventHandlers
+          GHCJS.DOM.JSFFI.Generated.WindowOrWorkerGlobalScope
           GHCJS.DOM.JSFFI.Generated.Worker
           GHCJS.DOM.JSFFI.Generated.WorkerGlobalScope
           GHCJS.DOM.JSFFI.Generated.WorkerLocation
           GHCJS.DOM.JSFFI.Generated.WorkerNavigator
+          GHCJS.DOM.JSFFI.Generated.WritableStream
           GHCJS.DOM.JSFFI.Generated.XMLHttpRequest
+          GHCJS.DOM.JSFFI.Generated.XMLHttpRequestEventTarget
           GHCJS.DOM.JSFFI.Generated.XMLHttpRequestProgressEvent
-          GHCJS.DOM.JSFFI.Generated.XMLHttpRequestUpload
           GHCJS.DOM.JSFFI.Generated.XMLSerializer
           GHCJS.DOM.JSFFI.Generated.XPathEvaluator
+          GHCJS.DOM.JSFFI.Generated.XPathException
           GHCJS.DOM.JSFFI.Generated.XPathExpression
           GHCJS.DOM.JSFFI.Generated.XPathNSResolver
           GHCJS.DOM.JSFFI.Generated.XPathResult
@@ -575,12 +613,17 @@
     reexported-modules:
           -- Generated by domconv-webkit-jsffi
             GHCJS.DOM.JSFFI.Generated.ANGLEInstancedArrays as GHCJS.DOM.ANGLEInstancedArrays
-          , GHCJS.DOM.JSFFI.Generated.AbstractView as GHCJS.DOM.AbstractView
           , GHCJS.DOM.JSFFI.Generated.AbstractWorker as GHCJS.DOM.AbstractWorker
-          , GHCJS.DOM.JSFFI.Generated.AllAudioCapabilities as GHCJS.DOM.AllAudioCapabilities
-          , GHCJS.DOM.JSFFI.Generated.AllVideoCapabilities as GHCJS.DOM.AllVideoCapabilities
           , GHCJS.DOM.JSFFI.Generated.AnalyserNode as GHCJS.DOM.AnalyserNode
+          , GHCJS.DOM.JSFFI.Generated.Animatable as GHCJS.DOM.Animatable
+          , GHCJS.DOM.JSFFI.Generated.Animation as GHCJS.DOM.Animation
           , GHCJS.DOM.JSFFI.Generated.AnimationEvent as GHCJS.DOM.AnimationEvent
+          , GHCJS.DOM.JSFFI.Generated.ApplePayPaymentAuthorizedEvent as GHCJS.DOM.ApplePayPaymentAuthorizedEvent
+          , GHCJS.DOM.JSFFI.Generated.ApplePayPaymentMethodSelectedEvent as GHCJS.DOM.ApplePayPaymentMethodSelectedEvent
+          , GHCJS.DOM.JSFFI.Generated.ApplePaySession as GHCJS.DOM.ApplePaySession
+          , GHCJS.DOM.JSFFI.Generated.ApplePayShippingContactSelectedEvent as GHCJS.DOM.ApplePayShippingContactSelectedEvent
+          , GHCJS.DOM.JSFFI.Generated.ApplePayShippingMethodSelectedEvent as GHCJS.DOM.ApplePayShippingMethodSelectedEvent
+          , GHCJS.DOM.JSFFI.Generated.ApplePayValidateMerchantEvent as GHCJS.DOM.ApplePayValidateMerchantEvent
           , GHCJS.DOM.JSFFI.Generated.ApplicationCache as GHCJS.DOM.ApplicationCache
           , GHCJS.DOM.JSFFI.Generated.Attr as GHCJS.DOM.Attr
           , GHCJS.DOM.JSFFI.Generated.AudioBuffer as GHCJS.DOM.AudioBuffer
@@ -592,24 +635,24 @@
           , GHCJS.DOM.JSFFI.Generated.AudioNode as GHCJS.DOM.AudioNode
           , GHCJS.DOM.JSFFI.Generated.AudioParam as GHCJS.DOM.AudioParam
           , GHCJS.DOM.JSFFI.Generated.AudioProcessingEvent as GHCJS.DOM.AudioProcessingEvent
-          , GHCJS.DOM.JSFFI.Generated.AudioStreamTrack as GHCJS.DOM.AudioStreamTrack
           , GHCJS.DOM.JSFFI.Generated.AudioTrack as GHCJS.DOM.AudioTrack
           , GHCJS.DOM.JSFFI.Generated.AudioTrackList as GHCJS.DOM.AudioTrackList
           , GHCJS.DOM.JSFFI.Generated.AutocompleteErrorEvent as GHCJS.DOM.AutocompleteErrorEvent
           , GHCJS.DOM.JSFFI.Generated.BarProp as GHCJS.DOM.BarProp
-          , GHCJS.DOM.JSFFI.Generated.BatteryManager as GHCJS.DOM.BatteryManager
           , GHCJS.DOM.JSFFI.Generated.BeforeLoadEvent as GHCJS.DOM.BeforeLoadEvent
           , GHCJS.DOM.JSFFI.Generated.BeforeUnloadEvent as GHCJS.DOM.BeforeUnloadEvent
           , GHCJS.DOM.JSFFI.Generated.BiquadFilterNode as GHCJS.DOM.BiquadFilterNode
           , GHCJS.DOM.JSFFI.Generated.Blob as GHCJS.DOM.Blob
+          , GHCJS.DOM.JSFFI.Generated.Body as GHCJS.DOM.Body
+          , GHCJS.DOM.JSFFI.Generated.ByteLengthQueuingStrategy as GHCJS.DOM.ByteLengthQueuingStrategy
           , GHCJS.DOM.JSFFI.Generated.CSS as GHCJS.DOM.CSS
-          , GHCJS.DOM.JSFFI.Generated.CSSCharsetRule as GHCJS.DOM.CSSCharsetRule
           , GHCJS.DOM.JSFFI.Generated.CSSFontFaceLoadEvent as GHCJS.DOM.CSSFontFaceLoadEvent
           , GHCJS.DOM.JSFFI.Generated.CSSFontFaceRule as GHCJS.DOM.CSSFontFaceRule
           , GHCJS.DOM.JSFFI.Generated.CSSImportRule as GHCJS.DOM.CSSImportRule
           , GHCJS.DOM.JSFFI.Generated.CSSKeyframeRule as GHCJS.DOM.CSSKeyframeRule
           , GHCJS.DOM.JSFFI.Generated.CSSKeyframesRule as GHCJS.DOM.CSSKeyframesRule
           , GHCJS.DOM.JSFFI.Generated.CSSMediaRule as GHCJS.DOM.CSSMediaRule
+          , GHCJS.DOM.JSFFI.Generated.CSSNamespaceRule as GHCJS.DOM.CSSNamespaceRule
           , GHCJS.DOM.JSFFI.Generated.CSSPageRule as GHCJS.DOM.CSSPageRule
           , GHCJS.DOM.JSFFI.Generated.CSSPrimitiveValue as GHCJS.DOM.CSSPrimitiveValue
           , GHCJS.DOM.JSFFI.Generated.CSSRule as GHCJS.DOM.CSSRule
@@ -621,30 +664,36 @@
           , GHCJS.DOM.JSFFI.Generated.CSSValue as GHCJS.DOM.CSSValue
           , GHCJS.DOM.JSFFI.Generated.CSSValueList as GHCJS.DOM.CSSValueList
           , GHCJS.DOM.JSFFI.Generated.CanvasGradient as GHCJS.DOM.CanvasGradient
-          , GHCJS.DOM.JSFFI.Generated.CanvasRenderingContext as GHCJS.DOM.CanvasRenderingContext
+          , GHCJS.DOM.JSFFI.Generated.CanvasPath as GHCJS.DOM.CanvasPath
           , GHCJS.DOM.JSFFI.Generated.CanvasRenderingContext2D as GHCJS.DOM.CanvasRenderingContext2D
-          , GHCJS.DOM.JSFFI.Generated.CapabilityRange as GHCJS.DOM.CapabilityRange
           , GHCJS.DOM.JSFFI.Generated.CharacterData as GHCJS.DOM.CharacterData
           , GHCJS.DOM.JSFFI.Generated.ChildNode as GHCJS.DOM.ChildNode
           , GHCJS.DOM.JSFFI.Generated.ClientRect as GHCJS.DOM.ClientRect
           , GHCJS.DOM.JSFFI.Generated.ClientRectList as GHCJS.DOM.ClientRectList
+          , GHCJS.DOM.JSFFI.Generated.ClipboardEvent as GHCJS.DOM.ClipboardEvent
           , GHCJS.DOM.JSFFI.Generated.CloseEvent as GHCJS.DOM.CloseEvent
           , GHCJS.DOM.JSFFI.Generated.CommandLineAPIHost as GHCJS.DOM.CommandLineAPIHost
           , GHCJS.DOM.JSFFI.Generated.Comment as GHCJS.DOM.Comment
           , GHCJS.DOM.JSFFI.Generated.CompositionEvent as GHCJS.DOM.CompositionEvent
           , GHCJS.DOM.JSFFI.Generated.ConvolverNode as GHCJS.DOM.ConvolverNode
           , GHCJS.DOM.JSFFI.Generated.Coordinates as GHCJS.DOM.Coordinates
+          , GHCJS.DOM.JSFFI.Generated.CountQueuingStrategy as GHCJS.DOM.CountQueuingStrategy
           , GHCJS.DOM.JSFFI.Generated.Counter as GHCJS.DOM.Counter
           , GHCJS.DOM.JSFFI.Generated.Crypto as GHCJS.DOM.Crypto
           , GHCJS.DOM.JSFFI.Generated.CryptoKey as GHCJS.DOM.CryptoKey
-          , GHCJS.DOM.JSFFI.Generated.CryptoKeyPair as GHCJS.DOM.CryptoKeyPair
+          , GHCJS.DOM.JSFFI.Generated.CustomElementRegistry as GHCJS.DOM.CustomElementRegistry
           , GHCJS.DOM.JSFFI.Generated.CustomEvent as GHCJS.DOM.CustomEvent
           , GHCJS.DOM.JSFFI.DOMError as GHCJS.DOM.DOMError
+          , GHCJS.DOM.JSFFI.Generated.DOMException as GHCJS.DOM.DOMException
           , GHCJS.DOM.JSFFI.Generated.DOMImplementation as GHCJS.DOM.DOMImplementation
           , GHCJS.DOM.JSFFI.Generated.DOMNamedFlowCollection as GHCJS.DOM.DOMNamedFlowCollection
           , GHCJS.DOM.JSFFI.Generated.DOMParser as GHCJS.DOM.DOMParser
-          , GHCJS.DOM.JSFFI.Generated.DOMSettableTokenList as GHCJS.DOM.DOMSettableTokenList
+          , GHCJS.DOM.JSFFI.Generated.DOMPoint as GHCJS.DOM.DOMPoint
+          , GHCJS.DOM.JSFFI.Generated.DOMPointReadOnly as GHCJS.DOM.DOMPointReadOnly
+          , GHCJS.DOM.JSFFI.Generated.DOMRect as GHCJS.DOM.DOMRect
+          , GHCJS.DOM.JSFFI.Generated.DOMRectReadOnly as GHCJS.DOM.DOMRectReadOnly
           , GHCJS.DOM.JSFFI.Generated.DOMStringList as GHCJS.DOM.DOMStringList
+          , GHCJS.DOM.JSFFI.Generated.DOMStringMap as GHCJS.DOM.DOMStringMap
           , GHCJS.DOM.JSFFI.Generated.DOMTokenList as GHCJS.DOM.DOMTokenList
           , GHCJS.DOM.JSFFI.Generated.DataCue as GHCJS.DOM.DataCue
           , GHCJS.DOM.JSFFI.Generated.DataTransfer as GHCJS.DOM.DataTransfer
@@ -659,13 +708,14 @@
           , GHCJS.DOM.JSFFI.Generated.DeviceProximityEvent as GHCJS.DOM.DeviceProximityEvent
           , GHCJS.DOM.JSFFI.Generated.Document as GHCJS.DOM.Document
           , GHCJS.DOM.JSFFI.Generated.DocumentFragment as GHCJS.DOM.DocumentFragment
+          , GHCJS.DOM.JSFFI.Generated.DocumentOrShadowRoot as GHCJS.DOM.DocumentOrShadowRoot
+          , GHCJS.DOM.JSFFI.Generated.DocumentTimeline as GHCJS.DOM.DocumentTimeline
           , GHCJS.DOM.JSFFI.Generated.DocumentType as GHCJS.DOM.DocumentType
           , GHCJS.DOM.JSFFI.Generated.DynamicsCompressorNode as GHCJS.DOM.DynamicsCompressorNode
           , GHCJS.DOM.JSFFI.Generated.EXTBlendMinMax as GHCJS.DOM.EXTBlendMinMax
           , GHCJS.DOM.JSFFI.Generated.EXTTextureFilterAnisotropic as GHCJS.DOM.EXTTextureFilterAnisotropic
           , GHCJS.DOM.JSFFI.Generated.EXTsRGB as GHCJS.DOM.EXTsRGB
           , GHCJS.DOM.JSFFI.Generated.Element as GHCJS.DOM.Element
-          , GHCJS.DOM.JSFFI.Generated.Entity as GHCJS.DOM.Entity
           , GHCJS.DOM.JSFFI.Generated.Enums as GHCJS.DOM.Enums
           , GHCJS.DOM.JSFFI.Generated.ErrorEvent as GHCJS.DOM.ErrorEvent
           , GHCJS.DOM.JSFFI.Generated.Event as GHCJS.DOM.Event
@@ -674,30 +724,36 @@
           , GHCJS.DOM.JSFFI.Generated.EventTarget as GHCJS.DOM.EventTarget
           , GHCJS.DOM.JSFFI.Generated.File as GHCJS.DOM.File
           , GHCJS.DOM.JSFFI.Generated.FileError as GHCJS.DOM.FileError
+          , GHCJS.DOM.JSFFI.Generated.FileException as GHCJS.DOM.FileException
           , GHCJS.DOM.JSFFI.Generated.FileList as GHCJS.DOM.FileList
           , GHCJS.DOM.JSFFI.Generated.FileReader as GHCJS.DOM.FileReader
           , GHCJS.DOM.JSFFI.Generated.FileReaderSync as GHCJS.DOM.FileReaderSync
           , GHCJS.DOM.JSFFI.Generated.FocusEvent as GHCJS.DOM.FocusEvent
-          , GHCJS.DOM.JSFFI.Generated.FontLoader as GHCJS.DOM.FontLoader
-          , GHCJS.DOM.JSFFI.FormData as GHCJS.DOM.FormData
+          , GHCJS.DOM.JSFFI.Generated.FontFace as GHCJS.DOM.FontFace
+          , GHCJS.DOM.JSFFI.Generated.FontFaceSet as GHCJS.DOM.FontFaceSet
+          , GHCJS.DOM.JSFFI.Generated.FormData as GHCJS.DOM.FormData
           , GHCJS.DOM.JSFFI.Generated.GainNode as GHCJS.DOM.GainNode
           , GHCJS.DOM.JSFFI.Generated.Gamepad as GHCJS.DOM.Gamepad
           , GHCJS.DOM.JSFFI.Generated.GamepadButton as GHCJS.DOM.GamepadButton
           , GHCJS.DOM.JSFFI.Generated.GamepadEvent as GHCJS.DOM.GamepadEvent
           , GHCJS.DOM.JSFFI.Geolocation as GHCJS.DOM.Geolocation
           , GHCJS.DOM.JSFFI.Generated.Geoposition as GHCJS.DOM.Geoposition
+          , GHCJS.DOM.JSFFI.Generated.GlobalCrypto as GHCJS.DOM.GlobalCrypto
+          , GHCJS.DOM.JSFFI.Generated.GlobalEventHandlers as GHCJS.DOM.GlobalEventHandlers
+          , GHCJS.DOM.JSFFI.Generated.GlobalPerformance as GHCJS.DOM.GlobalPerformance
           , GHCJS.DOM.JSFFI.Generated.HTMLAllCollection as GHCJS.DOM.HTMLAllCollection
           , GHCJS.DOM.JSFFI.Generated.HTMLAnchorElement as GHCJS.DOM.HTMLAnchorElement
           , GHCJS.DOM.JSFFI.Generated.HTMLAppletElement as GHCJS.DOM.HTMLAppletElement
           , GHCJS.DOM.JSFFI.Generated.HTMLAreaElement as GHCJS.DOM.HTMLAreaElement
+          , GHCJS.DOM.JSFFI.Generated.HTMLAttachmentElement as GHCJS.DOM.HTMLAttachmentElement
           , GHCJS.DOM.JSFFI.Generated.HTMLBRElement as GHCJS.DOM.HTMLBRElement
           , GHCJS.DOM.JSFFI.Generated.HTMLBaseElement as GHCJS.DOM.HTMLBaseElement
-          , GHCJS.DOM.JSFFI.Generated.HTMLBaseFontElement as GHCJS.DOM.HTMLBaseFontElement
           , GHCJS.DOM.JSFFI.Generated.HTMLBodyElement as GHCJS.DOM.HTMLBodyElement
           , GHCJS.DOM.JSFFI.Generated.HTMLButtonElement as GHCJS.DOM.HTMLButtonElement
           , GHCJS.DOM.JSFFI.Generated.HTMLCanvasElement as GHCJS.DOM.HTMLCanvasElement
           , GHCJS.DOM.JSFFI.Generated.HTMLCollection as GHCJS.DOM.HTMLCollection
           , GHCJS.DOM.JSFFI.Generated.HTMLDListElement as GHCJS.DOM.HTMLDListElement
+          , GHCJS.DOM.JSFFI.Generated.HTMLDataElement as GHCJS.DOM.HTMLDataElement
           , GHCJS.DOM.JSFFI.Generated.HTMLDataListElement as GHCJS.DOM.HTMLDataListElement
           , GHCJS.DOM.JSFFI.Generated.HTMLDetailsElement as GHCJS.DOM.HTMLDetailsElement
           , GHCJS.DOM.JSFFI.Generated.HTMLDirectoryElement as GHCJS.DOM.HTMLDirectoryElement
@@ -715,6 +771,7 @@
           , GHCJS.DOM.JSFFI.Generated.HTMLHeadElement as GHCJS.DOM.HTMLHeadElement
           , GHCJS.DOM.JSFFI.Generated.HTMLHeadingElement as GHCJS.DOM.HTMLHeadingElement
           , GHCJS.DOM.JSFFI.Generated.HTMLHtmlElement as GHCJS.DOM.HTMLHtmlElement
+          , GHCJS.DOM.JSFFI.Generated.HTMLHyperlinkElementUtils as GHCJS.DOM.HTMLHyperlinkElementUtils
           , GHCJS.DOM.JSFFI.Generated.HTMLIFrameElement as GHCJS.DOM.HTMLIFrameElement
           , GHCJS.DOM.JSFFI.Generated.HTMLImageElement as GHCJS.DOM.HTMLImageElement
           , GHCJS.DOM.JSFFI.Generated.HTMLInputElement as GHCJS.DOM.HTMLInputElement
@@ -743,6 +800,7 @@
           , GHCJS.DOM.JSFFI.Generated.HTMLQuoteElement as GHCJS.DOM.HTMLQuoteElement
           , GHCJS.DOM.JSFFI.Generated.HTMLScriptElement as GHCJS.DOM.HTMLScriptElement
           , GHCJS.DOM.JSFFI.Generated.HTMLSelectElement as GHCJS.DOM.HTMLSelectElement
+          , GHCJS.DOM.JSFFI.Generated.HTMLSlotElement as GHCJS.DOM.HTMLSlotElement
           , GHCJS.DOM.JSFFI.Generated.HTMLSourceElement as GHCJS.DOM.HTMLSourceElement
           , GHCJS.DOM.JSFFI.Generated.HTMLStyleElement as GHCJS.DOM.HTMLStyleElement
           , GHCJS.DOM.JSFFI.Generated.HTMLTableCaptionElement as GHCJS.DOM.HTMLTableCaptionElement
@@ -753,11 +811,13 @@
           , GHCJS.DOM.JSFFI.Generated.HTMLTableSectionElement as GHCJS.DOM.HTMLTableSectionElement
           , GHCJS.DOM.JSFFI.Generated.HTMLTemplateElement as GHCJS.DOM.HTMLTemplateElement
           , GHCJS.DOM.JSFFI.Generated.HTMLTextAreaElement as GHCJS.DOM.HTMLTextAreaElement
+          , GHCJS.DOM.JSFFI.Generated.HTMLTimeElement as GHCJS.DOM.HTMLTimeElement
           , GHCJS.DOM.JSFFI.Generated.HTMLTitleElement as GHCJS.DOM.HTMLTitleElement
           , GHCJS.DOM.JSFFI.Generated.HTMLTrackElement as GHCJS.DOM.HTMLTrackElement
           , GHCJS.DOM.JSFFI.Generated.HTMLUListElement as GHCJS.DOM.HTMLUListElement
           , GHCJS.DOM.JSFFI.Generated.HTMLVideoElement as GHCJS.DOM.HTMLVideoElement
           , GHCJS.DOM.JSFFI.Generated.HashChangeEvent as GHCJS.DOM.HashChangeEvent
+          , GHCJS.DOM.JSFFI.Generated.Headers as GHCJS.DOM.Headers
           , GHCJS.DOM.JSFFI.Generated.History as GHCJS.DOM.History
           , GHCJS.DOM.JSFFI.Generated.IDBCursor as GHCJS.DOM.IDBCursor
           , GHCJS.DOM.JSFFI.Generated.IDBCursorWithValue as GHCJS.DOM.IDBCursorWithValue
@@ -771,36 +831,38 @@
           , GHCJS.DOM.JSFFI.Generated.IDBTransaction as GHCJS.DOM.IDBTransaction
           , GHCJS.DOM.JSFFI.Generated.IDBVersionChangeEvent as GHCJS.DOM.IDBVersionChangeEvent
           , GHCJS.DOM.JSFFI.Generated.ImageData as GHCJS.DOM.ImageData
+          , GHCJS.DOM.JSFFI.Generated.InputEvent as GHCJS.DOM.InputEvent
           , GHCJS.DOM.JSFFI.Generated.InspectorFrontendHost as GHCJS.DOM.InspectorFrontendHost
-          , GHCJS.DOM.JSFFI.Generated.InternalSettings as GHCJS.DOM.InternalSettings
-          , GHCJS.DOM.JSFFI.Generated.Internals as GHCJS.DOM.Internals
+          , GHCJS.DOM.JSFFI.Generated.IntersectionObserver as GHCJS.DOM.IntersectionObserver
+          , GHCJS.DOM.JSFFI.Generated.IntersectionObserverCallback as GHCJS.DOM.IntersectionObserverCallback
+          , GHCJS.DOM.JSFFI.Generated.IntersectionObserverEntry as GHCJS.DOM.IntersectionObserverEntry
           , GHCJS.DOM.JSFFI.Generated.KeyboardEvent as GHCJS.DOM.KeyboardEvent
+          , GHCJS.DOM.JSFFI.Generated.KeyframeEffect as GHCJS.DOM.KeyframeEffect
           , GHCJS.DOM.JSFFI.Generated.Location as GHCJS.DOM.Location
-          , GHCJS.DOM.JSFFI.Generated.MallocStatistics as GHCJS.DOM.MallocStatistics
           , GHCJS.DOM.JSFFI.Generated.MediaController as GHCJS.DOM.MediaController
           , GHCJS.DOM.JSFFI.Generated.MediaControlsHost as GHCJS.DOM.MediaControlsHost
+          , GHCJS.DOM.JSFFI.Generated.MediaDeviceInfo as GHCJS.DOM.MediaDeviceInfo
+          , GHCJS.DOM.JSFFI.Generated.MediaDevices as GHCJS.DOM.MediaDevices
           , GHCJS.DOM.JSFFI.Generated.MediaElementAudioSourceNode as GHCJS.DOM.MediaElementAudioSourceNode
+          , GHCJS.DOM.JSFFI.Generated.MediaEncryptedEvent as GHCJS.DOM.MediaEncryptedEvent
           , GHCJS.DOM.JSFFI.Generated.MediaError as GHCJS.DOM.MediaError
-          , GHCJS.DOM.JSFFI.Generated.MediaKeyError as GHCJS.DOM.MediaKeyError
-          , GHCJS.DOM.JSFFI.Generated.MediaKeyEvent as GHCJS.DOM.MediaKeyEvent
           , GHCJS.DOM.JSFFI.Generated.MediaKeyMessageEvent as GHCJS.DOM.MediaKeyMessageEvent
-          , GHCJS.DOM.JSFFI.Generated.MediaKeyNeededEvent as GHCJS.DOM.MediaKeyNeededEvent
           , GHCJS.DOM.JSFFI.Generated.MediaKeySession as GHCJS.DOM.MediaKeySession
+          , GHCJS.DOM.JSFFI.Generated.MediaKeyStatusMap as GHCJS.DOM.MediaKeyStatusMap
+          , GHCJS.DOM.JSFFI.Generated.MediaKeySystemAccess as GHCJS.DOM.MediaKeySystemAccess
           , GHCJS.DOM.JSFFI.Generated.MediaKeys as GHCJS.DOM.MediaKeys
           , GHCJS.DOM.JSFFI.Generated.MediaList as GHCJS.DOM.MediaList
           , GHCJS.DOM.JSFFI.Generated.MediaQueryList as GHCJS.DOM.MediaQueryList
           , GHCJS.DOM.JSFFI.Generated.MediaQueryListListener as GHCJS.DOM.MediaQueryListListener
+          , GHCJS.DOM.JSFFI.Generated.MediaRemoteControls as GHCJS.DOM.MediaRemoteControls
+          , GHCJS.DOM.JSFFI.Generated.MediaSession as GHCJS.DOM.MediaSession
           , GHCJS.DOM.JSFFI.Generated.MediaSource as GHCJS.DOM.MediaSource
-          , GHCJS.DOM.JSFFI.Generated.MediaSourceStates as GHCJS.DOM.MediaSourceStates
           , GHCJS.DOM.JSFFI.Generated.MediaStream as GHCJS.DOM.MediaStream
           , GHCJS.DOM.JSFFI.Generated.MediaStreamAudioDestinationNode as GHCJS.DOM.MediaStreamAudioDestinationNode
           , GHCJS.DOM.JSFFI.Generated.MediaStreamAudioSourceNode as GHCJS.DOM.MediaStreamAudioSourceNode
           , GHCJS.DOM.JSFFI.Generated.MediaStreamEvent as GHCJS.DOM.MediaStreamEvent
-          , GHCJS.DOM.JSFFI.MediaStreamTrack as GHCJS.DOM.MediaStreamTrack
+          , GHCJS.DOM.JSFFI.Generated.MediaStreamTrack as GHCJS.DOM.MediaStreamTrack
           , GHCJS.DOM.JSFFI.Generated.MediaStreamTrackEvent as GHCJS.DOM.MediaStreamTrackEvent
-          , GHCJS.DOM.JSFFI.Generated.MediaStreamTrackSourcesCallback as GHCJS.DOM.MediaStreamTrackSourcesCallback
-          , GHCJS.DOM.JSFFI.Generated.MediaTrackConstraints as GHCJS.DOM.MediaTrackConstraints
-          , GHCJS.DOM.JSFFI.Generated.MemoryInfo as GHCJS.DOM.MemoryInfo
           , GHCJS.DOM.JSFFI.Generated.MessageChannel as GHCJS.DOM.MessageChannel
           , GHCJS.DOM.JSFFI.Generated.MessageEvent as GHCJS.DOM.MessageEvent
           , GHCJS.DOM.JSFFI.Generated.MessagePort as GHCJS.DOM.MessagePort
@@ -812,6 +874,10 @@
           , GHCJS.DOM.JSFFI.Generated.MutationRecord as GHCJS.DOM.MutationRecord
           , GHCJS.DOM.JSFFI.Generated.NamedNodeMap as GHCJS.DOM.NamedNodeMap
           , GHCJS.DOM.JSFFI.Navigator as GHCJS.DOM.Navigator
+          , GHCJS.DOM.JSFFI.Generated.NavigatorConcurrentHardware as GHCJS.DOM.NavigatorConcurrentHardware
+          , GHCJS.DOM.JSFFI.Generated.NavigatorID as GHCJS.DOM.NavigatorID
+          , GHCJS.DOM.JSFFI.Generated.NavigatorLanguage as GHCJS.DOM.NavigatorLanguage
+          , GHCJS.DOM.JSFFI.Generated.NavigatorOnLine as GHCJS.DOM.NavigatorOnLine
           , GHCJS.DOM.JSFFI.NavigatorUserMediaError as GHCJS.DOM.NavigatorUserMediaError
           , GHCJS.DOM.JSFFI.Generated.NavigatorUserMediaErrorCallback as GHCJS.DOM.NavigatorUserMediaErrorCallback
           , GHCJS.DOM.JSFFI.Generated.NavigatorUserMediaSuccessCallback as GHCJS.DOM.NavigatorUserMediaSuccessCallback
@@ -819,6 +885,8 @@
           , GHCJS.DOM.JSFFI.Generated.NodeFilter as GHCJS.DOM.NodeFilter
           , GHCJS.DOM.JSFFI.Generated.NodeIterator as GHCJS.DOM.NodeIterator
           , GHCJS.DOM.JSFFI.Generated.NodeList as GHCJS.DOM.NodeList
+          , GHCJS.DOM.JSFFI.Generated.NonDocumentTypeChildNode as GHCJS.DOM.NonDocumentTypeChildNode
+          , GHCJS.DOM.JSFFI.Generated.NonElementParentNode as GHCJS.DOM.NonElementParentNode
           , GHCJS.DOM.JSFFI.Generated.Notification as GHCJS.DOM.Notification
           , GHCJS.DOM.JSFFI.Generated.NotificationCenter as GHCJS.DOM.NotificationCenter
           , GHCJS.DOM.JSFFI.Generated.NotificationPermissionCallback as GHCJS.DOM.NotificationPermissionCallback
@@ -828,14 +896,19 @@
           , GHCJS.DOM.JSFFI.Generated.OfflineAudioCompletionEvent as GHCJS.DOM.OfflineAudioCompletionEvent
           , GHCJS.DOM.JSFFI.Generated.OfflineAudioContext as GHCJS.DOM.OfflineAudioContext
           , GHCJS.DOM.JSFFI.Generated.OscillatorNode as GHCJS.DOM.OscillatorNode
+          , GHCJS.DOM.JSFFI.Generated.OverconstrainedError as GHCJS.DOM.OverconstrainedError
+          , GHCJS.DOM.JSFFI.Generated.OverconstrainedErrorEvent as GHCJS.DOM.OverconstrainedErrorEvent
           , GHCJS.DOM.JSFFI.Generated.OverflowEvent as GHCJS.DOM.OverflowEvent
           , GHCJS.DOM.JSFFI.Generated.PageTransitionEvent as GHCJS.DOM.PageTransitionEvent
           , GHCJS.DOM.JSFFI.Generated.PannerNode as GHCJS.DOM.PannerNode
+          , GHCJS.DOM.JSFFI.Generated.ParentNode as GHCJS.DOM.ParentNode
           , GHCJS.DOM.JSFFI.Generated.Path2D as GHCJS.DOM.Path2D
           , GHCJS.DOM.JSFFI.Generated.Performance as GHCJS.DOM.Performance
           , GHCJS.DOM.JSFFI.Generated.PerformanceEntry as GHCJS.DOM.PerformanceEntry
-          , GHCJS.DOM.JSFFI.Generated.PerformanceEntryList as GHCJS.DOM.PerformanceEntryList
           , GHCJS.DOM.JSFFI.Generated.PerformanceNavigation as GHCJS.DOM.PerformanceNavigation
+          , GHCJS.DOM.JSFFI.Generated.PerformanceObserver as GHCJS.DOM.PerformanceObserver
+          , GHCJS.DOM.JSFFI.Generated.PerformanceObserverCallback as GHCJS.DOM.PerformanceObserverCallback
+          , GHCJS.DOM.JSFFI.Generated.PerformanceObserverEntryList as GHCJS.DOM.PerformanceObserverEntryList
           , GHCJS.DOM.JSFFI.Generated.PerformanceResourceTiming as GHCJS.DOM.PerformanceResourceTiming
           , GHCJS.DOM.JSFFI.Generated.PerformanceTiming as GHCJS.DOM.PerformanceTiming
           , GHCJS.DOM.JSFFI.Generated.Plugin as GHCJS.DOM.Plugin
@@ -848,27 +921,31 @@
           , GHCJS.DOM.JSFFI.Generated.ProgressEvent as GHCJS.DOM.ProgressEvent
           , GHCJS.DOM.JSFFI.Generated.QuickTimePluginReplacement as GHCJS.DOM.QuickTimePluginReplacement
           , GHCJS.DOM.JSFFI.Generated.RGBColor as GHCJS.DOM.RGBColor
-          , GHCJS.DOM.JSFFI.Generated.RTCConfiguration as GHCJS.DOM.RTCConfiguration
           , GHCJS.DOM.JSFFI.Generated.RTCDTMFSender as GHCJS.DOM.RTCDTMFSender
           , GHCJS.DOM.JSFFI.Generated.RTCDTMFToneChangeEvent as GHCJS.DOM.RTCDTMFToneChangeEvent
           , GHCJS.DOM.JSFFI.Generated.RTCDataChannel as GHCJS.DOM.RTCDataChannel
           , GHCJS.DOM.JSFFI.Generated.RTCDataChannelEvent as GHCJS.DOM.RTCDataChannelEvent
           , GHCJS.DOM.JSFFI.Generated.RTCIceCandidate as GHCJS.DOM.RTCIceCandidate
           , GHCJS.DOM.JSFFI.Generated.RTCIceCandidateEvent as GHCJS.DOM.RTCIceCandidateEvent
-          , GHCJS.DOM.JSFFI.Generated.RTCIceServer as GHCJS.DOM.RTCIceServer
-          , GHCJS.DOM.JSFFI.RTCPeerConnection as GHCJS.DOM.RTCPeerConnection
-          , GHCJS.DOM.JSFFI.Generated.RTCPeerConnectionErrorCallback as GHCJS.DOM.RTCPeerConnectionErrorCallback
+          , GHCJS.DOM.JSFFI.Generated.RTCPeerConnection as GHCJS.DOM.RTCPeerConnection
+          , GHCJS.DOM.JSFFI.Generated.RTCRtpReceiver as GHCJS.DOM.RTCRtpReceiver
+          , GHCJS.DOM.JSFFI.Generated.RTCRtpSender as GHCJS.DOM.RTCRtpSender
+          , GHCJS.DOM.JSFFI.Generated.RTCRtpTransceiver as GHCJS.DOM.RTCRtpTransceiver
           , GHCJS.DOM.JSFFI.Generated.RTCSessionDescription as GHCJS.DOM.RTCSessionDescription
-          , GHCJS.DOM.JSFFI.Generated.RTCSessionDescriptionCallback as GHCJS.DOM.RTCSessionDescriptionCallback
-          , GHCJS.DOM.JSFFI.Generated.RTCStatsCallback as GHCJS.DOM.RTCStatsCallback
-          , GHCJS.DOM.JSFFI.Generated.RTCStatsReport as GHCJS.DOM.RTCStatsReport
-          , GHCJS.DOM.JSFFI.Generated.RTCStatsResponse as GHCJS.DOM.RTCStatsResponse
+          , GHCJS.DOM.JSFFI.Generated.RTCTrackEvent as GHCJS.DOM.RTCTrackEvent
           , GHCJS.DOM.JSFFI.Generated.RadioNodeList as GHCJS.DOM.RadioNodeList
           , GHCJS.DOM.JSFFI.Generated.Range as GHCJS.DOM.Range
+          , GHCJS.DOM.JSFFI.Generated.ReadableByteStreamController as GHCJS.DOM.ReadableByteStreamController
           , GHCJS.DOM.JSFFI.Generated.ReadableStream as GHCJS.DOM.ReadableStream
+          , GHCJS.DOM.JSFFI.Generated.ReadableStreamDefaultController as GHCJS.DOM.ReadableStreamDefaultController
+          , GHCJS.DOM.JSFFI.Generated.ReadableStreamDefaultReader as GHCJS.DOM.ReadableStreamDefaultReader
+          , GHCJS.DOM.JSFFI.Generated.ReadableStreamSource as GHCJS.DOM.ReadableStreamSource
           , GHCJS.DOM.JSFFI.Generated.Rect as GHCJS.DOM.Rect
+          , GHCJS.DOM.JSFFI.Generated.Request as GHCJS.DOM.Request
           , GHCJS.DOM.JSFFI.Generated.RequestAnimationFrameCallback as GHCJS.DOM.RequestAnimationFrameCallback
+          , GHCJS.DOM.JSFFI.Generated.Response as GHCJS.DOM.Response
           , GHCJS.DOM.JSFFI.SQLError as GHCJS.DOM.SQLError
+          , GHCJS.DOM.JSFFI.Generated.SQLException as GHCJS.DOM.SQLException
           , GHCJS.DOM.JSFFI.Generated.SQLResultSet as GHCJS.DOM.SQLResultSet
           , GHCJS.DOM.JSFFI.Generated.SQLResultSetRowList as GHCJS.DOM.SQLResultSetRowList
           , GHCJS.DOM.JSFFI.Generated.SQLStatementCallback as GHCJS.DOM.SQLStatementCallback
@@ -894,12 +971,11 @@
           , GHCJS.DOM.JSFFI.Generated.SVGAnimationElement as GHCJS.DOM.SVGAnimationElement
           , GHCJS.DOM.JSFFI.Generated.SVGCircleElement as GHCJS.DOM.SVGCircleElement
           , GHCJS.DOM.JSFFI.Generated.SVGClipPathElement as GHCJS.DOM.SVGClipPathElement
-          , GHCJS.DOM.JSFFI.Generated.SVGColor as GHCJS.DOM.SVGColor
           , GHCJS.DOM.JSFFI.Generated.SVGComponentTransferFunctionElement as GHCJS.DOM.SVGComponentTransferFunctionElement
           , GHCJS.DOM.JSFFI.Generated.SVGCursorElement as GHCJS.DOM.SVGCursorElement
-          , GHCJS.DOM.JSFFI.Generated.SVGDocument as GHCJS.DOM.SVGDocument
           , GHCJS.DOM.JSFFI.Generated.SVGElement as GHCJS.DOM.SVGElement
           , GHCJS.DOM.JSFFI.Generated.SVGEllipseElement as GHCJS.DOM.SVGEllipseElement
+          , GHCJS.DOM.JSFFI.Generated.SVGException as GHCJS.DOM.SVGException
           , GHCJS.DOM.JSFFI.Generated.SVGExternalResourcesRequired as GHCJS.DOM.SVGExternalResourcesRequired
           , GHCJS.DOM.JSFFI.Generated.SVGFEBlendElement as GHCJS.DOM.SVGFEBlendElement
           , GHCJS.DOM.JSFFI.Generated.SVGFEColorMatrixElement as GHCJS.DOM.SVGFEColorMatrixElement
@@ -937,7 +1013,6 @@
           , GHCJS.DOM.JSFFI.Generated.SVGMatrix as GHCJS.DOM.SVGMatrix
           , GHCJS.DOM.JSFFI.Generated.SVGNumber as GHCJS.DOM.SVGNumber
           , GHCJS.DOM.JSFFI.Generated.SVGNumberList as GHCJS.DOM.SVGNumberList
-          , GHCJS.DOM.JSFFI.Generated.SVGPaint as GHCJS.DOM.SVGPaint
           , GHCJS.DOM.JSFFI.Generated.SVGPathElement as GHCJS.DOM.SVGPathElement
           , GHCJS.DOM.JSFFI.Generated.SVGPathSeg as GHCJS.DOM.SVGPathSeg
           , GHCJS.DOM.JSFFI.Generated.SVGPathSegArcAbs as GHCJS.DOM.SVGPathSegArcAbs
@@ -989,18 +1064,17 @@
           , GHCJS.DOM.JSFFI.Generated.SVGZoomEvent as GHCJS.DOM.SVGZoomEvent
           , GHCJS.DOM.JSFFI.Generated.Screen as GHCJS.DOM.Screen
           , GHCJS.DOM.JSFFI.Generated.ScriptProcessorNode as GHCJS.DOM.ScriptProcessorNode
-          , GHCJS.DOM.JSFFI.Generated.ScriptProfile as GHCJS.DOM.ScriptProfile
-          , GHCJS.DOM.JSFFI.Generated.ScriptProfileNode as GHCJS.DOM.ScriptProfileNode
-          , GHCJS.DOM.JSFFI.Generated.SecurityPolicy as GHCJS.DOM.SecurityPolicy
           , GHCJS.DOM.JSFFI.Generated.SecurityPolicyViolationEvent as GHCJS.DOM.SecurityPolicyViolationEvent
           , GHCJS.DOM.JSFFI.Generated.Selection as GHCJS.DOM.Selection
+          , GHCJS.DOM.JSFFI.Generated.ShadowRoot as GHCJS.DOM.ShadowRoot
+          , GHCJS.DOM.JSFFI.Generated.Slotable as GHCJS.DOM.Slotable
           , GHCJS.DOM.JSFFI.Generated.SourceBuffer as GHCJS.DOM.SourceBuffer
           , GHCJS.DOM.JSFFI.Generated.SourceBufferList as GHCJS.DOM.SourceBufferList
-          , GHCJS.DOM.JSFFI.Generated.SourceInfo as GHCJS.DOM.SourceInfo
           , GHCJS.DOM.JSFFI.Generated.SpeechSynthesis as GHCJS.DOM.SpeechSynthesis
           , GHCJS.DOM.JSFFI.Generated.SpeechSynthesisEvent as GHCJS.DOM.SpeechSynthesisEvent
           , GHCJS.DOM.JSFFI.Generated.SpeechSynthesisUtterance as GHCJS.DOM.SpeechSynthesisUtterance
           , GHCJS.DOM.JSFFI.Generated.SpeechSynthesisVoice as GHCJS.DOM.SpeechSynthesisVoice
+          , GHCJS.DOM.JSFFI.Generated.StaticRange as GHCJS.DOM.StaticRange
           , GHCJS.DOM.JSFFI.Generated.Storage as GHCJS.DOM.Storage
           , GHCJS.DOM.JSFFI.Generated.StorageErrorCallback as GHCJS.DOM.StorageErrorCallback
           , GHCJS.DOM.JSFFI.Generated.StorageEvent as GHCJS.DOM.StorageEvent
@@ -1014,6 +1088,8 @@
           , GHCJS.DOM.JSFFI.Generated.StyleSheetList as GHCJS.DOM.StyleSheetList
           , GHCJS.DOM.JSFFI.Generated.SubtleCrypto as GHCJS.DOM.SubtleCrypto
           , GHCJS.DOM.JSFFI.Generated.Text as GHCJS.DOM.Text
+          , GHCJS.DOM.JSFFI.Generated.TextDecoder as GHCJS.DOM.TextDecoder
+          , GHCJS.DOM.JSFFI.Generated.TextEncoder as GHCJS.DOM.TextEncoder
           , GHCJS.DOM.JSFFI.Generated.TextEvent as GHCJS.DOM.TextEvent
           , GHCJS.DOM.JSFFI.Generated.TextMetrics as GHCJS.DOM.TextMetrics
           , GHCJS.DOM.JSFFI.Generated.TextTrack as GHCJS.DOM.TextTrack
@@ -1027,18 +1103,15 @@
           , GHCJS.DOM.JSFFI.Generated.TrackEvent as GHCJS.DOM.TrackEvent
           , GHCJS.DOM.JSFFI.Generated.TransitionEvent as GHCJS.DOM.TransitionEvent
           , GHCJS.DOM.JSFFI.Generated.TreeWalker as GHCJS.DOM.TreeWalker
-          , GHCJS.DOM.JSFFI.Generated.TypeConversions as GHCJS.DOM.TypeConversions
           , GHCJS.DOM.JSFFI.Generated.UIEvent as GHCJS.DOM.UIEvent
-          , GHCJS.DOM.JSFFI.Generated.UIRequestEvent as GHCJS.DOM.UIRequestEvent
           , GHCJS.DOM.JSFFI.Generated.URL as GHCJS.DOM.URL
-          , GHCJS.DOM.JSFFI.Generated.URLUtils as GHCJS.DOM.URLUtils
+          , GHCJS.DOM.JSFFI.Generated.URLSearchParams as GHCJS.DOM.URLSearchParams
           , GHCJS.DOM.JSFFI.Generated.UserMessageHandler as GHCJS.DOM.UserMessageHandler
           , GHCJS.DOM.JSFFI.Generated.VTTCue as GHCJS.DOM.VTTCue
           , GHCJS.DOM.JSFFI.Generated.VTTRegion as GHCJS.DOM.VTTRegion
           , GHCJS.DOM.JSFFI.Generated.VTTRegionList as GHCJS.DOM.VTTRegionList
           , GHCJS.DOM.JSFFI.Generated.ValidityState as GHCJS.DOM.ValidityState
           , GHCJS.DOM.JSFFI.Generated.VideoPlaybackQuality as GHCJS.DOM.VideoPlaybackQuality
-          , GHCJS.DOM.JSFFI.Generated.VideoStreamTrack as GHCJS.DOM.VideoStreamTrack
           , GHCJS.DOM.JSFFI.Generated.VideoTrack as GHCJS.DOM.VideoTrack
           , GHCJS.DOM.JSFFI.Generated.VideoTrackList as GHCJS.DOM.VideoTrackList
           , GHCJS.DOM.JSFFI.Generated.VoidCallback as GHCJS.DOM.VoidCallback
@@ -1048,7 +1121,6 @@
           , GHCJS.DOM.JSFFI.Generated.WebGLCompressedTextureATC as GHCJS.DOM.WebGLCompressedTextureATC
           , GHCJS.DOM.JSFFI.Generated.WebGLCompressedTexturePVRTC as GHCJS.DOM.WebGLCompressedTexturePVRTC
           , GHCJS.DOM.JSFFI.Generated.WebGLCompressedTextureS3TC as GHCJS.DOM.WebGLCompressedTextureS3TC
-          , GHCJS.DOM.JSFFI.Generated.WebGLContextAttributes as GHCJS.DOM.WebGLContextAttributes
           , GHCJS.DOM.JSFFI.Generated.WebGLContextEvent as GHCJS.DOM.WebGLContextEvent
           , GHCJS.DOM.JSFFI.Generated.WebGLDebugRendererInfo as GHCJS.DOM.WebGLDebugRendererInfo
           , GHCJS.DOM.JSFFI.Generated.WebGLDebugShaders as GHCJS.DOM.WebGLDebugShaders
@@ -1058,30 +1130,36 @@
           , GHCJS.DOM.JSFFI.Generated.WebGLRenderingContextBase as GHCJS.DOM.WebGLRenderingContextBase
           , GHCJS.DOM.JSFFI.Generated.WebGLShaderPrecisionFormat as GHCJS.DOM.WebGLShaderPrecisionFormat
           , GHCJS.DOM.JSFFI.Generated.WebKitAnimationEvent as GHCJS.DOM.WebKitAnimationEvent
-          , GHCJS.DOM.JSFFI.Generated.WebKitCSSFilterValue as GHCJS.DOM.WebKitCSSFilterValue
           , GHCJS.DOM.JSFFI.Generated.WebKitCSSMatrix as GHCJS.DOM.WebKitCSSMatrix
           , GHCJS.DOM.JSFFI.Generated.WebKitCSSRegionRule as GHCJS.DOM.WebKitCSSRegionRule
-          , GHCJS.DOM.JSFFI.Generated.WebKitCSSTransformValue as GHCJS.DOM.WebKitCSSTransformValue
           , GHCJS.DOM.JSFFI.Generated.WebKitCSSViewportRule as GHCJS.DOM.WebKitCSSViewportRule
+          , GHCJS.DOM.JSFFI.Generated.WebKitMediaKeyError as GHCJS.DOM.WebKitMediaKeyError
+          , GHCJS.DOM.JSFFI.Generated.WebKitMediaKeyMessageEvent as GHCJS.DOM.WebKitMediaKeyMessageEvent
+          , GHCJS.DOM.JSFFI.Generated.WebKitMediaKeyNeededEvent as GHCJS.DOM.WebKitMediaKeyNeededEvent
+          , GHCJS.DOM.JSFFI.Generated.WebKitMediaKeySession as GHCJS.DOM.WebKitMediaKeySession
+          , GHCJS.DOM.JSFFI.Generated.WebKitMediaKeys as GHCJS.DOM.WebKitMediaKeys
           , GHCJS.DOM.JSFFI.Generated.WebKitNamedFlow as GHCJS.DOM.WebKitNamedFlow
           , GHCJS.DOM.JSFFI.Generated.WebKitNamespace as GHCJS.DOM.WebKitNamespace
           , GHCJS.DOM.JSFFI.Generated.WebKitPlaybackTargetAvailabilityEvent as GHCJS.DOM.WebKitPlaybackTargetAvailabilityEvent
           , GHCJS.DOM.JSFFI.Generated.WebKitPoint as GHCJS.DOM.WebKitPoint
+          , GHCJS.DOM.JSFFI.Generated.WebKitSubtleCrypto as GHCJS.DOM.WebKitSubtleCrypto
           , GHCJS.DOM.JSFFI.Generated.WebKitTransitionEvent as GHCJS.DOM.WebKitTransitionEvent
           , GHCJS.DOM.JSFFI.Generated.WebSocket as GHCJS.DOM.WebSocket
           , GHCJS.DOM.JSFFI.Generated.WheelEvent as GHCJS.DOM.WheelEvent
           , GHCJS.DOM.JSFFI.Window as GHCJS.DOM.Window
-          , GHCJS.DOM.JSFFI.Generated.WindowBase64 as GHCJS.DOM.WindowBase64
-          , GHCJS.DOM.JSFFI.Generated.WindowTimers as GHCJS.DOM.WindowTimers
+          , GHCJS.DOM.JSFFI.Generated.WindowEventHandlers as GHCJS.DOM.WindowEventHandlers
+          , GHCJS.DOM.JSFFI.Generated.WindowOrWorkerGlobalScope as GHCJS.DOM.WindowOrWorkerGlobalScope
           , GHCJS.DOM.JSFFI.Generated.Worker as GHCJS.DOM.Worker
           , GHCJS.DOM.JSFFI.Generated.WorkerGlobalScope as GHCJS.DOM.WorkerGlobalScope
           , GHCJS.DOM.JSFFI.Generated.WorkerLocation as GHCJS.DOM.WorkerLocation
           , GHCJS.DOM.JSFFI.Generated.WorkerNavigator as GHCJS.DOM.WorkerNavigator
+          , GHCJS.DOM.JSFFI.Generated.WritableStream as GHCJS.DOM.WritableStream
           , GHCJS.DOM.JSFFI.XMLHttpRequest as GHCJS.DOM.XMLHttpRequest
+          , GHCJS.DOM.JSFFI.Generated.XMLHttpRequestEventTarget as GHCJS.DOM.XMLHttpRequestEventTarget
           , GHCJS.DOM.JSFFI.Generated.XMLHttpRequestProgressEvent as GHCJS.DOM.XMLHttpRequestProgressEvent
-          , GHCJS.DOM.JSFFI.Generated.XMLHttpRequestUpload as GHCJS.DOM.XMLHttpRequestUpload
           , GHCJS.DOM.JSFFI.Generated.XMLSerializer as GHCJS.DOM.XMLSerializer
           , GHCJS.DOM.JSFFI.Generated.XPathEvaluator as GHCJS.DOM.XPathEvaluator
+          , GHCJS.DOM.JSFFI.Generated.XPathException as GHCJS.DOM.XPathException
           , GHCJS.DOM.JSFFI.Generated.XPathExpression as GHCJS.DOM.XPathExpression
           , GHCJS.DOM.JSFFI.Generated.XPathNSResolver as GHCJS.DOM.XPathNSResolver
           , GHCJS.DOM.JSFFI.Generated.XPathResult as GHCJS.DOM.XPathResult
diff --git a/src/GHCJS/DOM/EventM.hs b/src/GHCJS/DOM/EventM.hs
--- a/src/GHCJS/DOM/EventM.hs
+++ b/src/GHCJS/DOM/EventM.hs
@@ -79,6 +79,7 @@
 import           GHCJS.DOM.Types
 import qualified GHCJS.DOM.JSFFI.Generated.Event as Event
 import qualified GHCJS.DOM.JSFFI.Generated.UIEvent as UIEvent
+import qualified GHCJS.DOM.JSFFI.Generated.KeyboardEvent as KeyboardEvent
 import qualified GHCJS.DOM.JSFFI.Generated.MouseEvent as MouseEvent
 import           GHCJS.DOM.JSFFI.Generated.EventTarget
 import           GHCJS.DOM.EventTargetClosures
@@ -154,13 +155,13 @@
 event :: EventM t e e
 event = ask
 
-eventTarget :: IsEvent e => EventM t e (Maybe EventTarget)
+eventTarget :: IsEvent e => EventM t e EventTarget
 eventTarget = event >>= Event.getTarget
 
 target :: (IsEvent e, IsGObject t) => EventM t e (Maybe t)
-target = eventTarget >>= mapM (liftJSM . fromJSValUnchecked . coerce)
+target = eventTarget >>= liftJSM . fromJSValUnchecked . coerce
 
-eventCurrentTarget :: IsEvent e => EventM t e (Maybe EventTarget)
+eventCurrentTarget :: IsEvent e => EventM t e EventTarget
 eventCurrentTarget = event >>= Event.getCurrentTarget
 
 eventPhase :: IsEvent e => EventM t e Word
@@ -187,7 +188,7 @@
 stopImmediatePropagation :: IsEvent e => EventM t e ()
 stopImmediatePropagation = event >>= Event.stopImmediatePropagation
 
-srcElement :: IsEvent e => EventM t e (Maybe EventTarget)
+srcElement :: IsEvent e => EventM t e EventTarget
 srcElement = event >>= Event.getSrcElement
 
 getCancelBubble :: IsEvent e => EventM t e Bool
@@ -202,17 +203,17 @@
 returnValue :: IsEvent e => Bool -> EventM t e ()
 returnValue f = event >>= flip Event.setReturnValue f
 
-uiView :: IsUIEvent e => EventM t e (Maybe Window)
+uiView :: IsUIEvent e => EventM t e Window
 uiView = event >>= UIEvent.getView
 
 uiDetail :: IsUIEvent e => EventM t e Int
 uiDetail = event >>= UIEvent.getDetail
 
-uiKeyCode :: IsUIEvent e => EventM t e Int
-uiKeyCode = event >>= UIEvent.getKeyCode
+uiKeyCode :: EventM t KeyboardEvent Word
+uiKeyCode = event >>= KeyboardEvent.getKeyCode
 
-uiCharCode :: IsUIEvent e => EventM t e Int
-uiCharCode = event >>= UIEvent.getCharCode
+uiCharCode :: EventM t KeyboardEvent Word
+uiCharCode = event >>= KeyboardEvent.getCharCode
 
 uiLayerX :: IsUIEvent e => EventM t e Int
 uiLayerX = event >>= UIEvent.getLayerX
diff --git a/src/GHCJS/DOM/JSFFI/Database.hs b/src/GHCJS/DOM/JSFFI/Database.hs
--- a/src/GHCJS/DOM/JSFFI/Database.hs
+++ b/src/GHCJS/DOM/JSFFI/Database.hs
@@ -30,7 +30,7 @@
 import GHCJS.DOM.JSFFI.Generated.Database as Generated hiding (js_changeVersion, changeVersion, js_transaction, transaction, js_readTransaction, readTransaction)
 
 withSQLTransactionCallback :: (SQLTransaction -> IO ()) -> (SQLTransactionCallback -> IO a) -> IO a
-withSQLTransactionCallback f = bracket (newSQLTransactionCallbackSync (f . fromJust)) (\(SQLTransactionCallback c) -> releaseCallback c)
+withSQLTransactionCallback f = bracket (newSQLTransactionCallbackSync f) (\(SQLTransactionCallback c) -> releaseCallback c)
 
 foreign import javascript interruptible
         "$1[\"changeVersion\"]($2, $3, $4, $c, function() { $c(null); });"
diff --git a/src/GHCJS/DOM/JSFFI/FormData.hs b/src/GHCJS/DOM/JSFFI/FormData.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/FormData.hs
+++ /dev/null
@@ -1,55 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
-module GHCJS.DOM.JSFFI.FormData (
-    module Generated
-  , js_newFormData0
-  , js_newFormData1
-  , newFormData
-  , js_append
-  , js_append3
-  , append
-  , appendBlob
-) where
-
-import Control.Monad.IO.Class (MonadIO(..))
-
-import GHCJS.Types (JSVal, JSString)
-import GHCJS.Marshal.Pure (PToJSVal(..))
-import GHCJS.DOM.Types
-
-import GHCJS.DOM.JSFFI.Generated.FormData as Generated hiding (js_append, append, newFormData)
-
-
-foreign import javascript unsafe "new window[\"FormData\"]()"
-        js_newFormData0 :: IO FormData
-
-foreign import javascript unsafe "new window[\"FormData\"]($1)"
-        js_newFormData1 :: HTMLFormElement -> IO FormData
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FormData Mozilla FormData documentation>
-newFormData :: (MonadIO m) => Maybe HTMLFormElement -> m FormData
-newFormData = liftIO . maybe js_newFormData0 js_newFormData1
-
-
-foreign import javascript unsafe "$1[\"append\"]($2, $3)"
-        js_append :: FormData -> JSString -> JSVal -> IO ()
-
-foreign import javascript unsafe "$1[\"append\"]($2, $3, $4)"
-        js_append3 :: FormData -> JSString -> JSVal -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FormData/append Mozilla FormData.append documentation>
-append
-  :: (MonadIO m, ToJSString name, ToJSString str)
-  => FormData -> name -> str -> m ()
-append self name str
-  = liftIO $ js_append self (toJSString name) (pToJSVal str)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FormData/append Mozilla FormData.append documentation>
-appendBlob
-  :: (MonadIO m, ToJSString name, IsBlob blob, ToJSString filename)
-  => FormData -> name -> blob -> Maybe filename -> m ()
-appendBlob self name blob mfilename
-  = let jsname = toJSString name
-        jsblob = unBlob $ toBlob blob
-    in liftIO $ case mfilename of
-         Just filename -> js_append3 self jsname jsblob $ toJSString filename
-         Nothing -> js_append self jsname jsblob
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ANGLEInstancedArrays.hs b/src/GHCJS/DOM/JSFFI/Generated/ANGLEInstancedArrays.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ANGLEInstancedArrays.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ANGLEInstancedArrays.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -39,7 +40,7 @@
                            ANGLEInstancedArrays -> Word -> Int -> Int -> Int -> m ()
 drawArraysInstancedANGLE self mode first count primcount
   = liftIO
-      (js_drawArraysInstancedANGLE (self) mode first count primcount)
+      (js_drawArraysInstancedANGLE self mode first count primcount)
  
 foreign import javascript unsafe
         "$1[\"drawElementsInstancedANGLE\"]($2,\n$3, $4, $5, $6)"
@@ -53,7 +54,7 @@
                              ANGLEInstancedArrays -> Word -> Int -> Word -> Int64 -> Int -> m ()
 drawElementsInstancedANGLE self mode count type' offset primcount
   = liftIO
-      (js_drawElementsInstancedANGLE (self) mode count type'
+      (js_drawElementsInstancedANGLE self mode count type'
          (fromIntegral offset)
          primcount)
  
@@ -66,5 +67,5 @@
 vertexAttribDivisorANGLE ::
                          (MonadIO m) => ANGLEInstancedArrays -> Word -> Word -> m ()
 vertexAttribDivisorANGLE self index divisor
-  = liftIO (js_vertexAttribDivisorANGLE (self) index divisor)
+  = liftIO (js_vertexAttribDivisorANGLE self index divisor)
 pattern VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 35070
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AbstractView.hs b/src/GHCJS/DOM/JSFFI/Generated/AbstractView.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/AbstractView.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.AbstractView
-       (js_getDocument, getDocument, getDocumentUnsafe,
-        getDocumentUnchecked, js_getStyleMedia, getStyleMedia,
-        getStyleMediaUnsafe, getStyleMediaUnchecked, AbstractView(..),
-        gTypeAbstractView)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"document\"]" js_getDocument
-        :: AbstractView -> IO (Nullable Document)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AbstractView.document Mozilla AbstractView.document documentation> 
-getDocument :: (MonadIO m) => AbstractView -> m (Maybe Document)
-getDocument self
-  = liftIO (nullableToMaybe <$> (js_getDocument (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AbstractView.document Mozilla AbstractView.document documentation> 
-getDocumentUnsafe ::
-                  (MonadIO m, HasCallStack) => AbstractView -> m Document
-getDocumentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDocument (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AbstractView.document Mozilla AbstractView.document documentation> 
-getDocumentUnchecked :: (MonadIO m) => AbstractView -> m Document
-getDocumentUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getDocument (self)))
- 
-foreign import javascript unsafe "$1[\"styleMedia\"]"
-        js_getStyleMedia :: AbstractView -> IO (Nullable StyleMedia)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AbstractView.styleMedia Mozilla AbstractView.styleMedia documentation> 
-getStyleMedia ::
-              (MonadIO m) => AbstractView -> m (Maybe StyleMedia)
-getStyleMedia self
-  = liftIO (nullableToMaybe <$> (js_getStyleMedia (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AbstractView.styleMedia Mozilla AbstractView.styleMedia documentation> 
-getStyleMediaUnsafe ::
-                    (MonadIO m, HasCallStack) => AbstractView -> m StyleMedia
-getStyleMediaUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStyleMedia (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AbstractView.styleMedia Mozilla AbstractView.styleMedia documentation> 
-getStyleMediaUnchecked ::
-                       (MonadIO m) => AbstractView -> m StyleMedia
-getStyleMediaUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getStyleMedia (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AbstractWorker.hs b/src/GHCJS/DOM/JSFFI/Generated/AbstractWorker.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AbstractWorker.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AbstractWorker.hs
@@ -4,12 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.AbstractWorker
-       (error, AbstractWorker(..), gTypeAbstractWorker) where
+       (error, AbstractWorker(..), gTypeAbstractWorker, IsAbstractWorker,
+        toAbstractWorker)
+       where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -18,11 +20,14 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AbstractWorker.onerror Mozilla AbstractWorker.onerror documentation> 
-error :: EventName AbstractWorker UIEvent
+error ::
+      (IsAbstractWorker self, IsEventTarget self) =>
+        EventName self UIEvent
 error = unsafeEventName (toJSString "error")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AllAudioCapabilities.hs b/src/GHCJS/DOM/JSFFI/Generated/AllAudioCapabilities.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/AllAudioCapabilities.hs
+++ /dev/null
@@ -1,60 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.AllAudioCapabilities
-       (js_getSourceId, getSourceId, js_getVolume, getVolume,
-        getVolumeUnsafe, getVolumeUnchecked, AllAudioCapabilities(..),
-        gTypeAllAudioCapabilities)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"sourceId\"]" js_getSourceId
-        :: AllAudioCapabilities -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllAudioCapabilities.sourceId Mozilla AllAudioCapabilities.sourceId documentation> 
-getSourceId ::
-            (MonadIO m, FromJSString result) =>
-              AllAudioCapabilities -> m [result]
-getSourceId self
-  = liftIO ((js_getSourceId (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"volume\"]" js_getVolume ::
-        AllAudioCapabilities -> IO (Nullable CapabilityRange)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllAudioCapabilities.volume Mozilla AllAudioCapabilities.volume documentation> 
-getVolume ::
-          (MonadIO m) => AllAudioCapabilities -> m (Maybe CapabilityRange)
-getVolume self = liftIO (nullableToMaybe <$> (js_getVolume (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllAudioCapabilities.volume Mozilla AllAudioCapabilities.volume documentation> 
-getVolumeUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  AllAudioCapabilities -> m CapabilityRange
-getVolumeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getVolume (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllAudioCapabilities.volume Mozilla AllAudioCapabilities.volume documentation> 
-getVolumeUnchecked ::
-                   (MonadIO m) => AllAudioCapabilities -> m CapabilityRange
-getVolumeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getVolume (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AllVideoCapabilities.hs b/src/GHCJS/DOM/JSFFI/Generated/AllVideoCapabilities.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/AllVideoCapabilities.hs
+++ /dev/null
@@ -1,158 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.AllVideoCapabilities
-       (js_getSourceType, getSourceType, js_getSourceId, getSourceId,
-        js_getWidth, getWidth, getWidthUnsafe, getWidthUnchecked,
-        js_getHeight, getHeight, getHeightUnsafe, getHeightUnchecked,
-        js_getFrameRate, getFrameRate, getFrameRateUnsafe,
-        getFrameRateUnchecked, js_getAspectRatio, getAspectRatio,
-        getAspectRatioUnsafe, getAspectRatioUnchecked, js_getFacingMode,
-        getFacingMode, AllVideoCapabilities(..), gTypeAllVideoCapabilities)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"sourceType\"]"
-        js_getSourceType :: AllVideoCapabilities -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.sourceType Mozilla AllVideoCapabilities.sourceType documentation> 
-getSourceType ::
-              (MonadIO m, FromJSString result) =>
-                AllVideoCapabilities -> m [result]
-getSourceType self
-  = liftIO ((js_getSourceType (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"sourceId\"]" js_getSourceId
-        :: AllVideoCapabilities -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.sourceId Mozilla AllVideoCapabilities.sourceId documentation> 
-getSourceId ::
-            (MonadIO m, FromJSString result) =>
-              AllVideoCapabilities -> m [result]
-getSourceId self
-  = liftIO ((js_getSourceId (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        AllVideoCapabilities -> IO (Nullable CapabilityRange)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.width Mozilla AllVideoCapabilities.width documentation> 
-getWidth ::
-         (MonadIO m) => AllVideoCapabilities -> m (Maybe CapabilityRange)
-getWidth self = liftIO (nullableToMaybe <$> (js_getWidth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.width Mozilla AllVideoCapabilities.width documentation> 
-getWidthUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 AllVideoCapabilities -> m CapabilityRange
-getWidthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWidth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.width Mozilla AllVideoCapabilities.width documentation> 
-getWidthUnchecked ::
-                  (MonadIO m) => AllVideoCapabilities -> m CapabilityRange
-getWidthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getWidth (self)))
- 
-foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        AllVideoCapabilities -> IO (Nullable CapabilityRange)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.height Mozilla AllVideoCapabilities.height documentation> 
-getHeight ::
-          (MonadIO m) => AllVideoCapabilities -> m (Maybe CapabilityRange)
-getHeight self = liftIO (nullableToMaybe <$> (js_getHeight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.height Mozilla AllVideoCapabilities.height documentation> 
-getHeightUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  AllVideoCapabilities -> m CapabilityRange
-getHeightUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHeight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.height Mozilla AllVideoCapabilities.height documentation> 
-getHeightUnchecked ::
-                   (MonadIO m) => AllVideoCapabilities -> m CapabilityRange
-getHeightUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHeight (self)))
- 
-foreign import javascript unsafe "$1[\"frameRate\"]"
-        js_getFrameRate ::
-        AllVideoCapabilities -> IO (Nullable CapabilityRange)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.frameRate Mozilla AllVideoCapabilities.frameRate documentation> 
-getFrameRate ::
-             (MonadIO m) => AllVideoCapabilities -> m (Maybe CapabilityRange)
-getFrameRate self
-  = liftIO (nullableToMaybe <$> (js_getFrameRate (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.frameRate Mozilla AllVideoCapabilities.frameRate documentation> 
-getFrameRateUnsafe ::
-                   (MonadIO m, HasCallStack) =>
-                     AllVideoCapabilities -> m CapabilityRange
-getFrameRateUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFrameRate (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.frameRate Mozilla AllVideoCapabilities.frameRate documentation> 
-getFrameRateUnchecked ::
-                      (MonadIO m) => AllVideoCapabilities -> m CapabilityRange
-getFrameRateUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFrameRate (self)))
- 
-foreign import javascript unsafe "$1[\"aspectRatio\"]"
-        js_getAspectRatio ::
-        AllVideoCapabilities -> IO (Nullable CapabilityRange)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.aspectRatio Mozilla AllVideoCapabilities.aspectRatio documentation> 
-getAspectRatio ::
-               (MonadIO m) => AllVideoCapabilities -> m (Maybe CapabilityRange)
-getAspectRatio self
-  = liftIO (nullableToMaybe <$> (js_getAspectRatio (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.aspectRatio Mozilla AllVideoCapabilities.aspectRatio documentation> 
-getAspectRatioUnsafe ::
-                     (MonadIO m, HasCallStack) =>
-                       AllVideoCapabilities -> m CapabilityRange
-getAspectRatioUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAspectRatio (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.aspectRatio Mozilla AllVideoCapabilities.aspectRatio documentation> 
-getAspectRatioUnchecked ::
-                        (MonadIO m) => AllVideoCapabilities -> m CapabilityRange
-getAspectRatioUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getAspectRatio (self)))
- 
-foreign import javascript unsafe "$1[\"facingMode\"]"
-        js_getFacingMode :: AllVideoCapabilities -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities.facingMode Mozilla AllVideoCapabilities.facingMode documentation> 
-getFacingMode ::
-              (MonadIO m, FromJSString result) =>
-                AllVideoCapabilities -> m [result]
-getFacingMode self
-  = liftIO ((js_getFacingMode (self)) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AnalyserNode.hs b/src/GHCJS/DOM/JSFFI/Generated/AnalyserNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AnalyserNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AnalyserNode.hs
@@ -19,7 +19,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +28,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -35,7 +36,7 @@
  
 foreign import javascript unsafe
         "$1[\"getFloatFrequencyData\"]($2)" js_getFloatFrequencyData ::
-        AnalyserNode -> Nullable Float32Array -> IO ()
+        AnalyserNode -> Optional Float32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode.getFloatFrequencyData Mozilla AnalyserNode.getFloatFrequencyData documentation> 
 getFloatFrequencyData ::
@@ -43,12 +44,12 @@
                         AnalyserNode -> Maybe array -> m ()
 getFloatFrequencyData self array
   = liftIO
-      (js_getFloatFrequencyData (self)
-         (maybeToNullable (fmap toFloat32Array array)))
+      (js_getFloatFrequencyData self
+         (maybeToOptional (fmap toFloat32Array array)))
  
 foreign import javascript unsafe "$1[\"getByteFrequencyData\"]($2)"
         js_getByteFrequencyData ::
-        AnalyserNode -> Nullable Uint8Array -> IO ()
+        AnalyserNode -> Optional Uint8Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode.getByteFrequencyData Mozilla AnalyserNode.getByteFrequencyData documentation> 
 getByteFrequencyData ::
@@ -56,12 +57,12 @@
                        AnalyserNode -> Maybe array -> m ()
 getByteFrequencyData self array
   = liftIO
-      (js_getByteFrequencyData (self)
-         (maybeToNullable (fmap toUint8Array array)))
+      (js_getByteFrequencyData self
+         (maybeToOptional (fmap toUint8Array array)))
  
 foreign import javascript unsafe
         "$1[\"getByteTimeDomainData\"]($2)" js_getByteTimeDomainData ::
-        AnalyserNode -> Nullable Uint8Array -> IO ()
+        AnalyserNode -> Optional Uint8Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode.getByteTimeDomainData Mozilla AnalyserNode.getByteTimeDomainData documentation> 
 getByteTimeDomainData ::
@@ -69,57 +70,57 @@
                         AnalyserNode -> Maybe array -> m ()
 getByteTimeDomainData self array
   = liftIO
-      (js_getByteTimeDomainData (self)
-         (maybeToNullable (fmap toUint8Array array)))
+      (js_getByteTimeDomainData self
+         (maybeToOptional (fmap toUint8Array array)))
  
 foreign import javascript unsafe "$1[\"fftSize\"] = $2;"
         js_setFftSize :: AnalyserNode -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode.fftSize Mozilla AnalyserNode.fftSize documentation> 
 setFftSize :: (MonadIO m) => AnalyserNode -> Word -> m ()
-setFftSize self val = liftIO (js_setFftSize (self) val)
+setFftSize self val = liftIO (js_setFftSize self val)
  
 foreign import javascript unsafe "$1[\"fftSize\"]" js_getFftSize ::
         AnalyserNode -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode.fftSize Mozilla AnalyserNode.fftSize documentation> 
 getFftSize :: (MonadIO m) => AnalyserNode -> m Word
-getFftSize self = liftIO (js_getFftSize (self))
+getFftSize self = liftIO (js_getFftSize self)
  
 foreign import javascript unsafe "$1[\"frequencyBinCount\"]"
         js_getFrequencyBinCount :: AnalyserNode -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode.frequencyBinCount Mozilla AnalyserNode.frequencyBinCount documentation> 
 getFrequencyBinCount :: (MonadIO m) => AnalyserNode -> m Word
-getFrequencyBinCount self = liftIO (js_getFrequencyBinCount (self))
+getFrequencyBinCount self = liftIO (js_getFrequencyBinCount self)
  
 foreign import javascript unsafe "$1[\"minDecibels\"] = $2;"
         js_setMinDecibels :: AnalyserNode -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode.minDecibels Mozilla AnalyserNode.minDecibels documentation> 
 setMinDecibels :: (MonadIO m) => AnalyserNode -> Double -> m ()
-setMinDecibels self val = liftIO (js_setMinDecibels (self) val)
+setMinDecibels self val = liftIO (js_setMinDecibels self val)
  
 foreign import javascript unsafe "$1[\"minDecibels\"]"
         js_getMinDecibels :: AnalyserNode -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode.minDecibels Mozilla AnalyserNode.minDecibels documentation> 
 getMinDecibels :: (MonadIO m) => AnalyserNode -> m Double
-getMinDecibels self = liftIO (js_getMinDecibels (self))
+getMinDecibels self = liftIO (js_getMinDecibels self)
  
 foreign import javascript unsafe "$1[\"maxDecibels\"] = $2;"
         js_setMaxDecibels :: AnalyserNode -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode.maxDecibels Mozilla AnalyserNode.maxDecibels documentation> 
 setMaxDecibels :: (MonadIO m) => AnalyserNode -> Double -> m ()
-setMaxDecibels self val = liftIO (js_setMaxDecibels (self) val)
+setMaxDecibels self val = liftIO (js_setMaxDecibels self val)
  
 foreign import javascript unsafe "$1[\"maxDecibels\"]"
         js_getMaxDecibels :: AnalyserNode -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode.maxDecibels Mozilla AnalyserNode.maxDecibels documentation> 
 getMaxDecibels :: (MonadIO m) => AnalyserNode -> m Double
-getMaxDecibels self = liftIO (js_getMaxDecibels (self))
+getMaxDecibels self = liftIO (js_getMaxDecibels self)
  
 foreign import javascript unsafe
         "$1[\"smoothingTimeConstant\"] = $2;" js_setSmoothingTimeConstant
@@ -129,7 +130,7 @@
 setSmoothingTimeConstant ::
                          (MonadIO m) => AnalyserNode -> Double -> m ()
 setSmoothingTimeConstant self val
-  = liftIO (js_setSmoothingTimeConstant (self) val)
+  = liftIO (js_setSmoothingTimeConstant self val)
  
 foreign import javascript unsafe "$1[\"smoothingTimeConstant\"]"
         js_getSmoothingTimeConstant :: AnalyserNode -> IO Double
@@ -137,4 +138,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode.smoothingTimeConstant Mozilla AnalyserNode.smoothingTimeConstant documentation> 
 getSmoothingTimeConstant :: (MonadIO m) => AnalyserNode -> m Double
 getSmoothingTimeConstant self
-  = liftIO (js_getSmoothingTimeConstant (self))
+  = liftIO (js_getSmoothingTimeConstant self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Animatable.hs b/src/GHCJS/DOM/JSFFI/Generated/Animatable.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/Animatable.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.Animatable
+       (js_getAnimations, getAnimations, getAnimations_, Animatable(..),
+        gTypeAnimatable, IsAnimatable, toAnimatable)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"getAnimations\"]()"
+        js_getAnimations :: Animatable -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Animatable.getAnimations Mozilla Animatable.getAnimations documentation> 
+getAnimations ::
+              (MonadIO m, IsAnimatable self) => self -> m [Animation]
+getAnimations self
+  = liftIO
+      ((js_getAnimations (toAnimatable self)) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Animatable.getAnimations Mozilla Animatable.getAnimations documentation> 
+getAnimations_ :: (MonadIO m, IsAnimatable self) => self -> m ()
+getAnimations_ self
+  = liftIO (void (js_getAnimations (toAnimatable self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Animation.hs b/src/GHCJS/DOM/JSFFI/Generated/Animation.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/Animation.hs
@@ -0,0 +1,87 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.Animation
+       (js_newAnimation, newAnimation, js_getEffect, getEffect,
+        getEffectUnsafe, getEffectUnchecked, js_getTimeline, getTimeline,
+        getTimelineUnsafe, getTimelineUnchecked, Animation(..),
+        gTypeAnimation)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"Animation\"]($1, $2)" js_newAnimation ::
+        Optional AnimationEffect ->
+          Optional AnimationTimeline -> IO Animation
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Animation Mozilla Animation documentation> 
+newAnimation ::
+             (MonadIO m, IsAnimationEffect effect,
+              IsAnimationTimeline timeline) =>
+               Maybe effect -> Maybe timeline -> m Animation
+newAnimation effect timeline
+  = liftIO
+      (js_newAnimation (maybeToOptional (fmap toAnimationEffect effect))
+         (maybeToOptional (fmap toAnimationTimeline timeline)))
+ 
+foreign import javascript unsafe "$1[\"effect\"]" js_getEffect ::
+        Animation -> IO (Nullable AnimationEffect)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Animation.effect Mozilla Animation.effect documentation> 
+getEffect :: (MonadIO m) => Animation -> m (Maybe AnimationEffect)
+getEffect self = liftIO (nullableToMaybe <$> (js_getEffect self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Animation.effect Mozilla Animation.effect documentation> 
+getEffectUnsafe ::
+                (MonadIO m, HasCallStack) => Animation -> m AnimationEffect
+getEffectUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getEffect self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Animation.effect Mozilla Animation.effect documentation> 
+getEffectUnchecked :: (MonadIO m) => Animation -> m AnimationEffect
+getEffectUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getEffect self))
+ 
+foreign import javascript unsafe "$1[\"timeline\"]" js_getTimeline
+        :: Animation -> IO (Nullable AnimationTimeline)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Animation.timeline Mozilla Animation.timeline documentation> 
+getTimeline ::
+            (MonadIO m) => Animation -> m (Maybe AnimationTimeline)
+getTimeline self
+  = liftIO (nullableToMaybe <$> (js_getTimeline self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Animation.timeline Mozilla Animation.timeline documentation> 
+getTimelineUnsafe ::
+                  (MonadIO m, HasCallStack) => Animation -> m AnimationTimeline
+getTimelineUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getTimeline self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Animation.timeline Mozilla Animation.timeline documentation> 
+getTimelineUnchecked ::
+                     (MonadIO m) => Animation -> m AnimationTimeline
+getTimelineUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getTimeline self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AnimationEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/AnimationEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AnimationEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AnimationEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.AnimationEvent
-       (js_getAnimationName, getAnimationName, js_getElapsedTime,
-        getElapsedTime, AnimationEvent(..), gTypeAnimationEvent)
+       (js_newAnimationEvent, newAnimationEvent, js_getAnimationName,
+        getAnimationName, js_getElapsedTime, getElapsedTime,
+        AnimationEvent(..), gTypeAnimationEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,11 +21,25 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"AnimationEvent\"]($1,\n$2)" js_newAnimationEvent ::
+        JSString -> Optional AnimationEventInit -> IO AnimationEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent Mozilla AnimationEvent documentation> 
+newAnimationEvent ::
+                  (MonadIO m, ToJSString type') =>
+                    type' -> Maybe AnimationEventInit -> m AnimationEvent
+newAnimationEvent type' animationEventInitDict
+  = liftIO
+      (js_newAnimationEvent (toJSString type')
+         (maybeToOptional animationEventInitDict))
+ 
 foreign import javascript unsafe "$1[\"animationName\"]"
         js_getAnimationName :: AnimationEvent -> IO JSString
 
@@ -32,11 +47,11 @@
 getAnimationName ::
                  (MonadIO m, FromJSString result) => AnimationEvent -> m result
 getAnimationName self
-  = liftIO (fromJSString <$> (js_getAnimationName (self)))
+  = liftIO (fromJSString <$> (js_getAnimationName self))
  
 foreign import javascript unsafe "$1[\"elapsedTime\"]"
         js_getElapsedTime :: AnimationEvent -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent.elapsedTime Mozilla AnimationEvent.elapsedTime documentation> 
 getElapsedTime :: (MonadIO m) => AnimationEvent -> m Double
-getElapsedTime self = liftIO (js_getElapsedTime (self))
+getElapsedTime self = liftIO (js_getElapsedTime self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ApplePayPaymentAuthorizedEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/ApplePayPaymentAuthorizedEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ApplePayPaymentAuthorizedEvent.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ApplePayPaymentAuthorizedEvent
+       (js_getPayment, getPayment, ApplePayPaymentAuthorizedEvent(..),
+        gTypeApplePayPaymentAuthorizedEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"payment\"]" js_getPayment ::
+        ApplePayPaymentAuthorizedEvent -> IO ApplePayPayment
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayPaymentAuthorizedEvent.payment Mozilla ApplePayPaymentAuthorizedEvent.payment documentation> 
+getPayment ::
+           (MonadIO m) => ApplePayPaymentAuthorizedEvent -> m ApplePayPayment
+getPayment self = liftIO (js_getPayment self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ApplePayPaymentMethodSelectedEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/ApplePayPaymentMethodSelectedEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ApplePayPaymentMethodSelectedEvent.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ApplePayPaymentMethodSelectedEvent
+       (js_getPaymentMethod, getPaymentMethod,
+        ApplePayPaymentMethodSelectedEvent(..),
+        gTypeApplePayPaymentMethodSelectedEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"paymentMethod\"]"
+        js_getPaymentMethod ::
+        ApplePayPaymentMethodSelectedEvent -> IO ApplePayPaymentMethod
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayPaymentMethodSelectedEvent.paymentMethod Mozilla ApplePayPaymentMethodSelectedEvent.paymentMethod documentation> 
+getPaymentMethod ::
+                 (MonadIO m) =>
+                   ApplePayPaymentMethodSelectedEvent -> m ApplePayPaymentMethod
+getPaymentMethod self = liftIO (js_getPaymentMethod self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ApplePaySession.hs b/src/GHCJS/DOM/JSFFI/Generated/ApplePaySession.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ApplePaySession.hs
@@ -0,0 +1,257 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ApplePaySession
+       (js_newApplePaySession, newApplePaySession, js_supportsVersion,
+        supportsVersion, supportsVersion_, js_canMakePayments,
+        canMakePayments, canMakePayments_,
+        js_canMakePaymentsWithActiveCard, canMakePaymentsWithActiveCard,
+        canMakePaymentsWithActiveCard_, js_openPaymentSetup,
+        openPaymentSetup, openPaymentSetup_, js_begin, begin, js_abort,
+        abort, js_completeMerchantValidation, completeMerchantValidation,
+        js_completeShippingMethodSelection,
+        completeShippingMethodSelection,
+        js_completeShippingContactSelection,
+        completeShippingContactSelection,
+        js_completePaymentMethodSelection, completePaymentMethodSelection,
+        js_completePayment, completePayment, pattern STATUS_SUCCESS,
+        pattern STATUS_FAILURE,
+        pattern STATUS_INVALID_BILLING_POSTAL_ADDRESS,
+        pattern STATUS_INVALID_SHIPPING_POSTAL_ADDRESS,
+        pattern STATUS_INVALID_SHIPPING_CONTACT,
+        pattern STATUS_PIN_REQUIRED, pattern STATUS_PIN_INCORRECT,
+        pattern STATUS_PIN_LOCKOUT, validatemerchant,
+        paymentmethodselected, paymentauthorized, shippingmethodselected,
+        shippingcontactselected, cancel, ApplePaySession(..),
+        gTypeApplePaySession)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"ApplePaySession\"]($1,\n$2)" js_newApplePaySession ::
+        Word -> ApplePayPaymentRequest -> IO ApplePaySession
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession Mozilla ApplePaySession documentation> 
+newApplePaySession ::
+                   (MonadIO m) => Word -> ApplePayPaymentRequest -> m ApplePaySession
+newApplePaySession version paymentRequest
+  = liftIO (js_newApplePaySession version paymentRequest)
+ 
+foreign import javascript unsafe
+        "($1[\"supportsVersion\"]($2) ? 1 : 0)" js_supportsVersion ::
+        ApplePaySession -> Word -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.supportsVersion Mozilla ApplePaySession.supportsVersion documentation> 
+supportsVersion :: (MonadIO m) => ApplePaySession -> Word -> m Bool
+supportsVersion self version
+  = liftIO (js_supportsVersion self version)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.supportsVersion Mozilla ApplePaySession.supportsVersion documentation> 
+supportsVersion_ :: (MonadIO m) => ApplePaySession -> Word -> m ()
+supportsVersion_ self version
+  = liftIO (void (js_supportsVersion self version))
+ 
+foreign import javascript unsafe
+        "($1[\"canMakePayments\"]() ? 1 : 0)" js_canMakePayments ::
+        ApplePaySession -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.canMakePayments Mozilla ApplePaySession.canMakePayments documentation> 
+canMakePayments :: (MonadIO m) => ApplePaySession -> m Bool
+canMakePayments self = liftIO (js_canMakePayments self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.canMakePayments Mozilla ApplePaySession.canMakePayments documentation> 
+canMakePayments_ :: (MonadIO m) => ApplePaySession -> m ()
+canMakePayments_ self = liftIO (void (js_canMakePayments self))
+ 
+foreign import javascript interruptible
+        "$1[\"canMakePaymentsWithActiveCard\"]($2).\nthen($c);"
+        js_canMakePaymentsWithActiveCard ::
+        ApplePaySession -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.canMakePaymentsWithActiveCard Mozilla ApplePaySession.canMakePaymentsWithActiveCard documentation> 
+canMakePaymentsWithActiveCard ::
+                              (MonadIO m, ToJSString merchantIdentifier) =>
+                                ApplePaySession -> merchantIdentifier -> m Bool
+canMakePaymentsWithActiveCard self merchantIdentifier
+  = liftIO
+      (js_canMakePaymentsWithActiveCard self
+         (toJSString merchantIdentifier))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.canMakePaymentsWithActiveCard Mozilla ApplePaySession.canMakePaymentsWithActiveCard documentation> 
+canMakePaymentsWithActiveCard_ ::
+                               (MonadIO m, ToJSString merchantIdentifier) =>
+                                 ApplePaySession -> merchantIdentifier -> m ()
+canMakePaymentsWithActiveCard_ self merchantIdentifier
+  = liftIO
+      (void
+         (js_canMakePaymentsWithActiveCard self
+            (toJSString merchantIdentifier)))
+ 
+foreign import javascript interruptible
+        "$1[\"openPaymentSetup\"]($2).\nthen($c);" js_openPaymentSetup ::
+        ApplePaySession -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.openPaymentSetup Mozilla ApplePaySession.openPaymentSetup documentation> 
+openPaymentSetup ::
+                 (MonadIO m, ToJSString merchantIdentifier) =>
+                   ApplePaySession -> merchantIdentifier -> m Bool
+openPaymentSetup self merchantIdentifier
+  = liftIO (js_openPaymentSetup self (toJSString merchantIdentifier))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.openPaymentSetup Mozilla ApplePaySession.openPaymentSetup documentation> 
+openPaymentSetup_ ::
+                  (MonadIO m, ToJSString merchantIdentifier) =>
+                    ApplePaySession -> merchantIdentifier -> m ()
+openPaymentSetup_ self merchantIdentifier
+  = liftIO
+      (void (js_openPaymentSetup self (toJSString merchantIdentifier)))
+ 
+foreign import javascript unsafe "$1[\"begin\"]()" js_begin ::
+        ApplePaySession -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.begin Mozilla ApplePaySession.begin documentation> 
+begin :: (MonadIO m) => ApplePaySession -> m ()
+begin self = liftIO (js_begin self)
+ 
+foreign import javascript unsafe "$1[\"abort\"]()" js_abort ::
+        ApplePaySession -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.abort Mozilla ApplePaySession.abort documentation> 
+abort :: (MonadIO m) => ApplePaySession -> m ()
+abort self = liftIO (js_abort self)
+ 
+foreign import javascript unsafe
+        "$1[\"completeMerchantValidation\"]($2)"
+        js_completeMerchantValidation :: ApplePaySession -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.completeMerchantValidation Mozilla ApplePaySession.completeMerchantValidation documentation> 
+completeMerchantValidation ::
+                           (MonadIO m, ToJSVal merchantSession) =>
+                             ApplePaySession -> merchantSession -> m ()
+completeMerchantValidation self merchantSession
+  = liftIO
+      (toJSVal merchantSession >>=
+         \ merchantSession' ->
+           js_completeMerchantValidation self merchantSession')
+ 
+foreign import javascript unsafe
+        "$1[\"completeShippingMethodSelection\"]($2,\n$3, $4)"
+        js_completeShippingMethodSelection ::
+        ApplePaySession -> Word -> ApplePayLineItem -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.completeShippingMethodSelection Mozilla ApplePaySession.completeShippingMethodSelection documentation> 
+completeShippingMethodSelection ::
+                                (MonadIO m) =>
+                                  ApplePaySession ->
+                                    Word -> ApplePayLineItem -> [ApplePayLineItem] -> m ()
+completeShippingMethodSelection self status newTotal newLineItems
+  = liftIO
+      (toJSVal newLineItems >>=
+         \ newLineItems' ->
+           js_completeShippingMethodSelection self status newTotal
+             newLineItems')
+ 
+foreign import javascript unsafe
+        "$1[\"completeShippingContactSelection\"]($2,\n$3, $4, $5)"
+        js_completeShippingContactSelection ::
+        ApplePaySession ->
+          Word -> JSVal -> ApplePayLineItem -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.completeShippingContactSelection Mozilla ApplePaySession.completeShippingContactSelection documentation> 
+completeShippingContactSelection ::
+                                 (MonadIO m) =>
+                                   ApplePaySession ->
+                                     Word ->
+                                       [ApplePayShippingMethod] ->
+                                         ApplePayLineItem -> [ApplePayLineItem] -> m ()
+completeShippingContactSelection self status newShippingMethods
+  newTotal newLineItems
+  = liftIO
+      (toJSVal newLineItems >>=
+         \ newLineItems' ->
+           toJSVal newShippingMethods >>=
+             \ newShippingMethods' ->
+               js_completeShippingContactSelection self status newShippingMethods'
+             newTotal
+             newLineItems')
+ 
+foreign import javascript unsafe
+        "$1[\"completePaymentMethodSelection\"]($2,\n$3)"
+        js_completePaymentMethodSelection ::
+        ApplePaySession -> ApplePayLineItem -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.completePaymentMethodSelection Mozilla ApplePaySession.completePaymentMethodSelection documentation> 
+completePaymentMethodSelection ::
+                               (MonadIO m) =>
+                                 ApplePaySession -> ApplePayLineItem -> [ApplePayLineItem] -> m ()
+completePaymentMethodSelection self newTotal newLineItems
+  = liftIO
+      (toJSVal newLineItems >>=
+         \ newLineItems' ->
+           js_completePaymentMethodSelection self newTotal newLineItems')
+ 
+foreign import javascript unsafe "$1[\"completePayment\"]($2)"
+        js_completePayment :: ApplePaySession -> Word -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.completePayment Mozilla ApplePaySession.completePayment documentation> 
+completePayment :: (MonadIO m) => ApplePaySession -> Word -> m ()
+completePayment self status
+  = liftIO (js_completePayment self status)
+pattern STATUS_SUCCESS = 0
+pattern STATUS_FAILURE = 1
+pattern STATUS_INVALID_BILLING_POSTAL_ADDRESS = 2
+pattern STATUS_INVALID_SHIPPING_POSTAL_ADDRESS = 3
+pattern STATUS_INVALID_SHIPPING_CONTACT = 4
+pattern STATUS_PIN_REQUIRED = 5
+pattern STATUS_PIN_INCORRECT = 6
+pattern STATUS_PIN_LOCKOUT = 7
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.onvalidatemerchant Mozilla ApplePaySession.onvalidatemerchant documentation> 
+validatemerchant :: EventName ApplePaySession onvalidatemerchant
+validatemerchant = unsafeEventName (toJSString "validatemerchant")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.onpaymentmethodselected Mozilla ApplePaySession.onpaymentmethodselected documentation> 
+paymentmethodselected ::
+                        EventName ApplePaySession onpaymentmethodselected
+paymentmethodselected
+  = unsafeEventName (toJSString "paymentmethodselected")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.onpaymentauthorized Mozilla ApplePaySession.onpaymentauthorized documentation> 
+paymentauthorized :: EventName ApplePaySession onpaymentauthorized
+paymentauthorized
+  = unsafeEventName (toJSString "paymentauthorized")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.onshippingmethodselected Mozilla ApplePaySession.onshippingmethodselected documentation> 
+shippingmethodselected ::
+                         EventName ApplePaySession onshippingmethodselected
+shippingmethodselected
+  = unsafeEventName (toJSString "shippingmethodselected")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.onshippingcontactselected Mozilla ApplePaySession.onshippingcontactselected documentation> 
+shippingcontactselected ::
+                          EventName ApplePaySession onshippingcontactselected
+shippingcontactselected
+  = unsafeEventName (toJSString "shippingcontactselected")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession.oncancel Mozilla ApplePaySession.oncancel documentation> 
+cancel :: EventName ApplePaySession oncancel
+cancel = unsafeEventName (toJSString "cancel")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ApplePayShippingContactSelectedEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/ApplePayShippingContactSelectedEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ApplePayShippingContactSelectedEvent.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ApplePayShippingContactSelectedEvent
+       (js_getShippingContact, getShippingContact,
+        ApplePayShippingContactSelectedEvent(..),
+        gTypeApplePayShippingContactSelectedEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"shippingContact\"]"
+        js_getShippingContact ::
+        ApplePayShippingContactSelectedEvent -> IO ApplePayPaymentContact
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayShippingContactSelectedEvent.shippingContact Mozilla ApplePayShippingContactSelectedEvent.shippingContact documentation> 
+getShippingContact ::
+                   (MonadIO m) =>
+                     ApplePayShippingContactSelectedEvent -> m ApplePayPaymentContact
+getShippingContact self = liftIO (js_getShippingContact self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ApplePayShippingMethodSelectedEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/ApplePayShippingMethodSelectedEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ApplePayShippingMethodSelectedEvent.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ApplePayShippingMethodSelectedEvent
+       (js_getShippingMethod, getShippingMethod,
+        ApplePayShippingMethodSelectedEvent(..),
+        gTypeApplePayShippingMethodSelectedEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"shippingMethod\"]"
+        js_getShippingMethod ::
+        ApplePayShippingMethodSelectedEvent -> IO ApplePayShippingMethod
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayShippingMethodSelectedEvent.shippingMethod Mozilla ApplePayShippingMethodSelectedEvent.shippingMethod documentation> 
+getShippingMethod ::
+                  (MonadIO m) =>
+                    ApplePayShippingMethodSelectedEvent -> m ApplePayShippingMethod
+getShippingMethod self = liftIO (js_getShippingMethod self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ApplePayValidateMerchantEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/ApplePayValidateMerchantEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ApplePayValidateMerchantEvent.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ApplePayValidateMerchantEvent
+       (js_getValidationURL, getValidationURL,
+        ApplePayValidateMerchantEvent(..),
+        gTypeApplePayValidateMerchantEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"validationURL\"]"
+        js_getValidationURL :: ApplePayValidateMerchantEvent -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayValidateMerchantEvent.validationURL Mozilla ApplePayValidateMerchantEvent.validationURL documentation> 
+getValidationURL ::
+                 (MonadIO m, FromJSString result) =>
+                   ApplePayValidateMerchantEvent -> m result
+getValidationURL self
+  = liftIO (fromJSString <$> (js_getValidationURL self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ApplicationCache.hs b/src/GHCJS/DOM/JSFFI/Generated/ApplicationCache.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ApplicationCache.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ApplicationCache.hs
@@ -15,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,21 +35,21 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplicationCache.update Mozilla ApplicationCache.update documentation> 
 update :: (MonadIO m) => ApplicationCache -> m ()
-update self = liftIO (js_update (self))
+update self = liftIO (js_update self)
  
 foreign import javascript unsafe "$1[\"swapCache\"]()" js_swapCache
         :: ApplicationCache -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplicationCache.swapCache Mozilla ApplicationCache.swapCache documentation> 
 swapCache :: (MonadIO m) => ApplicationCache -> m ()
-swapCache self = liftIO (js_swapCache (self))
+swapCache self = liftIO (js_swapCache self)
  
 foreign import javascript unsafe "$1[\"abort\"]()" js_abort ::
         ApplicationCache -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplicationCache.abort Mozilla ApplicationCache.abort documentation> 
 abort :: (MonadIO m) => ApplicationCache -> m ()
-abort self = liftIO (js_abort (self))
+abort self = liftIO (js_abort self)
 pattern UNCACHED = 0
 pattern IDLE = 1
 pattern CHECKING = 2
@@ -61,7 +62,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplicationCache.status Mozilla ApplicationCache.status documentation> 
 getStatus :: (MonadIO m) => ApplicationCache -> m Word
-getStatus self = liftIO (js_getStatus (self))
+getStatus self = liftIO (js_getStatus self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ApplicationCache.onchecking Mozilla ApplicationCache.onchecking documentation> 
 checking :: EventName ApplicationCache Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Attr.hs b/src/GHCJS/DOM/JSFFI/Generated/Attr.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Attr.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Attr.hs
@@ -6,15 +6,16 @@
 module GHCJS.DOM.JSFFI.Generated.Attr
        (js_getName, getName, getNameUnsafe, getNameUnchecked,
         js_getSpecified, getSpecified, js_setValue, setValue, js_getValue,
-        getValue, getValueUnsafe, getValueUnchecked, js_getOwnerElement,
-        getOwnerElement, getOwnerElementUnsafe, getOwnerElementUnchecked,
-        js_getIsId, getIsId, Attr(..), gTypeAttr)
+        getValue, js_getOwnerElement, getOwnerElement, js_getNamespaceURI,
+        getNamespaceURI, getNamespaceURIUnsafe, getNamespaceURIUnchecked,
+        js_getPrefix, getPrefix, getPrefixUnsafe, getPrefixUnchecked,
+        js_getLocalName, getLocalName, Attr(..), gTypeAttr)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,85 +36,101 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.name Mozilla Attr.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => Attr -> m (Maybe result)
-getName self = liftIO (fromMaybeJSString <$> (js_getName (self)))
+getName self = liftIO (fromMaybeJSString <$> (js_getName self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.name Mozilla Attr.name documentation> 
 getNameUnsafe ::
               (MonadIO m, HasCallStack, FromJSString result) => Attr -> m result
 getNameUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getName (self))) >>=
+      ((fromMaybeJSString <$> (js_getName self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.name Mozilla Attr.name documentation> 
 getNameUnchecked ::
                  (MonadIO m, FromJSString result) => Attr -> m result
 getNameUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getName (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getName self))
  
 foreign import javascript unsafe "($1[\"specified\"] ? 1 : 0)"
         js_getSpecified :: Attr -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.specified Mozilla Attr.specified documentation> 
 getSpecified :: (MonadIO m) => Attr -> m Bool
-getSpecified self = liftIO (js_getSpecified (self))
+getSpecified self = liftIO (js_getSpecified self)
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
-        :: Attr -> Nullable JSString -> IO ()
+        :: Attr -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.value Mozilla Attr.value documentation> 
-setValue ::
-         (MonadIO m, ToJSString val) => Attr -> Maybe val -> m ()
-setValue self val
-  = liftIO (js_setValue (self) (toMaybeJSString val))
+setValue :: (MonadIO m, ToJSString val) => Attr -> val -> m ()
+setValue self val = liftIO (js_setValue self (toJSString val))
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
-        Attr -> IO (Nullable JSString)
+        Attr -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.value Mozilla Attr.value documentation> 
-getValue ::
-         (MonadIO m, FromJSString result) => Attr -> m (Maybe result)
-getValue self = liftIO (fromMaybeJSString <$> (js_getValue (self)))
+getValue :: (MonadIO m, FromJSString result) => Attr -> m result
+getValue self = liftIO (fromJSString <$> (js_getValue self))
+ 
+foreign import javascript unsafe "$1[\"ownerElement\"]"
+        js_getOwnerElement :: Attr -> IO Element
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.value Mozilla Attr.value documentation> 
-getValueUnsafe ::
-               (MonadIO m, HasCallStack, FromJSString result) => Attr -> m result
-getValueUnsafe self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.ownerElement Mozilla Attr.ownerElement documentation> 
+getOwnerElement :: (MonadIO m) => Attr -> m Element
+getOwnerElement self = liftIO (js_getOwnerElement self)
+ 
+foreign import javascript unsafe "$1[\"namespaceURI\"]"
+        js_getNamespaceURI :: Attr -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.namespaceURI Mozilla Attr.namespaceURI documentation> 
+getNamespaceURI ::
+                (MonadIO m, FromJSString result) => Attr -> m (Maybe result)
+getNamespaceURI self
+  = liftIO (fromMaybeJSString <$> (js_getNamespaceURI self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.namespaceURI Mozilla Attr.namespaceURI documentation> 
+getNamespaceURIUnsafe ::
+                      (MonadIO m, HasCallStack, FromJSString result) => Attr -> m result
+getNamespaceURIUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getValue (self))) >>=
+      ((fromMaybeJSString <$> (js_getNamespaceURI self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.value Mozilla Attr.value documentation> 
-getValueUnchecked ::
-                  (MonadIO m, FromJSString result) => Attr -> m result
-getValueUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getValue (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.namespaceURI Mozilla Attr.namespaceURI documentation> 
+getNamespaceURIUnchecked ::
+                         (MonadIO m, FromJSString result) => Attr -> m result
+getNamespaceURIUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_getNamespaceURI self))
  
-foreign import javascript unsafe "$1[\"ownerElement\"]"
-        js_getOwnerElement :: Attr -> IO (Nullable Element)
+foreign import javascript unsafe "$1[\"prefix\"]" js_getPrefix ::
+        Attr -> IO (Nullable JSString)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.ownerElement Mozilla Attr.ownerElement documentation> 
-getOwnerElement :: (MonadIO m) => Attr -> m (Maybe Element)
-getOwnerElement self
-  = liftIO (nullableToMaybe <$> (js_getOwnerElement (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.prefix Mozilla Attr.prefix documentation> 
+getPrefix ::
+          (MonadIO m, FromJSString result) => Attr -> m (Maybe result)
+getPrefix self = liftIO (fromMaybeJSString <$> (js_getPrefix self))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.ownerElement Mozilla Attr.ownerElement documentation> 
-getOwnerElementUnsafe ::
-                      (MonadIO m, HasCallStack) => Attr -> m Element
-getOwnerElementUnsafe self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.prefix Mozilla Attr.prefix documentation> 
+getPrefixUnsafe ::
+                (MonadIO m, HasCallStack, FromJSString result) => Attr -> m result
+getPrefixUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getOwnerElement (self))) >>=
+      ((fromMaybeJSString <$> (js_getPrefix self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.ownerElement Mozilla Attr.ownerElement documentation> 
-getOwnerElementUnchecked :: (MonadIO m) => Attr -> m Element
-getOwnerElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getOwnerElement (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.prefix Mozilla Attr.prefix documentation> 
+getPrefixUnchecked ::
+                   (MonadIO m, FromJSString result) => Attr -> m result
+getPrefixUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getPrefix self))
  
-foreign import javascript unsafe "($1[\"isId\"] ? 1 : 0)"
-        js_getIsId :: Attr -> IO Bool
+foreign import javascript unsafe "$1[\"localName\"]"
+        js_getLocalName :: Attr -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.isId Mozilla Attr.isId documentation> 
-getIsId :: (MonadIO m) => Attr -> m Bool
-getIsId self = liftIO (js_getIsId (self))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Attr.localName Mozilla Attr.localName documentation> 
+getLocalName ::
+             (MonadIO m, FromJSString result) => Attr -> m result
+getLocalName self
+  = liftIO (fromJSString <$> (js_getLocalName self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioBuffer.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioBuffer.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioBuffer.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AudioBuffer.hs
@@ -4,8 +4,7 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.AudioBuffer
-       (js_getChannelData, getChannelData, getChannelData_,
-        getChannelDataUnsafe, getChannelDataUnchecked, js_getLength,
+       (js_getChannelData, getChannelData, getChannelData_, js_getLength,
         getLength, js_getDuration, getDuration, js_getSampleRate,
         getSampleRate, js_setGain, setGain, js_getGain, getGain,
         js_getNumberOfChannels, getNumberOfChannels, AudioBuffer(..),
@@ -15,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,81 +23,64 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"getChannelData\"]($2)"
-        js_getChannelData ::
-        AudioBuffer -> Word -> IO (Nullable Float32Array)
+        js_getChannelData :: AudioBuffer -> Word -> IO Float32Array
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer.getChannelData Mozilla AudioBuffer.getChannelData documentation> 
 getChannelData ::
-               (MonadIO m) => AudioBuffer -> Word -> m (Maybe Float32Array)
+               (MonadIO m) => AudioBuffer -> Word -> m Float32Array
 getChannelData self channelIndex
-  = liftIO
-      (nullableToMaybe <$> (js_getChannelData (self) channelIndex))
+  = liftIO (js_getChannelData self channelIndex)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer.getChannelData Mozilla AudioBuffer.getChannelData documentation> 
 getChannelData_ :: (MonadIO m) => AudioBuffer -> Word -> m ()
 getChannelData_ self channelIndex
-  = liftIO (void (js_getChannelData (self) channelIndex))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer.getChannelData Mozilla AudioBuffer.getChannelData documentation> 
-getChannelDataUnsafe ::
-                     (MonadIO m, HasCallStack) => AudioBuffer -> Word -> m Float32Array
-getChannelDataUnsafe self channelIndex
-  = liftIO
-      ((nullableToMaybe <$> (js_getChannelData (self) channelIndex)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer.getChannelData Mozilla AudioBuffer.getChannelData documentation> 
-getChannelDataUnchecked ::
-                        (MonadIO m) => AudioBuffer -> Word -> m Float32Array
-getChannelDataUnchecked self channelIndex
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getChannelData (self) channelIndex))
+  = liftIO (void (js_getChannelData self channelIndex))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         AudioBuffer -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer.length Mozilla AudioBuffer.length documentation> 
 getLength :: (MonadIO m) => AudioBuffer -> m Int
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
  
 foreign import javascript unsafe "$1[\"duration\"]" js_getDuration
         :: AudioBuffer -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer.duration Mozilla AudioBuffer.duration documentation> 
 getDuration :: (MonadIO m) => AudioBuffer -> m Float
-getDuration self = liftIO (js_getDuration (self))
+getDuration self = liftIO (js_getDuration self)
  
 foreign import javascript unsafe "$1[\"sampleRate\"]"
         js_getSampleRate :: AudioBuffer -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer.sampleRate Mozilla AudioBuffer.sampleRate documentation> 
 getSampleRate :: (MonadIO m) => AudioBuffer -> m Float
-getSampleRate self = liftIO (js_getSampleRate (self))
+getSampleRate self = liftIO (js_getSampleRate self)
  
 foreign import javascript unsafe "$1[\"gain\"] = $2;" js_setGain ::
         AudioBuffer -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer.gain Mozilla AudioBuffer.gain documentation> 
 setGain :: (MonadIO m) => AudioBuffer -> Float -> m ()
-setGain self val = liftIO (js_setGain (self) val)
+setGain self val = liftIO (js_setGain self val)
  
 foreign import javascript unsafe "$1[\"gain\"]" js_getGain ::
         AudioBuffer -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer.gain Mozilla AudioBuffer.gain documentation> 
 getGain :: (MonadIO m) => AudioBuffer -> m Float
-getGain self = liftIO (js_getGain (self))
+getGain self = liftIO (js_getGain self)
  
 foreign import javascript unsafe "$1[\"numberOfChannels\"]"
         js_getNumberOfChannels :: AudioBuffer -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer.numberOfChannels Mozilla AudioBuffer.numberOfChannels documentation> 
 getNumberOfChannels :: (MonadIO m) => AudioBuffer -> m Word
-getNumberOfChannels self = liftIO (js_getNumberOfChannels (self))
+getNumberOfChannels self = liftIO (js_getNumberOfChannels self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioBufferCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioBufferCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioBufferCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AudioBufferCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -27,8 +28,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferCallback Mozilla AudioBufferCallback documentation> 
 newAudioBufferCallback ::
-                       (MonadIO m) =>
-                         (Maybe AudioBuffer -> IO ()) -> m AudioBufferCallback
+                       (MonadIO m) => (AudioBuffer -> IO ()) -> m AudioBufferCallback
 newAudioBufferCallback callback
   = liftIO
       (AudioBufferCallback <$>
@@ -39,8 +39,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferCallback Mozilla AudioBufferCallback documentation> 
 newAudioBufferCallbackSync ::
-                           (MonadIO m) =>
-                             (Maybe AudioBuffer -> IO ()) -> m AudioBufferCallback
+                           (MonadIO m) => (AudioBuffer -> IO ()) -> m AudioBufferCallback
 newAudioBufferCallbackSync callback
   = liftIO
       (AudioBufferCallback <$>
@@ -51,8 +50,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferCallback Mozilla AudioBufferCallback documentation> 
 newAudioBufferCallbackAsync ::
-                            (MonadIO m) =>
-                              (Maybe AudioBuffer -> IO ()) -> m AudioBufferCallback
+                            (MonadIO m) => (AudioBuffer -> IO ()) -> m AudioBufferCallback
 newAudioBufferCallbackAsync callback
   = liftIO
       (AudioBufferCallback <$>
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioBufferSourceNode.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioBufferSourceNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioBufferSourceNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AudioBufferSourceNode.hs
@@ -4,25 +4,22 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.AudioBufferSourceNode
-       (js_start, start, js_stop, stop, js_noteOn, noteOn, js_noteGrainOn,
-        noteGrainOn, js_noteOff, noteOff, pattern UNSCHEDULED_STATE,
+       (js_start, start, js_stop, stop, pattern UNSCHEDULED_STATE,
         pattern SCHEDULED_STATE, pattern PLAYING_STATE,
         pattern FINISHED_STATE, js_setBuffer, setBuffer, js_getBuffer,
         getBuffer, getBufferUnsafe, getBufferUnchecked,
         js_getPlaybackState, getPlaybackState, js_getGain, getGain,
-        getGainUnsafe, getGainUnchecked, js_getPlaybackRate,
-        getPlaybackRate, getPlaybackRateUnsafe, getPlaybackRateUnchecked,
-        js_setLoop, setLoop, js_getLoop, getLoop, js_setLoopStart,
-        setLoopStart, js_getLoopStart, getLoopStart, js_setLoopEnd,
-        setLoopEnd, js_getLoopEnd, getLoopEnd, js_setLooping, setLooping,
-        js_getLooping, getLooping, ended, AudioBufferSourceNode(..),
+        js_getPlaybackRate, getPlaybackRate, js_setLoop, setLoop,
+        js_getLoop, getLoop, js_setLoopStart, setLoopStart,
+        js_getLoopStart, getLoopStart, js_setLoopEnd, setLoopEnd,
+        js_getLoopEnd, getLoopEnd, ended, AudioBufferSourceNode(..),
         gTypeAudioBufferSourceNode)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -31,6 +28,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -38,46 +36,26 @@
  
 foreign import javascript unsafe "$1[\"start\"]($2, $3, $4)"
         js_start ::
-        AudioBufferSourceNode -> Double -> Double -> Double -> IO ()
+        AudioBufferSourceNode ->
+          Optional Double -> Optional Double -> Optional Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.start Mozilla AudioBufferSourceNode.start documentation> 
 start ::
       (MonadIO m) =>
-        AudioBufferSourceNode -> Double -> Double -> Double -> m ()
+        AudioBufferSourceNode ->
+          Maybe Double -> Maybe Double -> Maybe Double -> m ()
 start self when grainOffset grainDuration
-  = liftIO (js_start (self) when grainOffset grainDuration)
+  = liftIO
+      (js_start self (maybeToOptional when) (maybeToOptional grainOffset)
+         (maybeToOptional grainDuration))
  
 foreign import javascript unsafe "$1[\"stop\"]($2)" js_stop ::
-        AudioBufferSourceNode -> Double -> IO ()
+        AudioBufferSourceNode -> Optional Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.stop Mozilla AudioBufferSourceNode.stop documentation> 
-stop :: (MonadIO m) => AudioBufferSourceNode -> Double -> m ()
-stop self when = liftIO (js_stop (self) when)
- 
-foreign import javascript unsafe "$1[\"noteOn\"]($2)" js_noteOn ::
-        AudioBufferSourceNode -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.noteOn Mozilla AudioBufferSourceNode.noteOn documentation> 
-noteOn :: (MonadIO m) => AudioBufferSourceNode -> Double -> m ()
-noteOn self when = liftIO (js_noteOn (self) when)
- 
-foreign import javascript unsafe "$1[\"noteGrainOn\"]($2, $3, $4)"
-        js_noteGrainOn ::
-        AudioBufferSourceNode -> Double -> Double -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.noteGrainOn Mozilla AudioBufferSourceNode.noteGrainOn documentation> 
-noteGrainOn ::
-            (MonadIO m) =>
-              AudioBufferSourceNode -> Double -> Double -> Double -> m ()
-noteGrainOn self when grainOffset grainDuration
-  = liftIO (js_noteGrainOn (self) when grainOffset grainDuration)
- 
-foreign import javascript unsafe "$1[\"noteOff\"]($2)" js_noteOff
-        :: AudioBufferSourceNode -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.noteOff Mozilla AudioBufferSourceNode.noteOff documentation> 
-noteOff :: (MonadIO m) => AudioBufferSourceNode -> Double -> m ()
-noteOff self when = liftIO (js_noteOff (self) when)
+stop ::
+     (MonadIO m) => AudioBufferSourceNode -> Maybe Double -> m ()
+stop self when = liftIO (js_stop self (maybeToOptional when))
 pattern UNSCHEDULED_STATE = 0
 pattern SCHEDULED_STATE = 1
 pattern PLAYING_STATE = 2
@@ -85,13 +63,13 @@
  
 foreign import javascript unsafe "$1[\"buffer\"] = $2;"
         js_setBuffer ::
-        AudioBufferSourceNode -> Nullable AudioBuffer -> IO ()
+        AudioBufferSourceNode -> Optional AudioBuffer -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.buffer Mozilla AudioBufferSourceNode.buffer documentation> 
 setBuffer ::
           (MonadIO m) => AudioBufferSourceNode -> Maybe AudioBuffer -> m ()
 setBuffer self val
-  = liftIO (js_setBuffer (self) (maybeToNullable val))
+  = liftIO (js_setBuffer self (maybeToOptional val))
  
 foreign import javascript unsafe "$1[\"buffer\"]" js_getBuffer ::
         AudioBufferSourceNode -> IO (Nullable AudioBuffer)
@@ -99,89 +77,57 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.buffer Mozilla AudioBufferSourceNode.buffer documentation> 
 getBuffer ::
           (MonadIO m) => AudioBufferSourceNode -> m (Maybe AudioBuffer)
-getBuffer self = liftIO (nullableToMaybe <$> (js_getBuffer (self)))
+getBuffer self = liftIO (nullableToMaybe <$> (js_getBuffer self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.buffer Mozilla AudioBufferSourceNode.buffer documentation> 
 getBufferUnsafe ::
                 (MonadIO m, HasCallStack) => AudioBufferSourceNode -> m AudioBuffer
 getBufferUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getBuffer (self))) >>=
+      ((nullableToMaybe <$> (js_getBuffer self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.buffer Mozilla AudioBufferSourceNode.buffer documentation> 
 getBufferUnchecked ::
                    (MonadIO m) => AudioBufferSourceNode -> m AudioBuffer
 getBufferUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBuffer (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getBuffer self))
  
 foreign import javascript unsafe "$1[\"playbackState\"]"
         js_getPlaybackState :: AudioBufferSourceNode -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.playbackState Mozilla AudioBufferSourceNode.playbackState documentation> 
 getPlaybackState :: (MonadIO m) => AudioBufferSourceNode -> m Word
-getPlaybackState self = liftIO (js_getPlaybackState (self))
+getPlaybackState self = liftIO (js_getPlaybackState self)
  
 foreign import javascript unsafe "$1[\"gain\"]" js_getGain ::
-        AudioBufferSourceNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.gain Mozilla AudioBufferSourceNode.gain documentation> 
-getGain ::
-        (MonadIO m) => AudioBufferSourceNode -> m (Maybe AudioParam)
-getGain self = liftIO (nullableToMaybe <$> (js_getGain (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.gain Mozilla AudioBufferSourceNode.gain documentation> 
-getGainUnsafe ::
-              (MonadIO m, HasCallStack) => AudioBufferSourceNode -> m AudioParam
-getGainUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getGain (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        AudioBufferSourceNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.gain Mozilla AudioBufferSourceNode.gain documentation> 
-getGainUnchecked ::
-                 (MonadIO m) => AudioBufferSourceNode -> m AudioParam
-getGainUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getGain (self)))
+getGain :: (MonadIO m) => AudioBufferSourceNode -> m AudioParam
+getGain self = liftIO (js_getGain self)
  
 foreign import javascript unsafe "$1[\"playbackRate\"]"
-        js_getPlaybackRate ::
-        AudioBufferSourceNode -> IO (Nullable AudioParam)
+        js_getPlaybackRate :: AudioBufferSourceNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.playbackRate Mozilla AudioBufferSourceNode.playbackRate documentation> 
 getPlaybackRate ::
-                (MonadIO m) => AudioBufferSourceNode -> m (Maybe AudioParam)
-getPlaybackRate self
-  = liftIO (nullableToMaybe <$> (js_getPlaybackRate (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.playbackRate Mozilla AudioBufferSourceNode.playbackRate documentation> 
-getPlaybackRateUnsafe ::
-                      (MonadIO m, HasCallStack) => AudioBufferSourceNode -> m AudioParam
-getPlaybackRateUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPlaybackRate (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.playbackRate Mozilla AudioBufferSourceNode.playbackRate documentation> 
-getPlaybackRateUnchecked ::
-                         (MonadIO m) => AudioBufferSourceNode -> m AudioParam
-getPlaybackRateUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPlaybackRate (self)))
+                (MonadIO m) => AudioBufferSourceNode -> m AudioParam
+getPlaybackRate self = liftIO (js_getPlaybackRate self)
  
 foreign import javascript unsafe "$1[\"loop\"] = $2;" js_setLoop ::
         AudioBufferSourceNode -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.loop Mozilla AudioBufferSourceNode.loop documentation> 
 setLoop :: (MonadIO m) => AudioBufferSourceNode -> Bool -> m ()
-setLoop self val = liftIO (js_setLoop (self) val)
+setLoop self val = liftIO (js_setLoop self val)
  
 foreign import javascript unsafe "($1[\"loop\"] ? 1 : 0)"
         js_getLoop :: AudioBufferSourceNode -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.loop Mozilla AudioBufferSourceNode.loop documentation> 
 getLoop :: (MonadIO m) => AudioBufferSourceNode -> m Bool
-getLoop self = liftIO (js_getLoop (self))
+getLoop self = liftIO (js_getLoop self)
  
 foreign import javascript unsafe "$1[\"loopStart\"] = $2;"
         js_setLoopStart :: AudioBufferSourceNode -> Double -> IO ()
@@ -189,14 +135,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.loopStart Mozilla AudioBufferSourceNode.loopStart documentation> 
 setLoopStart ::
              (MonadIO m) => AudioBufferSourceNode -> Double -> m ()
-setLoopStart self val = liftIO (js_setLoopStart (self) val)
+setLoopStart self val = liftIO (js_setLoopStart self val)
  
 foreign import javascript unsafe "$1[\"loopStart\"]"
         js_getLoopStart :: AudioBufferSourceNode -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.loopStart Mozilla AudioBufferSourceNode.loopStart documentation> 
 getLoopStart :: (MonadIO m) => AudioBufferSourceNode -> m Double
-getLoopStart self = liftIO (js_getLoopStart (self))
+getLoopStart self = liftIO (js_getLoopStart self)
  
 foreign import javascript unsafe "$1[\"loopEnd\"] = $2;"
         js_setLoopEnd :: AudioBufferSourceNode -> Double -> IO ()
@@ -204,28 +150,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.loopEnd Mozilla AudioBufferSourceNode.loopEnd documentation> 
 setLoopEnd ::
            (MonadIO m) => AudioBufferSourceNode -> Double -> m ()
-setLoopEnd self val = liftIO (js_setLoopEnd (self) val)
+setLoopEnd self val = liftIO (js_setLoopEnd self val)
  
 foreign import javascript unsafe "$1[\"loopEnd\"]" js_getLoopEnd ::
         AudioBufferSourceNode -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.loopEnd Mozilla AudioBufferSourceNode.loopEnd documentation> 
 getLoopEnd :: (MonadIO m) => AudioBufferSourceNode -> m Double
-getLoopEnd self = liftIO (js_getLoopEnd (self))
- 
-foreign import javascript unsafe "$1[\"looping\"] = $2;"
-        js_setLooping :: AudioBufferSourceNode -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.looping Mozilla AudioBufferSourceNode.looping documentation> 
-setLooping :: (MonadIO m) => AudioBufferSourceNode -> Bool -> m ()
-setLooping self val = liftIO (js_setLooping (self) val)
- 
-foreign import javascript unsafe "($1[\"looping\"] ? 1 : 0)"
-        js_getLooping :: AudioBufferSourceNode -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.looping Mozilla AudioBufferSourceNode.looping documentation> 
-getLooping :: (MonadIO m) => AudioBufferSourceNode -> m Bool
-getLooping self = liftIO (js_getLooping (self))
+getLoopEnd self = liftIO (js_getLoopEnd self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode.onended Mozilla AudioBufferSourceNode.onended documentation> 
 ended :: EventName AudioBufferSourceNode Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioContext.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioContext.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioContext.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AudioContext.hs
@@ -4,67 +4,42 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.AudioContext
-       (js_newAudioContext, newAudioContext, js_createBuffer,
-        createBuffer, createBuffer_, createBufferUnsafe,
-        createBufferUnchecked, js_createBufferFromArrayBuffer,
+       (js_newAudioContext, newAudioContext, js_suspend, suspend,
+        js_resume, resume, js_close, close, js_createBuffer, createBuffer,
+        createBuffer_, js_createBufferFromArrayBuffer,
         createBufferFromArrayBuffer, createBufferFromArrayBuffer_,
-        createBufferFromArrayBufferUnsafe,
-        createBufferFromArrayBufferUnchecked, js_decodeAudioData,
-        decodeAudioData, js_createBufferSource, createBufferSource,
-        createBufferSource_, createBufferSourceUnsafe,
-        createBufferSourceUnchecked, js_createMediaElementSource,
-        createMediaElementSource, createMediaElementSource_,
-        createMediaElementSourceUnsafe, createMediaElementSourceUnchecked,
-        js_createMediaStreamSource, createMediaStreamSource,
-        createMediaStreamSource_, createMediaStreamSourceUnsafe,
-        createMediaStreamSourceUnchecked, js_createMediaStreamDestination,
-        createMediaStreamDestination, createMediaStreamDestination_,
-        createMediaStreamDestinationUnsafe,
-        createMediaStreamDestinationUnchecked, js_createGain, createGain,
-        createGain_, createGainUnsafe, createGainUnchecked, js_createDelay,
-        createDelay, createDelay_, createDelayUnsafe, createDelayUnchecked,
+        js_decodeAudioData, decodeAudioData, js_createBufferSource,
+        createBufferSource, createBufferSource_,
+        js_createMediaElementSource, createMediaElementSource,
+        createMediaElementSource_, js_createMediaStreamSource,
+        createMediaStreamSource, createMediaStreamSource_,
+        js_createMediaStreamDestination, createMediaStreamDestination,
+        createMediaStreamDestination_, js_createGain, createGain,
+        createGain_, js_createDelay, createDelay, createDelay_,
         js_createBiquadFilter, createBiquadFilter, createBiquadFilter_,
-        createBiquadFilterUnsafe, createBiquadFilterUnchecked,
         js_createWaveShaper, createWaveShaper, createWaveShaper_,
-        createWaveShaperUnsafe, createWaveShaperUnchecked, js_createPanner,
-        createPanner, createPanner_, createPannerUnsafe,
-        createPannerUnchecked, js_createConvolver, createConvolver,
-        createConvolver_, createConvolverUnsafe, createConvolverUnchecked,
-        js_createDynamicsCompressor, createDynamicsCompressor,
-        createDynamicsCompressor_, createDynamicsCompressorUnsafe,
-        createDynamicsCompressorUnchecked, js_createAnalyser,
-        createAnalyser, createAnalyser_, createAnalyserUnsafe,
-        createAnalyserUnchecked, js_createScriptProcessor,
-        createScriptProcessor, createScriptProcessor_,
-        createScriptProcessorUnsafe, createScriptProcessorUnchecked,
-        js_createOscillator, createOscillator, createOscillator_,
-        createOscillatorUnsafe, createOscillatorUnchecked,
-        js_createPeriodicWave, createPeriodicWave, createPeriodicWave_,
-        createPeriodicWaveUnsafe, createPeriodicWaveUnchecked,
-        js_createChannelSplitter, createChannelSplitter,
-        createChannelSplitter_, createChannelSplitterUnsafe,
-        createChannelSplitterUnchecked, js_createChannelMerger,
-        createChannelMerger, createChannelMerger_,
-        createChannelMergerUnsafe, createChannelMergerUnchecked,
-        js_startRendering, startRendering, js_createGainNode,
-        createGainNode, createGainNode_, createGainNodeUnsafe,
-        createGainNodeUnchecked, js_createDelayNode, createDelayNode,
-        createDelayNode_, createDelayNodeUnsafe, createDelayNodeUnchecked,
-        js_createJavaScriptNode, createJavaScriptNode,
-        createJavaScriptNode_, createJavaScriptNodeUnsafe,
-        createJavaScriptNodeUnchecked, js_getDestination, getDestination,
-        getDestinationUnsafe, getDestinationUnchecked, js_getCurrentTime,
-        getCurrentTime, js_getSampleRate, getSampleRate, js_getListener,
-        getListener, getListenerUnsafe, getListenerUnchecked,
-        js_getActiveSourceCount, getActiveSourceCount, complete,
-        AudioContext(..), gTypeAudioContext, IsAudioContext,
-        toAudioContext)
+        js_createPanner, createPanner, createPanner_, js_createConvolver,
+        createConvolver, createConvolver_, js_createDynamicsCompressor,
+        createDynamicsCompressor, createDynamicsCompressor_,
+        js_createAnalyser, createAnalyser, createAnalyser_,
+        js_createScriptProcessor, createScriptProcessor,
+        createScriptProcessor_, js_createOscillator, createOscillator,
+        createOscillator_, js_createPeriodicWave, createPeriodicWave,
+        createPeriodicWave_, js_createChannelSplitter,
+        createChannelSplitter, createChannelSplitter_,
+        js_createChannelMerger, createChannelMerger, createChannelMerger_,
+        js_startRendering, startRendering, js_getDestination,
+        getDestination, js_getCurrentTime, getCurrentTime,
+        js_getSampleRate, getSampleRate, js_getListener, getListener,
+        js_getState, getState, statechange, js_getActiveSourceCount,
+        getActiveSourceCount, complete, AudioContext(..),
+        gTypeAudioContext, IsAudioContext, toAudioContext)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -73,6 +48,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -86,20 +62,40 @@
 newAudioContext :: (MonadIO m) => m AudioContext
 newAudioContext = liftIO (js_newAudioContext)
  
+foreign import javascript interruptible
+        "$1[\"suspend\"]().then($c);" js_suspend :: AudioContext -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.suspend Mozilla AudioContext.suspend documentation> 
+suspend :: (MonadIO m, IsAudioContext self) => self -> m ()
+suspend self = liftIO (js_suspend (toAudioContext self))
+ 
+foreign import javascript interruptible
+        "$1[\"resume\"]().then($c);" js_resume :: AudioContext -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.resume Mozilla AudioContext.resume documentation> 
+resume :: (MonadIO m, IsAudioContext self) => self -> m ()
+resume self = liftIO (js_resume (toAudioContext self))
+ 
+foreign import javascript interruptible
+        "$1[\"close\"]().then($c);" js_close :: AudioContext -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.close Mozilla AudioContext.close documentation> 
+close :: (MonadIO m, IsAudioContext self) => self -> m ()
+close self = liftIO (js_close (toAudioContext self))
+ 
 foreign import javascript unsafe "$1[\"createBuffer\"]($2, $3, $4)"
         js_createBuffer ::
-        AudioContext -> Word -> Word -> Float -> IO (Nullable AudioBuffer)
+        AudioContext -> Word -> Word -> Float -> IO AudioBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBuffer Mozilla AudioContext.createBuffer documentation> 
 createBuffer ::
              (MonadIO m, IsAudioContext self) =>
-               self -> Word -> Word -> Float -> m (Maybe AudioBuffer)
+               self -> Word -> Word -> Float -> m AudioBuffer
 createBuffer self numberOfChannels numberOfFrames sampleRate
   = liftIO
-      (nullableToMaybe <$>
-         (js_createBuffer (toAudioContext self) numberOfChannels
-            numberOfFrames
-            sampleRate))
+      (js_createBuffer (toAudioContext self) numberOfChannels
+         numberOfFrames
+         sampleRate)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBuffer Mozilla AudioContext.createBuffer documentation> 
 createBuffer_ ::
@@ -111,249 +107,123 @@
          (js_createBuffer (toAudioContext self) numberOfChannels
             numberOfFrames
             sampleRate))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBuffer Mozilla AudioContext.createBuffer documentation> 
-createBufferUnsafe ::
-                   (MonadIO m, IsAudioContext self, HasCallStack) =>
-                     self -> Word -> Word -> Float -> m AudioBuffer
-createBufferUnsafe self numberOfChannels numberOfFrames sampleRate
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createBuffer (toAudioContext self) numberOfChannels
-             numberOfFrames
-             sampleRate))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBuffer Mozilla AudioContext.createBuffer documentation> 
-createBufferUnchecked ::
-                      (MonadIO m, IsAudioContext self) =>
-                        self -> Word -> Word -> Float -> m AudioBuffer
-createBufferUnchecked self numberOfChannels numberOfFrames
-  sampleRate
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createBuffer (toAudioContext self) numberOfChannels
-            numberOfFrames
-            sampleRate))
  
 foreign import javascript unsafe "$1[\"createBuffer\"]($2, $3)"
         js_createBufferFromArrayBuffer ::
-        AudioContext ->
-          Nullable ArrayBuffer -> Bool -> IO (Nullable AudioBuffer)
+        AudioContext -> ArrayBuffer -> Bool -> IO AudioBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBuffer Mozilla AudioContext.createBuffer documentation> 
 createBufferFromArrayBuffer ::
                             (MonadIO m, IsAudioContext self, IsArrayBuffer buffer) =>
-                              self -> Maybe buffer -> Bool -> m (Maybe AudioBuffer)
+                              self -> buffer -> Bool -> m AudioBuffer
 createBufferFromArrayBuffer self buffer mixToMono
   = liftIO
-      (nullableToMaybe <$>
-         (js_createBufferFromArrayBuffer (toAudioContext self)
-            (maybeToNullable (fmap toArrayBuffer buffer))
-            mixToMono))
+      (js_createBufferFromArrayBuffer (toAudioContext self)
+         (toArrayBuffer buffer)
+         mixToMono)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBuffer Mozilla AudioContext.createBuffer documentation> 
 createBufferFromArrayBuffer_ ::
                              (MonadIO m, IsAudioContext self, IsArrayBuffer buffer) =>
-                               self -> Maybe buffer -> Bool -> m ()
+                               self -> buffer -> Bool -> m ()
 createBufferFromArrayBuffer_ self buffer mixToMono
   = liftIO
       (void
          (js_createBufferFromArrayBuffer (toAudioContext self)
-            (maybeToNullable (fmap toArrayBuffer buffer))
-            mixToMono))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBuffer Mozilla AudioContext.createBuffer documentation> 
-createBufferFromArrayBufferUnsafe ::
-                                  (MonadIO m, IsAudioContext self, IsArrayBuffer buffer,
-                                   HasCallStack) =>
-                                    self -> Maybe buffer -> Bool -> m AudioBuffer
-createBufferFromArrayBufferUnsafe self buffer mixToMono
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createBufferFromArrayBuffer (toAudioContext self)
-             (maybeToNullable (fmap toArrayBuffer buffer))
-             mixToMono))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBuffer Mozilla AudioContext.createBuffer documentation> 
-createBufferFromArrayBufferUnchecked ::
-                                     (MonadIO m, IsAudioContext self, IsArrayBuffer buffer) =>
-                                       self -> Maybe buffer -> Bool -> m AudioBuffer
-createBufferFromArrayBufferUnchecked self buffer mixToMono
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createBufferFromArrayBuffer (toAudioContext self)
-            (maybeToNullable (fmap toArrayBuffer buffer))
+            (toArrayBuffer buffer)
             mixToMono))
  
 foreign import javascript unsafe
         "$1[\"decodeAudioData\"]($2, $3,\n$4)" js_decodeAudioData ::
         AudioContext ->
-          Nullable ArrayBuffer ->
-            Nullable AudioBufferCallback ->
-              Nullable AudioBufferCallback -> IO ()
+          ArrayBuffer ->
+            Optional AudioBufferCallback ->
+              Optional AudioBufferCallback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.decodeAudioData Mozilla AudioContext.decodeAudioData documentation> 
 decodeAudioData ::
                 (MonadIO m, IsAudioContext self, IsArrayBuffer audioData) =>
                   self ->
-                    Maybe audioData ->
+                    audioData ->
                       Maybe AudioBufferCallback -> Maybe AudioBufferCallback -> m ()
 decodeAudioData self audioData successCallback errorCallback
   = liftIO
-      (js_decodeAudioData (toAudioContext self)
-         (maybeToNullable (fmap toArrayBuffer audioData))
-         (maybeToNullable successCallback)
-         (maybeToNullable errorCallback))
+      (js_decodeAudioData (toAudioContext self) (toArrayBuffer audioData)
+         (maybeToOptional successCallback)
+         (maybeToOptional errorCallback))
  
 foreign import javascript unsafe "$1[\"createBufferSource\"]()"
-        js_createBufferSource ::
-        AudioContext -> IO (Nullable AudioBufferSourceNode)
+        js_createBufferSource :: AudioContext -> IO AudioBufferSourceNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBufferSource Mozilla AudioContext.createBufferSource documentation> 
 createBufferSource ::
-                   (MonadIO m, IsAudioContext self) =>
-                     self -> m (Maybe AudioBufferSourceNode)
+                   (MonadIO m, IsAudioContext self) => self -> m AudioBufferSourceNode
 createBufferSource self
-  = liftIO
-      (nullableToMaybe <$> (js_createBufferSource (toAudioContext self)))
+  = liftIO (js_createBufferSource (toAudioContext self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBufferSource Mozilla AudioContext.createBufferSource documentation> 
 createBufferSource_ ::
                     (MonadIO m, IsAudioContext self) => self -> m ()
 createBufferSource_ self
   = liftIO (void (js_createBufferSource (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBufferSource Mozilla AudioContext.createBufferSource documentation> 
-createBufferSourceUnsafe ::
-                         (MonadIO m, IsAudioContext self, HasCallStack) =>
-                           self -> m AudioBufferSourceNode
-createBufferSourceUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createBufferSource (toAudioContext self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBufferSource Mozilla AudioContext.createBufferSource documentation> 
-createBufferSourceUnchecked ::
-                            (MonadIO m, IsAudioContext self) => self -> m AudioBufferSourceNode
-createBufferSourceUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createBufferSource (toAudioContext self)))
  
 foreign import javascript unsafe
         "$1[\"createMediaElementSource\"]($2)" js_createMediaElementSource
         ::
-        AudioContext ->
-          Nullable HTMLMediaElement ->
-            IO (Nullable MediaElementAudioSourceNode)
+        AudioContext -> HTMLMediaElement -> IO MediaElementAudioSourceNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaElementSource Mozilla AudioContext.createMediaElementSource documentation> 
 createMediaElementSource ::
                          (MonadIO m, IsAudioContext self,
                           IsHTMLMediaElement mediaElement) =>
-                           self -> Maybe mediaElement -> m (Maybe MediaElementAudioSourceNode)
+                           self -> mediaElement -> m MediaElementAudioSourceNode
 createMediaElementSource self mediaElement
   = liftIO
-      (nullableToMaybe <$>
-         (js_createMediaElementSource (toAudioContext self)
-            (maybeToNullable (fmap toHTMLMediaElement mediaElement))))
+      (js_createMediaElementSource (toAudioContext self)
+         (toHTMLMediaElement mediaElement))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaElementSource Mozilla AudioContext.createMediaElementSource documentation> 
 createMediaElementSource_ ::
                           (MonadIO m, IsAudioContext self,
                            IsHTMLMediaElement mediaElement) =>
-                            self -> Maybe mediaElement -> m ()
+                            self -> mediaElement -> m ()
 createMediaElementSource_ self mediaElement
   = liftIO
       (void
          (js_createMediaElementSource (toAudioContext self)
-            (maybeToNullable (fmap toHTMLMediaElement mediaElement))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaElementSource Mozilla AudioContext.createMediaElementSource documentation> 
-createMediaElementSourceUnsafe ::
-                               (MonadIO m, IsAudioContext self, IsHTMLMediaElement mediaElement,
-                                HasCallStack) =>
-                                 self -> Maybe mediaElement -> m MediaElementAudioSourceNode
-createMediaElementSourceUnsafe self mediaElement
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createMediaElementSource (toAudioContext self)
-             (maybeToNullable (fmap toHTMLMediaElement mediaElement))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaElementSource Mozilla AudioContext.createMediaElementSource documentation> 
-createMediaElementSourceUnchecked ::
-                                  (MonadIO m, IsAudioContext self,
-                                   IsHTMLMediaElement mediaElement) =>
-                                    self -> Maybe mediaElement -> m MediaElementAudioSourceNode
-createMediaElementSourceUnchecked self mediaElement
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createMediaElementSource (toAudioContext self)
-            (maybeToNullable (fmap toHTMLMediaElement mediaElement))))
+            (toHTMLMediaElement mediaElement)))
  
 foreign import javascript unsafe
         "$1[\"createMediaStreamSource\"]($2)" js_createMediaStreamSource ::
-        AudioContext ->
-          Nullable MediaStream -> IO (Nullable MediaStreamAudioSourceNode)
+        AudioContext -> MediaStream -> IO MediaStreamAudioSourceNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaStreamSource Mozilla AudioContext.createMediaStreamSource documentation> 
 createMediaStreamSource ::
                         (MonadIO m, IsAudioContext self) =>
-                          self -> Maybe MediaStream -> m (Maybe MediaStreamAudioSourceNode)
+                          self -> MediaStream -> m MediaStreamAudioSourceNode
 createMediaStreamSource self mediaStream
   = liftIO
-      (nullableToMaybe <$>
-         (js_createMediaStreamSource (toAudioContext self)
-            (maybeToNullable mediaStream)))
+      (js_createMediaStreamSource (toAudioContext self) mediaStream)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaStreamSource Mozilla AudioContext.createMediaStreamSource documentation> 
 createMediaStreamSource_ ::
-                         (MonadIO m, IsAudioContext self) =>
-                           self -> Maybe MediaStream -> m ()
+                         (MonadIO m, IsAudioContext self) => self -> MediaStream -> m ()
 createMediaStreamSource_ self mediaStream
   = liftIO
       (void
-         (js_createMediaStreamSource (toAudioContext self)
-            (maybeToNullable mediaStream)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaStreamSource Mozilla AudioContext.createMediaStreamSource documentation> 
-createMediaStreamSourceUnsafe ::
-                              (MonadIO m, IsAudioContext self, HasCallStack) =>
-                                self -> Maybe MediaStream -> m MediaStreamAudioSourceNode
-createMediaStreamSourceUnsafe self mediaStream
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createMediaStreamSource (toAudioContext self)
-             (maybeToNullable mediaStream)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaStreamSource Mozilla AudioContext.createMediaStreamSource documentation> 
-createMediaStreamSourceUnchecked ::
-                                 (MonadIO m, IsAudioContext self) =>
-                                   self -> Maybe MediaStream -> m MediaStreamAudioSourceNode
-createMediaStreamSourceUnchecked self mediaStream
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createMediaStreamSource (toAudioContext self)
-            (maybeToNullable mediaStream)))
+         (js_createMediaStreamSource (toAudioContext self) mediaStream))
  
 foreign import javascript unsafe
         "$1[\"createMediaStreamDestination\"]()"
         js_createMediaStreamDestination ::
-        AudioContext -> IO (Nullable MediaStreamAudioDestinationNode)
+        AudioContext -> IO MediaStreamAudioDestinationNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaStreamDestination Mozilla AudioContext.createMediaStreamDestination documentation> 
 createMediaStreamDestination ::
                              (MonadIO m, IsAudioContext self) =>
-                               self -> m (Maybe MediaStreamAudioDestinationNode)
+                               self -> m MediaStreamAudioDestinationNode
 createMediaStreamDestination self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createMediaStreamDestination (toAudioContext self)))
+  = liftIO (js_createMediaStreamDestination (toAudioContext self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaStreamDestination Mozilla AudioContext.createMediaStreamDestination documentation> 
 createMediaStreamDestination_ ::
@@ -361,522 +231,242 @@
 createMediaStreamDestination_ self
   = liftIO
       (void (js_createMediaStreamDestination (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaStreamDestination Mozilla AudioContext.createMediaStreamDestination documentation> 
-createMediaStreamDestinationUnsafe ::
-                                   (MonadIO m, IsAudioContext self, HasCallStack) =>
-                                     self -> m MediaStreamAudioDestinationNode
-createMediaStreamDestinationUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createMediaStreamDestination (toAudioContext self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createMediaStreamDestination Mozilla AudioContext.createMediaStreamDestination documentation> 
-createMediaStreamDestinationUnchecked ::
-                                      (MonadIO m, IsAudioContext self) =>
-                                        self -> m MediaStreamAudioDestinationNode
-createMediaStreamDestinationUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createMediaStreamDestination (toAudioContext self)))
  
 foreign import javascript unsafe "$1[\"createGain\"]()"
-        js_createGain :: AudioContext -> IO (Nullable GainNode)
+        js_createGain :: AudioContext -> IO GainNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createGain Mozilla AudioContext.createGain documentation> 
 createGain ::
-           (MonadIO m, IsAudioContext self) => self -> m (Maybe GainNode)
-createGain self
-  = liftIO
-      (nullableToMaybe <$> (js_createGain (toAudioContext self)))
+           (MonadIO m, IsAudioContext self) => self -> m GainNode
+createGain self = liftIO (js_createGain (toAudioContext self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createGain Mozilla AudioContext.createGain documentation> 
 createGain_ :: (MonadIO m, IsAudioContext self) => self -> m ()
 createGain_ self
   = liftIO (void (js_createGain (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createGain Mozilla AudioContext.createGain documentation> 
-createGainUnsafe ::
-                 (MonadIO m, IsAudioContext self, HasCallStack) =>
-                   self -> m GainNode
-createGainUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createGain (toAudioContext self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createGain Mozilla AudioContext.createGain documentation> 
-createGainUnchecked ::
-                    (MonadIO m, IsAudioContext self) => self -> m GainNode
-createGainUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createGain (toAudioContext self)))
  
 foreign import javascript unsafe "$1[\"createDelay\"]($2)"
-        js_createDelay :: AudioContext -> Double -> IO (Nullable DelayNode)
+        js_createDelay :: AudioContext -> Optional Double -> IO DelayNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDelay Mozilla AudioContext.createDelay documentation> 
 createDelay ::
             (MonadIO m, IsAudioContext self) =>
-              self -> Double -> m (Maybe DelayNode)
+              self -> Maybe Double -> m DelayNode
 createDelay self maxDelayTime
   = liftIO
-      (nullableToMaybe <$>
-         (js_createDelay (toAudioContext self) maxDelayTime))
+      (js_createDelay (toAudioContext self)
+         (maybeToOptional maxDelayTime))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDelay Mozilla AudioContext.createDelay documentation> 
 createDelay_ ::
-             (MonadIO m, IsAudioContext self) => self -> Double -> m ()
+             (MonadIO m, IsAudioContext self) => self -> Maybe Double -> m ()
 createDelay_ self maxDelayTime
-  = liftIO (void (js_createDelay (toAudioContext self) maxDelayTime))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDelay Mozilla AudioContext.createDelay documentation> 
-createDelayUnsafe ::
-                  (MonadIO m, IsAudioContext self, HasCallStack) =>
-                    self -> Double -> m DelayNode
-createDelayUnsafe self maxDelayTime
   = liftIO
-      ((nullableToMaybe <$>
-          (js_createDelay (toAudioContext self) maxDelayTime))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDelay Mozilla AudioContext.createDelay documentation> 
-createDelayUnchecked ::
-                     (MonadIO m, IsAudioContext self) => self -> Double -> m DelayNode
-createDelayUnchecked self maxDelayTime
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createDelay (toAudioContext self) maxDelayTime))
+      (void
+         (js_createDelay (toAudioContext self)
+            (maybeToOptional maxDelayTime)))
  
 foreign import javascript unsafe "$1[\"createBiquadFilter\"]()"
-        js_createBiquadFilter ::
-        AudioContext -> IO (Nullable BiquadFilterNode)
+        js_createBiquadFilter :: AudioContext -> IO BiquadFilterNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBiquadFilter Mozilla AudioContext.createBiquadFilter documentation> 
 createBiquadFilter ::
-                   (MonadIO m, IsAudioContext self) =>
-                     self -> m (Maybe BiquadFilterNode)
+                   (MonadIO m, IsAudioContext self) => self -> m BiquadFilterNode
 createBiquadFilter self
-  = liftIO
-      (nullableToMaybe <$> (js_createBiquadFilter (toAudioContext self)))
+  = liftIO (js_createBiquadFilter (toAudioContext self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBiquadFilter Mozilla AudioContext.createBiquadFilter documentation> 
 createBiquadFilter_ ::
                     (MonadIO m, IsAudioContext self) => self -> m ()
 createBiquadFilter_ self
   = liftIO (void (js_createBiquadFilter (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBiquadFilter Mozilla AudioContext.createBiquadFilter documentation> 
-createBiquadFilterUnsafe ::
-                         (MonadIO m, IsAudioContext self, HasCallStack) =>
-                           self -> m BiquadFilterNode
-createBiquadFilterUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createBiquadFilter (toAudioContext self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createBiquadFilter Mozilla AudioContext.createBiquadFilter documentation> 
-createBiquadFilterUnchecked ::
-                            (MonadIO m, IsAudioContext self) => self -> m BiquadFilterNode
-createBiquadFilterUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createBiquadFilter (toAudioContext self)))
  
 foreign import javascript unsafe "$1[\"createWaveShaper\"]()"
-        js_createWaveShaper :: AudioContext -> IO (Nullable WaveShaperNode)
+        js_createWaveShaper :: AudioContext -> IO WaveShaperNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createWaveShaper Mozilla AudioContext.createWaveShaper documentation> 
 createWaveShaper ::
-                 (MonadIO m, IsAudioContext self) =>
-                   self -> m (Maybe WaveShaperNode)
+                 (MonadIO m, IsAudioContext self) => self -> m WaveShaperNode
 createWaveShaper self
-  = liftIO
-      (nullableToMaybe <$> (js_createWaveShaper (toAudioContext self)))
+  = liftIO (js_createWaveShaper (toAudioContext self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createWaveShaper Mozilla AudioContext.createWaveShaper documentation> 
 createWaveShaper_ ::
                   (MonadIO m, IsAudioContext self) => self -> m ()
 createWaveShaper_ self
   = liftIO (void (js_createWaveShaper (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createWaveShaper Mozilla AudioContext.createWaveShaper documentation> 
-createWaveShaperUnsafe ::
-                       (MonadIO m, IsAudioContext self, HasCallStack) =>
-                         self -> m WaveShaperNode
-createWaveShaperUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createWaveShaper (toAudioContext self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createWaveShaper Mozilla AudioContext.createWaveShaper documentation> 
-createWaveShaperUnchecked ::
-                          (MonadIO m, IsAudioContext self) => self -> m WaveShaperNode
-createWaveShaperUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createWaveShaper (toAudioContext self)))
  
 foreign import javascript unsafe "$1[\"createPanner\"]()"
-        js_createPanner :: AudioContext -> IO (Nullable PannerNode)
+        js_createPanner :: AudioContext -> IO PannerNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createPanner Mozilla AudioContext.createPanner documentation> 
 createPanner ::
-             (MonadIO m, IsAudioContext self) => self -> m (Maybe PannerNode)
-createPanner self
-  = liftIO
-      (nullableToMaybe <$> (js_createPanner (toAudioContext self)))
+             (MonadIO m, IsAudioContext self) => self -> m PannerNode
+createPanner self = liftIO (js_createPanner (toAudioContext self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createPanner Mozilla AudioContext.createPanner documentation> 
 createPanner_ :: (MonadIO m, IsAudioContext self) => self -> m ()
 createPanner_ self
   = liftIO (void (js_createPanner (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createPanner Mozilla AudioContext.createPanner documentation> 
-createPannerUnsafe ::
-                   (MonadIO m, IsAudioContext self, HasCallStack) =>
-                     self -> m PannerNode
-createPannerUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createPanner (toAudioContext self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createPanner Mozilla AudioContext.createPanner documentation> 
-createPannerUnchecked ::
-                      (MonadIO m, IsAudioContext self) => self -> m PannerNode
-createPannerUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createPanner (toAudioContext self)))
  
 foreign import javascript unsafe "$1[\"createConvolver\"]()"
-        js_createConvolver :: AudioContext -> IO (Nullable ConvolverNode)
+        js_createConvolver :: AudioContext -> IO ConvolverNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createConvolver Mozilla AudioContext.createConvolver documentation> 
 createConvolver ::
-                (MonadIO m, IsAudioContext self) => self -> m (Maybe ConvolverNode)
+                (MonadIO m, IsAudioContext self) => self -> m ConvolverNode
 createConvolver self
-  = liftIO
-      (nullableToMaybe <$> (js_createConvolver (toAudioContext self)))
+  = liftIO (js_createConvolver (toAudioContext self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createConvolver Mozilla AudioContext.createConvolver documentation> 
 createConvolver_ ::
                  (MonadIO m, IsAudioContext self) => self -> m ()
 createConvolver_ self
   = liftIO (void (js_createConvolver (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createConvolver Mozilla AudioContext.createConvolver documentation> 
-createConvolverUnsafe ::
-                      (MonadIO m, IsAudioContext self, HasCallStack) =>
-                        self -> m ConvolverNode
-createConvolverUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createConvolver (toAudioContext self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createConvolver Mozilla AudioContext.createConvolver documentation> 
-createConvolverUnchecked ::
-                         (MonadIO m, IsAudioContext self) => self -> m ConvolverNode
-createConvolverUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createConvolver (toAudioContext self)))
  
 foreign import javascript unsafe
         "$1[\"createDynamicsCompressor\"]()" js_createDynamicsCompressor ::
-        AudioContext -> IO (Nullable DynamicsCompressorNode)
+        AudioContext -> IO DynamicsCompressorNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDynamicsCompressor Mozilla AudioContext.createDynamicsCompressor documentation> 
 createDynamicsCompressor ::
                          (MonadIO m, IsAudioContext self) =>
-                           self -> m (Maybe DynamicsCompressorNode)
+                           self -> m DynamicsCompressorNode
 createDynamicsCompressor self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createDynamicsCompressor (toAudioContext self)))
+  = liftIO (js_createDynamicsCompressor (toAudioContext self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDynamicsCompressor Mozilla AudioContext.createDynamicsCompressor documentation> 
 createDynamicsCompressor_ ::
                           (MonadIO m, IsAudioContext self) => self -> m ()
 createDynamicsCompressor_ self
   = liftIO (void (js_createDynamicsCompressor (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDynamicsCompressor Mozilla AudioContext.createDynamicsCompressor documentation> 
-createDynamicsCompressorUnsafe ::
-                               (MonadIO m, IsAudioContext self, HasCallStack) =>
-                                 self -> m DynamicsCompressorNode
-createDynamicsCompressorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createDynamicsCompressor (toAudioContext self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDynamicsCompressor Mozilla AudioContext.createDynamicsCompressor documentation> 
-createDynamicsCompressorUnchecked ::
-                                  (MonadIO m, IsAudioContext self) =>
-                                    self -> m DynamicsCompressorNode
-createDynamicsCompressorUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createDynamicsCompressor (toAudioContext self)))
  
 foreign import javascript unsafe "$1[\"createAnalyser\"]()"
-        js_createAnalyser :: AudioContext -> IO (Nullable AnalyserNode)
+        js_createAnalyser :: AudioContext -> IO AnalyserNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createAnalyser Mozilla AudioContext.createAnalyser documentation> 
 createAnalyser ::
-               (MonadIO m, IsAudioContext self) => self -> m (Maybe AnalyserNode)
+               (MonadIO m, IsAudioContext self) => self -> m AnalyserNode
 createAnalyser self
-  = liftIO
-      (nullableToMaybe <$> (js_createAnalyser (toAudioContext self)))
+  = liftIO (js_createAnalyser (toAudioContext self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createAnalyser Mozilla AudioContext.createAnalyser documentation> 
 createAnalyser_ :: (MonadIO m, IsAudioContext self) => self -> m ()
 createAnalyser_ self
   = liftIO (void (js_createAnalyser (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createAnalyser Mozilla AudioContext.createAnalyser documentation> 
-createAnalyserUnsafe ::
-                     (MonadIO m, IsAudioContext self, HasCallStack) =>
-                       self -> m AnalyserNode
-createAnalyserUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createAnalyser (toAudioContext self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createAnalyser Mozilla AudioContext.createAnalyser documentation> 
-createAnalyserUnchecked ::
-                        (MonadIO m, IsAudioContext self) => self -> m AnalyserNode
-createAnalyserUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createAnalyser (toAudioContext self)))
  
 foreign import javascript unsafe
         "$1[\"createScriptProcessor\"]($2,\n$3, $4)"
         js_createScriptProcessor ::
         AudioContext ->
-          Word -> Word -> Word -> IO (Nullable ScriptProcessorNode)
+          Word -> Optional Word -> Optional Word -> IO ScriptProcessorNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createScriptProcessor Mozilla AudioContext.createScriptProcessor documentation> 
 createScriptProcessor ::
                       (MonadIO m, IsAudioContext self) =>
-                        self -> Word -> Word -> Word -> m (Maybe ScriptProcessorNode)
+                        self -> Word -> Maybe Word -> Maybe Word -> m ScriptProcessorNode
 createScriptProcessor self bufferSize numberOfInputChannels
   numberOfOutputChannels
   = liftIO
-      (nullableToMaybe <$>
-         (js_createScriptProcessor (toAudioContext self) bufferSize
-            numberOfInputChannels
-            numberOfOutputChannels))
+      (js_createScriptProcessor (toAudioContext self) bufferSize
+         (maybeToOptional numberOfInputChannels)
+         (maybeToOptional numberOfOutputChannels))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createScriptProcessor Mozilla AudioContext.createScriptProcessor documentation> 
 createScriptProcessor_ ::
                        (MonadIO m, IsAudioContext self) =>
-                         self -> Word -> Word -> Word -> m ()
+                         self -> Word -> Maybe Word -> Maybe Word -> m ()
 createScriptProcessor_ self bufferSize numberOfInputChannels
   numberOfOutputChannels
   = liftIO
       (void
          (js_createScriptProcessor (toAudioContext self) bufferSize
-            numberOfInputChannels
-            numberOfOutputChannels))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createScriptProcessor Mozilla AudioContext.createScriptProcessor documentation> 
-createScriptProcessorUnsafe ::
-                            (MonadIO m, IsAudioContext self, HasCallStack) =>
-                              self -> Word -> Word -> Word -> m ScriptProcessorNode
-createScriptProcessorUnsafe self bufferSize numberOfInputChannels
-  numberOfOutputChannels
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createScriptProcessor (toAudioContext self) bufferSize
-             numberOfInputChannels
-             numberOfOutputChannels))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createScriptProcessor Mozilla AudioContext.createScriptProcessor documentation> 
-createScriptProcessorUnchecked ::
-                               (MonadIO m, IsAudioContext self) =>
-                                 self -> Word -> Word -> Word -> m ScriptProcessorNode
-createScriptProcessorUnchecked self bufferSize
-  numberOfInputChannels numberOfOutputChannels
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createScriptProcessor (toAudioContext self) bufferSize
-            numberOfInputChannels
-            numberOfOutputChannels))
+            (maybeToOptional numberOfInputChannels)
+            (maybeToOptional numberOfOutputChannels)))
  
 foreign import javascript unsafe "$1[\"createOscillator\"]()"
-        js_createOscillator :: AudioContext -> IO (Nullable OscillatorNode)
+        js_createOscillator :: AudioContext -> IO OscillatorNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createOscillator Mozilla AudioContext.createOscillator documentation> 
 createOscillator ::
-                 (MonadIO m, IsAudioContext self) =>
-                   self -> m (Maybe OscillatorNode)
+                 (MonadIO m, IsAudioContext self) => self -> m OscillatorNode
 createOscillator self
-  = liftIO
-      (nullableToMaybe <$> (js_createOscillator (toAudioContext self)))
+  = liftIO (js_createOscillator (toAudioContext self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createOscillator Mozilla AudioContext.createOscillator documentation> 
 createOscillator_ ::
                   (MonadIO m, IsAudioContext self) => self -> m ()
 createOscillator_ self
   = liftIO (void (js_createOscillator (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createOscillator Mozilla AudioContext.createOscillator documentation> 
-createOscillatorUnsafe ::
-                       (MonadIO m, IsAudioContext self, HasCallStack) =>
-                         self -> m OscillatorNode
-createOscillatorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createOscillator (toAudioContext self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createOscillator Mozilla AudioContext.createOscillator documentation> 
-createOscillatorUnchecked ::
-                          (MonadIO m, IsAudioContext self) => self -> m OscillatorNode
-createOscillatorUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createOscillator (toAudioContext self)))
  
 foreign import javascript unsafe
         "$1[\"createPeriodicWave\"]($2, $3)" js_createPeriodicWave ::
-        AudioContext ->
-          Nullable Float32Array ->
-            Nullable Float32Array -> IO (Nullable PeriodicWave)
+        AudioContext -> Float32Array -> Float32Array -> IO PeriodicWave
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createPeriodicWave Mozilla AudioContext.createPeriodicWave documentation> 
 createPeriodicWave ::
                    (MonadIO m, IsAudioContext self, IsFloat32Array real,
                     IsFloat32Array imag) =>
-                     self -> Maybe real -> Maybe imag -> m (Maybe PeriodicWave)
+                     self -> real -> imag -> m PeriodicWave
 createPeriodicWave self real imag
   = liftIO
-      (nullableToMaybe <$>
-         (js_createPeriodicWave (toAudioContext self)
-            (maybeToNullable (fmap toFloat32Array real))
-            (maybeToNullable (fmap toFloat32Array imag))))
+      (js_createPeriodicWave (toAudioContext self) (toFloat32Array real)
+         (toFloat32Array imag))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createPeriodicWave Mozilla AudioContext.createPeriodicWave documentation> 
 createPeriodicWave_ ::
                     (MonadIO m, IsAudioContext self, IsFloat32Array real,
                      IsFloat32Array imag) =>
-                      self -> Maybe real -> Maybe imag -> m ()
+                      self -> real -> imag -> m ()
 createPeriodicWave_ self real imag
   = liftIO
       (void
-         (js_createPeriodicWave (toAudioContext self)
-            (maybeToNullable (fmap toFloat32Array real))
-            (maybeToNullable (fmap toFloat32Array imag))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createPeriodicWave Mozilla AudioContext.createPeriodicWave documentation> 
-createPeriodicWaveUnsafe ::
-                         (MonadIO m, IsAudioContext self, IsFloat32Array real,
-                          IsFloat32Array imag, HasCallStack) =>
-                           self -> Maybe real -> Maybe imag -> m PeriodicWave
-createPeriodicWaveUnsafe self real imag
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createPeriodicWave (toAudioContext self)
-             (maybeToNullable (fmap toFloat32Array real))
-             (maybeToNullable (fmap toFloat32Array imag))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createPeriodicWave Mozilla AudioContext.createPeriodicWave documentation> 
-createPeriodicWaveUnchecked ::
-                            (MonadIO m, IsAudioContext self, IsFloat32Array real,
-                             IsFloat32Array imag) =>
-                              self -> Maybe real -> Maybe imag -> m PeriodicWave
-createPeriodicWaveUnchecked self real imag
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createPeriodicWave (toAudioContext self)
-            (maybeToNullable (fmap toFloat32Array real))
-            (maybeToNullable (fmap toFloat32Array imag))))
+         (js_createPeriodicWave (toAudioContext self) (toFloat32Array real)
+            (toFloat32Array imag)))
  
 foreign import javascript unsafe
         "$1[\"createChannelSplitter\"]($2)" js_createChannelSplitter ::
-        AudioContext -> Word -> IO (Nullable ChannelSplitterNode)
+        AudioContext -> Optional Word -> IO ChannelSplitterNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createChannelSplitter Mozilla AudioContext.createChannelSplitter documentation> 
 createChannelSplitter ::
                       (MonadIO m, IsAudioContext self) =>
-                        self -> Word -> m (Maybe ChannelSplitterNode)
+                        self -> Maybe Word -> m ChannelSplitterNode
 createChannelSplitter self numberOfOutputs
   = liftIO
-      (nullableToMaybe <$>
-         (js_createChannelSplitter (toAudioContext self) numberOfOutputs))
+      (js_createChannelSplitter (toAudioContext self)
+         (maybeToOptional numberOfOutputs))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createChannelSplitter Mozilla AudioContext.createChannelSplitter documentation> 
 createChannelSplitter_ ::
-                       (MonadIO m, IsAudioContext self) => self -> Word -> m ()
+                       (MonadIO m, IsAudioContext self) => self -> Maybe Word -> m ()
 createChannelSplitter_ self numberOfOutputs
   = liftIO
       (void
-         (js_createChannelSplitter (toAudioContext self) numberOfOutputs))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createChannelSplitter Mozilla AudioContext.createChannelSplitter documentation> 
-createChannelSplitterUnsafe ::
-                            (MonadIO m, IsAudioContext self, HasCallStack) =>
-                              self -> Word -> m ChannelSplitterNode
-createChannelSplitterUnsafe self numberOfOutputs
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createChannelSplitter (toAudioContext self) numberOfOutputs))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createChannelSplitter Mozilla AudioContext.createChannelSplitter documentation> 
-createChannelSplitterUnchecked ::
-                               (MonadIO m, IsAudioContext self) =>
-                                 self -> Word -> m ChannelSplitterNode
-createChannelSplitterUnchecked self numberOfOutputs
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createChannelSplitter (toAudioContext self) numberOfOutputs))
+         (js_createChannelSplitter (toAudioContext self)
+            (maybeToOptional numberOfOutputs)))
  
 foreign import javascript unsafe "$1[\"createChannelMerger\"]($2)"
         js_createChannelMerger ::
-        AudioContext -> Word -> IO (Nullable ChannelMergerNode)
+        AudioContext -> Optional Word -> IO ChannelMergerNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createChannelMerger Mozilla AudioContext.createChannelMerger documentation> 
 createChannelMerger ::
                     (MonadIO m, IsAudioContext self) =>
-                      self -> Word -> m (Maybe ChannelMergerNode)
+                      self -> Maybe Word -> m ChannelMergerNode
 createChannelMerger self numberOfInputs
   = liftIO
-      (nullableToMaybe <$>
-         (js_createChannelMerger (toAudioContext self) numberOfInputs))
+      (js_createChannelMerger (toAudioContext self)
+         (maybeToOptional numberOfInputs))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createChannelMerger Mozilla AudioContext.createChannelMerger documentation> 
 createChannelMerger_ ::
-                     (MonadIO m, IsAudioContext self) => self -> Word -> m ()
+                     (MonadIO m, IsAudioContext self) => self -> Maybe Word -> m ()
 createChannelMerger_ self numberOfInputs
   = liftIO
       (void
-         (js_createChannelMerger (toAudioContext self) numberOfInputs))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createChannelMerger Mozilla AudioContext.createChannelMerger documentation> 
-createChannelMergerUnsafe ::
-                          (MonadIO m, IsAudioContext self, HasCallStack) =>
-                            self -> Word -> m ChannelMergerNode
-createChannelMergerUnsafe self numberOfInputs
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createChannelMerger (toAudioContext self) numberOfInputs))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createChannelMerger Mozilla AudioContext.createChannelMerger documentation> 
-createChannelMergerUnchecked ::
-                             (MonadIO m, IsAudioContext self) =>
-                               self -> Word -> m ChannelMergerNode
-createChannelMergerUnchecked self numberOfInputs
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createChannelMerger (toAudioContext self) numberOfInputs))
+         (js_createChannelMerger (toAudioContext self)
+            (maybeToOptional numberOfInputs)))
  
 foreign import javascript unsafe "$1[\"startRendering\"]()"
         js_startRendering :: AudioContext -> IO ()
@@ -886,159 +476,14 @@
 startRendering self
   = liftIO (js_startRendering (toAudioContext self))
  
-foreign import javascript unsafe "$1[\"createGainNode\"]()"
-        js_createGainNode :: AudioContext -> IO (Nullable GainNode)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createGainNode Mozilla AudioContext.createGainNode documentation> 
-createGainNode ::
-               (MonadIO m, IsAudioContext self) => self -> m (Maybe GainNode)
-createGainNode self
-  = liftIO
-      (nullableToMaybe <$> (js_createGainNode (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createGainNode Mozilla AudioContext.createGainNode documentation> 
-createGainNode_ :: (MonadIO m, IsAudioContext self) => self -> m ()
-createGainNode_ self
-  = liftIO (void (js_createGainNode (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createGainNode Mozilla AudioContext.createGainNode documentation> 
-createGainNodeUnsafe ::
-                     (MonadIO m, IsAudioContext self, HasCallStack) =>
-                       self -> m GainNode
-createGainNodeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createGainNode (toAudioContext self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createGainNode Mozilla AudioContext.createGainNode documentation> 
-createGainNodeUnchecked ::
-                        (MonadIO m, IsAudioContext self) => self -> m GainNode
-createGainNodeUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createGainNode (toAudioContext self)))
- 
-foreign import javascript unsafe "$1[\"createDelayNode\"]($2)"
-        js_createDelayNode ::
-        AudioContext -> Double -> IO (Nullable DelayNode)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDelayNode Mozilla AudioContext.createDelayNode documentation> 
-createDelayNode ::
-                (MonadIO m, IsAudioContext self) =>
-                  self -> Double -> m (Maybe DelayNode)
-createDelayNode self maxDelayTime
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createDelayNode (toAudioContext self) maxDelayTime))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDelayNode Mozilla AudioContext.createDelayNode documentation> 
-createDelayNode_ ::
-                 (MonadIO m, IsAudioContext self) => self -> Double -> m ()
-createDelayNode_ self maxDelayTime
-  = liftIO
-      (void (js_createDelayNode (toAudioContext self) maxDelayTime))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDelayNode Mozilla AudioContext.createDelayNode documentation> 
-createDelayNodeUnsafe ::
-                      (MonadIO m, IsAudioContext self, HasCallStack) =>
-                        self -> Double -> m DelayNode
-createDelayNodeUnsafe self maxDelayTime
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createDelayNode (toAudioContext self) maxDelayTime))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createDelayNode Mozilla AudioContext.createDelayNode documentation> 
-createDelayNodeUnchecked ::
-                         (MonadIO m, IsAudioContext self) => self -> Double -> m DelayNode
-createDelayNodeUnchecked self maxDelayTime
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createDelayNode (toAudioContext self) maxDelayTime))
- 
-foreign import javascript unsafe
-        "$1[\"createJavaScriptNode\"]($2,\n$3, $4)" js_createJavaScriptNode
-        ::
-        AudioContext ->
-          Word -> Word -> Word -> IO (Nullable ScriptProcessorNode)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createJavaScriptNode Mozilla AudioContext.createJavaScriptNode documentation> 
-createJavaScriptNode ::
-                     (MonadIO m, IsAudioContext self) =>
-                       self -> Word -> Word -> Word -> m (Maybe ScriptProcessorNode)
-createJavaScriptNode self bufferSize numberOfInputChannels
-  numberOfOutputChannels
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createJavaScriptNode (toAudioContext self) bufferSize
-            numberOfInputChannels
-            numberOfOutputChannels))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createJavaScriptNode Mozilla AudioContext.createJavaScriptNode documentation> 
-createJavaScriptNode_ ::
-                      (MonadIO m, IsAudioContext self) =>
-                        self -> Word -> Word -> Word -> m ()
-createJavaScriptNode_ self bufferSize numberOfInputChannels
-  numberOfOutputChannels
-  = liftIO
-      (void
-         (js_createJavaScriptNode (toAudioContext self) bufferSize
-            numberOfInputChannels
-            numberOfOutputChannels))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createJavaScriptNode Mozilla AudioContext.createJavaScriptNode documentation> 
-createJavaScriptNodeUnsafe ::
-                           (MonadIO m, IsAudioContext self, HasCallStack) =>
-                             self -> Word -> Word -> Word -> m ScriptProcessorNode
-createJavaScriptNodeUnsafe self bufferSize numberOfInputChannels
-  numberOfOutputChannels
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createJavaScriptNode (toAudioContext self) bufferSize
-             numberOfInputChannels
-             numberOfOutputChannels))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.createJavaScriptNode Mozilla AudioContext.createJavaScriptNode documentation> 
-createJavaScriptNodeUnchecked ::
-                              (MonadIO m, IsAudioContext self) =>
-                                self -> Word -> Word -> Word -> m ScriptProcessorNode
-createJavaScriptNodeUnchecked self bufferSize numberOfInputChannels
-  numberOfOutputChannels
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createJavaScriptNode (toAudioContext self) bufferSize
-            numberOfInputChannels
-            numberOfOutputChannels))
- 
 foreign import javascript unsafe "$1[\"destination\"]"
-        js_getDestination ::
-        AudioContext -> IO (Nullable AudioDestinationNode)
+        js_getDestination :: AudioContext -> IO AudioDestinationNode
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.destination Mozilla AudioContext.destination documentation> 
 getDestination ::
-               (MonadIO m, IsAudioContext self) =>
-                 self -> m (Maybe AudioDestinationNode)
+               (MonadIO m, IsAudioContext self) => self -> m AudioDestinationNode
 getDestination self
-  = liftIO
-      (nullableToMaybe <$> (js_getDestination (toAudioContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.destination Mozilla AudioContext.destination documentation> 
-getDestinationUnsafe ::
-                     (MonadIO m, IsAudioContext self, HasCallStack) =>
-                       self -> m AudioDestinationNode
-getDestinationUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDestination (toAudioContext self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.destination Mozilla AudioContext.destination documentation> 
-getDestinationUnchecked ::
-                        (MonadIO m, IsAudioContext self) => self -> m AudioDestinationNode
-getDestinationUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getDestination (toAudioContext self)))
+  = liftIO (js_getDestination (toAudioContext self))
  
 foreign import javascript unsafe "$1[\"currentTime\"]"
         js_getCurrentTime :: AudioContext -> IO Double
@@ -1059,31 +504,28 @@
   = liftIO (js_getSampleRate (toAudioContext self))
  
 foreign import javascript unsafe "$1[\"listener\"]" js_getListener
-        :: AudioContext -> IO (Nullable AudioListener)
+        :: AudioContext -> IO AudioListener
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.listener Mozilla AudioContext.listener documentation> 
 getListener ::
-            (MonadIO m, IsAudioContext self) => self -> m (Maybe AudioListener)
-getListener self
-  = liftIO
-      (nullableToMaybe <$> (js_getListener (toAudioContext self)))
+            (MonadIO m, IsAudioContext self) => self -> m AudioListener
+getListener self = liftIO (js_getListener (toAudioContext self))
+ 
+foreign import javascript unsafe "$1[\"state\"]" js_getState ::
+        AudioContext -> IO JSVal
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.listener Mozilla AudioContext.listener documentation> 
-getListenerUnsafe ::
-                  (MonadIO m, IsAudioContext self, HasCallStack) =>
-                    self -> m AudioListener
-getListenerUnsafe self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.state Mozilla AudioContext.state documentation> 
+getState ::
+         (MonadIO m, IsAudioContext self) => self -> m AudioContextState
+getState self
   = liftIO
-      ((nullableToMaybe <$> (js_getListener (toAudioContext self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      ((js_getState (toAudioContext self)) >>= fromJSValUnchecked)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.listener Mozilla AudioContext.listener documentation> 
-getListenerUnchecked ::
-                     (MonadIO m, IsAudioContext self) => self -> m AudioListener
-getListenerUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getListener (toAudioContext self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext.onstatechange Mozilla AudioContext.onstatechange documentation> 
+statechange ::
+            (IsAudioContext self, IsEventTarget self) =>
+              EventName self onstatechange
+statechange = unsafeEventName (toJSString "statechange")
  
 foreign import javascript unsafe "$1[\"activeSourceCount\"]"
         js_getActiveSourceCount :: AudioContext -> IO Word
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioDestinationNode.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioDestinationNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioDestinationNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AudioDestinationNode.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,4 +31,4 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioDestinationNode.maxChannelCount Mozilla AudioDestinationNode.maxChannelCount documentation> 
 getMaxChannelCount :: (MonadIO m) => AudioDestinationNode -> m Word
-getMaxChannelCount self = liftIO (js_getMaxChannelCount (self))
+getMaxChannelCount self = liftIO (js_getMaxChannelCount self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioListener.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioListener.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioListener.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AudioListener.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,7 +35,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioListener.setPosition Mozilla AudioListener.setPosition documentation> 
 setPosition ::
             (MonadIO m) => AudioListener -> Float -> Float -> Float -> m ()
-setPosition self x y z = liftIO (js_setPosition (self) x y z)
+setPosition self x y z = liftIO (js_setPosition self x y z)
  
 foreign import javascript unsafe
         "$1[\"setOrientation\"]($2, $3, $4,\n$5, $6, $7)" js_setOrientation
@@ -48,7 +49,7 @@
                  AudioListener ->
                    Float -> Float -> Float -> Float -> Float -> Float -> m ()
 setOrientation self x y z xUp yUp zUp
-  = liftIO (js_setOrientation (self) x y z xUp yUp zUp)
+  = liftIO (js_setOrientation self x y z xUp yUp zUp)
  
 foreign import javascript unsafe "$1[\"setVelocity\"]($2, $3, $4)"
         js_setVelocity :: AudioListener -> Float -> Float -> Float -> IO ()
@@ -56,32 +57,32 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioListener.setVelocity Mozilla AudioListener.setVelocity documentation> 
 setVelocity ::
             (MonadIO m) => AudioListener -> Float -> Float -> Float -> m ()
-setVelocity self x y z = liftIO (js_setVelocity (self) x y z)
+setVelocity self x y z = liftIO (js_setVelocity self x y z)
  
 foreign import javascript unsafe "$1[\"dopplerFactor\"] = $2;"
         js_setDopplerFactor :: AudioListener -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioListener.dopplerFactor Mozilla AudioListener.dopplerFactor documentation> 
 setDopplerFactor :: (MonadIO m) => AudioListener -> Float -> m ()
-setDopplerFactor self val = liftIO (js_setDopplerFactor (self) val)
+setDopplerFactor self val = liftIO (js_setDopplerFactor self val)
  
 foreign import javascript unsafe "$1[\"dopplerFactor\"]"
         js_getDopplerFactor :: AudioListener -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioListener.dopplerFactor Mozilla AudioListener.dopplerFactor documentation> 
 getDopplerFactor :: (MonadIO m) => AudioListener -> m Float
-getDopplerFactor self = liftIO (js_getDopplerFactor (self))
+getDopplerFactor self = liftIO (js_getDopplerFactor self)
  
 foreign import javascript unsafe "$1[\"speedOfSound\"] = $2;"
         js_setSpeedOfSound :: AudioListener -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioListener.speedOfSound Mozilla AudioListener.speedOfSound documentation> 
 setSpeedOfSound :: (MonadIO m) => AudioListener -> Float -> m ()
-setSpeedOfSound self val = liftIO (js_setSpeedOfSound (self) val)
+setSpeedOfSound self val = liftIO (js_setSpeedOfSound self val)
  
 foreign import javascript unsafe "$1[\"speedOfSound\"]"
         js_getSpeedOfSound :: AudioListener -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioListener.speedOfSound Mozilla AudioListener.speedOfSound documentation> 
 getSpeedOfSound :: (MonadIO m) => AudioListener -> m Float
-getSpeedOfSound self = liftIO (js_getSpeedOfSound (self))
+getSpeedOfSound self = liftIO (js_getSpeedOfSound self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioNode.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AudioNode.hs
@@ -5,11 +5,10 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.AudioNode
        (js_connect, connect, js_connectParam, connectParam, js_disconnect,
-        disconnect, js_getContext, getContext, getContextUnsafe,
-        getContextUnchecked, js_getNumberOfInputs, getNumberOfInputs,
-        js_getNumberOfOutputs, getNumberOfOutputs, js_setChannelCount,
-        setChannelCount, js_getChannelCount, getChannelCount,
-        js_setChannelCountMode, setChannelCountMode,
+        disconnect, js_getContext, getContext, js_getNumberOfInputs,
+        getNumberOfInputs, js_getNumberOfOutputs, getNumberOfOutputs,
+        js_setChannelCount, setChannelCount, js_getChannelCount,
+        getChannelCount, js_setChannelCountMode, setChannelCountMode,
         js_getChannelCountMode, getChannelCountMode,
         js_setChannelInterpretation, setChannelInterpretation,
         js_getChannelInterpretation, getChannelInterpretation,
@@ -19,7 +18,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +27,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -35,64 +35,48 @@
  
 foreign import javascript unsafe "$1[\"connect\"]($2, $3, $4)"
         js_connect ::
-        AudioNode -> Nullable AudioNode -> Word -> Word -> IO ()
+        AudioNode -> AudioNode -> Optional Word -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioNode.connect Mozilla AudioNode.connect documentation> 
 connect ::
         (MonadIO m, IsAudioNode self, IsAudioNode destination) =>
-          self -> Maybe destination -> Word -> Word -> m ()
+          self -> destination -> Maybe Word -> Maybe Word -> m ()
 connect self destination output input
   = liftIO
-      (js_connect (toAudioNode self)
-         (maybeToNullable (fmap toAudioNode destination))
-         output
-         input)
+      (js_connect (toAudioNode self) (toAudioNode destination)
+         (maybeToOptional output)
+         (maybeToOptional input))
  
 foreign import javascript unsafe "$1[\"connect\"]($2, $3)"
         js_connectParam ::
-        AudioNode -> Nullable AudioParam -> Word -> IO ()
+        AudioNode -> AudioParam -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioNode.connect Mozilla AudioNode.connect documentation> 
 connectParam ::
              (MonadIO m, IsAudioNode self) =>
-               self -> Maybe AudioParam -> Word -> m ()
+               self -> AudioParam -> Maybe Word -> m ()
 connectParam self destination output
   = liftIO
-      (js_connectParam (toAudioNode self) (maybeToNullable destination)
-         output)
+      (js_connectParam (toAudioNode self) destination
+         (maybeToOptional output))
  
 foreign import javascript unsafe "$1[\"disconnect\"]($2)"
-        js_disconnect :: AudioNode -> Word -> IO ()
+        js_disconnect :: AudioNode -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioNode.disconnect Mozilla AudioNode.disconnect documentation> 
-disconnect :: (MonadIO m, IsAudioNode self) => self -> Word -> m ()
+disconnect ::
+           (MonadIO m, IsAudioNode self) => self -> Maybe Word -> m ()
 disconnect self output
-  = liftIO (js_disconnect (toAudioNode self) output)
+  = liftIO
+      (js_disconnect (toAudioNode self) (maybeToOptional output))
  
 foreign import javascript unsafe "$1[\"context\"]" js_getContext ::
-        AudioNode -> IO (Nullable AudioContext)
+        AudioNode -> IO AudioContext
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioNode.context Mozilla AudioNode.context documentation> 
 getContext ::
-           (MonadIO m, IsAudioNode self) => self -> m (Maybe AudioContext)
-getContext self
-  = liftIO (nullableToMaybe <$> (js_getContext (toAudioNode self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioNode.context Mozilla AudioNode.context documentation> 
-getContextUnsafe ::
-                 (MonadIO m, IsAudioNode self, HasCallStack) =>
-                   self -> m AudioContext
-getContextUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getContext (toAudioNode self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioNode.context Mozilla AudioNode.context documentation> 
-getContextUnchecked ::
-                    (MonadIO m, IsAudioNode self) => self -> m AudioContext
-getContextUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getContext (toAudioNode self)))
+           (MonadIO m, IsAudioNode self) => self -> m AudioContext
+getContext self = liftIO (js_getContext (toAudioNode self))
  
 foreign import javascript unsafe "$1[\"numberOfInputs\"]"
         js_getNumberOfInputs :: AudioNode -> IO Word
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioParam.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioParam.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioParam.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AudioParam.hs
@@ -8,8 +8,7 @@
         linearRampToValueAtTime, js_exponentialRampToValueAtTime,
         exponentialRampToValueAtTime, js_setTargetAtTime, setTargetAtTime,
         js_setValueCurveAtTime, setValueCurveAtTime,
-        js_cancelScheduledValues, cancelScheduledValues,
-        js_setTargetValueAtTime, setTargetValueAtTime, js_setValue,
+        js_cancelScheduledValues, cancelScheduledValues, js_setValue,
         setValue, js_getValue, getValue, js_getMinValue, getMinValue,
         js_getMaxValue, getMaxValue, js_getDefaultValue, getDefaultValue,
         js_getName, getName, js_getUnits, getUnits, AudioParam(..),
@@ -19,7 +18,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +27,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -40,7 +40,7 @@
 setValueAtTime ::
                (MonadIO m) => AudioParam -> Float -> Float -> m ()
 setValueAtTime self value time
-  = liftIO (js_setValueAtTime (self) value time)
+  = liftIO (js_setValueAtTime self value time)
  
 foreign import javascript unsafe
         "$1[\"linearRampToValueAtTime\"]($2,\n$3)"
@@ -50,7 +50,7 @@
 linearRampToValueAtTime ::
                         (MonadIO m) => AudioParam -> Float -> Float -> m ()
 linearRampToValueAtTime self value time
-  = liftIO (js_linearRampToValueAtTime (self) value time)
+  = liftIO (js_linearRampToValueAtTime self value time)
  
 foreign import javascript unsafe
         "$1[\"exponentialRampToValueAtTime\"]($2,\n$3)"
@@ -61,7 +61,7 @@
 exponentialRampToValueAtTime ::
                              (MonadIO m) => AudioParam -> Float -> Float -> m ()
 exponentialRampToValueAtTime self value time
-  = liftIO (js_exponentialRampToValueAtTime (self) value time)
+  = liftIO (js_exponentialRampToValueAtTime self value time)
  
 foreign import javascript unsafe
         "$1[\"setTargetAtTime\"]($2, $3,\n$4)" js_setTargetAtTime ::
@@ -71,11 +71,11 @@
 setTargetAtTime ::
                 (MonadIO m) => AudioParam -> Float -> Float -> Float -> m ()
 setTargetAtTime self target time timeConstant
-  = liftIO (js_setTargetAtTime (self) target time timeConstant)
+  = liftIO (js_setTargetAtTime self target time timeConstant)
  
 foreign import javascript unsafe
         "$1[\"setValueCurveAtTime\"]($2,\n$3, $4)" js_setValueCurveAtTime
-        :: AudioParam -> Nullable Float32Array -> Float -> Float -> IO ()
+        :: AudioParam -> Optional Float32Array -> Float -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam.setValueCurveAtTime Mozilla AudioParam.setValueCurveAtTime documentation> 
 setValueCurveAtTime ::
@@ -83,8 +83,8 @@
                       AudioParam -> Maybe values -> Float -> Float -> m ()
 setValueCurveAtTime self values time duration
   = liftIO
-      (js_setValueCurveAtTime (self)
-         (maybeToNullable (fmap toFloat32Array values))
+      (js_setValueCurveAtTime self
+         (maybeToOptional (fmap toFloat32Array values))
          time
          duration)
  
@@ -95,53 +95,42 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam.cancelScheduledValues Mozilla AudioParam.cancelScheduledValues documentation> 
 cancelScheduledValues :: (MonadIO m) => AudioParam -> Float -> m ()
 cancelScheduledValues self startTime
-  = liftIO (js_cancelScheduledValues (self) startTime)
- 
-foreign import javascript unsafe
-        "$1[\"setTargetValueAtTime\"]($2,\n$3, $4)" js_setTargetValueAtTime
-        :: AudioParam -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam.setTargetValueAtTime Mozilla AudioParam.setTargetValueAtTime documentation> 
-setTargetValueAtTime ::
-                     (MonadIO m) => AudioParam -> Float -> Float -> Float -> m ()
-setTargetValueAtTime self targetValue time timeConstant
-  = liftIO
-      (js_setTargetValueAtTime (self) targetValue time timeConstant)
+  = liftIO (js_cancelScheduledValues self startTime)
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
         :: AudioParam -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam.value Mozilla AudioParam.value documentation> 
 setValue :: (MonadIO m) => AudioParam -> Float -> m ()
-setValue self val = liftIO (js_setValue (self) val)
+setValue self val = liftIO (js_setValue self val)
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         AudioParam -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam.value Mozilla AudioParam.value documentation> 
 getValue :: (MonadIO m) => AudioParam -> m Float
-getValue self = liftIO (js_getValue (self))
+getValue self = liftIO (js_getValue self)
  
 foreign import javascript unsafe "$1[\"minValue\"]" js_getMinValue
         :: AudioParam -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam.minValue Mozilla AudioParam.minValue documentation> 
 getMinValue :: (MonadIO m) => AudioParam -> m Float
-getMinValue self = liftIO (js_getMinValue (self))
+getMinValue self = liftIO (js_getMinValue self)
  
 foreign import javascript unsafe "$1[\"maxValue\"]" js_getMaxValue
         :: AudioParam -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam.maxValue Mozilla AudioParam.maxValue documentation> 
 getMaxValue :: (MonadIO m) => AudioParam -> m Float
-getMaxValue self = liftIO (js_getMaxValue (self))
+getMaxValue self = liftIO (js_getMaxValue self)
  
 foreign import javascript unsafe "$1[\"defaultValue\"]"
         js_getDefaultValue :: AudioParam -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam.defaultValue Mozilla AudioParam.defaultValue documentation> 
 getDefaultValue :: (MonadIO m) => AudioParam -> m Float
-getDefaultValue self = liftIO (js_getDefaultValue (self))
+getDefaultValue self = liftIO (js_getDefaultValue self)
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         AudioParam -> IO JSString
@@ -149,11 +138,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam.name Mozilla AudioParam.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => AudioParam -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"units\"]" js_getUnits ::
         AudioParam -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam.units Mozilla AudioParam.units documentation> 
 getUnits :: (MonadIO m) => AudioParam -> m Word
-getUnits self = liftIO (js_getUnits (self))
+getUnits self = liftIO (js_getUnits self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioProcessingEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioProcessingEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioProcessingEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AudioProcessingEvent.hs
@@ -5,16 +5,14 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.AudioProcessingEvent
        (js_getPlaybackTime, getPlaybackTime, js_getInputBuffer,
-        getInputBuffer, getInputBufferUnsafe, getInputBufferUnchecked,
-        js_getOutputBuffer, getOutputBuffer, getOutputBufferUnsafe,
-        getOutputBufferUnchecked, AudioProcessingEvent(..),
-        gTypeAudioProcessingEvent)
+        getInputBuffer, js_getOutputBuffer, getOutputBuffer,
+        AudioProcessingEvent(..), gTypeAudioProcessingEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,54 +32,20 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent.playbackTime Mozilla AudioProcessingEvent.playbackTime documentation> 
 getPlaybackTime :: (MonadIO m) => AudioProcessingEvent -> m Double
-getPlaybackTime self = liftIO (js_getPlaybackTime (self))
+getPlaybackTime self = liftIO (js_getPlaybackTime self)
  
 foreign import javascript unsafe "$1[\"inputBuffer\"]"
-        js_getInputBuffer ::
-        AudioProcessingEvent -> IO (Nullable AudioBuffer)
+        js_getInputBuffer :: AudioProcessingEvent -> IO AudioBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent.inputBuffer Mozilla AudioProcessingEvent.inputBuffer documentation> 
 getInputBuffer ::
-               (MonadIO m) => AudioProcessingEvent -> m (Maybe AudioBuffer)
-getInputBuffer self
-  = liftIO (nullableToMaybe <$> (js_getInputBuffer (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent.inputBuffer Mozilla AudioProcessingEvent.inputBuffer documentation> 
-getInputBufferUnsafe ::
-                     (MonadIO m, HasCallStack) => AudioProcessingEvent -> m AudioBuffer
-getInputBufferUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getInputBuffer (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent.inputBuffer Mozilla AudioProcessingEvent.inputBuffer documentation> 
-getInputBufferUnchecked ::
-                        (MonadIO m) => AudioProcessingEvent -> m AudioBuffer
-getInputBufferUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getInputBuffer (self)))
+               (MonadIO m) => AudioProcessingEvent -> m AudioBuffer
+getInputBuffer self = liftIO (js_getInputBuffer self)
  
 foreign import javascript unsafe "$1[\"outputBuffer\"]"
-        js_getOutputBuffer ::
-        AudioProcessingEvent -> IO (Nullable AudioBuffer)
+        js_getOutputBuffer :: AudioProcessingEvent -> IO AudioBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent.outputBuffer Mozilla AudioProcessingEvent.outputBuffer documentation> 
 getOutputBuffer ::
-                (MonadIO m) => AudioProcessingEvent -> m (Maybe AudioBuffer)
-getOutputBuffer self
-  = liftIO (nullableToMaybe <$> (js_getOutputBuffer (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent.outputBuffer Mozilla AudioProcessingEvent.outputBuffer documentation> 
-getOutputBufferUnsafe ::
-                      (MonadIO m, HasCallStack) => AudioProcessingEvent -> m AudioBuffer
-getOutputBufferUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOutputBuffer (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent.outputBuffer Mozilla AudioProcessingEvent.outputBuffer documentation> 
-getOutputBufferUnchecked ::
-                         (MonadIO m) => AudioProcessingEvent -> m AudioBuffer
-getOutputBufferUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getOutputBuffer (self)))
+                (MonadIO m) => AudioProcessingEvent -> m AudioBuffer
+getOutputBuffer self = liftIO (js_getOutputBuffer self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioStreamTrack.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioStreamTrack.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioStreamTrack.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.AudioStreamTrack
-       (js_newAudioStreamTrack, newAudioStreamTrack, AudioStreamTrack(..),
-        gTypeAudioStreamTrack)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe
-        "new window[\"AudioStreamTrack\"]($1)" js_newAudioStreamTrack ::
-        Nullable Dictionary -> IO AudioStreamTrack
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioStreamTrack Mozilla AudioStreamTrack documentation> 
-newAudioStreamTrack ::
-                    (MonadIO m, IsDictionary audioConstraints) =>
-                      Maybe audioConstraints -> m AudioStreamTrack
-newAudioStreamTrack audioConstraints
-  = liftIO
-      (js_newAudioStreamTrack
-         (maybeToNullable (fmap toDictionary audioConstraints)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioTrack.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioTrack.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioTrack.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AudioTrack.hs
@@ -7,14 +7,14 @@
        (js_getId, getId, js_setKind, setKind, js_getKind, getKind,
         js_getLabel, getLabel, js_setLanguage, setLanguage, js_getLanguage,
         getLanguage, js_setEnabled, setEnabled, js_getEnabled, getEnabled,
-        js_getSourceBuffer, getSourceBuffer, getSourceBufferUnsafe,
-        getSourceBufferUnchecked, AudioTrack(..), gTypeAudioTrack)
+        js_getSourceBuffer, getSourceBuffer, AudioTrack(..),
+        gTypeAudioTrack)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,14 +34,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack.id Mozilla AudioTrack.id documentation> 
 getId :: (MonadIO m, FromJSString result) => AudioTrack -> m result
-getId self = liftIO (fromJSString <$> (js_getId (self)))
+getId self = liftIO (fromJSString <$> (js_getId self))
  
 foreign import javascript unsafe "$1[\"kind\"] = $2;" js_setKind ::
         AudioTrack -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack.kind Mozilla AudioTrack.kind documentation> 
 setKind :: (MonadIO m, ToJSString val) => AudioTrack -> val -> m ()
-setKind self val = liftIO (js_setKind (self) (toJSString val))
+setKind self val = liftIO (js_setKind self (toJSString val))
  
 foreign import javascript unsafe "$1[\"kind\"]" js_getKind ::
         AudioTrack -> IO JSString
@@ -48,7 +49,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack.kind Mozilla AudioTrack.kind documentation> 
 getKind ::
         (MonadIO m, FromJSString result) => AudioTrack -> m result
-getKind self = liftIO (fromJSString <$> (js_getKind (self)))
+getKind self = liftIO (fromJSString <$> (js_getKind self))
  
 foreign import javascript unsafe "$1[\"label\"]" js_getLabel ::
         AudioTrack -> IO JSString
@@ -56,7 +57,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack.label Mozilla AudioTrack.label documentation> 
 getLabel ::
          (MonadIO m, FromJSString result) => AudioTrack -> m result
-getLabel self = liftIO (fromJSString <$> (js_getLabel (self)))
+getLabel self = liftIO (fromJSString <$> (js_getLabel self))
  
 foreign import javascript unsafe "$1[\"language\"] = $2;"
         js_setLanguage :: AudioTrack -> JSString -> IO ()
@@ -65,7 +66,7 @@
 setLanguage ::
             (MonadIO m, ToJSString val) => AudioTrack -> val -> m ()
 setLanguage self val
-  = liftIO (js_setLanguage (self) (toJSString val))
+  = liftIO (js_setLanguage self (toJSString val))
  
 foreign import javascript unsafe "$1[\"language\"]" js_getLanguage
         :: AudioTrack -> IO JSString
@@ -73,43 +74,25 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack.language Mozilla AudioTrack.language documentation> 
 getLanguage ::
             (MonadIO m, FromJSString result) => AudioTrack -> m result
-getLanguage self
-  = liftIO (fromJSString <$> (js_getLanguage (self)))
+getLanguage self = liftIO (fromJSString <$> (js_getLanguage self))
  
 foreign import javascript unsafe "$1[\"enabled\"] = $2;"
         js_setEnabled :: AudioTrack -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack.enabled Mozilla AudioTrack.enabled documentation> 
 setEnabled :: (MonadIO m) => AudioTrack -> Bool -> m ()
-setEnabled self val = liftIO (js_setEnabled (self) val)
+setEnabled self val = liftIO (js_setEnabled self val)
  
 foreign import javascript unsafe "($1[\"enabled\"] ? 1 : 0)"
         js_getEnabled :: AudioTrack -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack.enabled Mozilla AudioTrack.enabled documentation> 
 getEnabled :: (MonadIO m) => AudioTrack -> m Bool
-getEnabled self = liftIO (js_getEnabled (self))
+getEnabled self = liftIO (js_getEnabled self)
  
 foreign import javascript unsafe "$1[\"sourceBuffer\"]"
-        js_getSourceBuffer :: AudioTrack -> IO (Nullable SourceBuffer)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack.sourceBuffer Mozilla AudioTrack.sourceBuffer documentation> 
-getSourceBuffer ::
-                (MonadIO m) => AudioTrack -> m (Maybe SourceBuffer)
-getSourceBuffer self
-  = liftIO (nullableToMaybe <$> (js_getSourceBuffer (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack.sourceBuffer Mozilla AudioTrack.sourceBuffer documentation> 
-getSourceBufferUnsafe ::
-                      (MonadIO m, HasCallStack) => AudioTrack -> m SourceBuffer
-getSourceBufferUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSourceBuffer (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getSourceBuffer :: AudioTrack -> IO SourceBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack.sourceBuffer Mozilla AudioTrack.sourceBuffer documentation> 
-getSourceBufferUnchecked ::
-                         (MonadIO m) => AudioTrack -> m SourceBuffer
-getSourceBufferUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSourceBuffer (self)))
+getSourceBuffer :: (MonadIO m) => AudioTrack -> m SourceBuffer
+getSourceBuffer self = liftIO (js_getSourceBuffer self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AudioTrackList.hs b/src/GHCJS/DOM/JSFFI/Generated/AudioTrackList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AudioTrackList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AudioTrackList.hs
@@ -4,16 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.AudioTrackList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getTrackById,
-        getTrackById, getTrackById_, getTrackByIdUnsafe,
-        getTrackByIdUnchecked, js_getLength, getLength, change, addTrack,
+       (js_item, item, item_, js_getTrackById, getTrackById,
+        getTrackById_, js_getLength, getLength, change, addTrack,
         removeTrack, AudioTrackList(..), gTypeAudioTrackList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,79 +21,44 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        AudioTrackList -> Word -> IO (Nullable AudioTrack)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        AudioTrackList -> Word -> IO AudioTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList.item Mozilla AudioTrackList.item documentation> 
-item ::
-     (MonadIO m) => AudioTrackList -> Word -> m (Maybe AudioTrack)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item :: (MonadIO m) => AudioTrackList -> Word -> m AudioTrack
+item self index = liftIO (js_item self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList.item Mozilla AudioTrackList.item documentation> 
 item_ :: (MonadIO m) => AudioTrackList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList.item Mozilla AudioTrackList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, HasCallStack) => AudioTrackList -> Word -> m AudioTrack
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList.item Mozilla AudioTrackList.item documentation> 
-itemUnchecked ::
-              (MonadIO m) => AudioTrackList -> Word -> m AudioTrack
-itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"getTrackById\"]($2)"
-        js_getTrackById ::
-        AudioTrackList -> JSString -> IO (Nullable AudioTrack)
+        js_getTrackById :: AudioTrackList -> JSString -> IO AudioTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList.getTrackById Mozilla AudioTrackList.getTrackById documentation> 
 getTrackById ::
-             (MonadIO m, ToJSString id) =>
-               AudioTrackList -> id -> m (Maybe AudioTrack)
+             (MonadIO m, ToJSString id) => AudioTrackList -> id -> m AudioTrack
 getTrackById self id
-  = liftIO
-      (nullableToMaybe <$> (js_getTrackById (self) (toJSString id)))
+  = liftIO (js_getTrackById self (toJSString id))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList.getTrackById Mozilla AudioTrackList.getTrackById documentation> 
 getTrackById_ ::
               (MonadIO m, ToJSString id) => AudioTrackList -> id -> m ()
 getTrackById_ self id
-  = liftIO (void (js_getTrackById (self) (toJSString id)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList.getTrackById Mozilla AudioTrackList.getTrackById documentation> 
-getTrackByIdUnsafe ::
-                   (MonadIO m, ToJSString id, HasCallStack) =>
-                     AudioTrackList -> id -> m AudioTrack
-getTrackByIdUnsafe self id
-  = liftIO
-      ((nullableToMaybe <$> (js_getTrackById (self) (toJSString id))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList.getTrackById Mozilla AudioTrackList.getTrackById documentation> 
-getTrackByIdUnchecked ::
-                      (MonadIO m, ToJSString id) => AudioTrackList -> id -> m AudioTrack
-getTrackByIdUnchecked self id
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTrackById (self) (toJSString id)))
+  = liftIO (void (js_getTrackById self (toJSString id)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         AudioTrackList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList.length Mozilla AudioTrackList.length documentation> 
 getLength :: (MonadIO m) => AudioTrackList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList.onchange Mozilla AudioTrackList.onchange documentation> 
 change :: EventName AudioTrackList Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/AutocompleteErrorEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/AutocompleteErrorEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/AutocompleteErrorEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/AutocompleteErrorEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.AutocompleteErrorEvent
-       (js_getReason, getReason, AutocompleteErrorEvent(..),
+       (js_newAutocompleteErrorEvent, newAutocompleteErrorEvent,
+        js_getReason, getReason, AutocompleteErrorEvent(..),
         gTypeAutocompleteErrorEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,11 +21,28 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"AutocompleteErrorEvent\"]($1,\n$2)"
+        js_newAutocompleteErrorEvent ::
+        JSString ->
+          Optional AutocompleteErrorEventInit -> IO AutocompleteErrorEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/AutocompleteErrorEvent Mozilla AutocompleteErrorEvent documentation> 
+newAutocompleteErrorEvent ::
+                          (MonadIO m, ToJSString type') =>
+                            type' ->
+                              Maybe AutocompleteErrorEventInit -> m AutocompleteErrorEvent
+newAutocompleteErrorEvent type' eventInitDict
+  = liftIO
+      (js_newAutocompleteErrorEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"reason\"]" js_getReason ::
         AutocompleteErrorEvent -> IO JSString
 
@@ -32,4 +50,4 @@
 getReason ::
           (MonadIO m, FromJSString result) =>
             AutocompleteErrorEvent -> m result
-getReason self = liftIO (fromJSString <$> (js_getReason (self)))
+getReason self = liftIO (fromJSString <$> (js_getReason self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/BarProp.hs b/src/GHCJS/DOM/JSFFI/Generated/BarProp.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/BarProp.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/BarProp.hs
@@ -9,7 +9,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -18,6 +18,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,4 +29,4 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/BarProp.visible Mozilla BarProp.visible documentation> 
 getVisible :: (MonadIO m) => BarProp -> m Bool
-getVisible self = liftIO (js_getVisible (self))
+getVisible self = liftIO (js_getVisible self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/BatteryManager.hs b/src/GHCJS/DOM/JSFFI/Generated/BatteryManager.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/BatteryManager.hs
+++ /dev/null
@@ -1,74 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.BatteryManager
-       (js_getCharging, getCharging, js_getChargingTime, getChargingTime,
-        js_getDischargingTime, getDischargingTime, js_getLevel, getLevel,
-        chargingChange, chargingTimeChange, dischargingTimeChange,
-        levelChange, BatteryManager(..), gTypeBatteryManager)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "($1[\"charging\"] ? 1 : 0)"
-        js_getCharging :: BatteryManager -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager.charging Mozilla BatteryManager.charging documentation> 
-getCharging :: (MonadIO m) => BatteryManager -> m Bool
-getCharging self = liftIO (js_getCharging (self))
- 
-foreign import javascript unsafe "$1[\"chargingTime\"]"
-        js_getChargingTime :: BatteryManager -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager.chargingTime Mozilla BatteryManager.chargingTime documentation> 
-getChargingTime :: (MonadIO m) => BatteryManager -> m Double
-getChargingTime self = liftIO (js_getChargingTime (self))
- 
-foreign import javascript unsafe "$1[\"dischargingTime\"]"
-        js_getDischargingTime :: BatteryManager -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager.dischargingTime Mozilla BatteryManager.dischargingTime documentation> 
-getDischargingTime :: (MonadIO m) => BatteryManager -> m Double
-getDischargingTime self = liftIO (js_getDischargingTime (self))
- 
-foreign import javascript unsafe "$1[\"level\"]" js_getLevel ::
-        BatteryManager -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager.level Mozilla BatteryManager.level documentation> 
-getLevel :: (MonadIO m) => BatteryManager -> m Double
-getLevel self = liftIO (js_getLevel (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager.onchargingchange Mozilla BatteryManager.onchargingchange documentation> 
-chargingChange :: EventName BatteryManager Event
-chargingChange = unsafeEventName (toJSString "chargingchange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager.onchargingtimechange Mozilla BatteryManager.onchargingtimechange documentation> 
-chargingTimeChange :: EventName BatteryManager Event
-chargingTimeChange
-  = unsafeEventName (toJSString "chargingtimechange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager.ondischargingtimechange Mozilla BatteryManager.ondischargingtimechange documentation> 
-dischargingTimeChange :: EventName BatteryManager Event
-dischargingTimeChange
-  = unsafeEventName (toJSString "dischargingtimechange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager.onlevelchange Mozilla BatteryManager.onlevelchange documentation> 
-levelChange :: EventName BatteryManager Event
-levelChange = unsafeEventName (toJSString "levelchange")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/BeforeLoadEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/BeforeLoadEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/BeforeLoadEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/BeforeLoadEvent.hs
@@ -4,13 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.BeforeLoadEvent
-       (js_getUrl, getUrl, BeforeLoadEvent(..), gTypeBeforeLoadEvent)
+       (js_newBeforeLoadEvent, newBeforeLoadEvent, js_getUrl, getUrl,
+        BeforeLoadEvent(..), gTypeBeforeLoadEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -19,15 +20,29 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"BeforeLoadEvent\"]($1,\n$2)" js_newBeforeLoadEvent ::
+        JSString -> Optional BeforeLoadEventInit -> IO BeforeLoadEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/BeforeLoadEvent Mozilla BeforeLoadEvent documentation> 
+newBeforeLoadEvent ::
+                   (MonadIO m, ToJSString type') =>
+                     type' -> Maybe BeforeLoadEventInit -> m BeforeLoadEvent
+newBeforeLoadEvent type' eventInitDict
+  = liftIO
+      (js_newBeforeLoadEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"url\"]" js_getUrl ::
         BeforeLoadEvent -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/BeforeLoadEvent.url Mozilla BeforeLoadEvent.url documentation> 
 getUrl ::
        (MonadIO m, FromJSString result) => BeforeLoadEvent -> m result
-getUrl self = liftIO (fromJSString <$> (js_getUrl (self)))
+getUrl self = liftIO (fromJSString <$> (js_getUrl self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/BeforeUnloadEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/BeforeUnloadEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/BeforeUnloadEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/BeforeUnloadEvent.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,7 +33,7 @@
 setReturnValue ::
                (MonadIO m, ToJSString val) => BeforeUnloadEvent -> val -> m ()
 setReturnValue self val
-  = liftIO (js_setReturnValue (self) (toJSString val))
+  = liftIO (js_setReturnValue self (toJSString val))
  
 foreign import javascript unsafe "$1[\"returnValue\"]"
         js_getReturnValue :: BeforeUnloadEvent -> IO JSString
@@ -41,4 +42,4 @@
 getReturnValue ::
                (MonadIO m, FromJSString result) => BeforeUnloadEvent -> m result
 getReturnValue self
-  = liftIO (fromJSString <$> (js_getReturnValue (self)))
+  = liftIO (fromJSString <$> (js_getReturnValue self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/BiquadFilterNode.hs b/src/GHCJS/DOM/JSFFI/Generated/BiquadFilterNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/BiquadFilterNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/BiquadFilterNode.hs
@@ -4,21 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.BiquadFilterNode
-       (js_getFrequencyResponse, getFrequencyResponse, pattern LOWPASS,
-        pattern HIGHPASS, pattern BANDPASS, pattern LOWSHELF,
-        pattern HIGHSHELF, pattern PEAKING, pattern NOTCH, pattern ALLPASS,
-        js_setType, setType, js_getType, getType, js_getFrequency,
-        getFrequency, getFrequencyUnsafe, getFrequencyUnchecked,
-        js_getDetune, getDetune, getDetuneUnsafe, getDetuneUnchecked,
-        js_getQ, getQ, getQUnsafe, getQUnchecked, js_getGain, getGain,
-        getGainUnsafe, getGainUnchecked, BiquadFilterNode(..),
-        gTypeBiquadFilterNode)
+       (js_getFrequencyResponse, getFrequencyResponse, js_setType,
+        setType, js_getType, getType, js_getFrequency, getFrequency,
+        js_getDetune, getDetune, js_getQ, getQ, js_getGain, getGain,
+        BiquadFilterNode(..), gTypeBiquadFilterNode)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -36,8 +32,8 @@
         "$1[\"getFrequencyResponse\"]($2,\n$3, $4)" js_getFrequencyResponse
         ::
         BiquadFilterNode ->
-          Nullable Float32Array ->
-            Nullable Float32Array -> Nullable Float32Array -> IO ()
+          Optional Float32Array ->
+            Optional Float32Array -> Optional Float32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.getFrequencyResponse Mozilla BiquadFilterNode.getFrequencyResponse documentation> 
 getFrequencyResponse ::
@@ -48,116 +44,50 @@
                            Maybe magResponse -> Maybe phaseResponse -> m ()
 getFrequencyResponse self frequencyHz magResponse phaseResponse
   = liftIO
-      (js_getFrequencyResponse (self)
-         (maybeToNullable (fmap toFloat32Array frequencyHz))
-         (maybeToNullable (fmap toFloat32Array magResponse))
-         (maybeToNullable (fmap toFloat32Array phaseResponse)))
-pattern LOWPASS = 0
-pattern HIGHPASS = 1
-pattern BANDPASS = 2
-pattern LOWSHELF = 3
-pattern HIGHSHELF = 4
-pattern PEAKING = 5
-pattern NOTCH = 6
-pattern ALLPASS = 7
+      (js_getFrequencyResponse self
+         (maybeToOptional (fmap toFloat32Array frequencyHz))
+         (maybeToOptional (fmap toFloat32Array magResponse))
+         (maybeToOptional (fmap toFloat32Array phaseResponse)))
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
-        BiquadFilterNode -> JSString -> IO ()
+        BiquadFilterNode -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.type Mozilla BiquadFilterNode.type documentation> 
 setType ::
-        (MonadIO m, ToJSString val) => BiquadFilterNode -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+        (MonadIO m) => BiquadFilterNode -> BiquadFilterType -> m ()
+setType self val = liftIO (js_setType self (pToJSVal val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
-        BiquadFilterNode -> IO JSString
+        BiquadFilterNode -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.type Mozilla BiquadFilterNode.type documentation> 
-getType ::
-        (MonadIO m, FromJSString result) => BiquadFilterNode -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType :: (MonadIO m) => BiquadFilterNode -> m BiquadFilterType
+getType self = liftIO ((js_getType self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "$1[\"frequency\"]"
-        js_getFrequency :: BiquadFilterNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.frequency Mozilla BiquadFilterNode.frequency documentation> 
-getFrequency ::
-             (MonadIO m) => BiquadFilterNode -> m (Maybe AudioParam)
-getFrequency self
-  = liftIO (nullableToMaybe <$> (js_getFrequency (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.frequency Mozilla BiquadFilterNode.frequency documentation> 
-getFrequencyUnsafe ::
-                   (MonadIO m, HasCallStack) => BiquadFilterNode -> m AudioParam
-getFrequencyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFrequency (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getFrequency :: BiquadFilterNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.frequency Mozilla BiquadFilterNode.frequency documentation> 
-getFrequencyUnchecked ::
-                      (MonadIO m) => BiquadFilterNode -> m AudioParam
-getFrequencyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFrequency (self)))
+getFrequency :: (MonadIO m) => BiquadFilterNode -> m AudioParam
+getFrequency self = liftIO (js_getFrequency self)
  
 foreign import javascript unsafe "$1[\"detune\"]" js_getDetune ::
-        BiquadFilterNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.detune Mozilla BiquadFilterNode.detune documentation> 
-getDetune ::
-          (MonadIO m) => BiquadFilterNode -> m (Maybe AudioParam)
-getDetune self = liftIO (nullableToMaybe <$> (js_getDetune (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.detune Mozilla BiquadFilterNode.detune documentation> 
-getDetuneUnsafe ::
-                (MonadIO m, HasCallStack) => BiquadFilterNode -> m AudioParam
-getDetuneUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDetune (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        BiquadFilterNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.detune Mozilla BiquadFilterNode.detune documentation> 
-getDetuneUnchecked ::
-                   (MonadIO m) => BiquadFilterNode -> m AudioParam
-getDetuneUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getDetune (self)))
+getDetune :: (MonadIO m) => BiquadFilterNode -> m AudioParam
+getDetune self = liftIO (js_getDetune self)
  
 foreign import javascript unsafe "$1[\"Q\"]" js_getQ ::
-        BiquadFilterNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.Q Mozilla BiquadFilterNode.Q documentation> 
-getQ :: (MonadIO m) => BiquadFilterNode -> m (Maybe AudioParam)
-getQ self = liftIO (nullableToMaybe <$> (js_getQ (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.Q Mozilla BiquadFilterNode.Q documentation> 
-getQUnsafe ::
-           (MonadIO m, HasCallStack) => BiquadFilterNode -> m AudioParam
-getQUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getQ (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        BiquadFilterNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.Q Mozilla BiquadFilterNode.Q documentation> 
-getQUnchecked :: (MonadIO m) => BiquadFilterNode -> m AudioParam
-getQUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getQ (self)))
+getQ :: (MonadIO m) => BiquadFilterNode -> m AudioParam
+getQ self = liftIO (js_getQ self)
  
 foreign import javascript unsafe "$1[\"gain\"]" js_getGain ::
-        BiquadFilterNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.gain Mozilla BiquadFilterNode.gain documentation> 
-getGain :: (MonadIO m) => BiquadFilterNode -> m (Maybe AudioParam)
-getGain self = liftIO (nullableToMaybe <$> (js_getGain (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.gain Mozilla BiquadFilterNode.gain documentation> 
-getGainUnsafe ::
-              (MonadIO m, HasCallStack) => BiquadFilterNode -> m AudioParam
-getGainUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getGain (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        BiquadFilterNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode.gain Mozilla BiquadFilterNode.gain documentation> 
-getGainUnchecked :: (MonadIO m) => BiquadFilterNode -> m AudioParam
-getGainUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getGain (self)))
+getGain :: (MonadIO m) => BiquadFilterNode -> m AudioParam
+getGain self = liftIO (js_getGain self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Blob.hs b/src/GHCJS/DOM/JSFFI/Generated/Blob.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Blob.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Blob.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Blob
-       (js_newBlob, newBlob, js_newBlob', newBlob', js_slice, slice,
-        slice_, sliceUnsafe, sliceUnchecked, js_getSize, getSize,
+       (js_newBlob, newBlob, js_slice, slice, slice_, js_getSize, getSize,
         js_getType, getType, Blob(..), gTypeBlob, IsBlob, toBlob)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,74 +20,49 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "new window[\"Blob\"]()"
-        js_newBlob :: IO Blob
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Blob Mozilla Blob documentation> 
-newBlob :: (MonadIO m) => m Blob
-newBlob = liftIO (js_newBlob)
- 
 foreign import javascript unsafe "new window[\"Blob\"]($1, $2)"
-        js_newBlob' :: JSVal -> Nullable BlobPropertyBag -> IO Blob
+        js_newBlob :: JSVal -> Optional BlobPropertyBag -> IO Blob
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Blob Mozilla Blob documentation> 
-newBlob' ::
-         (MonadIO m, IsBlobPropertyBag options) =>
-           [JSVal] -> Maybe options -> m Blob
-newBlob' blobParts options
+newBlob ::
+        (MonadIO m, IsBlobPart blobParts, IsBlobPropertyBag options) =>
+          [blobParts] -> Maybe options -> m Blob
+newBlob blobParts options
   = liftIO
-      (toJSVal blobParts >>= \ blobParts' -> js_newBlob' blobParts'
-         (maybeToNullable (fmap toBlobPropertyBag options)))
+      (toJSVal blobParts >>= \ blobParts' -> js_newBlob blobParts'
+         (maybeToOptional (fmap toBlobPropertyBag options)))
  
 foreign import javascript unsafe "$1[\"slice\"]($2, $3, $4)"
         js_slice ::
-        Blob -> Double -> Double -> Nullable JSString -> IO (Nullable Blob)
+        Blob ->
+          Optional Double -> Optional Double -> Optional JSString -> IO Blob
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Blob.slice Mozilla Blob.slice documentation> 
 slice ::
       (MonadIO m, IsBlob self, ToJSString contentType) =>
-        self -> Int64 -> Int64 -> Maybe contentType -> m (Maybe Blob)
+        self -> Maybe Int64 -> Maybe Int64 -> Maybe contentType -> m Blob
 slice self start end contentType
   = liftIO
-      (nullableToMaybe <$>
-         (js_slice (toBlob self) (fromIntegral start) (fromIntegral end)
-            (toMaybeJSString contentType)))
+      (js_slice (toBlob self) (maybeToOptional (fmap fromIntegral start))
+         (maybeToOptional (fmap fromIntegral end))
+         (toOptionalJSString contentType))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Blob.slice Mozilla Blob.slice documentation> 
 slice_ ::
        (MonadIO m, IsBlob self, ToJSString contentType) =>
-         self -> Int64 -> Int64 -> Maybe contentType -> m ()
+         self -> Maybe Int64 -> Maybe Int64 -> Maybe contentType -> m ()
 slice_ self start end contentType
   = liftIO
       (void
-         (js_slice (toBlob self) (fromIntegral start) (fromIntegral end)
-            (toMaybeJSString contentType)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Blob.slice Mozilla Blob.slice documentation> 
-sliceUnsafe ::
-            (MonadIO m, IsBlob self, ToJSString contentType, HasCallStack) =>
-              self -> Int64 -> Int64 -> Maybe contentType -> m Blob
-sliceUnsafe self start end contentType
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_slice (toBlob self) (fromIntegral start) (fromIntegral end)
-             (toMaybeJSString contentType)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Blob.slice Mozilla Blob.slice documentation> 
-sliceUnchecked ::
-               (MonadIO m, IsBlob self, ToJSString contentType) =>
-                 self -> Int64 -> Int64 -> Maybe contentType -> m Blob
-sliceUnchecked self start end contentType
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_slice (toBlob self) (fromIntegral start) (fromIntegral end)
-            (toMaybeJSString contentType)))
+         (js_slice (toBlob self) (maybeToOptional (fmap fromIntegral start))
+            (maybeToOptional (fmap fromIntegral end))
+            (toOptionalJSString contentType)))
  
 foreign import javascript unsafe "$1[\"size\"]" js_getSize ::
         Blob -> IO Double
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Body.hs b/src/GHCJS/DOM/JSFFI/Generated/Body.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/Body.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.Body
+       (js_arrayBuffer, arrayBuffer, arrayBuffer_, js_blob, blob, blob_,
+        js_json, json, json_, js_text, text, text_, js_getBodyUsed,
+        getBodyUsed, Body(..), gTypeBody, IsBody, toBody)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript interruptible
+        "$1[\"arrayBuffer\"]().then($c);" js_arrayBuffer ::
+        Body -> IO ArrayBuffer
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Body.arrayBuffer Mozilla Body.arrayBuffer documentation> 
+arrayBuffer :: (MonadIO m, IsBody self) => self -> m ArrayBuffer
+arrayBuffer self = liftIO (js_arrayBuffer (toBody self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Body.arrayBuffer Mozilla Body.arrayBuffer documentation> 
+arrayBuffer_ :: (MonadIO m, IsBody self) => self -> m ()
+arrayBuffer_ self = liftIO (void (js_arrayBuffer (toBody self)))
+ 
+foreign import javascript interruptible
+        "$1[\"blob\"]().then($c);" js_blob :: Body -> IO Blob
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Body.blob Mozilla Body.blob documentation> 
+blob :: (MonadIO m, IsBody self) => self -> m Blob
+blob self = liftIO (js_blob (toBody self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Body.blob Mozilla Body.blob documentation> 
+blob_ :: (MonadIO m, IsBody self) => self -> m ()
+blob_ self = liftIO (void (js_blob (toBody self)))
+ 
+foreign import javascript interruptible
+        "$1[\"json\"]().then($c);" js_json :: Body -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Body.json Mozilla Body.json documentation> 
+json :: (MonadIO m, IsBody self) => self -> m JSVal
+json self = liftIO (js_json (toBody self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Body.json Mozilla Body.json documentation> 
+json_ :: (MonadIO m, IsBody self) => self -> m ()
+json_ self = liftIO (void (js_json (toBody self)))
+ 
+foreign import javascript interruptible
+        "$1[\"text\"]().then($c);" js_text :: Body -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Body.text Mozilla Body.text documentation> 
+text ::
+     (MonadIO m, IsBody self, FromJSString result) => self -> m result
+text self = liftIO (fromJSString <$> (js_text (toBody self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Body.text Mozilla Body.text documentation> 
+text_ :: (MonadIO m, IsBody self) => self -> m ()
+text_ self = liftIO (void (js_text (toBody self)))
+ 
+foreign import javascript unsafe "($1[\"bodyUsed\"] ? 1 : 0)"
+        js_getBodyUsed :: Body -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Body.bodyUsed Mozilla Body.bodyUsed documentation> 
+getBodyUsed :: (MonadIO m, IsBody self) => self -> m Bool
+getBodyUsed self = liftIO (js_getBodyUsed (toBody self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ByteLengthQueuingStrategy.hs b/src/GHCJS/DOM/JSFFI/Generated/ByteLengthQueuingStrategy.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ByteLengthQueuingStrategy.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ByteLengthQueuingStrategy
+       (js_newByteLengthQueuingStrategy, newByteLengthQueuingStrategy,
+        js_size, size, size_, ByteLengthQueuingStrategy(..),
+        gTypeByteLengthQueuingStrategy)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"ByteLengthQueuingStrategy\"]()"
+        js_newByteLengthQueuingStrategy :: IO ByteLengthQueuingStrategy
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ByteLengthQueuingStrategy Mozilla ByteLengthQueuingStrategy documentation> 
+newByteLengthQueuingStrategy ::
+                             (MonadIO m) => m ByteLengthQueuingStrategy
+newByteLengthQueuingStrategy
+  = liftIO (js_newByteLengthQueuingStrategy)
+ 
+foreign import javascript unsafe "$1[\"size\"]()" js_size ::
+        ByteLengthQueuingStrategy -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ByteLengthQueuingStrategy.size Mozilla ByteLengthQueuingStrategy.size documentation> 
+size :: (MonadIO m) => ByteLengthQueuingStrategy -> m Double
+size self = liftIO (js_size self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ByteLengthQueuingStrategy.size Mozilla ByteLengthQueuingStrategy.size documentation> 
+size_ :: (MonadIO m) => ByteLengthQueuingStrategy -> m ()
+size_ self = liftIO (void (js_size self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSS.hs b/src/GHCJS/DOM/JSFFI/Generated/CSS.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSS.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSS.hs
@@ -5,13 +5,13 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CSS
        (js_supports2, supports2, supports2_, js_supports, supports,
-        supports_, CSS(..), gTypeCSS)
+        supports_, js_escape, escape, escape_, CSS(..), gTypeCSS)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -35,7 +36,7 @@
             CSS -> property -> value -> m Bool
 supports2 self property value
   = liftIO
-      (js_supports2 (self) (toJSString property) (toJSString value))
+      (js_supports2 self (toJSString property) (toJSString value))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSS.supports Mozilla CSS.supports documentation> 
 supports2_ ::
@@ -43,8 +44,7 @@
              CSS -> property -> value -> m ()
 supports2_ self property value
   = liftIO
-      (void
-         (js_supports2 (self) (toJSString property) (toJSString value)))
+      (void (js_supports2 self (toJSString property) (toJSString value)))
  
 foreign import javascript unsafe "($1[\"supports\"]($2) ? 1 : 0)"
         js_supports :: CSS -> JSString -> IO Bool
@@ -54,11 +54,26 @@
          (MonadIO m, ToJSString conditionText) =>
            CSS -> conditionText -> m Bool
 supports self conditionText
-  = liftIO (js_supports (self) (toJSString conditionText))
+  = liftIO (js_supports self (toJSString conditionText))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSS.supports Mozilla CSS.supports documentation> 
 supports_ ::
           (MonadIO m, ToJSString conditionText) =>
             CSS -> conditionText -> m ()
 supports_ self conditionText
-  = liftIO (void (js_supports (self) (toJSString conditionText)))
+  = liftIO (void (js_supports self (toJSString conditionText)))
+ 
+foreign import javascript unsafe "$1[\"escape\"]($2)" js_escape ::
+        CSS -> JSString -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSS.escape Mozilla CSS.escape documentation> 
+escape ::
+       (MonadIO m, ToJSString ident, FromJSString result) =>
+         CSS -> ident -> m result
+escape self ident
+  = liftIO (fromJSString <$> (js_escape self (toJSString ident)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSS.escape Mozilla CSS.escape documentation> 
+escape_ :: (MonadIO m, ToJSString ident) => CSS -> ident -> m ()
+escape_ self ident
+  = liftIO (void (js_escape self (toJSString ident)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSCharsetRule.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSCharsetRule.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSCharsetRule.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.CSSCharsetRule
-       (js_setEncoding, setEncoding, js_getEncoding, getEncoding,
-        getEncodingUnsafe, getEncodingUnchecked, CSSCharsetRule(..),
-        gTypeCSSCharsetRule)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"encoding\"] = $2;"
-        js_setEncoding :: CSSCharsetRule -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSCharsetRule.encoding Mozilla CSSCharsetRule.encoding documentation> 
-setEncoding ::
-            (MonadIO m, ToJSString val) => CSSCharsetRule -> Maybe val -> m ()
-setEncoding self val
-  = liftIO (js_setEncoding (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"encoding\"]" js_getEncoding
-        :: CSSCharsetRule -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSCharsetRule.encoding Mozilla CSSCharsetRule.encoding documentation> 
-getEncoding ::
-            (MonadIO m, FromJSString result) =>
-              CSSCharsetRule -> m (Maybe result)
-getEncoding self
-  = liftIO (fromMaybeJSString <$> (js_getEncoding (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSCharsetRule.encoding Mozilla CSSCharsetRule.encoding documentation> 
-getEncodingUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    CSSCharsetRule -> m result
-getEncodingUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getEncoding (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSCharsetRule.encoding Mozilla CSSCharsetRule.encoding documentation> 
-getEncodingUnchecked ::
-                     (MonadIO m, FromJSString result) => CSSCharsetRule -> m result
-getEncodingUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getEncoding (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSFontFaceLoadEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSFontFaceLoadEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSFontFaceLoadEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSFontFaceLoadEvent.hs
@@ -4,7 +4,8 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CSSFontFaceLoadEvent
-       (js_getFontface, getFontface, getFontfaceUnsafe,
+       (js_newCSSFontFaceLoadEvent, newCSSFontFaceLoadEvent,
+        js_getFontface, getFontface, getFontfaceUnsafe,
         getFontfaceUnchecked, js_getError, getError, getErrorUnsafe,
         getErrorUnchecked, CSSFontFaceLoadEvent(..),
         gTypeCSSFontFaceLoadEvent)
@@ -13,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,11 +23,27 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"CSSFontFaceLoadEvent\"]($1,\n$2)"
+        js_newCSSFontFaceLoadEvent ::
+        JSString ->
+          Optional CSSFontFaceLoadEventInit -> IO CSSFontFaceLoadEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceLoadEvent Mozilla CSSFontFaceLoadEvent documentation> 
+newCSSFontFaceLoadEvent ::
+                        (MonadIO m, ToJSString type') =>
+                          type' -> Maybe CSSFontFaceLoadEventInit -> m CSSFontFaceLoadEvent
+newCSSFontFaceLoadEvent type' eventInit
+  = liftIO
+      (js_newCSSFontFaceLoadEvent (toJSString type')
+         (maybeToOptional eventInit))
+ 
 foreign import javascript unsafe "$1[\"fontface\"]" js_getFontface
         :: CSSFontFaceLoadEvent -> IO (Nullable CSSFontFaceRule)
 
@@ -34,7 +51,7 @@
 getFontface ::
             (MonadIO m) => CSSFontFaceLoadEvent -> m (Maybe CSSFontFaceRule)
 getFontface self
-  = liftIO (nullableToMaybe <$> (js_getFontface (self)))
+  = liftIO (nullableToMaybe <$> (js_getFontface self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceLoadEvent.fontface Mozilla CSSFontFaceLoadEvent.fontface documentation> 
 getFontfaceUnsafe ::
@@ -42,14 +59,14 @@
                     CSSFontFaceLoadEvent -> m CSSFontFaceRule
 getFontfaceUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getFontface (self))) >>=
+      ((nullableToMaybe <$> (js_getFontface self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceLoadEvent.fontface Mozilla CSSFontFaceLoadEvent.fontface documentation> 
 getFontfaceUnchecked ::
                      (MonadIO m) => CSSFontFaceLoadEvent -> m CSSFontFaceRule
 getFontfaceUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFontface (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getFontface self))
  
 foreign import javascript unsafe "$1[\"error\"]" js_getError ::
         CSSFontFaceLoadEvent -> IO (Nullable DOMError)
@@ -57,18 +74,18 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceLoadEvent.error Mozilla CSSFontFaceLoadEvent.error documentation> 
 getError ::
          (MonadIO m) => CSSFontFaceLoadEvent -> m (Maybe DOMError)
-getError self = liftIO (nullableToMaybe <$> (js_getError (self)))
+getError self = liftIO (nullableToMaybe <$> (js_getError self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceLoadEvent.error Mozilla CSSFontFaceLoadEvent.error documentation> 
 getErrorUnsafe ::
                (MonadIO m, HasCallStack) => CSSFontFaceLoadEvent -> m DOMError
 getErrorUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getError (self))) >>=
+      ((nullableToMaybe <$> (js_getError self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceLoadEvent.error Mozilla CSSFontFaceLoadEvent.error documentation> 
 getErrorUnchecked ::
                   (MonadIO m) => CSSFontFaceLoadEvent -> m DOMError
 getErrorUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getError (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getError self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSFontFaceRule.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSFontFaceRule.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSFontFaceRule.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSFontFaceRule.hs
@@ -4,14 +4,13 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CSSFontFaceRule
-       (js_getStyle, getStyle, getStyleUnsafe, getStyleUnchecked,
-        CSSFontFaceRule(..), gTypeCSSFontFaceRule)
+       (js_getStyle, getStyle, CSSFontFaceRule(..), gTypeCSSFontFaceRule)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,30 +19,15 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"style\"]" js_getStyle ::
-        CSSFontFaceRule -> IO (Nullable CSSStyleDeclaration)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceRule.style Mozilla CSSFontFaceRule.style documentation> 
-getStyle ::
-         (MonadIO m) => CSSFontFaceRule -> m (Maybe CSSStyleDeclaration)
-getStyle self = liftIO (nullableToMaybe <$> (js_getStyle (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceRule.style Mozilla CSSFontFaceRule.style documentation> 
-getStyleUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 CSSFontFaceRule -> m CSSStyleDeclaration
-getStyleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStyle (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        CSSFontFaceRule -> IO CSSStyleDeclaration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceRule.style Mozilla CSSFontFaceRule.style documentation> 
-getStyleUnchecked ::
-                  (MonadIO m) => CSSFontFaceRule -> m CSSStyleDeclaration
-getStyleUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getStyle (self)))
+getStyle :: (MonadIO m) => CSSFontFaceRule -> m CSSStyleDeclaration
+getStyle self = liftIO (js_getStyle self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSImportRule.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSImportRule.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSImportRule.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSImportRule.hs
@@ -5,15 +5,14 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CSSImportRule
        (js_getHref, getHref, getHrefUnsafe, getHrefUnchecked, js_getMedia,
-        getMedia, getMediaUnsafe, getMediaUnchecked, js_getStyleSheet,
-        getStyleSheet, getStyleSheetUnsafe, getStyleSheetUnchecked,
-        CSSImportRule(..), gTypeCSSImportRule)
+        getMedia, js_getStyleSheet, getStyleSheet, CSSImportRule(..),
+        gTypeCSSImportRule)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,7 +34,7 @@
 getHref ::
         (MonadIO m, FromJSString result) =>
           CSSImportRule -> m (Maybe result)
-getHref self = liftIO (fromMaybeJSString <$> (js_getHref (self)))
+getHref self = liftIO (fromMaybeJSString <$> (js_getHref self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule.href Mozilla CSSImportRule.href documentation> 
 getHrefUnsafe ::
@@ -42,54 +42,25 @@
                 CSSImportRule -> m result
 getHrefUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getHref (self))) >>=
+      ((fromMaybeJSString <$> (js_getHref self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule.href Mozilla CSSImportRule.href documentation> 
 getHrefUnchecked ::
                  (MonadIO m, FromJSString result) => CSSImportRule -> m result
 getHrefUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getHref (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getHref self))
  
 foreign import javascript unsafe "$1[\"media\"]" js_getMedia ::
-        CSSImportRule -> IO (Nullable MediaList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule.media Mozilla CSSImportRule.media documentation> 
-getMedia :: (MonadIO m) => CSSImportRule -> m (Maybe MediaList)
-getMedia self = liftIO (nullableToMaybe <$> (js_getMedia (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule.media Mozilla CSSImportRule.media documentation> 
-getMediaUnsafe ::
-               (MonadIO m, HasCallStack) => CSSImportRule -> m MediaList
-getMediaUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMedia (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        CSSImportRule -> IO MediaList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule.media Mozilla CSSImportRule.media documentation> 
-getMediaUnchecked :: (MonadIO m) => CSSImportRule -> m MediaList
-getMediaUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getMedia (self)))
+getMedia :: (MonadIO m) => CSSImportRule -> m MediaList
+getMedia self = liftIO (js_getMedia self)
  
 foreign import javascript unsafe "$1[\"styleSheet\"]"
-        js_getStyleSheet :: CSSImportRule -> IO (Nullable CSSStyleSheet)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule.styleSheet Mozilla CSSImportRule.styleSheet documentation> 
-getStyleSheet ::
-              (MonadIO m) => CSSImportRule -> m (Maybe CSSStyleSheet)
-getStyleSheet self
-  = liftIO (nullableToMaybe <$> (js_getStyleSheet (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule.styleSheet Mozilla CSSImportRule.styleSheet documentation> 
-getStyleSheetUnsafe ::
-                    (MonadIO m, HasCallStack) => CSSImportRule -> m CSSStyleSheet
-getStyleSheetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStyleSheet (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getStyleSheet :: CSSImportRule -> IO CSSStyleSheet
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule.styleSheet Mozilla CSSImportRule.styleSheet documentation> 
-getStyleSheetUnchecked ::
-                       (MonadIO m) => CSSImportRule -> m CSSStyleSheet
-getStyleSheetUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getStyleSheet (self)))
+getStyleSheet :: (MonadIO m) => CSSImportRule -> m CSSStyleSheet
+getStyleSheet self = liftIO (js_getStyleSheet self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSKeyframeRule.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSKeyframeRule.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSKeyframeRule.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSKeyframeRule.hs
@@ -5,14 +5,13 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CSSKeyframeRule
        (js_setKeyText, setKeyText, js_getKeyText, getKeyText, js_getStyle,
-        getStyle, getStyleUnsafe, getStyleUnchecked, CSSKeyframeRule(..),
-        gTypeCSSKeyframeRule)
+        getStyle, CSSKeyframeRule(..), gTypeCSSKeyframeRule)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,8 +32,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule.keyText Mozilla CSSKeyframeRule.keyText documentation> 
 setKeyText ::
            (MonadIO m, ToJSString val) => CSSKeyframeRule -> val -> m ()
-setKeyText self val
-  = liftIO (js_setKeyText (self) (toJSString val))
+setKeyText self val = liftIO (js_setKeyText self (toJSString val))
  
 foreign import javascript unsafe "$1[\"keyText\"]" js_getKeyText ::
         CSSKeyframeRule -> IO JSString
@@ -41,27 +40,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule.keyText Mozilla CSSKeyframeRule.keyText documentation> 
 getKeyText ::
            (MonadIO m, FromJSString result) => CSSKeyframeRule -> m result
-getKeyText self = liftIO (fromJSString <$> (js_getKeyText (self)))
+getKeyText self = liftIO (fromJSString <$> (js_getKeyText self))
  
 foreign import javascript unsafe "$1[\"style\"]" js_getStyle ::
-        CSSKeyframeRule -> IO (Nullable CSSStyleDeclaration)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule.style Mozilla CSSKeyframeRule.style documentation> 
-getStyle ::
-         (MonadIO m) => CSSKeyframeRule -> m (Maybe CSSStyleDeclaration)
-getStyle self = liftIO (nullableToMaybe <$> (js_getStyle (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule.style Mozilla CSSKeyframeRule.style documentation> 
-getStyleUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 CSSKeyframeRule -> m CSSStyleDeclaration
-getStyleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStyle (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        CSSKeyframeRule -> IO CSSStyleDeclaration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule.style Mozilla CSSKeyframeRule.style documentation> 
-getStyleUnchecked ::
-                  (MonadIO m) => CSSKeyframeRule -> m CSSStyleDeclaration
-getStyleUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getStyle (self)))
+getStyle :: (MonadIO m) => CSSKeyframeRule -> m CSSStyleDeclaration
+getStyle self = liftIO (js_getStyle self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSKeyframesRule.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSKeyframesRule.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSKeyframesRule.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSKeyframesRule.hs
@@ -6,17 +6,15 @@
 module GHCJS.DOM.JSFFI.Generated.CSSKeyframesRule
        (js_insertRule, insertRule, js_appendRule, appendRule,
         js_deleteRule, deleteRule, js_findRule, findRule, findRule_,
-        findRuleUnsafe, findRuleUnchecked, js__get, _get, _get_,
-        _getUnsafe, _getUnchecked, js_setName, setName, js_getName,
-        getName, getNameUnsafe, getNameUnchecked, js_getCssRules,
-        getCssRules, getCssRulesUnsafe, getCssRulesUnchecked,
+        findRuleUnsafe, findRuleUnchecked, js_get, get, get_, js_setName,
+        setName, js_getName, getName, js_getCssRules, getCssRules,
         CSSKeyframesRule(..), gTypeCSSKeyframesRule)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -37,7 +36,7 @@
 insertRule ::
            (MonadIO m, ToJSString rule) => CSSKeyframesRule -> rule -> m ()
 insertRule self rule
-  = liftIO (js_insertRule (self) (toJSString rule))
+  = liftIO (js_insertRule self (toJSString rule))
  
 foreign import javascript unsafe "$1[\"appendRule\"]($2)"
         js_appendRule :: CSSKeyframesRule -> JSString -> IO ()
@@ -46,7 +45,7 @@
 appendRule ::
            (MonadIO m, ToJSString rule) => CSSKeyframesRule -> rule -> m ()
 appendRule self rule
-  = liftIO (js_appendRule (self) (toJSString rule))
+  = liftIO (js_appendRule self (toJSString rule))
  
 foreign import javascript unsafe "$1[\"deleteRule\"]($2)"
         js_deleteRule :: CSSKeyframesRule -> JSString -> IO ()
@@ -54,8 +53,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.deleteRule Mozilla CSSKeyframesRule.deleteRule documentation> 
 deleteRule ::
            (MonadIO m, ToJSString key) => CSSKeyframesRule -> key -> m ()
-deleteRule self key
-  = liftIO (js_deleteRule (self) (toJSString key))
+deleteRule self key = liftIO (js_deleteRule self (toJSString key))
  
 foreign import javascript unsafe "$1[\"findRule\"]($2)" js_findRule
         :: CSSKeyframesRule -> JSString -> IO (Nullable CSSKeyframeRule)
@@ -65,14 +63,13 @@
          (MonadIO m, ToJSString key) =>
            CSSKeyframesRule -> key -> m (Maybe CSSKeyframeRule)
 findRule self key
-  = liftIO
-      (nullableToMaybe <$> (js_findRule (self) (toJSString key)))
+  = liftIO (nullableToMaybe <$> (js_findRule self (toJSString key)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.findRule Mozilla CSSKeyframesRule.findRule documentation> 
 findRule_ ::
           (MonadIO m, ToJSString key) => CSSKeyframesRule -> key -> m ()
 findRule_ self key
-  = liftIO (void (js_findRule (self) (toJSString key)))
+  = liftIO (void (js_findRule self (toJSString key)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.findRule Mozilla CSSKeyframesRule.findRule documentation> 
 findRuleUnsafe ::
@@ -80,7 +77,7 @@
                  CSSKeyframesRule -> key -> m CSSKeyframeRule
 findRuleUnsafe self key
   = liftIO
-      ((nullableToMaybe <$> (js_findRule (self) (toJSString key))) >>=
+      ((nullableToMaybe <$> (js_findRule self (toJSString key))) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.findRule Mozilla CSSKeyframesRule.findRule documentation> 
@@ -90,89 +87,38 @@
 findRuleUnchecked self key
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_findRule (self) (toJSString key)))
+         (js_findRule self (toJSString key)))
  
-foreign import javascript unsafe "$1[\"_get\"]($2)" js__get ::
-        CSSKeyframesRule -> Word -> IO (Nullable CSSKeyframeRule)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule._get Mozilla CSSKeyframesRule._get documentation> 
-_get ::
-     (MonadIO m) =>
-       CSSKeyframesRule -> Word -> m (Maybe CSSKeyframeRule)
-_get self index
-  = liftIO (nullableToMaybe <$> (js__get (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule._get Mozilla CSSKeyframesRule._get documentation> 
-_get_ :: (MonadIO m) => CSSKeyframesRule -> Word -> m ()
-_get_ self index = liftIO (void (js__get (self) index))
+foreign import javascript unsafe "$1[$2]" js_get ::
+        CSSKeyframesRule -> Word -> IO CSSKeyframeRule
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule._get Mozilla CSSKeyframesRule._get documentation> 
-_getUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             CSSKeyframesRule -> Word -> m CSSKeyframeRule
-_getUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js__get (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.get Mozilla CSSKeyframesRule.get documentation> 
+get :: (MonadIO m) => CSSKeyframesRule -> Word -> m CSSKeyframeRule
+get self index = liftIO (js_get self index)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule._get Mozilla CSSKeyframesRule._get documentation> 
-_getUnchecked ::
-              (MonadIO m) => CSSKeyframesRule -> Word -> m CSSKeyframeRule
-_getUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js__get (self) index))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.get Mozilla CSSKeyframesRule.get documentation> 
+get_ :: (MonadIO m) => CSSKeyframesRule -> Word -> m ()
+get_ self index = liftIO (void (js_get self index))
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
-        CSSKeyframesRule -> Nullable JSString -> IO ()
+        CSSKeyframesRule -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.name Mozilla CSSKeyframesRule.name documentation> 
 setName ::
-        (MonadIO m, ToJSString val) =>
-          CSSKeyframesRule -> Maybe val -> m ()
-setName self val = liftIO (js_setName (self) (toMaybeJSString val))
+        (MonadIO m, ToJSString val) => CSSKeyframesRule -> val -> m ()
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
-        CSSKeyframesRule -> IO (Nullable JSString)
+        CSSKeyframesRule -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.name Mozilla CSSKeyframesRule.name documentation> 
 getName ::
-        (MonadIO m, FromJSString result) =>
-          CSSKeyframesRule -> m (Maybe result)
-getName self = liftIO (fromMaybeJSString <$> (js_getName (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.name Mozilla CSSKeyframesRule.name documentation> 
-getNameUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                CSSKeyframesRule -> m result
-getNameUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getName (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.name Mozilla CSSKeyframesRule.name documentation> 
-getNameUnchecked ::
-                 (MonadIO m, FromJSString result) => CSSKeyframesRule -> m result
-getNameUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getName (self)))
+        (MonadIO m, FromJSString result) => CSSKeyframesRule -> m result
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"cssRules\"]" js_getCssRules
-        :: CSSKeyframesRule -> IO (Nullable CSSRuleList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.cssRules Mozilla CSSKeyframesRule.cssRules documentation> 
-getCssRules ::
-            (MonadIO m) => CSSKeyframesRule -> m (Maybe CSSRuleList)
-getCssRules self
-  = liftIO (nullableToMaybe <$> (js_getCssRules (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.cssRules Mozilla CSSKeyframesRule.cssRules documentation> 
-getCssRulesUnsafe ::
-                  (MonadIO m, HasCallStack) => CSSKeyframesRule -> m CSSRuleList
-getCssRulesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCssRules (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: CSSKeyframesRule -> IO CSSRuleList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule.cssRules Mozilla CSSKeyframesRule.cssRules documentation> 
-getCssRulesUnchecked ::
-                     (MonadIO m) => CSSKeyframesRule -> m CSSRuleList
-getCssRulesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCssRules (self)))
+getCssRules :: (MonadIO m) => CSSKeyframesRule -> m CSSRuleList
+getCssRules self = liftIO (js_getCssRules self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSMediaRule.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSMediaRule.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSMediaRule.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSMediaRule.hs
@@ -5,15 +5,14 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CSSMediaRule
        (js_insertRule, insertRule, insertRule_, js_deleteRule, deleteRule,
-        js_getMedia, getMedia, getMediaUnsafe, getMediaUnchecked,
-        js_getCssRules, getCssRules, getCssRulesUnsafe,
-        getCssRulesUnchecked, CSSMediaRule(..), gTypeCSSMediaRule)
+        js_getMedia, getMedia, js_getCssRules, getCssRules,
+        CSSMediaRule(..), gTypeCSSMediaRule)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,73 +21,53 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"insertRule\"]($2, $3)"
-        js_insertRule :: CSSMediaRule -> JSString -> Word -> IO Word
+        js_insertRule ::
+        CSSMediaRule -> Optional JSString -> Optional Word -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule.insertRule Mozilla CSSMediaRule.insertRule documentation> 
 insertRule ::
            (MonadIO m, ToJSString rule) =>
-             CSSMediaRule -> rule -> Word -> m Word
+             CSSMediaRule -> Maybe rule -> Maybe Word -> m Word
 insertRule self rule index
-  = liftIO (js_insertRule (self) (toJSString rule) index)
+  = liftIO
+      (js_insertRule self (toOptionalJSString rule)
+         (maybeToOptional index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule.insertRule Mozilla CSSMediaRule.insertRule documentation> 
 insertRule_ ::
             (MonadIO m, ToJSString rule) =>
-              CSSMediaRule -> rule -> Word -> m ()
+              CSSMediaRule -> Maybe rule -> Maybe Word -> m ()
 insertRule_ self rule index
-  = liftIO (void (js_insertRule (self) (toJSString rule) index))
+  = liftIO
+      (void
+         (js_insertRule self (toOptionalJSString rule)
+            (maybeToOptional index)))
  
 foreign import javascript unsafe "$1[\"deleteRule\"]($2)"
-        js_deleteRule :: CSSMediaRule -> Word -> IO ()
+        js_deleteRule :: CSSMediaRule -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule.deleteRule Mozilla CSSMediaRule.deleteRule documentation> 
-deleteRule :: (MonadIO m) => CSSMediaRule -> Word -> m ()
-deleteRule self index = liftIO (js_deleteRule (self) index)
+deleteRule :: (MonadIO m) => CSSMediaRule -> Maybe Word -> m ()
+deleteRule self index
+  = liftIO (js_deleteRule self (maybeToOptional index))
  
 foreign import javascript unsafe "$1[\"media\"]" js_getMedia ::
-        CSSMediaRule -> IO (Nullable MediaList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule.media Mozilla CSSMediaRule.media documentation> 
-getMedia :: (MonadIO m) => CSSMediaRule -> m (Maybe MediaList)
-getMedia self = liftIO (nullableToMaybe <$> (js_getMedia (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule.media Mozilla CSSMediaRule.media documentation> 
-getMediaUnsafe ::
-               (MonadIO m, HasCallStack) => CSSMediaRule -> m MediaList
-getMediaUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMedia (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        CSSMediaRule -> IO MediaList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule.media Mozilla CSSMediaRule.media documentation> 
-getMediaUnchecked :: (MonadIO m) => CSSMediaRule -> m MediaList
-getMediaUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getMedia (self)))
+getMedia :: (MonadIO m) => CSSMediaRule -> m MediaList
+getMedia self = liftIO (js_getMedia self)
  
 foreign import javascript unsafe "$1[\"cssRules\"]" js_getCssRules
-        :: CSSMediaRule -> IO (Nullable CSSRuleList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule.cssRules Mozilla CSSMediaRule.cssRules documentation> 
-getCssRules :: (MonadIO m) => CSSMediaRule -> m (Maybe CSSRuleList)
-getCssRules self
-  = liftIO (nullableToMaybe <$> (js_getCssRules (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule.cssRules Mozilla CSSMediaRule.cssRules documentation> 
-getCssRulesUnsafe ::
-                  (MonadIO m, HasCallStack) => CSSMediaRule -> m CSSRuleList
-getCssRulesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCssRules (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: CSSMediaRule -> IO CSSRuleList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule.cssRules Mozilla CSSMediaRule.cssRules documentation> 
-getCssRulesUnchecked ::
-                     (MonadIO m) => CSSMediaRule -> m CSSRuleList
-getCssRulesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCssRules (self)))
+getCssRules :: (MonadIO m) => CSSMediaRule -> m CSSRuleList
+getCssRules self = liftIO (js_getCssRules self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSNamespaceRule.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSNamespaceRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSNamespaceRule.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.CSSNamespaceRule
+       (js_getNamespaceURI, getNamespaceURI, js_getPrefix, getPrefix,
+        CSSNamespaceRule(..), gTypeCSSNamespaceRule)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"namespaceURI\"]"
+        js_getNamespaceURI :: CSSNamespaceRule -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSNamespaceRule.namespaceURI Mozilla CSSNamespaceRule.namespaceURI documentation> 
+getNamespaceURI ::
+                (MonadIO m, FromJSString result) => CSSNamespaceRule -> m result
+getNamespaceURI self
+  = liftIO (fromJSString <$> (js_getNamespaceURI self))
+ 
+foreign import javascript unsafe "$1[\"prefix\"]" js_getPrefix ::
+        CSSNamespaceRule -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSNamespaceRule.prefix Mozilla CSSNamespaceRule.prefix documentation> 
+getPrefix ::
+          (MonadIO m, FromJSString result) => CSSNamespaceRule -> m result
+getPrefix self = liftIO (fromJSString <$> (js_getPrefix self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSPageRule.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSPageRule.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSPageRule.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSPageRule.hs
@@ -6,14 +6,13 @@
 module GHCJS.DOM.JSFFI.Generated.CSSPageRule
        (js_setSelectorText, setSelectorText, js_getSelectorText,
         getSelectorText, getSelectorTextUnsafe, getSelectorTextUnchecked,
-        js_getStyle, getStyle, getStyleUnsafe, getStyleUnchecked,
-        CSSPageRule(..), gTypeCSSPageRule)
+        js_getStyle, getStyle, CSSPageRule(..), gTypeCSSPageRule)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,19 +21,20 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"selectorText\"] = $2;"
-        js_setSelectorText :: CSSPageRule -> Nullable JSString -> IO ()
+        js_setSelectorText :: CSSPageRule -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule.selectorText Mozilla CSSPageRule.selectorText documentation> 
 setSelectorText ::
                 (MonadIO m, ToJSString val) => CSSPageRule -> Maybe val -> m ()
 setSelectorText self val
-  = liftIO (js_setSelectorText (self) (toMaybeJSString val))
+  = liftIO (js_setSelectorText self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"selectorText\"]"
         js_getSelectorText :: CSSPageRule -> IO (Nullable JSString)
@@ -43,7 +43,7 @@
 getSelectorText ::
                 (MonadIO m, FromJSString result) => CSSPageRule -> m (Maybe result)
 getSelectorText self
-  = liftIO (fromMaybeJSString <$> (js_getSelectorText (self)))
+  = liftIO (fromMaybeJSString <$> (js_getSelectorText self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule.selectorText Mozilla CSSPageRule.selectorText documentation> 
 getSelectorTextUnsafe ::
@@ -51,7 +51,7 @@
                         CSSPageRule -> m result
 getSelectorTextUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getSelectorText (self))) >>=
+      ((fromMaybeJSString <$> (js_getSelectorText self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule.selectorText Mozilla CSSPageRule.selectorText documentation> 
@@ -59,26 +59,11 @@
                          (MonadIO m, FromJSString result) => CSSPageRule -> m result
 getSelectorTextUnchecked self
   = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getSelectorText (self)))
+      (fromJust . fromMaybeJSString <$> (js_getSelectorText self))
  
 foreign import javascript unsafe "$1[\"style\"]" js_getStyle ::
-        CSSPageRule -> IO (Nullable CSSStyleDeclaration)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule.style Mozilla CSSPageRule.style documentation> 
-getStyle ::
-         (MonadIO m) => CSSPageRule -> m (Maybe CSSStyleDeclaration)
-getStyle self = liftIO (nullableToMaybe <$> (js_getStyle (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule.style Mozilla CSSPageRule.style documentation> 
-getStyleUnsafe ::
-               (MonadIO m, HasCallStack) => CSSPageRule -> m CSSStyleDeclaration
-getStyleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStyle (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        CSSPageRule -> IO CSSStyleDeclaration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule.style Mozilla CSSPageRule.style documentation> 
-getStyleUnchecked ::
-                  (MonadIO m) => CSSPageRule -> m CSSStyleDeclaration
-getStyleUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getStyle (self)))
+getStyle :: (MonadIO m) => CSSPageRule -> m CSSStyleDeclaration
+getStyle self = liftIO (js_getStyle self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSPrimitiveValue.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSPrimitiveValue.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSPrimitiveValue.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSPrimitiveValue.hs
@@ -8,27 +8,24 @@
         getFloatValue_, js_setStringValue, setStringValue,
         js_getStringValue, getStringValue, getStringValue_,
         js_getCounterValue, getCounterValue, getCounterValue_,
-        getCounterValueUnsafe, getCounterValueUnchecked, js_getRectValue,
-        getRectValue, getRectValue_, getRectValueUnsafe,
-        getRectValueUnchecked, js_getRGBColorValue, getRGBColorValue,
-        getRGBColorValue_, getRGBColorValueUnsafe,
-        getRGBColorValueUnchecked, pattern CSS_UNKNOWN, pattern CSS_NUMBER,
-        pattern CSS_PERCENTAGE, pattern CSS_EMS, pattern CSS_EXS,
-        pattern CSS_PX, pattern CSS_CM, pattern CSS_MM, pattern CSS_IN,
-        pattern CSS_PT, pattern CSS_PC, pattern CSS_DEG, pattern CSS_RAD,
-        pattern CSS_GRAD, pattern CSS_MS, pattern CSS_S, pattern CSS_HZ,
-        pattern CSS_KHZ, pattern CSS_DIMENSION, pattern CSS_STRING,
-        pattern CSS_URI, pattern CSS_IDENT, pattern CSS_ATTR,
-        pattern CSS_COUNTER, pattern CSS_RECT, pattern CSS_RGBCOLOR,
-        pattern CSS_VW, pattern CSS_VH, pattern CSS_VMIN, pattern CSS_VMAX,
-        js_getPrimitiveType, getPrimitiveType, CSSPrimitiveValue(..),
-        gTypeCSSPrimitiveValue)
+        js_getRectValue, getRectValue, getRectValue_, js_getRGBColorValue,
+        getRGBColorValue, getRGBColorValue_, pattern CSS_UNKNOWN,
+        pattern CSS_NUMBER, pattern CSS_PERCENTAGE, pattern CSS_EMS,
+        pattern CSS_EXS, pattern CSS_PX, pattern CSS_CM, pattern CSS_MM,
+        pattern CSS_IN, pattern CSS_PT, pattern CSS_PC, pattern CSS_DEG,
+        pattern CSS_RAD, pattern CSS_GRAD, pattern CSS_MS, pattern CSS_S,
+        pattern CSS_HZ, pattern CSS_KHZ, pattern CSS_DIMENSION,
+        pattern CSS_STRING, pattern CSS_URI, pattern CSS_IDENT,
+        pattern CSS_ATTR, pattern CSS_COUNTER, pattern CSS_RECT,
+        pattern CSS_RGBCOLOR, pattern CSS_VW, pattern CSS_VH,
+        pattern CSS_VMIN, pattern CSS_VMAX, js_getPrimitiveType,
+        getPrimitiveType, CSSPrimitiveValue(..), gTypeCSSPrimitiveValue)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -37,44 +34,52 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"setFloatValue\"]($2, $3)"
-        js_setFloatValue :: CSSPrimitiveValue -> Word -> Float -> IO ()
+        js_setFloatValue ::
+        CSSPrimitiveValue -> Optional Word -> Optional Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.setFloatValue Mozilla CSSPrimitiveValue.setFloatValue documentation> 
 setFloatValue ::
-              (MonadIO m) => CSSPrimitiveValue -> Word -> Float -> m ()
+              (MonadIO m) =>
+                CSSPrimitiveValue -> Maybe Word -> Maybe Float -> m ()
 setFloatValue self unitType floatValue
-  = liftIO (js_setFloatValue (self) unitType floatValue)
+  = liftIO
+      (js_setFloatValue self (maybeToOptional unitType)
+         (maybeToOptional floatValue))
  
 foreign import javascript unsafe "$1[\"getFloatValue\"]($2)"
-        js_getFloatValue :: CSSPrimitiveValue -> Word -> IO Float
+        js_getFloatValue :: CSSPrimitiveValue -> Optional Word -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getFloatValue Mozilla CSSPrimitiveValue.getFloatValue documentation> 
 getFloatValue ::
-              (MonadIO m) => CSSPrimitiveValue -> Word -> m Float
+              (MonadIO m) => CSSPrimitiveValue -> Maybe Word -> m Float
 getFloatValue self unitType
-  = liftIO (js_getFloatValue (self) unitType)
+  = liftIO (js_getFloatValue self (maybeToOptional unitType))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getFloatValue Mozilla CSSPrimitiveValue.getFloatValue documentation> 
-getFloatValue_ :: (MonadIO m) => CSSPrimitiveValue -> Word -> m ()
+getFloatValue_ ::
+               (MonadIO m) => CSSPrimitiveValue -> Maybe Word -> m ()
 getFloatValue_ self unitType
-  = liftIO (void (js_getFloatValue (self) unitType))
+  = liftIO (void (js_getFloatValue self (maybeToOptional unitType)))
  
 foreign import javascript unsafe "$1[\"setStringValue\"]($2, $3)"
-        js_setStringValue :: CSSPrimitiveValue -> Word -> JSString -> IO ()
+        js_setStringValue ::
+        CSSPrimitiveValue -> Optional Word -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.setStringValue Mozilla CSSPrimitiveValue.setStringValue documentation> 
 setStringValue ::
                (MonadIO m, ToJSString stringValue) =>
-                 CSSPrimitiveValue -> Word -> stringValue -> m ()
+                 CSSPrimitiveValue -> Maybe Word -> Maybe stringValue -> m ()
 setStringValue self stringType stringValue
   = liftIO
-      (js_setStringValue (self) stringType (toJSString stringValue))
+      (js_setStringValue self (maybeToOptional stringType)
+         (toOptionalJSString stringValue))
  
 foreign import javascript unsafe "$1[\"getStringValue\"]()"
         js_getStringValue :: CSSPrimitiveValue -> IO JSString
@@ -83,92 +88,44 @@
 getStringValue ::
                (MonadIO m, FromJSString result) => CSSPrimitiveValue -> m result
 getStringValue self
-  = liftIO (fromJSString <$> (js_getStringValue (self)))
+  = liftIO (fromJSString <$> (js_getStringValue self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getStringValue Mozilla CSSPrimitiveValue.getStringValue documentation> 
 getStringValue_ :: (MonadIO m) => CSSPrimitiveValue -> m ()
-getStringValue_ self = liftIO (void (js_getStringValue (self)))
+getStringValue_ self = liftIO (void (js_getStringValue self))
  
 foreign import javascript unsafe "$1[\"getCounterValue\"]()"
-        js_getCounterValue :: CSSPrimitiveValue -> IO (Nullable Counter)
+        js_getCounterValue :: CSSPrimitiveValue -> IO Counter
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getCounterValue Mozilla CSSPrimitiveValue.getCounterValue documentation> 
-getCounterValue ::
-                (MonadIO m) => CSSPrimitiveValue -> m (Maybe Counter)
-getCounterValue self
-  = liftIO (nullableToMaybe <$> (js_getCounterValue (self)))
+getCounterValue :: (MonadIO m) => CSSPrimitiveValue -> m Counter
+getCounterValue self = liftIO (js_getCounterValue self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getCounterValue Mozilla CSSPrimitiveValue.getCounterValue documentation> 
 getCounterValue_ :: (MonadIO m) => CSSPrimitiveValue -> m ()
-getCounterValue_ self = liftIO (void (js_getCounterValue (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getCounterValue Mozilla CSSPrimitiveValue.getCounterValue documentation> 
-getCounterValueUnsafe ::
-                      (MonadIO m, HasCallStack) => CSSPrimitiveValue -> m Counter
-getCounterValueUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCounterValue (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getCounterValue Mozilla CSSPrimitiveValue.getCounterValue documentation> 
-getCounterValueUnchecked ::
-                         (MonadIO m) => CSSPrimitiveValue -> m Counter
-getCounterValueUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getCounterValue (self)))
+getCounterValue_ self = liftIO (void (js_getCounterValue self))
  
 foreign import javascript unsafe "$1[\"getRectValue\"]()"
-        js_getRectValue :: CSSPrimitiveValue -> IO (Nullable Rect)
+        js_getRectValue :: CSSPrimitiveValue -> IO Rect
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRectValue Mozilla CSSPrimitiveValue.getRectValue documentation> 
-getRectValue :: (MonadIO m) => CSSPrimitiveValue -> m (Maybe Rect)
-getRectValue self
-  = liftIO (nullableToMaybe <$> (js_getRectValue (self)))
+getRectValue :: (MonadIO m) => CSSPrimitiveValue -> m Rect
+getRectValue self = liftIO (js_getRectValue self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRectValue Mozilla CSSPrimitiveValue.getRectValue documentation> 
 getRectValue_ :: (MonadIO m) => CSSPrimitiveValue -> m ()
-getRectValue_ self = liftIO (void (js_getRectValue (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRectValue Mozilla CSSPrimitiveValue.getRectValue documentation> 
-getRectValueUnsafe ::
-                   (MonadIO m, HasCallStack) => CSSPrimitiveValue -> m Rect
-getRectValueUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRectValue (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRectValue Mozilla CSSPrimitiveValue.getRectValue documentation> 
-getRectValueUnchecked :: (MonadIO m) => CSSPrimitiveValue -> m Rect
-getRectValueUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRectValue (self)))
+getRectValue_ self = liftIO (void (js_getRectValue self))
  
 foreign import javascript unsafe "$1[\"getRGBColorValue\"]()"
-        js_getRGBColorValue :: CSSPrimitiveValue -> IO (Nullable RGBColor)
+        js_getRGBColorValue :: CSSPrimitiveValue -> IO RGBColor
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRGBColorValue Mozilla CSSPrimitiveValue.getRGBColorValue documentation> 
-getRGBColorValue ::
-                 (MonadIO m) => CSSPrimitiveValue -> m (Maybe RGBColor)
-getRGBColorValue self
-  = liftIO (nullableToMaybe <$> (js_getRGBColorValue (self)))
+getRGBColorValue :: (MonadIO m) => CSSPrimitiveValue -> m RGBColor
+getRGBColorValue self = liftIO (js_getRGBColorValue self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRGBColorValue Mozilla CSSPrimitiveValue.getRGBColorValue documentation> 
 getRGBColorValue_ :: (MonadIO m) => CSSPrimitiveValue -> m ()
-getRGBColorValue_ self = liftIO (void (js_getRGBColorValue (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRGBColorValue Mozilla CSSPrimitiveValue.getRGBColorValue documentation> 
-getRGBColorValueUnsafe ::
-                       (MonadIO m, HasCallStack) => CSSPrimitiveValue -> m RGBColor
-getRGBColorValueUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRGBColorValue (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.getRGBColorValue Mozilla CSSPrimitiveValue.getRGBColorValue documentation> 
-getRGBColorValueUnchecked ::
-                          (MonadIO m) => CSSPrimitiveValue -> m RGBColor
-getRGBColorValueUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRGBColorValue (self)))
+getRGBColorValue_ self = liftIO (void (js_getRGBColorValue self))
 pattern CSS_UNKNOWN = 0
 pattern CSS_NUMBER = 1
 pattern CSS_PERCENTAGE = 2
@@ -205,4 +162,4 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue.primitiveType Mozilla CSSPrimitiveValue.primitiveType documentation> 
 getPrimitiveType :: (MonadIO m) => CSSPrimitiveValue -> m Word
-getPrimitiveType self = liftIO (js_getPrimitiveType (self))
+getPrimitiveType self = liftIO (js_getPrimitiveType self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSRule.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSRule.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSRule.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSRule.hs
@@ -7,11 +7,12 @@
        (pattern UNKNOWN_RULE, pattern STYLE_RULE, pattern CHARSET_RULE,
         pattern IMPORT_RULE, pattern MEDIA_RULE, pattern FONT_FACE_RULE,
         pattern PAGE_RULE, pattern KEYFRAMES_RULE, pattern KEYFRAME_RULE,
-        pattern SUPPORTS_RULE, pattern WEBKIT_VIEWPORT_RULE,
-        pattern WEBKIT_REGION_RULE, pattern WEBKIT_KEYFRAMES_RULE,
-        pattern WEBKIT_KEYFRAME_RULE, js_getType, getType, js_setCssText,
-        setCssText, js_getCssText, getCssText, getCssTextUnsafe,
-        getCssTextUnchecked, js_getParentStyleSheet, getParentStyleSheet,
+        pattern NAMESPACE_RULE, pattern SUPPORTS_RULE,
+        pattern WEBKIT_VIEWPORT_RULE, pattern WEBKIT_REGION_RULE,
+        pattern WEBKIT_KEYFRAMES_RULE, pattern WEBKIT_KEYFRAME_RULE,
+        js_getType, getType, js_setCssText, setCssText, js_getCssText,
+        getCssText, getCssTextUnsafe, getCssTextUnchecked,
+        js_getParentStyleSheet, getParentStyleSheet,
         getParentStyleSheetUnsafe, getParentStyleSheetUnchecked,
         js_getParentRule, getParentRule, getParentRuleUnsafe,
         getParentRuleUnchecked, CSSRule(..), gTypeCSSRule, IsCSSRule,
@@ -21,7 +22,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -30,6 +31,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -43,6 +45,7 @@
 pattern PAGE_RULE = 6
 pattern KEYFRAMES_RULE = 7
 pattern KEYFRAME_RULE = 8
+pattern NAMESPACE_RULE = 10
 pattern SUPPORTS_RULE = 12
 pattern WEBKIT_VIEWPORT_RULE = 15
 pattern WEBKIT_REGION_RULE = 16
@@ -57,14 +60,14 @@
 getType self = liftIO (js_getType (toCSSRule self))
  
 foreign import javascript unsafe "$1[\"cssText\"] = $2;"
-        js_setCssText :: CSSRule -> Nullable JSString -> IO ()
+        js_setCssText :: CSSRule -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSRule.cssText Mozilla CSSRule.cssText documentation> 
 setCssText ::
            (MonadIO m, IsCSSRule self, ToJSString val) =>
              self -> Maybe val -> m ()
 setCssText self val
-  = liftIO (js_setCssText (toCSSRule self) (toMaybeJSString val))
+  = liftIO (js_setCssText (toCSSRule self) (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"cssText\"]" js_getCssText ::
         CSSRule -> IO (Nullable JSString)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSRuleList.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSRuleList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSRuleList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSRuleList.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CSSRuleList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getLength,
-        getLength, CSSRuleList(..), gTypeCSSRuleList)
+       (js_item, item, item_, js_getLength, getLength, CSSRuleList(..),
+        gTypeCSSRuleList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,39 +20,26 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        CSSRuleList -> Word -> IO (Nullable CSSRule)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        CSSRuleList -> Word -> IO CSSRule
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList.item Mozilla CSSRuleList.item documentation> 
-item :: (MonadIO m) => CSSRuleList -> Word -> m (Maybe CSSRule)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item :: (MonadIO m) => CSSRuleList -> Word -> m CSSRule
+item self index = liftIO (js_item self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList.item Mozilla CSSRuleList.item documentation> 
 item_ :: (MonadIO m) => CSSRuleList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList.item Mozilla CSSRuleList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, HasCallStack) => CSSRuleList -> Word -> m CSSRule
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList.item Mozilla CSSRuleList.item documentation> 
-itemUnchecked :: (MonadIO m) => CSSRuleList -> Word -> m CSSRule
-itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         CSSRuleList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList.length Mozilla CSSRuleList.length documentation> 
 getLength :: (MonadIO m) => CSSRuleList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSStyleDeclaration.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSStyleDeclaration.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSStyleDeclaration.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSStyleDeclaration.hs
@@ -5,11 +5,9 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CSSStyleDeclaration
        (js_getPropertyValue, getPropertyValue, getPropertyValue_,
-        getPropertyValueUnsafe, getPropertyValueUnchecked,
         js_getPropertyCSSValue, getPropertyCSSValue, getPropertyCSSValue_,
         getPropertyCSSValueUnsafe, getPropertyCSSValueUnchecked,
         js_removeProperty, removeProperty, removeProperty_,
-        removePropertyUnsafe, removePropertyUnchecked,
         js_getPropertyPriority, getPropertyPriority, getPropertyPriority_,
         getPropertyPriorityUnsafe, getPropertyPriorityUnchecked,
         js_setProperty, setProperty, js_item, item, item_,
@@ -17,16 +15,16 @@
         getPropertyShorthand_, getPropertyShorthandUnsafe,
         getPropertyShorthandUnchecked, js_isPropertyImplicit,
         isPropertyImplicit, isPropertyImplicit_, js_setCssText, setCssText,
-        js_getCssText, getCssText, getCssTextUnsafe, getCssTextUnchecked,
-        js_getLength, getLength, js_getParentRule, getParentRule,
-        getParentRuleUnsafe, getParentRuleUnchecked,
-        CSSStyleDeclaration(..), gTypeCSSStyleDeclaration)
+        js_getCssText, getCssText, js_getLength, getLength,
+        js_getParentRule, getParentRule, getParentRuleUnsafe,
+        getParentRuleUnchecked, CSSStyleDeclaration(..),
+        gTypeCSSStyleDeclaration)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -35,6 +33,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -42,16 +41,16 @@
  
 foreign import javascript unsafe "$1[\"getPropertyValue\"]($2)"
         js_getPropertyValue ::
-        CSSStyleDeclaration -> JSString -> IO (Nullable JSString)
+        CSSStyleDeclaration -> JSString -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyValue Mozilla CSSStyleDeclaration.getPropertyValue documentation> 
 getPropertyValue ::
                  (MonadIO m, ToJSString propertyName, FromJSString result) =>
-                   CSSStyleDeclaration -> propertyName -> m (Maybe result)
+                   CSSStyleDeclaration -> propertyName -> m result
 getPropertyValue self propertyName
   = liftIO
-      (fromMaybeJSString <$>
-         (js_getPropertyValue (self) (toJSString propertyName)))
+      (fromJSString <$>
+         (js_getPropertyValue self (toJSString propertyName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyValue Mozilla CSSStyleDeclaration.getPropertyValue documentation> 
 getPropertyValue_ ::
@@ -59,27 +58,7 @@
                     CSSStyleDeclaration -> propertyName -> m ()
 getPropertyValue_ self propertyName
   = liftIO
-      (void (js_getPropertyValue (self) (toJSString propertyName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyValue Mozilla CSSStyleDeclaration.getPropertyValue documentation> 
-getPropertyValueUnsafe ::
-                       (MonadIO m, ToJSString propertyName, HasCallStack,
-                        FromJSString result) =>
-                         CSSStyleDeclaration -> propertyName -> m result
-getPropertyValueUnsafe self propertyName
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_getPropertyValue (self) (toJSString propertyName)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyValue Mozilla CSSStyleDeclaration.getPropertyValue documentation> 
-getPropertyValueUnchecked ::
-                          (MonadIO m, ToJSString propertyName, FromJSString result) =>
-                            CSSStyleDeclaration -> propertyName -> m result
-getPropertyValueUnchecked self propertyName
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getPropertyValue (self) (toJSString propertyName)))
+      (void (js_getPropertyValue self (toJSString propertyName)))
  
 foreign import javascript unsafe "$1[\"getPropertyCSSValue\"]($2)"
         js_getPropertyCSSValue ::
@@ -92,7 +71,7 @@
 getPropertyCSSValue self propertyName
   = liftIO
       (nullableToMaybe <$>
-         (js_getPropertyCSSValue (self) (toJSString propertyName)))
+         (js_getPropertyCSSValue self (toJSString propertyName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyCSSValue Mozilla CSSStyleDeclaration.getPropertyCSSValue documentation> 
 getPropertyCSSValue_ ::
@@ -100,7 +79,7 @@
                        CSSStyleDeclaration -> propertyName -> m ()
 getPropertyCSSValue_ self propertyName
   = liftIO
-      (void (js_getPropertyCSSValue (self) (toJSString propertyName)))
+      (void (js_getPropertyCSSValue self (toJSString propertyName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyCSSValue Mozilla CSSStyleDeclaration.getPropertyCSSValue documentation> 
 getPropertyCSSValueUnsafe ::
@@ -109,7 +88,7 @@
 getPropertyCSSValueUnsafe self propertyName
   = liftIO
       ((nullableToMaybe <$>
-          (js_getPropertyCSSValue (self) (toJSString propertyName)))
+          (js_getPropertyCSSValue self (toJSString propertyName)))
          >>= maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyCSSValue Mozilla CSSStyleDeclaration.getPropertyCSSValue documentation> 
@@ -119,48 +98,26 @@
 getPropertyCSSValueUnchecked self propertyName
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_getPropertyCSSValue (self) (toJSString propertyName)))
+         (js_getPropertyCSSValue self (toJSString propertyName)))
  
 foreign import javascript unsafe "$1[\"removeProperty\"]($2)"
-        js_removeProperty ::
-        CSSStyleDeclaration -> JSString -> IO (Nullable JSString)
+        js_removeProperty :: CSSStyleDeclaration -> JSString -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.removeProperty Mozilla CSSStyleDeclaration.removeProperty documentation> 
 removeProperty ::
                (MonadIO m, ToJSString propertyName, FromJSString result) =>
-                 CSSStyleDeclaration -> propertyName -> m (Maybe result)
+                 CSSStyleDeclaration -> propertyName -> m result
 removeProperty self propertyName
   = liftIO
-      (fromMaybeJSString <$>
-         (js_removeProperty (self) (toJSString propertyName)))
+      (fromJSString <$>
+         (js_removeProperty self (toJSString propertyName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.removeProperty Mozilla CSSStyleDeclaration.removeProperty documentation> 
 removeProperty_ ::
                 (MonadIO m, ToJSString propertyName) =>
                   CSSStyleDeclaration -> propertyName -> m ()
 removeProperty_ self propertyName
-  = liftIO
-      (void (js_removeProperty (self) (toJSString propertyName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.removeProperty Mozilla CSSStyleDeclaration.removeProperty documentation> 
-removePropertyUnsafe ::
-                     (MonadIO m, ToJSString propertyName, HasCallStack,
-                      FromJSString result) =>
-                       CSSStyleDeclaration -> propertyName -> m result
-removePropertyUnsafe self propertyName
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_removeProperty (self) (toJSString propertyName)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.removeProperty Mozilla CSSStyleDeclaration.removeProperty documentation> 
-removePropertyUnchecked ::
-                        (MonadIO m, ToJSString propertyName, FromJSString result) =>
-                          CSSStyleDeclaration -> propertyName -> m result
-removePropertyUnchecked self propertyName
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_removeProperty (self) (toJSString propertyName)))
+  = liftIO (void (js_removeProperty self (toJSString propertyName)))
  
 foreign import javascript unsafe "$1[\"getPropertyPriority\"]($2)"
         js_getPropertyPriority ::
@@ -173,7 +130,7 @@
 getPropertyPriority self propertyName
   = liftIO
       (fromMaybeJSString <$>
-         (js_getPropertyPriority (self) (toJSString propertyName)))
+         (js_getPropertyPriority self (toJSString propertyName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyPriority Mozilla CSSStyleDeclaration.getPropertyPriority documentation> 
 getPropertyPriority_ ::
@@ -181,7 +138,7 @@
                        CSSStyleDeclaration -> propertyName -> m ()
 getPropertyPriority_ self propertyName
   = liftIO
-      (void (js_getPropertyPriority (self) (toJSString propertyName)))
+      (void (js_getPropertyPriority self (toJSString propertyName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyPriority Mozilla CSSStyleDeclaration.getPropertyPriority documentation> 
 getPropertyPriorityUnsafe ::
@@ -191,7 +148,7 @@
 getPropertyPriorityUnsafe self propertyName
   = liftIO
       ((fromMaybeJSString <$>
-          (js_getPropertyPriority (self) (toJSString propertyName)))
+          (js_getPropertyPriority self (toJSString propertyName)))
          >>= maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyPriority Mozilla CSSStyleDeclaration.getPropertyPriority documentation> 
@@ -201,139 +158,123 @@
 getPropertyPriorityUnchecked self propertyName
   = liftIO
       (fromJust . fromMaybeJSString <$>
-         (js_getPropertyPriority (self) (toJSString propertyName)))
+         (js_getPropertyPriority self (toJSString propertyName)))
  
 foreign import javascript unsafe "$1[\"setProperty\"]($2, $3, $4)"
         js_setProperty ::
         CSSStyleDeclaration ->
-          JSString -> Nullable JSString -> JSString -> IO ()
+          JSString -> Optional JSString -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.setProperty Mozilla CSSStyleDeclaration.setProperty documentation> 
 setProperty ::
             (MonadIO m, ToJSString propertyName, ToJSString value,
              ToJSString priority) =>
               CSSStyleDeclaration ->
-                propertyName -> Maybe value -> priority -> m ()
+                propertyName -> Maybe value -> Maybe priority -> m ()
 setProperty self propertyName value priority
   = liftIO
-      (js_setProperty (self) (toJSString propertyName)
-         (toMaybeJSString value)
-         (toJSString priority))
+      (js_setProperty self (toJSString propertyName)
+         (toOptionalJSString value)
+         (toOptionalJSString priority))
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
+foreign import javascript unsafe "$1[$2]" js_item ::
         CSSStyleDeclaration -> Word -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.item Mozilla CSSStyleDeclaration.item documentation> 
 item ::
      (MonadIO m, FromJSString result) =>
        CSSStyleDeclaration -> Word -> m result
-item self index = liftIO (fromJSString <$> (js_item (self) index))
+item self index = liftIO (fromJSString <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.item Mozilla CSSStyleDeclaration.item documentation> 
 item_ :: (MonadIO m) => CSSStyleDeclaration -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"getPropertyShorthand\"]($2)"
         js_getPropertyShorthand ::
-        CSSStyleDeclaration -> JSString -> IO (Nullable JSString)
+        CSSStyleDeclaration -> Optional JSString -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyShorthand Mozilla CSSStyleDeclaration.getPropertyShorthand documentation> 
 getPropertyShorthand ::
                      (MonadIO m, ToJSString propertyName, FromJSString result) =>
-                       CSSStyleDeclaration -> propertyName -> m (Maybe result)
+                       CSSStyleDeclaration -> Maybe propertyName -> m (Maybe result)
 getPropertyShorthand self propertyName
   = liftIO
       (fromMaybeJSString <$>
-         (js_getPropertyShorthand (self) (toJSString propertyName)))
+         (js_getPropertyShorthand self (toOptionalJSString propertyName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyShorthand Mozilla CSSStyleDeclaration.getPropertyShorthand documentation> 
 getPropertyShorthand_ ::
                       (MonadIO m, ToJSString propertyName) =>
-                        CSSStyleDeclaration -> propertyName -> m ()
+                        CSSStyleDeclaration -> Maybe propertyName -> m ()
 getPropertyShorthand_ self propertyName
   = liftIO
-      (void (js_getPropertyShorthand (self) (toJSString propertyName)))
+      (void
+         (js_getPropertyShorthand self (toOptionalJSString propertyName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyShorthand Mozilla CSSStyleDeclaration.getPropertyShorthand documentation> 
 getPropertyShorthandUnsafe ::
                            (MonadIO m, ToJSString propertyName, HasCallStack,
                             FromJSString result) =>
-                             CSSStyleDeclaration -> propertyName -> m result
+                             CSSStyleDeclaration -> Maybe propertyName -> m result
 getPropertyShorthandUnsafe self propertyName
   = liftIO
       ((fromMaybeJSString <$>
-          (js_getPropertyShorthand (self) (toJSString propertyName)))
+          (js_getPropertyShorthand self (toOptionalJSString propertyName)))
          >>= maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.getPropertyShorthand Mozilla CSSStyleDeclaration.getPropertyShorthand documentation> 
 getPropertyShorthandUnchecked ::
                               (MonadIO m, ToJSString propertyName, FromJSString result) =>
-                                CSSStyleDeclaration -> propertyName -> m result
+                                CSSStyleDeclaration -> Maybe propertyName -> m result
 getPropertyShorthandUnchecked self propertyName
   = liftIO
       (fromJust . fromMaybeJSString <$>
-         (js_getPropertyShorthand (self) (toJSString propertyName)))
+         (js_getPropertyShorthand self (toOptionalJSString propertyName)))
  
 foreign import javascript unsafe
         "($1[\"isPropertyImplicit\"]($2) ? 1 : 0)" js_isPropertyImplicit ::
-        CSSStyleDeclaration -> JSString -> IO Bool
+        CSSStyleDeclaration -> Optional JSString -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.isPropertyImplicit Mozilla CSSStyleDeclaration.isPropertyImplicit documentation> 
 isPropertyImplicit ::
                    (MonadIO m, ToJSString propertyName) =>
-                     CSSStyleDeclaration -> propertyName -> m Bool
+                     CSSStyleDeclaration -> Maybe propertyName -> m Bool
 isPropertyImplicit self propertyName
-  = liftIO (js_isPropertyImplicit (self) (toJSString propertyName))
+  = liftIO
+      (js_isPropertyImplicit self (toOptionalJSString propertyName))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.isPropertyImplicit Mozilla CSSStyleDeclaration.isPropertyImplicit documentation> 
 isPropertyImplicit_ ::
                     (MonadIO m, ToJSString propertyName) =>
-                      CSSStyleDeclaration -> propertyName -> m ()
+                      CSSStyleDeclaration -> Maybe propertyName -> m ()
 isPropertyImplicit_ self propertyName
   = liftIO
-      (void (js_isPropertyImplicit (self) (toJSString propertyName)))
+      (void
+         (js_isPropertyImplicit self (toOptionalJSString propertyName)))
  
 foreign import javascript unsafe "$1[\"cssText\"] = $2;"
-        js_setCssText :: CSSStyleDeclaration -> Nullable JSString -> IO ()
+        js_setCssText :: CSSStyleDeclaration -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.cssText Mozilla CSSStyleDeclaration.cssText documentation> 
 setCssText ::
-           (MonadIO m, ToJSString val) =>
-             CSSStyleDeclaration -> Maybe val -> m ()
-setCssText self val
-  = liftIO (js_setCssText (self) (toMaybeJSString val))
+           (MonadIO m, ToJSString val) => CSSStyleDeclaration -> val -> m ()
+setCssText self val = liftIO (js_setCssText self (toJSString val))
  
 foreign import javascript unsafe "$1[\"cssText\"]" js_getCssText ::
-        CSSStyleDeclaration -> IO (Nullable JSString)
+        CSSStyleDeclaration -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.cssText Mozilla CSSStyleDeclaration.cssText documentation> 
 getCssText ::
-           (MonadIO m, FromJSString result) =>
-             CSSStyleDeclaration -> m (Maybe result)
-getCssText self
-  = liftIO (fromMaybeJSString <$> (js_getCssText (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.cssText Mozilla CSSStyleDeclaration.cssText documentation> 
-getCssTextUnsafe ::
-                 (MonadIO m, HasCallStack, FromJSString result) =>
-                   CSSStyleDeclaration -> m result
-getCssTextUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getCssText (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.cssText Mozilla CSSStyleDeclaration.cssText documentation> 
-getCssTextUnchecked ::
-                    (MonadIO m, FromJSString result) => CSSStyleDeclaration -> m result
-getCssTextUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getCssText (self)))
+           (MonadIO m, FromJSString result) => CSSStyleDeclaration -> m result
+getCssText self = liftIO (fromJSString <$> (js_getCssText self))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         CSSStyleDeclaration -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.length Mozilla CSSStyleDeclaration.length documentation> 
 getLength :: (MonadIO m) => CSSStyleDeclaration -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
  
 foreign import javascript unsafe "$1[\"parentRule\"]"
         js_getParentRule :: CSSStyleDeclaration -> IO (Nullable CSSRule)
@@ -342,18 +283,18 @@
 getParentRule ::
               (MonadIO m) => CSSStyleDeclaration -> m (Maybe CSSRule)
 getParentRule self
-  = liftIO (nullableToMaybe <$> (js_getParentRule (self)))
+  = liftIO (nullableToMaybe <$> (js_getParentRule self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.parentRule Mozilla CSSStyleDeclaration.parentRule documentation> 
 getParentRuleUnsafe ::
                     (MonadIO m, HasCallStack) => CSSStyleDeclaration -> m CSSRule
 getParentRuleUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getParentRule (self))) >>=
+      ((nullableToMaybe <$> (js_getParentRule self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration.parentRule Mozilla CSSStyleDeclaration.parentRule documentation> 
 getParentRuleUnchecked ::
                        (MonadIO m) => CSSStyleDeclaration -> m CSSRule
 getParentRuleUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getParentRule (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getParentRule self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSStyleRule.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSStyleRule.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSStyleRule.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSStyleRule.hs
@@ -6,14 +6,13 @@
 module GHCJS.DOM.JSFFI.Generated.CSSStyleRule
        (js_setSelectorText, setSelectorText, js_getSelectorText,
         getSelectorText, getSelectorTextUnsafe, getSelectorTextUnchecked,
-        js_getStyle, getStyle, getStyleUnsafe, getStyleUnchecked,
-        CSSStyleRule(..), gTypeCSSStyleRule)
+        js_getStyle, getStyle, CSSStyleRule(..), gTypeCSSStyleRule)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,19 +21,20 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"selectorText\"] = $2;"
-        js_setSelectorText :: CSSStyleRule -> Nullable JSString -> IO ()
+        js_setSelectorText :: CSSStyleRule -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule.selectorText Mozilla CSSStyleRule.selectorText documentation> 
 setSelectorText ::
                 (MonadIO m, ToJSString val) => CSSStyleRule -> Maybe val -> m ()
 setSelectorText self val
-  = liftIO (js_setSelectorText (self) (toMaybeJSString val))
+  = liftIO (js_setSelectorText self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"selectorText\"]"
         js_getSelectorText :: CSSStyleRule -> IO (Nullable JSString)
@@ -44,7 +44,7 @@
                 (MonadIO m, FromJSString result) =>
                   CSSStyleRule -> m (Maybe result)
 getSelectorText self
-  = liftIO (fromMaybeJSString <$> (js_getSelectorText (self)))
+  = liftIO (fromMaybeJSString <$> (js_getSelectorText self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule.selectorText Mozilla CSSStyleRule.selectorText documentation> 
 getSelectorTextUnsafe ::
@@ -52,7 +52,7 @@
                         CSSStyleRule -> m result
 getSelectorTextUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getSelectorText (self))) >>=
+      ((fromMaybeJSString <$> (js_getSelectorText self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule.selectorText Mozilla CSSStyleRule.selectorText documentation> 
@@ -60,26 +60,11 @@
                          (MonadIO m, FromJSString result) => CSSStyleRule -> m result
 getSelectorTextUnchecked self
   = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getSelectorText (self)))
+      (fromJust . fromMaybeJSString <$> (js_getSelectorText self))
  
 foreign import javascript unsafe "$1[\"style\"]" js_getStyle ::
-        CSSStyleRule -> IO (Nullable CSSStyleDeclaration)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule.style Mozilla CSSStyleRule.style documentation> 
-getStyle ::
-         (MonadIO m) => CSSStyleRule -> m (Maybe CSSStyleDeclaration)
-getStyle self = liftIO (nullableToMaybe <$> (js_getStyle (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule.style Mozilla CSSStyleRule.style documentation> 
-getStyleUnsafe ::
-               (MonadIO m, HasCallStack) => CSSStyleRule -> m CSSStyleDeclaration
-getStyleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStyle (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        CSSStyleRule -> IO CSSStyleDeclaration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule.style Mozilla CSSStyleRule.style documentation> 
-getStyleUnchecked ::
-                  (MonadIO m) => CSSStyleRule -> m CSSStyleDeclaration
-getStyleUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getStyle (self)))
+getStyle :: (MonadIO m) => CSSStyleRule -> m CSSStyleDeclaration
+getStyle self = liftIO (js_getStyle self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSStyleSheet.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSStyleSheet.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSStyleSheet.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSStyleSheet.hs
@@ -4,19 +4,18 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CSSStyleSheet
-       (js_insertRule, insertRule, insertRule_, js_deleteRule, deleteRule,
-        js_addRule, addRule, addRule_, js_removeRule, removeRule,
-        js_getOwnerRule, getOwnerRule, getOwnerRuleUnsafe,
-        getOwnerRuleUnchecked, js_getCssRules, getCssRules,
-        getCssRulesUnsafe, getCssRulesUnchecked, js_getRules, getRules,
-        getRulesUnsafe, getRulesUnchecked, CSSStyleSheet(..),
-        gTypeCSSStyleSheet)
+       (js_insertRuleDeprecated, insertRuleDeprecated,
+        insertRuleDeprecated_, js_insertRule, insertRule, insertRule_,
+        js_deleteRule, deleteRule, js_addRule, addRule, addRule_,
+        js_removeRule, removeRule, js_getOwnerRule, getOwnerRule,
+        js_getCssRules, getCssRules, js_getRules, getRules,
+        CSSStyleSheet(..), gTypeCSSStyleSheet)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,123 +24,106 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"insertRule\"]($2, $3)"
-        js_insertRule :: CSSStyleSheet -> JSString -> Word -> IO Word
+        js_insertRuleDeprecated ::
+        CSSStyleSheet -> JSString -> Word -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.insertRule Mozilla CSSStyleSheet.insertRule documentation> 
+insertRuleDeprecated ::
+                     (MonadIO m, ToJSString rule) =>
+                       CSSStyleSheet -> rule -> Word -> m Word
+insertRuleDeprecated self rule index
+  = liftIO (js_insertRuleDeprecated self (toJSString rule) index)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.insertRule Mozilla CSSStyleSheet.insertRule documentation> 
+insertRuleDeprecated_ ::
+                      (MonadIO m, ToJSString rule) =>
+                        CSSStyleSheet -> rule -> Word -> m ()
+insertRuleDeprecated_ self rule index
+  = liftIO
+      (void (js_insertRuleDeprecated self (toJSString rule) index))
+ 
+foreign import javascript unsafe "$1[\"insertRule\"]($2)"
+        js_insertRule :: CSSStyleSheet -> JSString -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.insertRule Mozilla CSSStyleSheet.insertRule documentation> 
 insertRule ::
-           (MonadIO m, ToJSString rule) =>
-             CSSStyleSheet -> rule -> Word -> m Word
-insertRule self rule index
-  = liftIO (js_insertRule (self) (toJSString rule) index)
+           (MonadIO m, ToJSString rule) => CSSStyleSheet -> rule -> m Word
+insertRule self rule
+  = liftIO (js_insertRule self (toJSString rule))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.insertRule Mozilla CSSStyleSheet.insertRule documentation> 
 insertRule_ ::
-            (MonadIO m, ToJSString rule) =>
-              CSSStyleSheet -> rule -> Word -> m ()
-insertRule_ self rule index
-  = liftIO (void (js_insertRule (self) (toJSString rule) index))
+            (MonadIO m, ToJSString rule) => CSSStyleSheet -> rule -> m ()
+insertRule_ self rule
+  = liftIO (void (js_insertRule self (toJSString rule)))
  
 foreign import javascript unsafe "$1[\"deleteRule\"]($2)"
         js_deleteRule :: CSSStyleSheet -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.deleteRule Mozilla CSSStyleSheet.deleteRule documentation> 
 deleteRule :: (MonadIO m) => CSSStyleSheet -> Word -> m ()
-deleteRule self index = liftIO (js_deleteRule (self) index)
+deleteRule self index = liftIO (js_deleteRule self index)
  
 foreign import javascript unsafe "$1[\"addRule\"]($2, $3, $4)"
         js_addRule ::
-        CSSStyleSheet -> JSString -> JSString -> Word -> IO Int
+        CSSStyleSheet ->
+          Optional JSString -> Optional JSString -> Optional Word -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.addRule Mozilla CSSStyleSheet.addRule documentation> 
 addRule ::
         (MonadIO m, ToJSString selector, ToJSString style) =>
-          CSSStyleSheet -> selector -> style -> Word -> m Int
+          CSSStyleSheet ->
+            Maybe selector -> Maybe style -> Maybe Word -> m Int
 addRule self selector style index
   = liftIO
-      (js_addRule (self) (toJSString selector) (toJSString style) index)
+      (js_addRule self (toOptionalJSString selector)
+         (toOptionalJSString style)
+         (maybeToOptional index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.addRule Mozilla CSSStyleSheet.addRule documentation> 
 addRule_ ::
          (MonadIO m, ToJSString selector, ToJSString style) =>
-           CSSStyleSheet -> selector -> style -> Word -> m ()
+           CSSStyleSheet ->
+             Maybe selector -> Maybe style -> Maybe Word -> m ()
 addRule_ self selector style index
   = liftIO
       (void
-         (js_addRule (self) (toJSString selector) (toJSString style) index))
+         (js_addRule self (toOptionalJSString selector)
+            (toOptionalJSString style)
+            (maybeToOptional index)))
  
 foreign import javascript unsafe "$1[\"removeRule\"]($2)"
-        js_removeRule :: CSSStyleSheet -> Word -> IO ()
+        js_removeRule :: CSSStyleSheet -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.removeRule Mozilla CSSStyleSheet.removeRule documentation> 
-removeRule :: (MonadIO m) => CSSStyleSheet -> Word -> m ()
-removeRule self index = liftIO (js_removeRule (self) index)
+removeRule :: (MonadIO m) => CSSStyleSheet -> Maybe Word -> m ()
+removeRule self index
+  = liftIO (js_removeRule self (maybeToOptional index))
  
 foreign import javascript unsafe "$1[\"ownerRule\"]"
-        js_getOwnerRule :: CSSStyleSheet -> IO (Nullable CSSRule)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.ownerRule Mozilla CSSStyleSheet.ownerRule documentation> 
-getOwnerRule :: (MonadIO m) => CSSStyleSheet -> m (Maybe CSSRule)
-getOwnerRule self
-  = liftIO (nullableToMaybe <$> (js_getOwnerRule (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.ownerRule Mozilla CSSStyleSheet.ownerRule documentation> 
-getOwnerRuleUnsafe ::
-                   (MonadIO m, HasCallStack) => CSSStyleSheet -> m CSSRule
-getOwnerRuleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOwnerRule (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getOwnerRule :: CSSStyleSheet -> IO CSSRule
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.ownerRule Mozilla CSSStyleSheet.ownerRule documentation> 
-getOwnerRuleUnchecked :: (MonadIO m) => CSSStyleSheet -> m CSSRule
-getOwnerRuleUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getOwnerRule (self)))
+getOwnerRule :: (MonadIO m) => CSSStyleSheet -> m CSSRule
+getOwnerRule self = liftIO (js_getOwnerRule self)
  
 foreign import javascript unsafe "$1[\"cssRules\"]" js_getCssRules
-        :: CSSStyleSheet -> IO (Nullable CSSRuleList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.cssRules Mozilla CSSStyleSheet.cssRules documentation> 
-getCssRules ::
-            (MonadIO m) => CSSStyleSheet -> m (Maybe CSSRuleList)
-getCssRules self
-  = liftIO (nullableToMaybe <$> (js_getCssRules (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.cssRules Mozilla CSSStyleSheet.cssRules documentation> 
-getCssRulesUnsafe ::
-                  (MonadIO m, HasCallStack) => CSSStyleSheet -> m CSSRuleList
-getCssRulesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCssRules (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: CSSStyleSheet -> IO CSSRuleList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.cssRules Mozilla CSSStyleSheet.cssRules documentation> 
-getCssRulesUnchecked ::
-                     (MonadIO m) => CSSStyleSheet -> m CSSRuleList
-getCssRulesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCssRules (self)))
+getCssRules :: (MonadIO m) => CSSStyleSheet -> m CSSRuleList
+getCssRules self = liftIO (js_getCssRules self)
  
 foreign import javascript unsafe "$1[\"rules\"]" js_getRules ::
-        CSSStyleSheet -> IO (Nullable CSSRuleList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.rules Mozilla CSSStyleSheet.rules documentation> 
-getRules :: (MonadIO m) => CSSStyleSheet -> m (Maybe CSSRuleList)
-getRules self = liftIO (nullableToMaybe <$> (js_getRules (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.rules Mozilla CSSStyleSheet.rules documentation> 
-getRulesUnsafe ::
-               (MonadIO m, HasCallStack) => CSSStyleSheet -> m CSSRuleList
-getRulesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRules (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        CSSStyleSheet -> IO CSSRuleList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.rules Mozilla CSSStyleSheet.rules documentation> 
-getRulesUnchecked :: (MonadIO m) => CSSStyleSheet -> m CSSRuleList
-getRulesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRules (self)))
+getRules :: (MonadIO m) => CSSStyleSheet -> m CSSRuleList
+getRules self = liftIO (js_getRules self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSSupportsRule.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSSupportsRule.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSSupportsRule.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSSupportsRule.hs
@@ -5,15 +5,14 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CSSSupportsRule
        (js_insertRule, insertRule, insertRule_, js_deleteRule, deleteRule,
-        js_getCssRules, getCssRules, getCssRulesUnsafe,
-        getCssRulesUnchecked, js_getConditionText, getConditionText,
+        js_getCssRules, getCssRules, js_getConditionText, getConditionText,
         CSSSupportsRule(..), gTypeCSSSupportsRule)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -35,44 +35,28 @@
            (MonadIO m, ToJSString rule) =>
              CSSSupportsRule -> rule -> Word -> m Word
 insertRule self rule index
-  = liftIO (js_insertRule (self) (toJSString rule) index)
+  = liftIO (js_insertRule self (toJSString rule) index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule.insertRule Mozilla CSSSupportsRule.insertRule documentation> 
 insertRule_ ::
             (MonadIO m, ToJSString rule) =>
               CSSSupportsRule -> rule -> Word -> m ()
 insertRule_ self rule index
-  = liftIO (void (js_insertRule (self) (toJSString rule) index))
+  = liftIO (void (js_insertRule self (toJSString rule) index))
  
 foreign import javascript unsafe "$1[\"deleteRule\"]($2)"
         js_deleteRule :: CSSSupportsRule -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule.deleteRule Mozilla CSSSupportsRule.deleteRule documentation> 
 deleteRule :: (MonadIO m) => CSSSupportsRule -> Word -> m ()
-deleteRule self index = liftIO (js_deleteRule (self) index)
+deleteRule self index = liftIO (js_deleteRule self index)
  
 foreign import javascript unsafe "$1[\"cssRules\"]" js_getCssRules
-        :: CSSSupportsRule -> IO (Nullable CSSRuleList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule.cssRules Mozilla CSSSupportsRule.cssRules documentation> 
-getCssRules ::
-            (MonadIO m) => CSSSupportsRule -> m (Maybe CSSRuleList)
-getCssRules self
-  = liftIO (nullableToMaybe <$> (js_getCssRules (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule.cssRules Mozilla CSSSupportsRule.cssRules documentation> 
-getCssRulesUnsafe ::
-                  (MonadIO m, HasCallStack) => CSSSupportsRule -> m CSSRuleList
-getCssRulesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCssRules (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: CSSSupportsRule -> IO CSSRuleList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule.cssRules Mozilla CSSSupportsRule.cssRules documentation> 
-getCssRulesUnchecked ::
-                     (MonadIO m) => CSSSupportsRule -> m CSSRuleList
-getCssRulesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCssRules (self)))
+getCssRules :: (MonadIO m) => CSSSupportsRule -> m CSSRuleList
+getCssRules self = liftIO (js_getCssRules self)
  
 foreign import javascript unsafe "$1[\"conditionText\"]"
         js_getConditionText :: CSSSupportsRule -> IO JSString
@@ -81,4 +65,4 @@
 getConditionText ::
                  (MonadIO m, FromJSString result) => CSSSupportsRule -> m result
 getConditionText self
-  = liftIO (fromJSString <$> (js_getConditionText (self)))
+  = liftIO (fromJSString <$> (js_getConditionText self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSValue.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSValue.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSValue.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSValue.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,14 +34,14 @@
 pattern CSS_CUSTOM = 3
  
 foreign import javascript unsafe "$1[\"cssText\"] = $2;"
-        js_setCssText :: CSSValue -> Nullable JSString -> IO ()
+        js_setCssText :: CSSValue -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSValue.cssText Mozilla CSSValue.cssText documentation> 
 setCssText ::
            (MonadIO m, IsCSSValue self, ToJSString val) =>
              self -> Maybe val -> m ()
 setCssText self val
-  = liftIO (js_setCssText (toCSSValue self) (toMaybeJSString val))
+  = liftIO (js_setCssText (toCSSValue self) (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"cssText\"]" js_getCssText ::
         CSSValue -> IO (Nullable JSString)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CSSValueList.hs b/src/GHCJS/DOM/JSFFI/Generated/CSSValueList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CSSValueList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CSSValueList.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CSSValueList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getLength,
-        getLength, CSSValueList(..), gTypeCSSValueList, IsCSSValueList,
-        toCSSValueList)
+       (js_item, item, item_, js_getLength, getLength, CSSValueList(..),
+        gTypeCSSValueList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,47 +20,26 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        CSSValueList -> Word -> IO (Nullable CSSValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSValueList.item Mozilla CSSValueList.item documentation> 
-item ::
-     (MonadIO m, IsCSSValueList self) =>
-       self -> Word -> m (Maybe CSSValue)
-item self index
-  = liftIO
-      (nullableToMaybe <$> (js_item (toCSSValueList self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSValueList.item Mozilla CSSValueList.item documentation> 
-item_ :: (MonadIO m, IsCSSValueList self) => self -> Word -> m ()
-item_ self index
-  = liftIO (void (js_item (toCSSValueList self) index))
+foreign import javascript unsafe "$1[$2]" js_item ::
+        CSSValueList -> Word -> IO CSSValue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSValueList.item Mozilla CSSValueList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, IsCSSValueList self, HasCallStack) =>
-             self -> Word -> m CSSValue
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (toCSSValueList self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+item :: (MonadIO m) => CSSValueList -> Word -> m CSSValue
+item self index = liftIO (js_item self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSValueList.item Mozilla CSSValueList.item documentation> 
-itemUnchecked ::
-              (MonadIO m, IsCSSValueList self) => self -> Word -> m CSSValue
-itemUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_item (toCSSValueList self) index))
+item_ :: (MonadIO m) => CSSValueList -> Word -> m ()
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         CSSValueList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CSSValueList.length Mozilla CSSValueList.length documentation> 
-getLength :: (MonadIO m, IsCSSValueList self) => self -> m Word
-getLength self = liftIO (js_getLength (toCSSValueList self))
+getLength :: (MonadIO m) => CSSValueList -> m Word
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CanvasGradient.hs b/src/GHCJS/DOM/JSFFI/Generated/CanvasGradient.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CanvasGradient.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CanvasGradient.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,4 +34,4 @@
              (MonadIO m, ToJSString color) =>
                CanvasGradient -> Float -> color -> m ()
 addColorStop self offset color
-  = liftIO (js_addColorStop (self) offset (toJSString color))
+  = liftIO (js_addColorStop self offset (toJSString color))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CanvasPath.hs b/src/GHCJS/DOM/JSFFI/Generated/CanvasPath.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/CanvasPath.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.CanvasPath
+       (js_closePath, closePath, js_moveTo, moveTo, js_lineTo, lineTo,
+        js_quadraticCurveTo, quadraticCurveTo, js_bezierCurveTo,
+        bezierCurveTo, js_arcTo, arcTo, js_rect, rect, js_arc, arc,
+        js_ellipse, ellipse, CanvasPath(..), gTypeCanvasPath, IsCanvasPath,
+        toCanvasPath)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"closePath\"]()" js_closePath
+        :: CanvasPath -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPath.closePath Mozilla CanvasPath.closePath documentation> 
+closePath :: (MonadIO m, IsCanvasPath self) => self -> m ()
+closePath self = liftIO (js_closePath (toCanvasPath self))
+ 
+foreign import javascript unsafe "$1[\"moveTo\"]($2, $3)" js_moveTo
+        :: CanvasPath -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPath.moveTo Mozilla CanvasPath.moveTo documentation> 
+moveTo ::
+       (MonadIO m, IsCanvasPath self) => self -> Double -> Double -> m ()
+moveTo self x y = liftIO (js_moveTo (toCanvasPath self) x y)
+ 
+foreign import javascript unsafe "$1[\"lineTo\"]($2, $3)" js_lineTo
+        :: CanvasPath -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPath.lineTo Mozilla CanvasPath.lineTo documentation> 
+lineTo ::
+       (MonadIO m, IsCanvasPath self) => self -> Double -> Double -> m ()
+lineTo self x y = liftIO (js_lineTo (toCanvasPath self) x y)
+ 
+foreign import javascript unsafe
+        "$1[\"quadraticCurveTo\"]($2, $3,\n$4, $5)" js_quadraticCurveTo ::
+        CanvasPath -> Double -> Double -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPath.quadraticCurveTo Mozilla CanvasPath.quadraticCurveTo documentation> 
+quadraticCurveTo ::
+                 (MonadIO m, IsCanvasPath self) =>
+                   self -> Double -> Double -> Double -> Double -> m ()
+quadraticCurveTo self cpx cpy x y
+  = liftIO (js_quadraticCurveTo (toCanvasPath self) cpx cpy x y)
+ 
+foreign import javascript unsafe
+        "$1[\"bezierCurveTo\"]($2, $3, $4,\n$5, $6, $7)" js_bezierCurveTo
+        ::
+        CanvasPath ->
+          Double -> Double -> Double -> Double -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPath.bezierCurveTo Mozilla CanvasPath.bezierCurveTo documentation> 
+bezierCurveTo ::
+              (MonadIO m, IsCanvasPath self) =>
+                self ->
+                  Double -> Double -> Double -> Double -> Double -> Double -> m ()
+bezierCurveTo self cp1x cp1y cp2x cp2y x y
+  = liftIO
+      (js_bezierCurveTo (toCanvasPath self) cp1x cp1y cp2x cp2y x y)
+ 
+foreign import javascript unsafe
+        "$1[\"arcTo\"]($2, $3, $4, $5, $6)" js_arcTo ::
+        CanvasPath ->
+          Double -> Double -> Double -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPath.arcTo Mozilla CanvasPath.arcTo documentation> 
+arcTo ::
+      (MonadIO m, IsCanvasPath self) =>
+        self -> Double -> Double -> Double -> Double -> Double -> m ()
+arcTo self x1 y1 x2 y2 radius
+  = liftIO (js_arcTo (toCanvasPath self) x1 y1 x2 y2 radius)
+ 
+foreign import javascript unsafe "$1[\"rect\"]($2, $3, $4, $5)"
+        js_rect ::
+        CanvasPath -> Double -> Double -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPath.rect Mozilla CanvasPath.rect documentation> 
+rect ::
+     (MonadIO m, IsCanvasPath self) =>
+       self -> Double -> Double -> Double -> Double -> m ()
+rect self x y w h = liftIO (js_rect (toCanvasPath self) x y w h)
+ 
+foreign import javascript unsafe
+        "$1[\"arc\"]($2, $3, $4, $5, $6,\n$7)" js_arc ::
+        CanvasPath ->
+          Double -> Double -> Double -> Double -> Double -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPath.arc Mozilla CanvasPath.arc documentation> 
+arc ::
+    (MonadIO m, IsCanvasPath self) =>
+      self ->
+        Double -> Double -> Double -> Double -> Double -> Bool -> m ()
+arc self x y radius startAngle endAngle anticlockwise
+  = liftIO
+      (js_arc (toCanvasPath self) x y radius startAngle endAngle
+         anticlockwise)
+ 
+foreign import javascript unsafe
+        "$1[\"ellipse\"]($2, $3, $4, $5,\n$6, $7, $8, $9)" js_ellipse ::
+        CanvasPath ->
+          Double ->
+            Double ->
+              Double -> Double -> Double -> Double -> Double -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPath.ellipse Mozilla CanvasPath.ellipse documentation> 
+ellipse ::
+        (MonadIO m, IsCanvasPath self) =>
+          self ->
+            Double ->
+              Double ->
+                Double -> Double -> Double -> Double -> Double -> Bool -> m ()
+ellipse self x y radiusX radiusY rotation startAngle endAngle
+  anticlockwise
+  = liftIO
+      (js_ellipse (toCanvasPath self) x y radiusX radiusY rotation
+         startAngle
+         endAngle
+         anticlockwise)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CanvasRenderingContext.hs b/src/GHCJS/DOM/JSFFI/Generated/CanvasRenderingContext.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/CanvasRenderingContext.hs
+++ /dev/null
@@ -1,58 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.CanvasRenderingContext
-       (js_getCanvas, getCanvas, getCanvasUnsafe, getCanvasUnchecked,
-        CanvasRenderingContext(..), gTypeCanvasRenderingContext,
-        IsCanvasRenderingContext, toCanvasRenderingContext)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"canvas\"]" js_getCanvas ::
-        CanvasRenderingContext -> IO (Nullable HTMLCanvasElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext.canvas Mozilla CanvasRenderingContext.canvas documentation> 
-getCanvas ::
-          (MonadIO m, IsCanvasRenderingContext self) =>
-            self -> m (Maybe HTMLCanvasElement)
-getCanvas self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getCanvas (toCanvasRenderingContext self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext.canvas Mozilla CanvasRenderingContext.canvas documentation> 
-getCanvasUnsafe ::
-                (MonadIO m, IsCanvasRenderingContext self, HasCallStack) =>
-                  self -> m HTMLCanvasElement
-getCanvasUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getCanvas (toCanvasRenderingContext self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext.canvas Mozilla CanvasRenderingContext.canvas documentation> 
-getCanvasUnchecked ::
-                   (MonadIO m, IsCanvasRenderingContext self) =>
-                     self -> m HTMLCanvasElement
-getCanvasUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getCanvas (toCanvasRenderingContext self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CanvasRenderingContext2D.hs b/src/GHCJS/DOM/JSFFI/Generated/CanvasRenderingContext2D.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CanvasRenderingContext2D.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CanvasRenderingContext2D.hs
@@ -4,1923 +4,1432 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CanvasRenderingContext2D
-       (js_save, save, js_restore, restore, js_scale, scale, js_rotate,
-        rotate, js_translate, translate, js_transform, transform,
-        js_setTransform, setTransform, js_createLinearGradient,
-        createLinearGradient, createLinearGradient_,
-        createLinearGradientUnsafe, createLinearGradientUnchecked,
-        js_createRadialGradient, createRadialGradient,
-        createRadialGradient_, createRadialGradientUnsafe,
-        createRadialGradientUnchecked, js_setLineDash, setLineDash,
-        js_getLineDash, getLineDash, getLineDash_, js_clearRect, clearRect,
-        js_fillRect, fillRect, js_beginPath, beginPath, js_closePath,
-        closePath, js_moveTo, moveTo, js_lineTo, lineTo,
-        js_quadraticCurveTo, quadraticCurveTo, js_bezierCurveTo,
-        bezierCurveTo, js_arcTo, arcTo, js_rect, rect, js_arc, arc,
-        js_fillPath, fillPath, js_strokePath, strokePath, js_clipPath,
-        clipPath, js_fill, fill, js_stroke, stroke, js_clip, clip,
-        js_isPointInPathPath, isPointInPathPath, isPointInPathPath_,
-        js_isPointInStrokePath, isPointInStrokePath, isPointInStrokePath_,
-        js_isPointInPath, isPointInPath, isPointInPath_,
-        js_isPointInStroke, isPointInStroke, isPointInStroke_,
-        js_measureText, measureText, measureText_, measureTextUnsafe,
-        measureTextUnchecked, js_setAlpha, setAlpha,
-        js_setCompositeOperation, setCompositeOperation,
-        js_setLineWidthFunction, setLineWidthFunction,
-        js_setLineCapFunction, setLineCapFunction, js_setLineJoinFunction,
-        setLineJoinFunction, js_setMiterLimitFunction,
-        setMiterLimitFunction, js_clearShadow, clearShadow, js_fillText,
-        fillText, js_strokeText, strokeText, js_setStrokeColor,
-        setStrokeColor, js_setStrokeColorGray, setStrokeColorGray,
-        js_setStrokeColorRGB, setStrokeColorRGB, js_setStrokeColorCYMK,
-        setStrokeColorCYMK, js_setFillColor, setFillColor,
-        js_setFillColorGray, setFillColorGray, js_setFillColorRGB,
-        setFillColorRGB, js_setFillColorCYMK, setFillColorCYMK,
-        js_strokeRect, strokeRect, js_drawImage, drawImage,
-        js_drawImageScaled, drawImageScaled, js_drawImagePart,
-        drawImagePart, js_drawImageFromCanvas, drawImageFromCanvas,
-        js_drawImageFromCanvasScaled, drawImageFromCanvasScaled,
-        js_drawImageFromCanvasPart, drawImageFromCanvasPart,
-        js_drawImageFromVideo, drawImageFromVideo,
-        js_drawImageFromVideoScaled, drawImageFromVideoScaled,
-        js_drawImageFromVideoPart, drawImageFromVideoPart,
-        js_drawImageFromRect, drawImageFromRect, js_setShadow, setShadow,
-        js_setShadowGray, setShadowGray, js_setShadowRGB, setShadowRGB,
-        js_setShadowCYMK, setShadowCYMK, js_putImageData, putImageData,
-        js_putImageDataDirty, putImageDataDirty, js_webkitPutImageDataHD,
-        webkitPutImageDataHD, js_webkitPutImageDataHDDirty,
-        webkitPutImageDataHDDirty, js_createPatternFromCanvas,
-        createPatternFromCanvas, createPatternFromCanvas_,
-        createPatternFromCanvasUnsafe, createPatternFromCanvasUnchecked,
-        js_createPattern, createPattern, createPattern_,
-        createPatternUnsafe, createPatternUnchecked, js_createImageData,
-        createImageData, createImageData_, createImageDataUnsafe,
-        createImageDataUnchecked, js_createImageDataSize,
-        createImageDataSize, createImageDataSize_,
-        createImageDataSizeUnsafe, createImageDataSizeUnchecked,
-        js_getImageData, getImageData, getImageData_, getImageDataUnsafe,
-        getImageDataUnchecked, js_webkitGetImageDataHD,
-        webkitGetImageDataHD, webkitGetImageDataHD_,
-        webkitGetImageDataHDUnsafe, webkitGetImageDataHDUnchecked,
-        js_drawFocusIfNeeded, drawFocusIfNeeded, js_drawFocusIfNeededPath,
-        drawFocusIfNeededPath, js_setGlobalAlpha, setGlobalAlpha,
-        js_getGlobalAlpha, getGlobalAlpha, js_setGlobalCompositeOperation,
-        setGlobalCompositeOperation, js_getGlobalCompositeOperation,
-        getGlobalCompositeOperation, getGlobalCompositeOperationUnsafe,
-        getGlobalCompositeOperationUnchecked, js_setLineWidth,
-        setLineWidth, js_getLineWidth, getLineWidth, js_setLineCap,
-        setLineCap, js_getLineCap, getLineCap, getLineCapUnsafe,
-        getLineCapUnchecked, js_setLineJoin, setLineJoin, js_getLineJoin,
-        getLineJoin, getLineJoinUnsafe, getLineJoinUnchecked,
-        js_setMiterLimit, setMiterLimit, js_getMiterLimit, getMiterLimit,
-        js_setShadowOffsetX, setShadowOffsetX, js_getShadowOffsetX,
-        getShadowOffsetX, js_setShadowOffsetY, setShadowOffsetY,
-        js_getShadowOffsetY, getShadowOffsetY, js_setShadowBlur,
-        setShadowBlur, js_getShadowBlur, getShadowBlur, js_setShadowColor,
-        setShadowColor, js_getShadowColor, getShadowColor,
-        getShadowColorUnsafe, getShadowColorUnchecked,
-        js_setLineDashOffset, setLineDashOffset, js_getLineDashOffset,
-        getLineDashOffset, js_setWebkitLineDash, setWebkitLineDash,
-        js_getWebkitLineDash, getWebkitLineDash, getWebkitLineDashUnsafe,
-        getWebkitLineDashUnchecked, js_setWebkitLineDashOffset,
-        setWebkitLineDashOffset, js_getWebkitLineDashOffset,
-        getWebkitLineDashOffset, js_setFont, setFont, js_getFont, getFont,
-        js_setTextAlign, setTextAlign, js_getTextAlign, getTextAlign,
-        js_setTextBaseline, setTextBaseline, js_getTextBaseline,
-        getTextBaseline, js_setDirection, setDirection, js_getDirection,
-        getDirection, js_setStrokeStyle, setStrokeStyle, js_getStrokeStyle,
-        getStrokeStyle, getStrokeStyleUnsafe, getStrokeStyleUnchecked,
-        js_setFillStyle, setFillStyle, js_getFillStyle, getFillStyle,
-        getFillStyleUnsafe, getFillStyleUnchecked,
-        js_getWebkitBackingStorePixelRatio,
-        getWebkitBackingStorePixelRatio, js_setWebkitImageSmoothingEnabled,
-        setWebkitImageSmoothingEnabled, js_getWebkitImageSmoothingEnabled,
-        getWebkitImageSmoothingEnabled, CanvasRenderingContext2D(..),
-        gTypeCanvasRenderingContext2D)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"save\"]()" js_save ::
-        CanvasRenderingContext2D -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.save Mozilla CanvasRenderingContext2D.save documentation> 
-save :: (MonadIO m) => CanvasRenderingContext2D -> m ()
-save self = liftIO (js_save (self))
- 
-foreign import javascript unsafe "$1[\"restore\"]()" js_restore ::
-        CanvasRenderingContext2D -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.restore Mozilla CanvasRenderingContext2D.restore documentation> 
-restore :: (MonadIO m) => CanvasRenderingContext2D -> m ()
-restore self = liftIO (js_restore (self))
- 
-foreign import javascript unsafe "$1[\"scale\"]($2, $3)" js_scale
-        :: CanvasRenderingContext2D -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.scale Mozilla CanvasRenderingContext2D.scale documentation> 
-scale ::
-      (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
-scale self sx sy = liftIO (js_scale (self) sx sy)
- 
-foreign import javascript unsafe "$1[\"rotate\"]($2)" js_rotate ::
-        CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.rotate Mozilla CanvasRenderingContext2D.rotate documentation> 
-rotate :: (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-rotate self angle = liftIO (js_rotate (self) angle)
- 
-foreign import javascript unsafe "$1[\"translate\"]($2, $3)"
-        js_translate :: CanvasRenderingContext2D -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.translate Mozilla CanvasRenderingContext2D.translate documentation> 
-translate ::
-          (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
-translate self tx ty = liftIO (js_translate (self) tx ty)
- 
-foreign import javascript unsafe
-        "$1[\"transform\"]($2, $3, $4, $5,\n$6, $7)" js_transform ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.transform Mozilla CanvasRenderingContext2D.transform documentation> 
-transform ::
-          (MonadIO m) =>
-            CanvasRenderingContext2D ->
-              Float -> Float -> Float -> Float -> Float -> Float -> m ()
-transform self m11 m12 m21 m22 dx dy
-  = liftIO (js_transform (self) m11 m12 m21 m22 dx dy)
- 
-foreign import javascript unsafe
-        "$1[\"setTransform\"]($2, $3, $4,\n$5, $6, $7)" js_setTransform ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setTransform Mozilla CanvasRenderingContext2D.setTransform documentation> 
-setTransform ::
-             (MonadIO m) =>
-               CanvasRenderingContext2D ->
-                 Float -> Float -> Float -> Float -> Float -> Float -> m ()
-setTransform self m11 m12 m21 m22 dx dy
-  = liftIO (js_setTransform (self) m11 m12 m21 m22 dx dy)
- 
-foreign import javascript unsafe
-        "$1[\"createLinearGradient\"]($2,\n$3, $4, $5)"
-        js_createLinearGradient ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> IO (Nullable CanvasGradient)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createLinearGradient Mozilla CanvasRenderingContext2D.createLinearGradient documentation> 
-createLinearGradient ::
-                     (MonadIO m) =>
-                       CanvasRenderingContext2D ->
-                         Float -> Float -> Float -> Float -> m (Maybe CanvasGradient)
-createLinearGradient self x0 y0 x1 y1
-  = liftIO
-      (nullableToMaybe <$> (js_createLinearGradient (self) x0 y0 x1 y1))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createLinearGradient Mozilla CanvasRenderingContext2D.createLinearGradient documentation> 
-createLinearGradient_ ::
-                      (MonadIO m) =>
-                        CanvasRenderingContext2D ->
-                          Float -> Float -> Float -> Float -> m ()
-createLinearGradient_ self x0 y0 x1 y1
-  = liftIO (void (js_createLinearGradient (self) x0 y0 x1 y1))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createLinearGradient Mozilla CanvasRenderingContext2D.createLinearGradient documentation> 
-createLinearGradientUnsafe ::
-                           (MonadIO m, HasCallStack) =>
-                             CanvasRenderingContext2D ->
-                               Float -> Float -> Float -> Float -> m CanvasGradient
-createLinearGradientUnsafe self x0 y0 x1 y1
-  = liftIO
-      ((nullableToMaybe <$> (js_createLinearGradient (self) x0 y0 x1 y1))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createLinearGradient Mozilla CanvasRenderingContext2D.createLinearGradient documentation> 
-createLinearGradientUnchecked ::
-                              (MonadIO m) =>
-                                CanvasRenderingContext2D ->
-                                  Float -> Float -> Float -> Float -> m CanvasGradient
-createLinearGradientUnchecked self x0 y0 x1 y1
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createLinearGradient (self) x0 y0 x1 y1))
- 
-foreign import javascript unsafe
-        "$1[\"createRadialGradient\"]($2,\n$3, $4, $5, $6, $7)"
-        js_createRadialGradient ::
-        CanvasRenderingContext2D ->
-          Float ->
-            Float ->
-              Float -> Float -> Float -> Float -> IO (Nullable CanvasGradient)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createRadialGradient Mozilla CanvasRenderingContext2D.createRadialGradient documentation> 
-createRadialGradient ::
-                     (MonadIO m) =>
-                       CanvasRenderingContext2D ->
-                         Float ->
-                           Float ->
-                             Float -> Float -> Float -> Float -> m (Maybe CanvasGradient)
-createRadialGradient self x0 y0 r0 x1 y1 r1
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createRadialGradient (self) x0 y0 r0 x1 y1 r1))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createRadialGradient Mozilla CanvasRenderingContext2D.createRadialGradient documentation> 
-createRadialGradient_ ::
-                      (MonadIO m) =>
-                        CanvasRenderingContext2D ->
-                          Float -> Float -> Float -> Float -> Float -> Float -> m ()
-createRadialGradient_ self x0 y0 r0 x1 y1 r1
-  = liftIO (void (js_createRadialGradient (self) x0 y0 r0 x1 y1 r1))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createRadialGradient Mozilla CanvasRenderingContext2D.createRadialGradient documentation> 
-createRadialGradientUnsafe ::
-                           (MonadIO m, HasCallStack) =>
-                             CanvasRenderingContext2D ->
-                               Float ->
-                                 Float -> Float -> Float -> Float -> Float -> m CanvasGradient
-createRadialGradientUnsafe self x0 y0 r0 x1 y1 r1
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createRadialGradient (self) x0 y0 r0 x1 y1 r1))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createRadialGradient Mozilla CanvasRenderingContext2D.createRadialGradient documentation> 
-createRadialGradientUnchecked ::
-                              (MonadIO m) =>
-                                CanvasRenderingContext2D ->
-                                  Float ->
-                                    Float -> Float -> Float -> Float -> Float -> m CanvasGradient
-createRadialGradientUnchecked self x0 y0 r0 x1 y1 r1
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createRadialGradient (self) x0 y0 r0 x1 y1 r1))
- 
-foreign import javascript unsafe "$1[\"setLineDash\"]($2)"
-        js_setLineDash :: CanvasRenderingContext2D -> JSVal -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setLineDash Mozilla CanvasRenderingContext2D.setLineDash documentation> 
-setLineDash ::
-            (MonadIO m) => CanvasRenderingContext2D -> [Float] -> m ()
-setLineDash self dash
-  = liftIO (toJSVal dash >>= \ dash' -> js_setLineDash (self) dash')
- 
-foreign import javascript unsafe "$1[\"getLineDash\"]()"
-        js_getLineDash :: CanvasRenderingContext2D -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.getLineDash Mozilla CanvasRenderingContext2D.getLineDash documentation> 
-getLineDash :: (MonadIO m) => CanvasRenderingContext2D -> m [Float]
-getLineDash self
-  = liftIO ((js_getLineDash (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.getLineDash Mozilla CanvasRenderingContext2D.getLineDash documentation> 
-getLineDash_ :: (MonadIO m) => CanvasRenderingContext2D -> m ()
-getLineDash_ self = liftIO (void (js_getLineDash (self)))
- 
-foreign import javascript unsafe
-        "$1[\"clearRect\"]($2, $3, $4, $5)" js_clearRect ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.clearRect Mozilla CanvasRenderingContext2D.clearRect documentation> 
-clearRect ::
-          (MonadIO m) =>
-            CanvasRenderingContext2D ->
-              Float -> Float -> Float -> Float -> m ()
-clearRect self x y width height
-  = liftIO (js_clearRect (self) x y width height)
- 
-foreign import javascript unsafe "$1[\"fillRect\"]($2, $3, $4, $5)"
-        js_fillRect ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fillRect Mozilla CanvasRenderingContext2D.fillRect documentation> 
-fillRect ::
-         (MonadIO m) =>
-           CanvasRenderingContext2D ->
-             Float -> Float -> Float -> Float -> m ()
-fillRect self x y width height
-  = liftIO (js_fillRect (self) x y width height)
- 
-foreign import javascript unsafe "$1[\"beginPath\"]()" js_beginPath
-        :: CanvasRenderingContext2D -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.beginPath Mozilla CanvasRenderingContext2D.beginPath documentation> 
-beginPath :: (MonadIO m) => CanvasRenderingContext2D -> m ()
-beginPath self = liftIO (js_beginPath (self))
- 
-foreign import javascript unsafe "$1[\"closePath\"]()" js_closePath
-        :: CanvasRenderingContext2D -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.closePath Mozilla CanvasRenderingContext2D.closePath documentation> 
-closePath :: (MonadIO m) => CanvasRenderingContext2D -> m ()
-closePath self = liftIO (js_closePath (self))
- 
-foreign import javascript unsafe "$1[\"moveTo\"]($2, $3)" js_moveTo
-        :: CanvasRenderingContext2D -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.moveTo Mozilla CanvasRenderingContext2D.moveTo documentation> 
-moveTo ::
-       (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
-moveTo self x y = liftIO (js_moveTo (self) x y)
- 
-foreign import javascript unsafe "$1[\"lineTo\"]($2, $3)" js_lineTo
-        :: CanvasRenderingContext2D -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineTo Mozilla CanvasRenderingContext2D.lineTo documentation> 
-lineTo ::
-       (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
-lineTo self x y = liftIO (js_lineTo (self) x y)
- 
-foreign import javascript unsafe
-        "$1[\"quadraticCurveTo\"]($2, $3,\n$4, $5)" js_quadraticCurveTo ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.quadraticCurveTo Mozilla CanvasRenderingContext2D.quadraticCurveTo documentation> 
-quadraticCurveTo ::
-                 (MonadIO m) =>
-                   CanvasRenderingContext2D ->
-                     Float -> Float -> Float -> Float -> m ()
-quadraticCurveTo self cpx cpy x y
-  = liftIO (js_quadraticCurveTo (self) cpx cpy x y)
- 
-foreign import javascript unsafe
-        "$1[\"bezierCurveTo\"]($2, $3, $4,\n$5, $6, $7)" js_bezierCurveTo
-        ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.bezierCurveTo Mozilla CanvasRenderingContext2D.bezierCurveTo documentation> 
-bezierCurveTo ::
-              (MonadIO m) =>
-                CanvasRenderingContext2D ->
-                  Float -> Float -> Float -> Float -> Float -> Float -> m ()
-bezierCurveTo self cp1x cp1y cp2x cp2y x y
-  = liftIO (js_bezierCurveTo (self) cp1x cp1y cp2x cp2y x y)
- 
-foreign import javascript unsafe
-        "$1[\"arcTo\"]($2, $3, $4, $5, $6)" js_arcTo ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.arcTo Mozilla CanvasRenderingContext2D.arcTo documentation> 
-arcTo ::
-      (MonadIO m) =>
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> Float -> m ()
-arcTo self x1 y1 x2 y2 radius
-  = liftIO (js_arcTo (self) x1 y1 x2 y2 radius)
- 
-foreign import javascript unsafe "$1[\"rect\"]($2, $3, $4, $5)"
-        js_rect ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.rect Mozilla CanvasRenderingContext2D.rect documentation> 
-rect ::
-     (MonadIO m) =>
-       CanvasRenderingContext2D ->
-         Float -> Float -> Float -> Float -> m ()
-rect self x y width height
-  = liftIO (js_rect (self) x y width height)
- 
-foreign import javascript unsafe
-        "$1[\"arc\"]($2, $3, $4, $5, $6,\n$7)" js_arc ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> Float -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.arc Mozilla CanvasRenderingContext2D.arc documentation> 
-arc ::
-    (MonadIO m) =>
-      CanvasRenderingContext2D ->
-        Float -> Float -> Float -> Float -> Float -> Bool -> m ()
-arc self x y radius startAngle endAngle anticlockwise
-  = liftIO
-      (js_arc (self) x y radius startAngle endAngle anticlockwise)
- 
-foreign import javascript unsafe "$1[\"fill\"]($2, $3)" js_fillPath
-        :: CanvasRenderingContext2D -> Nullable Path2D -> JSVal -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fill Mozilla CanvasRenderingContext2D.fill documentation> 
-fillPath ::
-         (MonadIO m) =>
-           CanvasRenderingContext2D ->
-             Maybe Path2D -> CanvasWindingRule -> m ()
-fillPath self path winding
-  = liftIO
-      (js_fillPath (self) (maybeToNullable path) (pToJSVal winding))
- 
-foreign import javascript unsafe "$1[\"stroke\"]($2)" js_strokePath
-        :: CanvasRenderingContext2D -> Nullable Path2D -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.stroke Mozilla CanvasRenderingContext2D.stroke documentation> 
-strokePath ::
-           (MonadIO m) => CanvasRenderingContext2D -> Maybe Path2D -> m ()
-strokePath self path
-  = liftIO (js_strokePath (self) (maybeToNullable path))
- 
-foreign import javascript unsafe "$1[\"clip\"]($2, $3)" js_clipPath
-        :: CanvasRenderingContext2D -> Nullable Path2D -> JSVal -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.clip Mozilla CanvasRenderingContext2D.clip documentation> 
-clipPath ::
-         (MonadIO m) =>
-           CanvasRenderingContext2D ->
-             Maybe Path2D -> CanvasWindingRule -> m ()
-clipPath self path winding
-  = liftIO
-      (js_clipPath (self) (maybeToNullable path) (pToJSVal winding))
- 
-foreign import javascript unsafe "$1[\"fill\"]($2)" js_fill ::
-        CanvasRenderingContext2D -> JSVal -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fill Mozilla CanvasRenderingContext2D.fill documentation> 
-fill ::
-     (MonadIO m) =>
-       CanvasRenderingContext2D -> CanvasWindingRule -> m ()
-fill self winding = liftIO (js_fill (self) (pToJSVal winding))
- 
-foreign import javascript unsafe "$1[\"stroke\"]()" js_stroke ::
-        CanvasRenderingContext2D -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.stroke Mozilla CanvasRenderingContext2D.stroke documentation> 
-stroke :: (MonadIO m) => CanvasRenderingContext2D -> m ()
-stroke self = liftIO (js_stroke (self))
- 
-foreign import javascript unsafe "$1[\"clip\"]($2)" js_clip ::
-        CanvasRenderingContext2D -> JSVal -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.clip Mozilla CanvasRenderingContext2D.clip documentation> 
-clip ::
-     (MonadIO m) =>
-       CanvasRenderingContext2D -> CanvasWindingRule -> m ()
-clip self winding = liftIO (js_clip (self) (pToJSVal winding))
- 
-foreign import javascript unsafe
-        "($1[\"isPointInPath\"]($2, $3, $4,\n$5) ? 1 : 0)"
-        js_isPointInPathPath ::
-        CanvasRenderingContext2D ->
-          Nullable Path2D -> Float -> Float -> JSVal -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInPath Mozilla CanvasRenderingContext2D.isPointInPath documentation> 
-isPointInPathPath ::
-                  (MonadIO m) =>
-                    CanvasRenderingContext2D ->
-                      Maybe Path2D -> Float -> Float -> CanvasWindingRule -> m Bool
-isPointInPathPath self path x y winding
-  = liftIO
-      (js_isPointInPathPath (self) (maybeToNullable path) x y
-         (pToJSVal winding))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInPath Mozilla CanvasRenderingContext2D.isPointInPath documentation> 
-isPointInPathPath_ ::
-                   (MonadIO m) =>
-                     CanvasRenderingContext2D ->
-                       Maybe Path2D -> Float -> Float -> CanvasWindingRule -> m ()
-isPointInPathPath_ self path x y winding
-  = liftIO
-      (void
-         (js_isPointInPathPath (self) (maybeToNullable path) x y
-            (pToJSVal winding)))
- 
-foreign import javascript unsafe
-        "($1[\"isPointInStroke\"]($2, $3,\n$4) ? 1 : 0)"
-        js_isPointInStrokePath ::
-        CanvasRenderingContext2D ->
-          Nullable Path2D -> Float -> Float -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInStroke Mozilla CanvasRenderingContext2D.isPointInStroke documentation> 
-isPointInStrokePath ::
-                    (MonadIO m) =>
-                      CanvasRenderingContext2D ->
-                        Maybe Path2D -> Float -> Float -> m Bool
-isPointInStrokePath self path x y
-  = liftIO (js_isPointInStrokePath (self) (maybeToNullable path) x y)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInStroke Mozilla CanvasRenderingContext2D.isPointInStroke documentation> 
-isPointInStrokePath_ ::
-                     (MonadIO m) =>
-                       CanvasRenderingContext2D -> Maybe Path2D -> Float -> Float -> m ()
-isPointInStrokePath_ self path x y
-  = liftIO
-      (void (js_isPointInStrokePath (self) (maybeToNullable path) x y))
- 
-foreign import javascript unsafe
-        "($1[\"isPointInPath\"]($2, $3,\n$4) ? 1 : 0)" js_isPointInPath ::
-        CanvasRenderingContext2D -> Float -> Float -> JSVal -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInPath Mozilla CanvasRenderingContext2D.isPointInPath documentation> 
-isPointInPath ::
-              (MonadIO m) =>
-                CanvasRenderingContext2D ->
-                  Float -> Float -> CanvasWindingRule -> m Bool
-isPointInPath self x y winding
-  = liftIO (js_isPointInPath (self) x y (pToJSVal winding))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInPath Mozilla CanvasRenderingContext2D.isPointInPath documentation> 
-isPointInPath_ ::
-               (MonadIO m) =>
-                 CanvasRenderingContext2D ->
-                   Float -> Float -> CanvasWindingRule -> m ()
-isPointInPath_ self x y winding
-  = liftIO (void (js_isPointInPath (self) x y (pToJSVal winding)))
- 
-foreign import javascript unsafe
-        "($1[\"isPointInStroke\"]($2,\n$3) ? 1 : 0)" js_isPointInStroke ::
-        CanvasRenderingContext2D -> Float -> Float -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInStroke Mozilla CanvasRenderingContext2D.isPointInStroke documentation> 
-isPointInStroke ::
-                (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m Bool
-isPointInStroke self x y = liftIO (js_isPointInStroke (self) x y)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInStroke Mozilla CanvasRenderingContext2D.isPointInStroke documentation> 
-isPointInStroke_ ::
-                 (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
-isPointInStroke_ self x y
-  = liftIO (void (js_isPointInStroke (self) x y))
- 
-foreign import javascript unsafe "$1[\"measureText\"]($2)"
-        js_measureText ::
-        CanvasRenderingContext2D -> JSString -> IO (Nullable TextMetrics)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.measureText Mozilla CanvasRenderingContext2D.measureText documentation> 
-measureText ::
-            (MonadIO m, ToJSString text) =>
-              CanvasRenderingContext2D -> text -> m (Maybe TextMetrics)
-measureText self text
-  = liftIO
-      (nullableToMaybe <$> (js_measureText (self) (toJSString text)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.measureText Mozilla CanvasRenderingContext2D.measureText documentation> 
-measureText_ ::
-             (MonadIO m, ToJSString text) =>
-               CanvasRenderingContext2D -> text -> m ()
-measureText_ self text
-  = liftIO (void (js_measureText (self) (toJSString text)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.measureText Mozilla CanvasRenderingContext2D.measureText documentation> 
-measureTextUnsafe ::
-                  (MonadIO m, ToJSString text, HasCallStack) =>
-                    CanvasRenderingContext2D -> text -> m TextMetrics
-measureTextUnsafe self text
-  = liftIO
-      ((nullableToMaybe <$> (js_measureText (self) (toJSString text)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.measureText Mozilla CanvasRenderingContext2D.measureText documentation> 
-measureTextUnchecked ::
-                     (MonadIO m, ToJSString text) =>
-                       CanvasRenderingContext2D -> text -> m TextMetrics
-measureTextUnchecked self text
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_measureText (self) (toJSString text)))
- 
-foreign import javascript unsafe "$1[\"setAlpha\"]($2)" js_setAlpha
-        :: CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setAlpha Mozilla CanvasRenderingContext2D.setAlpha documentation> 
-setAlpha ::
-         (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-setAlpha self alpha = liftIO (js_setAlpha (self) alpha)
- 
-foreign import javascript unsafe
-        "$1[\"setCompositeOperation\"]($2)" js_setCompositeOperation ::
-        CanvasRenderingContext2D -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setCompositeOperation Mozilla CanvasRenderingContext2D.setCompositeOperation documentation> 
-setCompositeOperation ::
-                      (MonadIO m, ToJSString compositeOperation) =>
-                        CanvasRenderingContext2D -> compositeOperation -> m ()
-setCompositeOperation self compositeOperation
-  = liftIO
-      (js_setCompositeOperation (self) (toJSString compositeOperation))
- 
-foreign import javascript unsafe "$1[\"setLineWidth\"]($2)"
-        js_setLineWidthFunction ::
-        CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setLineWidth Mozilla CanvasRenderingContext2D.setLineWidth documentation> 
-setLineWidthFunction ::
-                     (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-setLineWidthFunction self width
-  = liftIO (js_setLineWidthFunction (self) width)
- 
-foreign import javascript unsafe "$1[\"setLineCap\"]($2)"
-        js_setLineCapFunction ::
-        CanvasRenderingContext2D -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setLineCap Mozilla CanvasRenderingContext2D.setLineCap documentation> 
-setLineCapFunction ::
-                   (MonadIO m, ToJSString cap) =>
-                     CanvasRenderingContext2D -> cap -> m ()
-setLineCapFunction self cap
-  = liftIO (js_setLineCapFunction (self) (toJSString cap))
- 
-foreign import javascript unsafe "$1[\"setLineJoin\"]($2)"
-        js_setLineJoinFunction ::
-        CanvasRenderingContext2D -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setLineJoin Mozilla CanvasRenderingContext2D.setLineJoin documentation> 
-setLineJoinFunction ::
-                    (MonadIO m, ToJSString join) =>
-                      CanvasRenderingContext2D -> join -> m ()
-setLineJoinFunction self join
-  = liftIO (js_setLineJoinFunction (self) (toJSString join))
- 
-foreign import javascript unsafe "$1[\"setMiterLimit\"]($2)"
-        js_setMiterLimitFunction ::
-        CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setMiterLimit Mozilla CanvasRenderingContext2D.setMiterLimit documentation> 
-setMiterLimitFunction ::
-                      (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-setMiterLimitFunction self limit
-  = liftIO (js_setMiterLimitFunction (self) limit)
- 
-foreign import javascript unsafe "$1[\"clearShadow\"]()"
-        js_clearShadow :: CanvasRenderingContext2D -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.clearShadow Mozilla CanvasRenderingContext2D.clearShadow documentation> 
-clearShadow :: (MonadIO m) => CanvasRenderingContext2D -> m ()
-clearShadow self = liftIO (js_clearShadow (self))
- 
-foreign import javascript unsafe "$1[\"fillText\"]($2, $3, $4, $5)"
-        js_fillText ::
-        CanvasRenderingContext2D ->
-          JSString -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fillText Mozilla CanvasRenderingContext2D.fillText documentation> 
-fillText ::
-         (MonadIO m, ToJSString text) =>
-           CanvasRenderingContext2D -> text -> Float -> Float -> Float -> m ()
-fillText self text x y maxWidth
-  = liftIO (js_fillText (self) (toJSString text) x y maxWidth)
- 
-foreign import javascript unsafe
-        "$1[\"strokeText\"]($2, $3, $4, $5)" js_strokeText ::
-        CanvasRenderingContext2D ->
-          JSString -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.strokeText Mozilla CanvasRenderingContext2D.strokeText documentation> 
-strokeText ::
-           (MonadIO m, ToJSString text) =>
-             CanvasRenderingContext2D -> text -> Float -> Float -> Float -> m ()
-strokeText self text x y maxWidth
-  = liftIO (js_strokeText (self) (toJSString text) x y maxWidth)
- 
-foreign import javascript unsafe "$1[\"setStrokeColor\"]($2, $3)"
-        js_setStrokeColor ::
-        CanvasRenderingContext2D -> JSString -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setStrokeColor Mozilla CanvasRenderingContext2D.setStrokeColor documentation> 
-setStrokeColor ::
-               (MonadIO m, ToJSString color) =>
-                 CanvasRenderingContext2D -> color -> Float -> m ()
-setStrokeColor self color alpha
-  = liftIO (js_setStrokeColor (self) (toJSString color) alpha)
- 
-foreign import javascript unsafe "$1[\"setStrokeColor\"]($2, $3)"
-        js_setStrokeColorGray ::
-        CanvasRenderingContext2D -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setStrokeColor Mozilla CanvasRenderingContext2D.setStrokeColor documentation> 
-setStrokeColorGray ::
-                   (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
-setStrokeColorGray self grayLevel alpha
-  = liftIO (js_setStrokeColorGray (self) grayLevel alpha)
- 
-foreign import javascript unsafe
-        "$1[\"setStrokeColor\"]($2, $3, $4,\n$5)" js_setStrokeColorRGB ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setStrokeColor Mozilla CanvasRenderingContext2D.setStrokeColor documentation> 
-setStrokeColorRGB ::
-                  (MonadIO m) =>
-                    CanvasRenderingContext2D ->
-                      Float -> Float -> Float -> Float -> m ()
-setStrokeColorRGB self r g b a
-  = liftIO (js_setStrokeColorRGB (self) r g b a)
- 
-foreign import javascript unsafe
-        "$1[\"setStrokeColor\"]($2, $3, $4,\n$5, $6)" js_setStrokeColorCYMK
-        ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setStrokeColor Mozilla CanvasRenderingContext2D.setStrokeColor documentation> 
-setStrokeColorCYMK ::
-                   (MonadIO m) =>
-                     CanvasRenderingContext2D ->
-                       Float -> Float -> Float -> Float -> Float -> m ()
-setStrokeColorCYMK self c m y k a
-  = liftIO (js_setStrokeColorCYMK (self) c m y k a)
- 
-foreign import javascript unsafe "$1[\"setFillColor\"]($2, $3)"
-        js_setFillColor ::
-        CanvasRenderingContext2D -> JSString -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setFillColor Mozilla CanvasRenderingContext2D.setFillColor documentation> 
-setFillColor ::
-             (MonadIO m, ToJSString color) =>
-               CanvasRenderingContext2D -> color -> Float -> m ()
-setFillColor self color alpha
-  = liftIO (js_setFillColor (self) (toJSString color) alpha)
- 
-foreign import javascript unsafe "$1[\"setFillColor\"]($2, $3)"
-        js_setFillColorGray ::
-        CanvasRenderingContext2D -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setFillColor Mozilla CanvasRenderingContext2D.setFillColor documentation> 
-setFillColorGray ::
-                 (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
-setFillColorGray self grayLevel alpha
-  = liftIO (js_setFillColorGray (self) grayLevel alpha)
- 
-foreign import javascript unsafe
-        "$1[\"setFillColor\"]($2, $3, $4,\n$5)" js_setFillColorRGB ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setFillColor Mozilla CanvasRenderingContext2D.setFillColor documentation> 
-setFillColorRGB ::
-                (MonadIO m) =>
-                  CanvasRenderingContext2D ->
-                    Float -> Float -> Float -> Float -> m ()
-setFillColorRGB self r g b a
-  = liftIO (js_setFillColorRGB (self) r g b a)
- 
-foreign import javascript unsafe
-        "$1[\"setFillColor\"]($2, $3, $4,\n$5, $6)" js_setFillColorCYMK ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setFillColor Mozilla CanvasRenderingContext2D.setFillColor documentation> 
-setFillColorCYMK ::
-                 (MonadIO m) =>
-                   CanvasRenderingContext2D ->
-                     Float -> Float -> Float -> Float -> Float -> m ()
-setFillColorCYMK self c m y k a
-  = liftIO (js_setFillColorCYMK (self) c m y k a)
- 
-foreign import javascript unsafe
-        "$1[\"strokeRect\"]($2, $3, $4, $5)" js_strokeRect ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.strokeRect Mozilla CanvasRenderingContext2D.strokeRect documentation> 
-strokeRect ::
-           (MonadIO m) =>
-             CanvasRenderingContext2D ->
-               Float -> Float -> Float -> Float -> m ()
-strokeRect self x y width height
-  = liftIO (js_strokeRect (self) x y width height)
- 
-foreign import javascript unsafe "$1[\"drawImage\"]($2, $3, $4)"
-        js_drawImage ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLImageElement -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
-drawImage ::
-          (MonadIO m) =>
-            CanvasRenderingContext2D ->
-              Maybe HTMLImageElement -> Float -> Float -> m ()
-drawImage self image x y
-  = liftIO (js_drawImage (self) (maybeToNullable image) x y)
- 
-foreign import javascript unsafe
-        "$1[\"drawImage\"]($2, $3, $4, $5,\n$6)" js_drawImageScaled ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLImageElement ->
-            Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
-drawImageScaled ::
-                (MonadIO m) =>
-                  CanvasRenderingContext2D ->
-                    Maybe HTMLImageElement -> Float -> Float -> Float -> Float -> m ()
-drawImageScaled self image x y width height
-  = liftIO
-      (js_drawImageScaled (self) (maybeToNullable image) x y width
-         height)
- 
-foreign import javascript unsafe
-        "$1[\"drawImage\"]($2, $3, $4, $5,\n$6, $7, $8, $9, $10)"
-        js_drawImagePart ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLImageElement ->
-            Float ->
-              Float ->
-                Float -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
-drawImagePart ::
-              (MonadIO m) =>
-                CanvasRenderingContext2D ->
-                  Maybe HTMLImageElement ->
-                    Float ->
-                      Float -> Float -> Float -> Float -> Float -> Float -> Float -> m ()
-drawImagePart self image sx sy sw sh dx dy dw dh
-  = liftIO
-      (js_drawImagePart (self) (maybeToNullable image) sx sy sw sh dx dy
-         dw
-         dh)
- 
-foreign import javascript unsafe "$1[\"drawImage\"]($2, $3, $4)"
-        js_drawImageFromCanvas ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLCanvasElement -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
-drawImageFromCanvas ::
-                    (MonadIO m) =>
-                      CanvasRenderingContext2D ->
-                        Maybe HTMLCanvasElement -> Float -> Float -> m ()
-drawImageFromCanvas self canvas x y
-  = liftIO
-      (js_drawImageFromCanvas (self) (maybeToNullable canvas) x y)
- 
-foreign import javascript unsafe
-        "$1[\"drawImage\"]($2, $3, $4, $5,\n$6)"
-        js_drawImageFromCanvasScaled ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLCanvasElement ->
-            Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
-drawImageFromCanvasScaled ::
-                          (MonadIO m) =>
-                            CanvasRenderingContext2D ->
-                              Maybe HTMLCanvasElement -> Float -> Float -> Float -> Float -> m ()
-drawImageFromCanvasScaled self canvas x y width height
-  = liftIO
-      (js_drawImageFromCanvasScaled (self) (maybeToNullable canvas) x y
-         width
-         height)
- 
-foreign import javascript unsafe
-        "$1[\"drawImage\"]($2, $3, $4, $5,\n$6, $7, $8, $9, $10)"
-        js_drawImageFromCanvasPart ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLCanvasElement ->
-            Float ->
-              Float ->
-                Float -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
-drawImageFromCanvasPart ::
-                        (MonadIO m) =>
-                          CanvasRenderingContext2D ->
-                            Maybe HTMLCanvasElement ->
-                              Float ->
-                                Float -> Float -> Float -> Float -> Float -> Float -> Float -> m ()
-drawImageFromCanvasPart self canvas sx sy sw sh dx dy dw dh
-  = liftIO
-      (js_drawImageFromCanvasPart (self) (maybeToNullable canvas) sx sy
-         sw
-         sh
-         dx
-         dy
-         dw
-         dh)
- 
-foreign import javascript unsafe "$1[\"drawImage\"]($2, $3, $4)"
-        js_drawImageFromVideo ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLVideoElement -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
-drawImageFromVideo ::
-                   (MonadIO m) =>
-                     CanvasRenderingContext2D ->
-                       Maybe HTMLVideoElement -> Float -> Float -> m ()
-drawImageFromVideo self video x y
-  = liftIO (js_drawImageFromVideo (self) (maybeToNullable video) x y)
- 
-foreign import javascript unsafe
-        "$1[\"drawImage\"]($2, $3, $4, $5,\n$6)"
-        js_drawImageFromVideoScaled ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLVideoElement ->
-            Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
-drawImageFromVideoScaled ::
-                         (MonadIO m) =>
-                           CanvasRenderingContext2D ->
-                             Maybe HTMLVideoElement -> Float -> Float -> Float -> Float -> m ()
-drawImageFromVideoScaled self video x y width height
-  = liftIO
-      (js_drawImageFromVideoScaled (self) (maybeToNullable video) x y
-         width
-         height)
- 
-foreign import javascript unsafe
-        "$1[\"drawImage\"]($2, $3, $4, $5,\n$6, $7, $8, $9, $10)"
-        js_drawImageFromVideoPart ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLVideoElement ->
-            Float ->
-              Float ->
-                Float -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
-drawImageFromVideoPart ::
-                       (MonadIO m) =>
-                         CanvasRenderingContext2D ->
-                           Maybe HTMLVideoElement ->
-                             Float ->
-                               Float -> Float -> Float -> Float -> Float -> Float -> Float -> m ()
-drawImageFromVideoPart self video sx sy sw sh dx dy dw dh
-  = liftIO
-      (js_drawImageFromVideoPart (self) (maybeToNullable video) sx sy sw
-         sh
-         dx
-         dy
-         dw
-         dh)
- 
-foreign import javascript unsafe
-        "$1[\"drawImageFromRect\"]($2, $3,\n$4, $5, $6, $7, $8, $9, $10,\n$11)"
-        js_drawImageFromRect ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLImageElement ->
-            Float ->
-              Float ->
-                Float ->
-                  Float -> Float -> Float -> Float -> Float -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImageFromRect Mozilla CanvasRenderingContext2D.drawImageFromRect documentation> 
-drawImageFromRect ::
-                  (MonadIO m, ToJSString compositeOperation) =>
-                    CanvasRenderingContext2D ->
-                      Maybe HTMLImageElement ->
-                        Float ->
-                          Float ->
-                            Float ->
-                              Float ->
-                                Float -> Float -> Float -> Float -> compositeOperation -> m ()
-drawImageFromRect self image sx sy sw sh dx dy dw dh
-  compositeOperation
-  = liftIO
-      (js_drawImageFromRect (self) (maybeToNullable image) sx sy sw sh dx
-         dy
-         dw
-         dh
-         (toJSString compositeOperation))
- 
-foreign import javascript unsafe
-        "$1[\"setShadow\"]($2, $3, $4, $5,\n$6)" js_setShadow ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> JSString -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setShadow Mozilla CanvasRenderingContext2D.setShadow documentation> 
-setShadow ::
-          (MonadIO m, ToJSString color) =>
-            CanvasRenderingContext2D ->
-              Float -> Float -> Float -> color -> Float -> m ()
-setShadow self width height blur color alpha
-  = liftIO
-      (js_setShadow (self) width height blur (toJSString color) alpha)
- 
-foreign import javascript unsafe
-        "$1[\"setShadow\"]($2, $3, $4, $5,\n$6)" js_setShadowGray ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setShadow Mozilla CanvasRenderingContext2D.setShadow documentation> 
-setShadowGray ::
-              (MonadIO m) =>
-                CanvasRenderingContext2D ->
-                  Float -> Float -> Float -> Float -> Float -> m ()
-setShadowGray self width height blur grayLevel alpha
-  = liftIO
-      (js_setShadowGray (self) width height blur grayLevel alpha)
- 
-foreign import javascript unsafe
-        "$1[\"setShadow\"]($2, $3, $4, $5,\n$6, $7, $8)" js_setShadowRGB ::
-        CanvasRenderingContext2D ->
-          Float ->
-            Float -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setShadow Mozilla CanvasRenderingContext2D.setShadow documentation> 
-setShadowRGB ::
-             (MonadIO m) =>
-               CanvasRenderingContext2D ->
-                 Float -> Float -> Float -> Float -> Float -> Float -> Float -> m ()
-setShadowRGB self width height blur r g b a
-  = liftIO (js_setShadowRGB (self) width height blur r g b a)
- 
-foreign import javascript unsafe
-        "$1[\"setShadow\"]($2, $3, $4, $5,\n$6, $7, $8, $9)"
-        js_setShadowCYMK ::
-        CanvasRenderingContext2D ->
-          Float ->
-            Float ->
-              Float -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setShadow Mozilla CanvasRenderingContext2D.setShadow documentation> 
-setShadowCYMK ::
-              (MonadIO m) =>
-                CanvasRenderingContext2D ->
-                  Float ->
-                    Float -> Float -> Float -> Float -> Float -> Float -> Float -> m ()
-setShadowCYMK self width height blur c m y k a
-  = liftIO (js_setShadowCYMK (self) width height blur c m y k a)
- 
-foreign import javascript unsafe "$1[\"putImageData\"]($2, $3, $4)"
-        js_putImageData ::
-        CanvasRenderingContext2D ->
-          Nullable ImageData -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.putImageData Mozilla CanvasRenderingContext2D.putImageData documentation> 
-putImageData ::
-             (MonadIO m) =>
-               CanvasRenderingContext2D ->
-                 Maybe ImageData -> Float -> Float -> m ()
-putImageData self imagedata dx dy
-  = liftIO (js_putImageData (self) (maybeToNullable imagedata) dx dy)
- 
-foreign import javascript unsafe
-        "$1[\"putImageData\"]($2, $3, $4,\n$5, $6, $7, $8)"
-        js_putImageDataDirty ::
-        CanvasRenderingContext2D ->
-          Nullable ImageData ->
-            Float -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.putImageData Mozilla CanvasRenderingContext2D.putImageData documentation> 
-putImageDataDirty ::
-                  (MonadIO m) =>
-                    CanvasRenderingContext2D ->
-                      Maybe ImageData ->
-                        Float -> Float -> Float -> Float -> Float -> Float -> m ()
-putImageDataDirty self imagedata dx dy dirtyX dirtyY dirtyWidth
-  dirtyHeight
-  = liftIO
-      (js_putImageDataDirty (self) (maybeToNullable imagedata) dx dy
-         dirtyX
-         dirtyY
-         dirtyWidth
-         dirtyHeight)
- 
-foreign import javascript unsafe
-        "$1[\"webkitPutImageDataHD\"]($2,\n$3, $4)" js_webkitPutImageDataHD
-        ::
-        CanvasRenderingContext2D ->
-          Nullable ImageData -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitPutImageDataHD Mozilla CanvasRenderingContext2D.webkitPutImageDataHD documentation> 
-webkitPutImageDataHD ::
-                     (MonadIO m) =>
-                       CanvasRenderingContext2D ->
-                         Maybe ImageData -> Float -> Float -> m ()
-webkitPutImageDataHD self imagedata dx dy
-  = liftIO
-      (js_webkitPutImageDataHD (self) (maybeToNullable imagedata) dx dy)
- 
-foreign import javascript unsafe
-        "$1[\"webkitPutImageDataHD\"]($2,\n$3, $4, $5, $6, $7, $8)"
-        js_webkitPutImageDataHDDirty ::
-        CanvasRenderingContext2D ->
-          Nullable ImageData ->
-            Float -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitPutImageDataHD Mozilla CanvasRenderingContext2D.webkitPutImageDataHD documentation> 
-webkitPutImageDataHDDirty ::
-                          (MonadIO m) =>
-                            CanvasRenderingContext2D ->
-                              Maybe ImageData ->
-                                Float -> Float -> Float -> Float -> Float -> Float -> m ()
-webkitPutImageDataHDDirty self imagedata dx dy dirtyX dirtyY
-  dirtyWidth dirtyHeight
-  = liftIO
-      (js_webkitPutImageDataHDDirty (self) (maybeToNullable imagedata) dx
-         dy
-         dirtyX
-         dirtyY
-         dirtyWidth
-         dirtyHeight)
- 
-foreign import javascript unsafe "$1[\"createPattern\"]($2, $3)"
-        js_createPatternFromCanvas ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLCanvasElement ->
-            Nullable JSString -> IO (Nullable CanvasPattern)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
-createPatternFromCanvas ::
-                        (MonadIO m, ToJSString repetitionType) =>
-                          CanvasRenderingContext2D ->
-                            Maybe HTMLCanvasElement ->
-                              Maybe repetitionType -> m (Maybe CanvasPattern)
-createPatternFromCanvas self canvas repetitionType
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createPatternFromCanvas (self) (maybeToNullable canvas)
-            (toMaybeJSString repetitionType)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
-createPatternFromCanvas_ ::
-                         (MonadIO m, ToJSString repetitionType) =>
-                           CanvasRenderingContext2D ->
-                             Maybe HTMLCanvasElement -> Maybe repetitionType -> m ()
-createPatternFromCanvas_ self canvas repetitionType
-  = liftIO
-      (void
-         (js_createPatternFromCanvas (self) (maybeToNullable canvas)
-            (toMaybeJSString repetitionType)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
-createPatternFromCanvasUnsafe ::
-                              (MonadIO m, ToJSString repetitionType, HasCallStack) =>
-                                CanvasRenderingContext2D ->
-                                  Maybe HTMLCanvasElement -> Maybe repetitionType -> m CanvasPattern
-createPatternFromCanvasUnsafe self canvas repetitionType
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createPatternFromCanvas (self) (maybeToNullable canvas)
-             (toMaybeJSString repetitionType)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
-createPatternFromCanvasUnchecked ::
-                                 (MonadIO m, ToJSString repetitionType) =>
-                                   CanvasRenderingContext2D ->
-                                     Maybe HTMLCanvasElement ->
-                                       Maybe repetitionType -> m CanvasPattern
-createPatternFromCanvasUnchecked self canvas repetitionType
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createPatternFromCanvas (self) (maybeToNullable canvas)
-            (toMaybeJSString repetitionType)))
- 
-foreign import javascript unsafe "$1[\"createPattern\"]($2, $3)"
-        js_createPattern ::
-        CanvasRenderingContext2D ->
-          Nullable HTMLImageElement ->
-            Nullable JSString -> IO (Nullable CanvasPattern)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
-createPattern ::
-              (MonadIO m, ToJSString repetitionType) =>
-                CanvasRenderingContext2D ->
-                  Maybe HTMLImageElement ->
-                    Maybe repetitionType -> m (Maybe CanvasPattern)
-createPattern self image repetitionType
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createPattern (self) (maybeToNullable image)
-            (toMaybeJSString repetitionType)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
-createPattern_ ::
-               (MonadIO m, ToJSString repetitionType) =>
-                 CanvasRenderingContext2D ->
-                   Maybe HTMLImageElement -> Maybe repetitionType -> m ()
-createPattern_ self image repetitionType
-  = liftIO
-      (void
-         (js_createPattern (self) (maybeToNullable image)
-            (toMaybeJSString repetitionType)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
-createPatternUnsafe ::
-                    (MonadIO m, ToJSString repetitionType, HasCallStack) =>
-                      CanvasRenderingContext2D ->
-                        Maybe HTMLImageElement -> Maybe repetitionType -> m CanvasPattern
-createPatternUnsafe self image repetitionType
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createPattern (self) (maybeToNullable image)
-             (toMaybeJSString repetitionType)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
-createPatternUnchecked ::
-                       (MonadIO m, ToJSString repetitionType) =>
-                         CanvasRenderingContext2D ->
-                           Maybe HTMLImageElement -> Maybe repetitionType -> m CanvasPattern
-createPatternUnchecked self image repetitionType
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createPattern (self) (maybeToNullable image)
-            (toMaybeJSString repetitionType)))
- 
-foreign import javascript unsafe "$1[\"createImageData\"]($2)"
-        js_createImageData ::
-        CanvasRenderingContext2D ->
-          Nullable ImageData -> IO (Nullable ImageData)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
-createImageData ::
-                (MonadIO m) =>
-                  CanvasRenderingContext2D -> Maybe ImageData -> m (Maybe ImageData)
-createImageData self imagedata
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createImageData (self) (maybeToNullable imagedata)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
-createImageData_ ::
-                 (MonadIO m) => CanvasRenderingContext2D -> Maybe ImageData -> m ()
-createImageData_ self imagedata
-  = liftIO
-      (void (js_createImageData (self) (maybeToNullable imagedata)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
-createImageDataUnsafe ::
-                      (MonadIO m, HasCallStack) =>
-                        CanvasRenderingContext2D -> Maybe ImageData -> m ImageData
-createImageDataUnsafe self imagedata
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createImageData (self) (maybeToNullable imagedata)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
-createImageDataUnchecked ::
-                         (MonadIO m) =>
-                           CanvasRenderingContext2D -> Maybe ImageData -> m ImageData
-createImageDataUnchecked self imagedata
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createImageData (self) (maybeToNullable imagedata)))
- 
-foreign import javascript unsafe "$1[\"createImageData\"]($2, $3)"
-        js_createImageDataSize ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> IO (Nullable ImageData)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
-createImageDataSize ::
-                    (MonadIO m) =>
-                      CanvasRenderingContext2D -> Float -> Float -> m (Maybe ImageData)
-createImageDataSize self sw sh
-  = liftIO
-      (nullableToMaybe <$> (js_createImageDataSize (self) sw sh))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
-createImageDataSize_ ::
-                     (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
-createImageDataSize_ self sw sh
-  = liftIO (void (js_createImageDataSize (self) sw sh))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
-createImageDataSizeUnsafe ::
-                          (MonadIO m, HasCallStack) =>
-                            CanvasRenderingContext2D -> Float -> Float -> m ImageData
-createImageDataSizeUnsafe self sw sh
-  = liftIO
-      ((nullableToMaybe <$> (js_createImageDataSize (self) sw sh)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
-createImageDataSizeUnchecked ::
-                             (MonadIO m) =>
-                               CanvasRenderingContext2D -> Float -> Float -> m ImageData
-createImageDataSizeUnchecked self sw sh
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createImageDataSize (self) sw sh))
- 
-foreign import javascript unsafe
-        "$1[\"getImageData\"]($2, $3, $4,\n$5)" js_getImageData ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> IO (Nullable ImageData)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.getImageData Mozilla CanvasRenderingContext2D.getImageData documentation> 
-getImageData ::
-             (MonadIO m) =>
-               CanvasRenderingContext2D ->
-                 Float -> Float -> Float -> Float -> m (Maybe ImageData)
-getImageData self sx sy sw sh
-  = liftIO (nullableToMaybe <$> (js_getImageData (self) sx sy sw sh))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.getImageData Mozilla CanvasRenderingContext2D.getImageData documentation> 
-getImageData_ ::
-              (MonadIO m) =>
-                CanvasRenderingContext2D ->
-                  Float -> Float -> Float -> Float -> m ()
-getImageData_ self sx sy sw sh
-  = liftIO (void (js_getImageData (self) sx sy sw sh))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.getImageData Mozilla CanvasRenderingContext2D.getImageData documentation> 
-getImageDataUnsafe ::
-                   (MonadIO m, HasCallStack) =>
-                     CanvasRenderingContext2D ->
-                       Float -> Float -> Float -> Float -> m ImageData
-getImageDataUnsafe self sx sy sw sh
-  = liftIO
-      ((nullableToMaybe <$> (js_getImageData (self) sx sy sw sh)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.getImageData Mozilla CanvasRenderingContext2D.getImageData documentation> 
-getImageDataUnchecked ::
-                      (MonadIO m) =>
-                        CanvasRenderingContext2D ->
-                          Float -> Float -> Float -> Float -> m ImageData
-getImageDataUnchecked self sx sy sw sh
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getImageData (self) sx sy sw sh))
- 
-foreign import javascript unsafe
-        "$1[\"webkitGetImageDataHD\"]($2,\n$3, $4, $5)"
-        js_webkitGetImageDataHD ::
-        CanvasRenderingContext2D ->
-          Float -> Float -> Float -> Float -> IO (Nullable ImageData)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitGetImageDataHD Mozilla CanvasRenderingContext2D.webkitGetImageDataHD documentation> 
-webkitGetImageDataHD ::
-                     (MonadIO m) =>
-                       CanvasRenderingContext2D ->
-                         Float -> Float -> Float -> Float -> m (Maybe ImageData)
-webkitGetImageDataHD self sx sy sw sh
-  = liftIO
-      (nullableToMaybe <$> (js_webkitGetImageDataHD (self) sx sy sw sh))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitGetImageDataHD Mozilla CanvasRenderingContext2D.webkitGetImageDataHD documentation> 
-webkitGetImageDataHD_ ::
-                      (MonadIO m) =>
-                        CanvasRenderingContext2D ->
-                          Float -> Float -> Float -> Float -> m ()
-webkitGetImageDataHD_ self sx sy sw sh
-  = liftIO (void (js_webkitGetImageDataHD (self) sx sy sw sh))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitGetImageDataHD Mozilla CanvasRenderingContext2D.webkitGetImageDataHD documentation> 
-webkitGetImageDataHDUnsafe ::
-                           (MonadIO m, HasCallStack) =>
-                             CanvasRenderingContext2D ->
-                               Float -> Float -> Float -> Float -> m ImageData
-webkitGetImageDataHDUnsafe self sx sy sw sh
-  = liftIO
-      ((nullableToMaybe <$> (js_webkitGetImageDataHD (self) sx sy sw sh))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitGetImageDataHD Mozilla CanvasRenderingContext2D.webkitGetImageDataHD documentation> 
-webkitGetImageDataHDUnchecked ::
-                              (MonadIO m) =>
-                                CanvasRenderingContext2D ->
-                                  Float -> Float -> Float -> Float -> m ImageData
-webkitGetImageDataHDUnchecked self sx sy sw sh
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_webkitGetImageDataHD (self) sx sy sw sh))
- 
-foreign import javascript unsafe "$1[\"drawFocusIfNeeded\"]($2)"
-        js_drawFocusIfNeeded ::
-        CanvasRenderingContext2D -> Nullable Element -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawFocusIfNeeded Mozilla CanvasRenderingContext2D.drawFocusIfNeeded documentation> 
-drawFocusIfNeeded ::
-                  (MonadIO m, IsElement element) =>
-                    CanvasRenderingContext2D -> Maybe element -> m ()
-drawFocusIfNeeded self element
-  = liftIO
-      (js_drawFocusIfNeeded (self)
-         (maybeToNullable (fmap toElement element)))
- 
-foreign import javascript unsafe
-        "$1[\"drawFocusIfNeeded\"]($2, $3)" js_drawFocusIfNeededPath ::
-        CanvasRenderingContext2D ->
-          Nullable Path2D -> Nullable Element -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawFocusIfNeeded Mozilla CanvasRenderingContext2D.drawFocusIfNeeded documentation> 
-drawFocusIfNeededPath ::
-                      (MonadIO m, IsElement element) =>
-                        CanvasRenderingContext2D -> Maybe Path2D -> Maybe element -> m ()
-drawFocusIfNeededPath self path element
-  = liftIO
-      (js_drawFocusIfNeededPath (self) (maybeToNullable path)
-         (maybeToNullable (fmap toElement element)))
- 
-foreign import javascript unsafe "$1[\"globalAlpha\"] = $2;"
-        js_setGlobalAlpha :: CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.globalAlpha Mozilla CanvasRenderingContext2D.globalAlpha documentation> 
-setGlobalAlpha ::
-               (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-setGlobalAlpha self val = liftIO (js_setGlobalAlpha (self) val)
- 
-foreign import javascript unsafe "$1[\"globalAlpha\"]"
-        js_getGlobalAlpha :: CanvasRenderingContext2D -> IO Float
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.globalAlpha Mozilla CanvasRenderingContext2D.globalAlpha documentation> 
-getGlobalAlpha ::
-               (MonadIO m) => CanvasRenderingContext2D -> m Float
-getGlobalAlpha self = liftIO (js_getGlobalAlpha (self))
- 
-foreign import javascript unsafe
-        "$1[\"globalCompositeOperation\"] = $2;"
-        js_setGlobalCompositeOperation ::
-        CanvasRenderingContext2D -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation Mozilla CanvasRenderingContext2D.globalCompositeOperation documentation> 
-setGlobalCompositeOperation ::
-                            (MonadIO m, ToJSString val) =>
-                              CanvasRenderingContext2D -> Maybe val -> m ()
-setGlobalCompositeOperation self val
-  = liftIO
-      (js_setGlobalCompositeOperation (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"globalCompositeOperation\"]"
-        js_getGlobalCompositeOperation ::
-        CanvasRenderingContext2D -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation Mozilla CanvasRenderingContext2D.globalCompositeOperation documentation> 
-getGlobalCompositeOperation ::
-                            (MonadIO m, FromJSString result) =>
-                              CanvasRenderingContext2D -> m (Maybe result)
-getGlobalCompositeOperation self
-  = liftIO
-      (fromMaybeJSString <$> (js_getGlobalCompositeOperation (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation Mozilla CanvasRenderingContext2D.globalCompositeOperation documentation> 
-getGlobalCompositeOperationUnsafe ::
-                                  (MonadIO m, HasCallStack, FromJSString result) =>
-                                    CanvasRenderingContext2D -> m result
-getGlobalCompositeOperationUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getGlobalCompositeOperation (self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation Mozilla CanvasRenderingContext2D.globalCompositeOperation documentation> 
-getGlobalCompositeOperationUnchecked ::
-                                     (MonadIO m, FromJSString result) =>
-                                       CanvasRenderingContext2D -> m result
-getGlobalCompositeOperationUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getGlobalCompositeOperation (self)))
- 
-foreign import javascript unsafe "$1[\"lineWidth\"] = $2;"
-        js_setLineWidth :: CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineWidth Mozilla CanvasRenderingContext2D.lineWidth documentation> 
-setLineWidth ::
-             (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-setLineWidth self val = liftIO (js_setLineWidth (self) val)
- 
-foreign import javascript unsafe "$1[\"lineWidth\"]"
-        js_getLineWidth :: CanvasRenderingContext2D -> IO Float
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineWidth Mozilla CanvasRenderingContext2D.lineWidth documentation> 
-getLineWidth :: (MonadIO m) => CanvasRenderingContext2D -> m Float
-getLineWidth self = liftIO (js_getLineWidth (self))
- 
-foreign import javascript unsafe "$1[\"lineCap\"] = $2;"
-        js_setLineCap ::
-        CanvasRenderingContext2D -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineCap Mozilla CanvasRenderingContext2D.lineCap documentation> 
-setLineCap ::
-           (MonadIO m, ToJSString val) =>
-             CanvasRenderingContext2D -> Maybe val -> m ()
-setLineCap self val
-  = liftIO (js_setLineCap (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"lineCap\"]" js_getLineCap ::
-        CanvasRenderingContext2D -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineCap Mozilla CanvasRenderingContext2D.lineCap documentation> 
-getLineCap ::
-           (MonadIO m, FromJSString result) =>
-             CanvasRenderingContext2D -> m (Maybe result)
-getLineCap self
-  = liftIO (fromMaybeJSString <$> (js_getLineCap (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineCap Mozilla CanvasRenderingContext2D.lineCap documentation> 
-getLineCapUnsafe ::
-                 (MonadIO m, HasCallStack, FromJSString result) =>
-                   CanvasRenderingContext2D -> m result
-getLineCapUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getLineCap (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineCap Mozilla CanvasRenderingContext2D.lineCap documentation> 
-getLineCapUnchecked ::
-                    (MonadIO m, FromJSString result) =>
-                      CanvasRenderingContext2D -> m result
-getLineCapUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getLineCap (self)))
- 
-foreign import javascript unsafe "$1[\"lineJoin\"] = $2;"
-        js_setLineJoin ::
-        CanvasRenderingContext2D -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineJoin Mozilla CanvasRenderingContext2D.lineJoin documentation> 
-setLineJoin ::
-            (MonadIO m, ToJSString val) =>
-              CanvasRenderingContext2D -> Maybe val -> m ()
-setLineJoin self val
-  = liftIO (js_setLineJoin (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"lineJoin\"]" js_getLineJoin
-        :: CanvasRenderingContext2D -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineJoin Mozilla CanvasRenderingContext2D.lineJoin documentation> 
-getLineJoin ::
-            (MonadIO m, FromJSString result) =>
-              CanvasRenderingContext2D -> m (Maybe result)
-getLineJoin self
-  = liftIO (fromMaybeJSString <$> (js_getLineJoin (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineJoin Mozilla CanvasRenderingContext2D.lineJoin documentation> 
-getLineJoinUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    CanvasRenderingContext2D -> m result
-getLineJoinUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getLineJoin (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineJoin Mozilla CanvasRenderingContext2D.lineJoin documentation> 
-getLineJoinUnchecked ::
-                     (MonadIO m, FromJSString result) =>
-                       CanvasRenderingContext2D -> m result
-getLineJoinUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getLineJoin (self)))
- 
-foreign import javascript unsafe "$1[\"miterLimit\"] = $2;"
-        js_setMiterLimit :: CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.miterLimit Mozilla CanvasRenderingContext2D.miterLimit documentation> 
-setMiterLimit ::
-              (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-setMiterLimit self val = liftIO (js_setMiterLimit (self) val)
- 
-foreign import javascript unsafe "$1[\"miterLimit\"]"
-        js_getMiterLimit :: CanvasRenderingContext2D -> IO Float
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.miterLimit Mozilla CanvasRenderingContext2D.miterLimit documentation> 
-getMiterLimit :: (MonadIO m) => CanvasRenderingContext2D -> m Float
-getMiterLimit self = liftIO (js_getMiterLimit (self))
- 
-foreign import javascript unsafe "$1[\"shadowOffsetX\"] = $2;"
-        js_setShadowOffsetX :: CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowOffsetX Mozilla CanvasRenderingContext2D.shadowOffsetX documentation> 
-setShadowOffsetX ::
-                 (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-setShadowOffsetX self val = liftIO (js_setShadowOffsetX (self) val)
- 
-foreign import javascript unsafe "$1[\"shadowOffsetX\"]"
-        js_getShadowOffsetX :: CanvasRenderingContext2D -> IO Float
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowOffsetX Mozilla CanvasRenderingContext2D.shadowOffsetX documentation> 
-getShadowOffsetX ::
-                 (MonadIO m) => CanvasRenderingContext2D -> m Float
-getShadowOffsetX self = liftIO (js_getShadowOffsetX (self))
- 
-foreign import javascript unsafe "$1[\"shadowOffsetY\"] = $2;"
-        js_setShadowOffsetY :: CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowOffsetY Mozilla CanvasRenderingContext2D.shadowOffsetY documentation> 
-setShadowOffsetY ::
-                 (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-setShadowOffsetY self val = liftIO (js_setShadowOffsetY (self) val)
- 
-foreign import javascript unsafe "$1[\"shadowOffsetY\"]"
-        js_getShadowOffsetY :: CanvasRenderingContext2D -> IO Float
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowOffsetY Mozilla CanvasRenderingContext2D.shadowOffsetY documentation> 
-getShadowOffsetY ::
-                 (MonadIO m) => CanvasRenderingContext2D -> m Float
-getShadowOffsetY self = liftIO (js_getShadowOffsetY (self))
- 
-foreign import javascript unsafe "$1[\"shadowBlur\"] = $2;"
-        js_setShadowBlur :: CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowBlur Mozilla CanvasRenderingContext2D.shadowBlur documentation> 
-setShadowBlur ::
-              (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-setShadowBlur self val = liftIO (js_setShadowBlur (self) val)
- 
-foreign import javascript unsafe "$1[\"shadowBlur\"]"
-        js_getShadowBlur :: CanvasRenderingContext2D -> IO Float
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowBlur Mozilla CanvasRenderingContext2D.shadowBlur documentation> 
-getShadowBlur :: (MonadIO m) => CanvasRenderingContext2D -> m Float
-getShadowBlur self = liftIO (js_getShadowBlur (self))
- 
-foreign import javascript unsafe "$1[\"shadowColor\"] = $2;"
-        js_setShadowColor ::
-        CanvasRenderingContext2D -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowColor Mozilla CanvasRenderingContext2D.shadowColor documentation> 
-setShadowColor ::
-               (MonadIO m, ToJSString val) =>
-                 CanvasRenderingContext2D -> Maybe val -> m ()
-setShadowColor self val
-  = liftIO (js_setShadowColor (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"shadowColor\"]"
-        js_getShadowColor ::
-        CanvasRenderingContext2D -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowColor Mozilla CanvasRenderingContext2D.shadowColor documentation> 
-getShadowColor ::
-               (MonadIO m, FromJSString result) =>
-                 CanvasRenderingContext2D -> m (Maybe result)
-getShadowColor self
-  = liftIO (fromMaybeJSString <$> (js_getShadowColor (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowColor Mozilla CanvasRenderingContext2D.shadowColor documentation> 
-getShadowColorUnsafe ::
-                     (MonadIO m, HasCallStack, FromJSString result) =>
-                       CanvasRenderingContext2D -> m result
-getShadowColorUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getShadowColor (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowColor Mozilla CanvasRenderingContext2D.shadowColor documentation> 
-getShadowColorUnchecked ::
-                        (MonadIO m, FromJSString result) =>
-                          CanvasRenderingContext2D -> m result
-getShadowColorUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getShadowColor (self)))
- 
-foreign import javascript unsafe "$1[\"lineDashOffset\"] = $2;"
-        js_setLineDashOffset :: CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineDashOffset Mozilla CanvasRenderingContext2D.lineDashOffset documentation> 
-setLineDashOffset ::
-                  (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-setLineDashOffset self val
-  = liftIO (js_setLineDashOffset (self) val)
- 
-foreign import javascript unsafe "$1[\"lineDashOffset\"]"
-        js_getLineDashOffset :: CanvasRenderingContext2D -> IO Float
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineDashOffset Mozilla CanvasRenderingContext2D.lineDashOffset documentation> 
-getLineDashOffset ::
-                  (MonadIO m) => CanvasRenderingContext2D -> m Float
-getLineDashOffset self = liftIO (js_getLineDashOffset (self))
- 
-foreign import javascript unsafe "$1[\"webkitLineDash\"] = $2;"
-        js_setWebkitLineDash ::
-        CanvasRenderingContext2D -> Nullable Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitLineDash Mozilla CanvasRenderingContext2D.webkitLineDash documentation> 
-setWebkitLineDash ::
-                  (MonadIO m, IsArray val) =>
-                    CanvasRenderingContext2D -> Maybe val -> m ()
-setWebkitLineDash self val
-  = liftIO
-      (js_setWebkitLineDash (self) (maybeToNullable (fmap toArray val)))
- 
-foreign import javascript unsafe "$1[\"webkitLineDash\"]"
-        js_getWebkitLineDash ::
-        CanvasRenderingContext2D -> IO (Nullable Array)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitLineDash Mozilla CanvasRenderingContext2D.webkitLineDash documentation> 
-getWebkitLineDash ::
-                  (MonadIO m) => CanvasRenderingContext2D -> m (Maybe Array)
-getWebkitLineDash self
-  = liftIO (nullableToMaybe <$> (js_getWebkitLineDash (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitLineDash Mozilla CanvasRenderingContext2D.webkitLineDash documentation> 
-getWebkitLineDashUnsafe ::
-                        (MonadIO m, HasCallStack) => CanvasRenderingContext2D -> m Array
-getWebkitLineDashUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWebkitLineDash (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitLineDash Mozilla CanvasRenderingContext2D.webkitLineDash documentation> 
-getWebkitLineDashUnchecked ::
-                           (MonadIO m) => CanvasRenderingContext2D -> m Array
-getWebkitLineDashUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getWebkitLineDash (self)))
- 
-foreign import javascript unsafe
-        "$1[\"webkitLineDashOffset\"] = $2;" js_setWebkitLineDashOffset ::
-        CanvasRenderingContext2D -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitLineDashOffset Mozilla CanvasRenderingContext2D.webkitLineDashOffset documentation> 
-setWebkitLineDashOffset ::
-                        (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
-setWebkitLineDashOffset self val
-  = liftIO (js_setWebkitLineDashOffset (self) val)
- 
-foreign import javascript unsafe "$1[\"webkitLineDashOffset\"]"
-        js_getWebkitLineDashOffset :: CanvasRenderingContext2D -> IO Float
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitLineDashOffset Mozilla CanvasRenderingContext2D.webkitLineDashOffset documentation> 
-getWebkitLineDashOffset ::
-                        (MonadIO m) => CanvasRenderingContext2D -> m Float
-getWebkitLineDashOffset self
-  = liftIO (js_getWebkitLineDashOffset (self))
- 
-foreign import javascript unsafe "$1[\"font\"] = $2;" js_setFont ::
-        CanvasRenderingContext2D -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.font Mozilla CanvasRenderingContext2D.font documentation> 
-setFont ::
-        (MonadIO m, ToJSString val) =>
-          CanvasRenderingContext2D -> val -> m ()
-setFont self val = liftIO (js_setFont (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"font\"]" js_getFont ::
-        CanvasRenderingContext2D -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.font Mozilla CanvasRenderingContext2D.font documentation> 
-getFont ::
-        (MonadIO m, FromJSString result) =>
-          CanvasRenderingContext2D -> m result
-getFont self = liftIO (fromJSString <$> (js_getFont (self)))
- 
-foreign import javascript unsafe "$1[\"textAlign\"] = $2;"
-        js_setTextAlign :: CanvasRenderingContext2D -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.textAlign Mozilla CanvasRenderingContext2D.textAlign documentation> 
-setTextAlign ::
-             (MonadIO m, ToJSString val) =>
-               CanvasRenderingContext2D -> val -> m ()
-setTextAlign self val
-  = liftIO (js_setTextAlign (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"textAlign\"]"
-        js_getTextAlign :: CanvasRenderingContext2D -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.textAlign Mozilla CanvasRenderingContext2D.textAlign documentation> 
-getTextAlign ::
-             (MonadIO m, FromJSString result) =>
-               CanvasRenderingContext2D -> m result
-getTextAlign self
-  = liftIO (fromJSString <$> (js_getTextAlign (self)))
- 
-foreign import javascript unsafe "$1[\"textBaseline\"] = $2;"
-        js_setTextBaseline :: CanvasRenderingContext2D -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.textBaseline Mozilla CanvasRenderingContext2D.textBaseline documentation> 
-setTextBaseline ::
-                (MonadIO m, ToJSString val) =>
-                  CanvasRenderingContext2D -> val -> m ()
-setTextBaseline self val
-  = liftIO (js_setTextBaseline (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"textBaseline\"]"
-        js_getTextBaseline :: CanvasRenderingContext2D -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.textBaseline Mozilla CanvasRenderingContext2D.textBaseline documentation> 
-getTextBaseline ::
-                (MonadIO m, FromJSString result) =>
-                  CanvasRenderingContext2D -> m result
-getTextBaseline self
-  = liftIO (fromJSString <$> (js_getTextBaseline (self)))
- 
-foreign import javascript unsafe "$1[\"direction\"] = $2;"
-        js_setDirection :: CanvasRenderingContext2D -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.direction Mozilla CanvasRenderingContext2D.direction documentation> 
-setDirection ::
-             (MonadIO m, ToJSString val) =>
-               CanvasRenderingContext2D -> val -> m ()
-setDirection self val
-  = liftIO (js_setDirection (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"direction\"]"
-        js_getDirection :: CanvasRenderingContext2D -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.direction Mozilla CanvasRenderingContext2D.direction documentation> 
-getDirection ::
-             (MonadIO m, FromJSString result) =>
-               CanvasRenderingContext2D -> m result
-getDirection self
-  = liftIO (fromJSString <$> (js_getDirection (self)))
- 
-foreign import javascript unsafe "$1[\"strokeStyle\"] = $2;"
-        js_setStrokeStyle ::
-        CanvasRenderingContext2D -> Nullable CanvasStyle -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.strokeStyle Mozilla CanvasRenderingContext2D.strokeStyle documentation> 
-setStrokeStyle ::
-               (MonadIO m, IsCanvasStyle val) =>
-                 CanvasRenderingContext2D -> Maybe val -> m ()
-setStrokeStyle self val
-  = liftIO
-      (js_setStrokeStyle (self)
-         (maybeToNullable (fmap toCanvasStyle val)))
- 
-foreign import javascript unsafe "$1[\"strokeStyle\"]"
-        js_getStrokeStyle ::
-        CanvasRenderingContext2D -> IO (Nullable CanvasStyle)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.strokeStyle Mozilla CanvasRenderingContext2D.strokeStyle documentation> 
-getStrokeStyle ::
-               (MonadIO m) => CanvasRenderingContext2D -> m (Maybe CanvasStyle)
-getStrokeStyle self
-  = liftIO (nullableToMaybe <$> (js_getStrokeStyle (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.strokeStyle Mozilla CanvasRenderingContext2D.strokeStyle documentation> 
-getStrokeStyleUnsafe ::
-                     (MonadIO m, HasCallStack) =>
-                       CanvasRenderingContext2D -> m CanvasStyle
-getStrokeStyleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStrokeStyle (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.strokeStyle Mozilla CanvasRenderingContext2D.strokeStyle documentation> 
-getStrokeStyleUnchecked ::
-                        (MonadIO m) => CanvasRenderingContext2D -> m CanvasStyle
-getStrokeStyleUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getStrokeStyle (self)))
- 
-foreign import javascript unsafe "$1[\"fillStyle\"] = $2;"
-        js_setFillStyle ::
-        CanvasRenderingContext2D -> Nullable CanvasStyle -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fillStyle Mozilla CanvasRenderingContext2D.fillStyle documentation> 
-setFillStyle ::
-             (MonadIO m, IsCanvasStyle val) =>
-               CanvasRenderingContext2D -> Maybe val -> m ()
-setFillStyle self val
-  = liftIO
-      (js_setFillStyle (self) (maybeToNullable (fmap toCanvasStyle val)))
- 
-foreign import javascript unsafe "$1[\"fillStyle\"]"
-        js_getFillStyle ::
-        CanvasRenderingContext2D -> IO (Nullable CanvasStyle)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fillStyle Mozilla CanvasRenderingContext2D.fillStyle documentation> 
-getFillStyle ::
-             (MonadIO m) => CanvasRenderingContext2D -> m (Maybe CanvasStyle)
-getFillStyle self
-  = liftIO (nullableToMaybe <$> (js_getFillStyle (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fillStyle Mozilla CanvasRenderingContext2D.fillStyle documentation> 
-getFillStyleUnsafe ::
-                   (MonadIO m, HasCallStack) =>
-                     CanvasRenderingContext2D -> m CanvasStyle
-getFillStyleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFillStyle (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fillStyle Mozilla CanvasRenderingContext2D.fillStyle documentation> 
-getFillStyleUnchecked ::
-                      (MonadIO m) => CanvasRenderingContext2D -> m CanvasStyle
-getFillStyleUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFillStyle (self)))
- 
-foreign import javascript unsafe
-        "$1[\"webkitBackingStorePixelRatio\"]"
-        js_getWebkitBackingStorePixelRatio ::
-        CanvasRenderingContext2D -> IO Float
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitBackingStorePixelRatio Mozilla CanvasRenderingContext2D.webkitBackingStorePixelRatio documentation> 
-getWebkitBackingStorePixelRatio ::
-                                (MonadIO m) => CanvasRenderingContext2D -> m Float
-getWebkitBackingStorePixelRatio self
-  = liftIO (js_getWebkitBackingStorePixelRatio (self))
- 
-foreign import javascript unsafe
-        "$1[\"webkitImageSmoothingEnabled\"] = $2;"
-        js_setWebkitImageSmoothingEnabled ::
-        CanvasRenderingContext2D -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitImageSmoothingEnabled Mozilla CanvasRenderingContext2D.webkitImageSmoothingEnabled documentation> 
-setWebkitImageSmoothingEnabled ::
-                               (MonadIO m) => CanvasRenderingContext2D -> Bool -> m ()
-setWebkitImageSmoothingEnabled self val
-  = liftIO (js_setWebkitImageSmoothingEnabled (self) val)
- 
-foreign import javascript unsafe
-        "($1[\"webkitImageSmoothingEnabled\"] ? 1 : 0)"
-        js_getWebkitImageSmoothingEnabled ::
-        CanvasRenderingContext2D -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitImageSmoothingEnabled Mozilla CanvasRenderingContext2D.webkitImageSmoothingEnabled documentation> 
-getWebkitImageSmoothingEnabled ::
-                               (MonadIO m) => CanvasRenderingContext2D -> m Bool
-getWebkitImageSmoothingEnabled self
-  = liftIO (js_getWebkitImageSmoothingEnabled (self))
+       (js_save, save, js_restore, restore, js_commit, commit, js_scale,
+        scale, js_rotate, rotate, js_translate, translate, js_transform,
+        transform, js_setTransform, setTransform, js_resetTransform,
+        resetTransform, js_setLineDash, setLineDash, js_getLineDash,
+        getLineDash, getLineDash_, js_clearRect, clearRect, js_fillRect,
+        fillRect, js_beginPath, beginPath, js_fillPath, fillPath,
+        js_strokePath, strokePath, js_clipPath, clipPath, js_fill, fill,
+        js_stroke, stroke, js_clip, clip, js_isPointInPathPath,
+        isPointInPathPath, isPointInPathPath_, js_isPointInStrokePath,
+        isPointInStrokePath, isPointInStrokePath_, js_isPointInPath,
+        isPointInPath, isPointInPath_, js_isPointInStroke, isPointInStroke,
+        isPointInStroke_, js_measureText, measureText, measureText_,
+        js_setAlpha, setAlpha, js_setCompositeOperation,
+        setCompositeOperation, js_setLineWidthFunction,
+        setLineWidthFunction, js_setLineCapFunction, setLineCapFunction,
+        js_setLineJoinFunction, setLineJoinFunction,
+        js_setMiterLimitFunction, setMiterLimitFunction, js_clearShadow,
+        clearShadow, js_fillText, fillText, js_strokeText, strokeText,
+        js_setStrokeColor, setStrokeColor, js_setStrokeColorGray,
+        setStrokeColorGray, js_setStrokeColorRGB, setStrokeColorRGB,
+        js_setStrokeColorCYMK, setStrokeColorCYMK, js_setFillColor,
+        setFillColor, js_setFillColorGray, setFillColorGray,
+        js_setFillColorRGB, setFillColorRGB, js_setFillColorCYMK,
+        setFillColorCYMK, js_strokeRect, strokeRect, js_drawImage,
+        drawImage, js_drawImageScaled, drawImageScaled, js_drawImagePart,
+        drawImagePart, js_drawImageFromRect, drawImageFromRect,
+        js_setShadow, setShadow, js_setShadowGray, setShadowGray,
+        js_setShadowRGB, setShadowRGB, js_setShadowCYMK, setShadowCYMK,
+        js_putImageData, putImageData, js_putImageDataDirty,
+        putImageDataDirty, js_webkitPutImageDataHD, webkitPutImageDataHD,
+        js_webkitPutImageDataHDDirty, webkitPutImageDataHDDirty,
+        js_createImageData, createImageData, createImageData_,
+        js_createImageDataSize, createImageDataSize, createImageDataSize_,
+        js_createLinearGradient, createLinearGradient,
+        createLinearGradient_, js_createRadialGradient,
+        createRadialGradient, createRadialGradient_, js_createPattern,
+        createPattern, createPattern_, createPatternUnsafe,
+        createPatternUnchecked, js_getImageData, getImageData,
+        getImageData_, js_webkitGetImageDataHD, webkitGetImageDataHD,
+        webkitGetImageDataHD_, js_drawFocusIfNeeded, drawFocusIfNeeded,
+        js_drawFocusIfNeededPath, drawFocusIfNeededPath, js_getCanvas,
+        getCanvas, js_setGlobalAlpha, setGlobalAlpha, js_getGlobalAlpha,
+        getGlobalAlpha, js_setGlobalCompositeOperation,
+        setGlobalCompositeOperation, js_getGlobalCompositeOperation,
+        getGlobalCompositeOperation, js_setLineWidth, setLineWidth,
+        js_getLineWidth, getLineWidth, js_setLineCap, setLineCap,
+        js_getLineCap, getLineCap, js_setLineJoin, setLineJoin,
+        js_getLineJoin, getLineJoin, js_setMiterLimit, setMiterLimit,
+        js_getMiterLimit, getMiterLimit, js_setShadowOffsetX,
+        setShadowOffsetX, js_getShadowOffsetX, getShadowOffsetX,
+        js_setShadowOffsetY, setShadowOffsetY, js_getShadowOffsetY,
+        getShadowOffsetY, js_setShadowBlur, setShadowBlur,
+        js_getShadowBlur, getShadowBlur, js_setShadowColor, setShadowColor,
+        js_getShadowColor, getShadowColor, js_setLineDashOffset,
+        setLineDashOffset, js_getLineDashOffset, getLineDashOffset,
+        js_setWebkitLineDash, setWebkitLineDash, js_getWebkitLineDash,
+        getWebkitLineDash, js_setWebkitLineDashOffset,
+        setWebkitLineDashOffset, js_getWebkitLineDashOffset,
+        getWebkitLineDashOffset, js_setFont, setFont, js_getFont, getFont,
+        js_setTextAlign, setTextAlign, js_getTextAlign, getTextAlign,
+        js_setTextBaseline, setTextBaseline, js_getTextBaseline,
+        getTextBaseline, js_setDirection, setDirection, js_getDirection,
+        getDirection, js_setStrokeStyle, setStrokeStyle, js_getStrokeStyle,
+        getStrokeStyle, js_setFillStyle, setFillStyle, js_getFillStyle,
+        getFillStyle, js_getWebkitBackingStorePixelRatio,
+        getWebkitBackingStorePixelRatio, js_setImageSmoothingEnabled,
+        setImageSmoothingEnabled, js_getImageSmoothingEnabled,
+        getImageSmoothingEnabled, js_setWebkitImageSmoothingEnabled,
+        setWebkitImageSmoothingEnabled, js_getWebkitImageSmoothingEnabled,
+        getWebkitImageSmoothingEnabled, js_setImageSmoothingQuality,
+        setImageSmoothingQuality, js_getImageSmoothingQuality,
+        getImageSmoothingQuality, CanvasRenderingContext2D(..),
+        gTypeCanvasRenderingContext2D)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"save\"]()" js_save ::
+        CanvasRenderingContext2D -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.save Mozilla CanvasRenderingContext2D.save documentation> 
+save :: (MonadIO m) => CanvasRenderingContext2D -> m ()
+save self = liftIO (js_save self)
+ 
+foreign import javascript unsafe "$1[\"restore\"]()" js_restore ::
+        CanvasRenderingContext2D -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.restore Mozilla CanvasRenderingContext2D.restore documentation> 
+restore :: (MonadIO m) => CanvasRenderingContext2D -> m ()
+restore self = liftIO (js_restore self)
+ 
+foreign import javascript unsafe "$1[\"commit\"]()" js_commit ::
+        CanvasRenderingContext2D -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.commit Mozilla CanvasRenderingContext2D.commit documentation> 
+commit :: (MonadIO m) => CanvasRenderingContext2D -> m ()
+commit self = liftIO (js_commit self)
+ 
+foreign import javascript unsafe "$1[\"scale\"]($2, $3)" js_scale
+        :: CanvasRenderingContext2D -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.scale Mozilla CanvasRenderingContext2D.scale documentation> 
+scale ::
+      (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
+scale self sx sy = liftIO (js_scale self sx sy)
+ 
+foreign import javascript unsafe "$1[\"rotate\"]($2)" js_rotate ::
+        CanvasRenderingContext2D -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.rotate Mozilla CanvasRenderingContext2D.rotate documentation> 
+rotate :: (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
+rotate self angle = liftIO (js_rotate self angle)
+ 
+foreign import javascript unsafe "$1[\"translate\"]($2, $3)"
+        js_translate :: CanvasRenderingContext2D -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.translate Mozilla CanvasRenderingContext2D.translate documentation> 
+translate ::
+          (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
+translate self tx ty = liftIO (js_translate self tx ty)
+ 
+foreign import javascript unsafe
+        "$1[\"transform\"]($2, $3, $4, $5,\n$6, $7)" js_transform ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.transform Mozilla CanvasRenderingContext2D.transform documentation> 
+transform ::
+          (MonadIO m) =>
+            CanvasRenderingContext2D ->
+              Float -> Float -> Float -> Float -> Float -> Float -> m ()
+transform self m11 m12 m21 m22 dx dy
+  = liftIO (js_transform self m11 m12 m21 m22 dx dy)
+ 
+foreign import javascript unsafe
+        "$1[\"setTransform\"]($2, $3, $4,\n$5, $6, $7)" js_setTransform ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setTransform Mozilla CanvasRenderingContext2D.setTransform documentation> 
+setTransform ::
+             (MonadIO m) =>
+               CanvasRenderingContext2D ->
+                 Float -> Float -> Float -> Float -> Float -> Float -> m ()
+setTransform self m11 m12 m21 m22 dx dy
+  = liftIO (js_setTransform self m11 m12 m21 m22 dx dy)
+ 
+foreign import javascript unsafe "$1[\"resetTransform\"]()"
+        js_resetTransform :: CanvasRenderingContext2D -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.resetTransform Mozilla CanvasRenderingContext2D.resetTransform documentation> 
+resetTransform :: (MonadIO m) => CanvasRenderingContext2D -> m ()
+resetTransform self = liftIO (js_resetTransform self)
+ 
+foreign import javascript unsafe "$1[\"setLineDash\"]($2)"
+        js_setLineDash :: CanvasRenderingContext2D -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setLineDash Mozilla CanvasRenderingContext2D.setLineDash documentation> 
+setLineDash ::
+            (MonadIO m) => CanvasRenderingContext2D -> [Float] -> m ()
+setLineDash self dash
+  = liftIO (toJSVal dash >>= \ dash' -> js_setLineDash self dash')
+ 
+foreign import javascript unsafe "$1[\"getLineDash\"]()"
+        js_getLineDash :: CanvasRenderingContext2D -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.getLineDash Mozilla CanvasRenderingContext2D.getLineDash documentation> 
+getLineDash :: (MonadIO m) => CanvasRenderingContext2D -> m [Float]
+getLineDash self
+  = liftIO ((js_getLineDash self) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.getLineDash Mozilla CanvasRenderingContext2D.getLineDash documentation> 
+getLineDash_ :: (MonadIO m) => CanvasRenderingContext2D -> m ()
+getLineDash_ self = liftIO (void (js_getLineDash self))
+ 
+foreign import javascript unsafe
+        "$1[\"clearRect\"]($2, $3, $4, $5)" js_clearRect ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.clearRect Mozilla CanvasRenderingContext2D.clearRect documentation> 
+clearRect ::
+          (MonadIO m) =>
+            CanvasRenderingContext2D ->
+              Float -> Float -> Float -> Float -> m ()
+clearRect self x y width height
+  = liftIO (js_clearRect self x y width height)
+ 
+foreign import javascript unsafe "$1[\"fillRect\"]($2, $3, $4, $5)"
+        js_fillRect ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fillRect Mozilla CanvasRenderingContext2D.fillRect documentation> 
+fillRect ::
+         (MonadIO m) =>
+           CanvasRenderingContext2D ->
+             Float -> Float -> Float -> Float -> m ()
+fillRect self x y width height
+  = liftIO (js_fillRect self x y width height)
+ 
+foreign import javascript unsafe "$1[\"beginPath\"]()" js_beginPath
+        :: CanvasRenderingContext2D -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.beginPath Mozilla CanvasRenderingContext2D.beginPath documentation> 
+beginPath :: (MonadIO m) => CanvasRenderingContext2D -> m ()
+beginPath self = liftIO (js_beginPath self)
+ 
+foreign import javascript unsafe "$1[\"fill\"]($2, $3)" js_fillPath
+        ::
+        CanvasRenderingContext2D ->
+          Path2D -> Optional CanvasWindingRule -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fill Mozilla CanvasRenderingContext2D.fill documentation> 
+fillPath ::
+         (MonadIO m) =>
+           CanvasRenderingContext2D ->
+             Path2D -> Maybe CanvasWindingRule -> m ()
+fillPath self path winding
+  = liftIO (js_fillPath self path (maybeToOptional winding))
+ 
+foreign import javascript unsafe "$1[\"stroke\"]($2)" js_strokePath
+        :: CanvasRenderingContext2D -> Path2D -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.stroke Mozilla CanvasRenderingContext2D.stroke documentation> 
+strokePath ::
+           (MonadIO m) => CanvasRenderingContext2D -> Path2D -> m ()
+strokePath self path = liftIO (js_strokePath self path)
+ 
+foreign import javascript unsafe "$1[\"clip\"]($2, $3)" js_clipPath
+        ::
+        CanvasRenderingContext2D ->
+          Path2D -> Optional CanvasWindingRule -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.clip Mozilla CanvasRenderingContext2D.clip documentation> 
+clipPath ::
+         (MonadIO m) =>
+           CanvasRenderingContext2D ->
+             Path2D -> Maybe CanvasWindingRule -> m ()
+clipPath self path winding
+  = liftIO (js_clipPath self path (maybeToOptional winding))
+ 
+foreign import javascript unsafe "$1[\"fill\"]($2)" js_fill ::
+        CanvasRenderingContext2D -> Optional CanvasWindingRule -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fill Mozilla CanvasRenderingContext2D.fill documentation> 
+fill ::
+     (MonadIO m) =>
+       CanvasRenderingContext2D -> Maybe CanvasWindingRule -> m ()
+fill self winding = liftIO (js_fill self (maybeToOptional winding))
+ 
+foreign import javascript unsafe "$1[\"stroke\"]()" js_stroke ::
+        CanvasRenderingContext2D -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.stroke Mozilla CanvasRenderingContext2D.stroke documentation> 
+stroke :: (MonadIO m) => CanvasRenderingContext2D -> m ()
+stroke self = liftIO (js_stroke self)
+ 
+foreign import javascript unsafe "$1[\"clip\"]($2)" js_clip ::
+        CanvasRenderingContext2D -> Optional CanvasWindingRule -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.clip Mozilla CanvasRenderingContext2D.clip documentation> 
+clip ::
+     (MonadIO m) =>
+       CanvasRenderingContext2D -> Maybe CanvasWindingRule -> m ()
+clip self winding = liftIO (js_clip self (maybeToOptional winding))
+ 
+foreign import javascript unsafe
+        "($1[\"isPointInPath\"]($2, $3, $4,\n$5) ? 1 : 0)"
+        js_isPointInPathPath ::
+        CanvasRenderingContext2D ->
+          Path2D -> Float -> Float -> Optional CanvasWindingRule -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInPath Mozilla CanvasRenderingContext2D.isPointInPath documentation> 
+isPointInPathPath ::
+                  (MonadIO m) =>
+                    CanvasRenderingContext2D ->
+                      Path2D -> Float -> Float -> Maybe CanvasWindingRule -> m Bool
+isPointInPathPath self path x y winding
+  = liftIO
+      (js_isPointInPathPath self path x y (maybeToOptional winding))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInPath Mozilla CanvasRenderingContext2D.isPointInPath documentation> 
+isPointInPathPath_ ::
+                   (MonadIO m) =>
+                     CanvasRenderingContext2D ->
+                       Path2D -> Float -> Float -> Maybe CanvasWindingRule -> m ()
+isPointInPathPath_ self path x y winding
+  = liftIO
+      (void
+         (js_isPointInPathPath self path x y (maybeToOptional winding)))
+ 
+foreign import javascript unsafe
+        "($1[\"isPointInStroke\"]($2, $3,\n$4) ? 1 : 0)"
+        js_isPointInStrokePath ::
+        CanvasRenderingContext2D -> Path2D -> Float -> Float -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInStroke Mozilla CanvasRenderingContext2D.isPointInStroke documentation> 
+isPointInStrokePath ::
+                    (MonadIO m) =>
+                      CanvasRenderingContext2D -> Path2D -> Float -> Float -> m Bool
+isPointInStrokePath self path x y
+  = liftIO (js_isPointInStrokePath self path x y)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInStroke Mozilla CanvasRenderingContext2D.isPointInStroke documentation> 
+isPointInStrokePath_ ::
+                     (MonadIO m) =>
+                       CanvasRenderingContext2D -> Path2D -> Float -> Float -> m ()
+isPointInStrokePath_ self path x y
+  = liftIO (void (js_isPointInStrokePath self path x y))
+ 
+foreign import javascript unsafe
+        "($1[\"isPointInPath\"]($2, $3,\n$4) ? 1 : 0)" js_isPointInPath ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Optional CanvasWindingRule -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInPath Mozilla CanvasRenderingContext2D.isPointInPath documentation> 
+isPointInPath ::
+              (MonadIO m) =>
+                CanvasRenderingContext2D ->
+                  Float -> Float -> Maybe CanvasWindingRule -> m Bool
+isPointInPath self x y winding
+  = liftIO (js_isPointInPath self x y (maybeToOptional winding))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInPath Mozilla CanvasRenderingContext2D.isPointInPath documentation> 
+isPointInPath_ ::
+               (MonadIO m) =>
+                 CanvasRenderingContext2D ->
+                   Float -> Float -> Maybe CanvasWindingRule -> m ()
+isPointInPath_ self x y winding
+  = liftIO
+      (void (js_isPointInPath self x y (maybeToOptional winding)))
+ 
+foreign import javascript unsafe
+        "($1[\"isPointInStroke\"]($2,\n$3) ? 1 : 0)" js_isPointInStroke ::
+        CanvasRenderingContext2D -> Float -> Float -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInStroke Mozilla CanvasRenderingContext2D.isPointInStroke documentation> 
+isPointInStroke ::
+                (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m Bool
+isPointInStroke self x y = liftIO (js_isPointInStroke self x y)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.isPointInStroke Mozilla CanvasRenderingContext2D.isPointInStroke documentation> 
+isPointInStroke_ ::
+                 (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
+isPointInStroke_ self x y
+  = liftIO (void (js_isPointInStroke self x y))
+ 
+foreign import javascript unsafe "$1[\"measureText\"]($2)"
+        js_measureText ::
+        CanvasRenderingContext2D -> JSString -> IO TextMetrics
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.measureText Mozilla CanvasRenderingContext2D.measureText documentation> 
+measureText ::
+            (MonadIO m, ToJSString text) =>
+              CanvasRenderingContext2D -> text -> m TextMetrics
+measureText self text
+  = liftIO (js_measureText self (toJSString text))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.measureText Mozilla CanvasRenderingContext2D.measureText documentation> 
+measureText_ ::
+             (MonadIO m, ToJSString text) =>
+               CanvasRenderingContext2D -> text -> m ()
+measureText_ self text
+  = liftIO (void (js_measureText self (toJSString text)))
+ 
+foreign import javascript unsafe "$1[\"setAlpha\"]($2)" js_setAlpha
+        :: CanvasRenderingContext2D -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setAlpha Mozilla CanvasRenderingContext2D.setAlpha documentation> 
+setAlpha ::
+         (MonadIO m) => CanvasRenderingContext2D -> Maybe Float -> m ()
+setAlpha self alpha
+  = liftIO (js_setAlpha self (maybeToOptional alpha))
+ 
+foreign import javascript unsafe
+        "$1[\"setCompositeOperation\"]($2)" js_setCompositeOperation ::
+        CanvasRenderingContext2D -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setCompositeOperation Mozilla CanvasRenderingContext2D.setCompositeOperation documentation> 
+setCompositeOperation ::
+                      (MonadIO m, ToJSString compositeOperation) =>
+                        CanvasRenderingContext2D -> Maybe compositeOperation -> m ()
+setCompositeOperation self compositeOperation
+  = liftIO
+      (js_setCompositeOperation self
+         (toOptionalJSString compositeOperation))
+ 
+foreign import javascript unsafe "$1[\"setLineWidth\"]($2)"
+        js_setLineWidthFunction ::
+        CanvasRenderingContext2D -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setLineWidth Mozilla CanvasRenderingContext2D.setLineWidth documentation> 
+setLineWidthFunction ::
+                     (MonadIO m) => CanvasRenderingContext2D -> Maybe Float -> m ()
+setLineWidthFunction self width
+  = liftIO (js_setLineWidthFunction self (maybeToOptional width))
+ 
+foreign import javascript unsafe "$1[\"setLineCap\"]($2)"
+        js_setLineCapFunction ::
+        CanvasRenderingContext2D -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setLineCap Mozilla CanvasRenderingContext2D.setLineCap documentation> 
+setLineCapFunction ::
+                   (MonadIO m, ToJSString cap) =>
+                     CanvasRenderingContext2D -> Maybe cap -> m ()
+setLineCapFunction self cap
+  = liftIO (js_setLineCapFunction self (toOptionalJSString cap))
+ 
+foreign import javascript unsafe "$1[\"setLineJoin\"]($2)"
+        js_setLineJoinFunction ::
+        CanvasRenderingContext2D -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setLineJoin Mozilla CanvasRenderingContext2D.setLineJoin documentation> 
+setLineJoinFunction ::
+                    (MonadIO m, ToJSString join) =>
+                      CanvasRenderingContext2D -> Maybe join -> m ()
+setLineJoinFunction self join
+  = liftIO (js_setLineJoinFunction self (toOptionalJSString join))
+ 
+foreign import javascript unsafe "$1[\"setMiterLimit\"]($2)"
+        js_setMiterLimitFunction ::
+        CanvasRenderingContext2D -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setMiterLimit Mozilla CanvasRenderingContext2D.setMiterLimit documentation> 
+setMiterLimitFunction ::
+                      (MonadIO m) => CanvasRenderingContext2D -> Maybe Float -> m ()
+setMiterLimitFunction self limit
+  = liftIO (js_setMiterLimitFunction self (maybeToOptional limit))
+ 
+foreign import javascript unsafe "$1[\"clearShadow\"]()"
+        js_clearShadow :: CanvasRenderingContext2D -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.clearShadow Mozilla CanvasRenderingContext2D.clearShadow documentation> 
+clearShadow :: (MonadIO m) => CanvasRenderingContext2D -> m ()
+clearShadow self = liftIO (js_clearShadow self)
+ 
+foreign import javascript unsafe "$1[\"fillText\"]($2, $3, $4, $5)"
+        js_fillText ::
+        CanvasRenderingContext2D ->
+          JSString -> Float -> Float -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fillText Mozilla CanvasRenderingContext2D.fillText documentation> 
+fillText ::
+         (MonadIO m, ToJSString text) =>
+           CanvasRenderingContext2D ->
+             text -> Float -> Float -> Maybe Float -> m ()
+fillText self text x y maxWidth
+  = liftIO
+      (js_fillText self (toJSString text) x y (maybeToOptional maxWidth))
+ 
+foreign import javascript unsafe
+        "$1[\"strokeText\"]($2, $3, $4, $5)" js_strokeText ::
+        CanvasRenderingContext2D ->
+          JSString -> Float -> Float -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.strokeText Mozilla CanvasRenderingContext2D.strokeText documentation> 
+strokeText ::
+           (MonadIO m, ToJSString text) =>
+             CanvasRenderingContext2D ->
+               text -> Float -> Float -> Maybe Float -> m ()
+strokeText self text x y maxWidth
+  = liftIO
+      (js_strokeText self (toJSString text) x y
+         (maybeToOptional maxWidth))
+ 
+foreign import javascript unsafe "$1[\"setStrokeColor\"]($2, $3)"
+        js_setStrokeColor ::
+        CanvasRenderingContext2D -> JSString -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setStrokeColor Mozilla CanvasRenderingContext2D.setStrokeColor documentation> 
+setStrokeColor ::
+               (MonadIO m, ToJSString color) =>
+                 CanvasRenderingContext2D -> color -> Maybe Float -> m ()
+setStrokeColor self color alpha
+  = liftIO
+      (js_setStrokeColor self (toJSString color) (maybeToOptional alpha))
+ 
+foreign import javascript unsafe "$1[\"setStrokeColor\"]($2, $3)"
+        js_setStrokeColorGray ::
+        CanvasRenderingContext2D -> Float -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setStrokeColor Mozilla CanvasRenderingContext2D.setStrokeColor documentation> 
+setStrokeColorGray ::
+                   (MonadIO m) =>
+                     CanvasRenderingContext2D -> Float -> Maybe Float -> m ()
+setStrokeColorGray self grayLevel alpha
+  = liftIO
+      (js_setStrokeColorGray self grayLevel (maybeToOptional alpha))
+ 
+foreign import javascript unsafe
+        "$1[\"setStrokeColor\"]($2, $3, $4,\n$5)" js_setStrokeColorRGB ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setStrokeColor Mozilla CanvasRenderingContext2D.setStrokeColor documentation> 
+setStrokeColorRGB ::
+                  (MonadIO m) =>
+                    CanvasRenderingContext2D ->
+                      Float -> Float -> Float -> Float -> m ()
+setStrokeColorRGB self r g b a
+  = liftIO (js_setStrokeColorRGB self r g b a)
+ 
+foreign import javascript unsafe
+        "$1[\"setStrokeColor\"]($2, $3, $4,\n$5, $6)" js_setStrokeColorCYMK
+        ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setStrokeColor Mozilla CanvasRenderingContext2D.setStrokeColor documentation> 
+setStrokeColorCYMK ::
+                   (MonadIO m) =>
+                     CanvasRenderingContext2D ->
+                       Float -> Float -> Float -> Float -> Float -> m ()
+setStrokeColorCYMK self c m y k a
+  = liftIO (js_setStrokeColorCYMK self c m y k a)
+ 
+foreign import javascript unsafe "$1[\"setFillColor\"]($2, $3)"
+        js_setFillColor ::
+        CanvasRenderingContext2D -> JSString -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setFillColor Mozilla CanvasRenderingContext2D.setFillColor documentation> 
+setFillColor ::
+             (MonadIO m, ToJSString color) =>
+               CanvasRenderingContext2D -> color -> Maybe Float -> m ()
+setFillColor self color alpha
+  = liftIO
+      (js_setFillColor self (toJSString color) (maybeToOptional alpha))
+ 
+foreign import javascript unsafe "$1[\"setFillColor\"]($2, $3)"
+        js_setFillColorGray ::
+        CanvasRenderingContext2D -> Float -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setFillColor Mozilla CanvasRenderingContext2D.setFillColor documentation> 
+setFillColorGray ::
+                 (MonadIO m) =>
+                   CanvasRenderingContext2D -> Float -> Maybe Float -> m ()
+setFillColorGray self grayLevel alpha
+  = liftIO
+      (js_setFillColorGray self grayLevel (maybeToOptional alpha))
+ 
+foreign import javascript unsafe
+        "$1[\"setFillColor\"]($2, $3, $4,\n$5)" js_setFillColorRGB ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setFillColor Mozilla CanvasRenderingContext2D.setFillColor documentation> 
+setFillColorRGB ::
+                (MonadIO m) =>
+                  CanvasRenderingContext2D ->
+                    Float -> Float -> Float -> Float -> m ()
+setFillColorRGB self r g b a
+  = liftIO (js_setFillColorRGB self r g b a)
+ 
+foreign import javascript unsafe
+        "$1[\"setFillColor\"]($2, $3, $4,\n$5, $6)" js_setFillColorCYMK ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setFillColor Mozilla CanvasRenderingContext2D.setFillColor documentation> 
+setFillColorCYMK ::
+                 (MonadIO m) =>
+                   CanvasRenderingContext2D ->
+                     Float -> Float -> Float -> Float -> Float -> m ()
+setFillColorCYMK self c m y k a
+  = liftIO (js_setFillColorCYMK self c m y k a)
+ 
+foreign import javascript unsafe
+        "$1[\"strokeRect\"]($2, $3, $4, $5)" js_strokeRect ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.strokeRect Mozilla CanvasRenderingContext2D.strokeRect documentation> 
+strokeRect ::
+           (MonadIO m) =>
+             CanvasRenderingContext2D ->
+               Float -> Float -> Float -> Float -> m ()
+strokeRect self x y width height
+  = liftIO (js_strokeRect self x y width height)
+ 
+foreign import javascript unsafe "$1[\"drawImage\"]($2, $3, $4)"
+        js_drawImage ::
+        CanvasRenderingContext2D ->
+          CanvasImageSource -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
+drawImage ::
+          (MonadIO m, IsCanvasImageSource image) =>
+            CanvasRenderingContext2D -> image -> Float -> Float -> m ()
+drawImage self image x y
+  = liftIO (js_drawImage self (toCanvasImageSource image) x y)
+ 
+foreign import javascript unsafe
+        "$1[\"drawImage\"]($2, $3, $4, $5,\n$6)" js_drawImageScaled ::
+        CanvasRenderingContext2D ->
+          CanvasImageSource -> Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
+drawImageScaled ::
+                (MonadIO m, IsCanvasImageSource image) =>
+                  CanvasRenderingContext2D ->
+                    image -> Float -> Float -> Float -> Float -> m ()
+drawImageScaled self image x y width height
+  = liftIO
+      (js_drawImageScaled self (toCanvasImageSource image) x y width
+         height)
+ 
+foreign import javascript unsafe
+        "$1[\"drawImage\"]($2, $3, $4, $5,\n$6, $7, $8, $9, $10)"
+        js_drawImagePart ::
+        CanvasRenderingContext2D ->
+          CanvasImageSource ->
+            Float ->
+              Float ->
+                Float -> Float -> Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage Mozilla CanvasRenderingContext2D.drawImage documentation> 
+drawImagePart ::
+              (MonadIO m, IsCanvasImageSource image) =>
+                CanvasRenderingContext2D ->
+                  image ->
+                    Float ->
+                      Float -> Float -> Float -> Float -> Float -> Float -> Float -> m ()
+drawImagePart self image sx sy sw sh dx dy dw dh
+  = liftIO
+      (js_drawImagePart self (toCanvasImageSource image) sx sy sw sh dx
+         dy
+         dw
+         dh)
+ 
+foreign import javascript unsafe
+        "$1[\"drawImageFromRect\"]($2, $3,\n$4, $5, $6, $7, $8, $9, $10,\n$11)"
+        js_drawImageFromRect ::
+        CanvasRenderingContext2D ->
+          HTMLImageElement ->
+            Optional Float ->
+              Optional Float ->
+                Optional Float ->
+                  Optional Float ->
+                    Optional Float ->
+                      Optional Float ->
+                        Optional Float -> Optional Float -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImageFromRect Mozilla CanvasRenderingContext2D.drawImageFromRect documentation> 
+drawImageFromRect ::
+                  (MonadIO m, ToJSString compositeOperation) =>
+                    CanvasRenderingContext2D ->
+                      HTMLImageElement ->
+                        Maybe Float ->
+                          Maybe Float ->
+                            Maybe Float ->
+                              Maybe Float ->
+                                Maybe Float ->
+                                  Maybe Float ->
+                                    Maybe Float -> Maybe Float -> Maybe compositeOperation -> m ()
+drawImageFromRect self image sx sy sw sh dx dy dw dh
+  compositeOperation
+  = liftIO
+      (js_drawImageFromRect self image (maybeToOptional sx)
+         (maybeToOptional sy)
+         (maybeToOptional sw)
+         (maybeToOptional sh)
+         (maybeToOptional dx)
+         (maybeToOptional dy)
+         (maybeToOptional dw)
+         (maybeToOptional dh)
+         (toOptionalJSString compositeOperation))
+ 
+foreign import javascript unsafe
+        "$1[\"setShadow\"]($2, $3, $4, $5,\n$6)" js_setShadow ::
+        CanvasRenderingContext2D ->
+          Float ->
+            Float -> Float -> Optional JSString -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setShadow Mozilla CanvasRenderingContext2D.setShadow documentation> 
+setShadow ::
+          (MonadIO m, ToJSString color) =>
+            CanvasRenderingContext2D ->
+              Float -> Float -> Float -> Maybe color -> Maybe Float -> m ()
+setShadow self width height blur color alpha
+  = liftIO
+      (js_setShadow self width height blur (toOptionalJSString color)
+         (maybeToOptional alpha))
+ 
+foreign import javascript unsafe
+        "$1[\"setShadow\"]($2, $3, $4, $5,\n$6)" js_setShadowGray ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setShadow Mozilla CanvasRenderingContext2D.setShadow documentation> 
+setShadowGray ::
+              (MonadIO m) =>
+                CanvasRenderingContext2D ->
+                  Float -> Float -> Float -> Float -> Maybe Float -> m ()
+setShadowGray self width height blur grayLevel alpha
+  = liftIO
+      (js_setShadowGray self width height blur grayLevel
+         (maybeToOptional alpha))
+ 
+foreign import javascript unsafe
+        "$1[\"setShadow\"]($2, $3, $4, $5,\n$6, $7, $8)" js_setShadowRGB ::
+        CanvasRenderingContext2D ->
+          Float ->
+            Float -> Float -> Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setShadow Mozilla CanvasRenderingContext2D.setShadow documentation> 
+setShadowRGB ::
+             (MonadIO m) =>
+               CanvasRenderingContext2D ->
+                 Float -> Float -> Float -> Float -> Float -> Float -> Float -> m ()
+setShadowRGB self width height blur r g b a
+  = liftIO (js_setShadowRGB self width height blur r g b a)
+ 
+foreign import javascript unsafe
+        "$1[\"setShadow\"]($2, $3, $4, $5,\n$6, $7, $8, $9)"
+        js_setShadowCYMK ::
+        CanvasRenderingContext2D ->
+          Float ->
+            Float ->
+              Float -> Float -> Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.setShadow Mozilla CanvasRenderingContext2D.setShadow documentation> 
+setShadowCYMK ::
+              (MonadIO m) =>
+                CanvasRenderingContext2D ->
+                  Float ->
+                    Float -> Float -> Float -> Float -> Float -> Float -> Float -> m ()
+setShadowCYMK self width height blur c m y k a
+  = liftIO (js_setShadowCYMK self width height blur c m y k a)
+ 
+foreign import javascript unsafe "$1[\"putImageData\"]($2, $3, $4)"
+        js_putImageData ::
+        CanvasRenderingContext2D -> ImageData -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.putImageData Mozilla CanvasRenderingContext2D.putImageData documentation> 
+putImageData ::
+             (MonadIO m) =>
+               CanvasRenderingContext2D -> ImageData -> Float -> Float -> m ()
+putImageData self imagedata dx dy
+  = liftIO (js_putImageData self imagedata dx dy)
+ 
+foreign import javascript unsafe
+        "$1[\"putImageData\"]($2, $3, $4,\n$5, $6, $7, $8)"
+        js_putImageDataDirty ::
+        CanvasRenderingContext2D ->
+          ImageData ->
+            Float -> Float -> Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.putImageData Mozilla CanvasRenderingContext2D.putImageData documentation> 
+putImageDataDirty ::
+                  (MonadIO m) =>
+                    CanvasRenderingContext2D ->
+                      ImageData ->
+                        Float -> Float -> Float -> Float -> Float -> Float -> m ()
+putImageDataDirty self imagedata dx dy dirtyX dirtyY dirtyWidth
+  dirtyHeight
+  = liftIO
+      (js_putImageDataDirty self imagedata dx dy dirtyX dirtyY dirtyWidth
+         dirtyHeight)
+ 
+foreign import javascript unsafe
+        "$1[\"webkitPutImageDataHD\"]($2,\n$3, $4)" js_webkitPutImageDataHD
+        :: CanvasRenderingContext2D -> ImageData -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitPutImageDataHD Mozilla CanvasRenderingContext2D.webkitPutImageDataHD documentation> 
+webkitPutImageDataHD ::
+                     (MonadIO m) =>
+                       CanvasRenderingContext2D -> ImageData -> Float -> Float -> m ()
+webkitPutImageDataHD self imagedata dx dy
+  = liftIO (js_webkitPutImageDataHD self imagedata dx dy)
+ 
+foreign import javascript unsafe
+        "$1[\"webkitPutImageDataHD\"]($2,\n$3, $4, $5, $6, $7, $8)"
+        js_webkitPutImageDataHDDirty ::
+        CanvasRenderingContext2D ->
+          ImageData ->
+            Float -> Float -> Float -> Float -> Float -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitPutImageDataHD Mozilla CanvasRenderingContext2D.webkitPutImageDataHD documentation> 
+webkitPutImageDataHDDirty ::
+                          (MonadIO m) =>
+                            CanvasRenderingContext2D ->
+                              ImageData ->
+                                Float -> Float -> Float -> Float -> Float -> Float -> m ()
+webkitPutImageDataHDDirty self imagedata dx dy dirtyX dirtyY
+  dirtyWidth dirtyHeight
+  = liftIO
+      (js_webkitPutImageDataHDDirty self imagedata dx dy dirtyX dirtyY
+         dirtyWidth
+         dirtyHeight)
+ 
+foreign import javascript unsafe "$1[\"createImageData\"]($2)"
+        js_createImageData ::
+        CanvasRenderingContext2D -> Optional ImageData -> IO ImageData
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
+createImageData ::
+                (MonadIO m) =>
+                  CanvasRenderingContext2D -> Maybe ImageData -> m ImageData
+createImageData self imagedata
+  = liftIO (js_createImageData self (maybeToOptional imagedata))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
+createImageData_ ::
+                 (MonadIO m) => CanvasRenderingContext2D -> Maybe ImageData -> m ()
+createImageData_ self imagedata
+  = liftIO
+      (void (js_createImageData self (maybeToOptional imagedata)))
+ 
+foreign import javascript unsafe "$1[\"createImageData\"]($2, $3)"
+        js_createImageDataSize ::
+        CanvasRenderingContext2D -> Float -> Float -> IO ImageData
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
+createImageDataSize ::
+                    (MonadIO m) =>
+                      CanvasRenderingContext2D -> Float -> Float -> m ImageData
+createImageDataSize self sw sh
+  = liftIO (js_createImageDataSize self sw sh)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createImageData Mozilla CanvasRenderingContext2D.createImageData documentation> 
+createImageDataSize_ ::
+                     (MonadIO m) => CanvasRenderingContext2D -> Float -> Float -> m ()
+createImageDataSize_ self sw sh
+  = liftIO (void (js_createImageDataSize self sw sh))
+ 
+foreign import javascript unsafe
+        "$1[\"createLinearGradient\"]($2,\n$3, $4, $5)"
+        js_createLinearGradient ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> IO CanvasGradient
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createLinearGradient Mozilla CanvasRenderingContext2D.createLinearGradient documentation> 
+createLinearGradient ::
+                     (MonadIO m) =>
+                       CanvasRenderingContext2D ->
+                         Float -> Float -> Float -> Float -> m CanvasGradient
+createLinearGradient self x0 y0 x1 y1
+  = liftIO (js_createLinearGradient self x0 y0 x1 y1)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createLinearGradient Mozilla CanvasRenderingContext2D.createLinearGradient documentation> 
+createLinearGradient_ ::
+                      (MonadIO m) =>
+                        CanvasRenderingContext2D ->
+                          Float -> Float -> Float -> Float -> m ()
+createLinearGradient_ self x0 y0 x1 y1
+  = liftIO (void (js_createLinearGradient self x0 y0 x1 y1))
+ 
+foreign import javascript unsafe
+        "$1[\"createRadialGradient\"]($2,\n$3, $4, $5, $6, $7)"
+        js_createRadialGradient ::
+        CanvasRenderingContext2D ->
+          Float ->
+            Float -> Float -> Float -> Float -> Float -> IO CanvasGradient
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createRadialGradient Mozilla CanvasRenderingContext2D.createRadialGradient documentation> 
+createRadialGradient ::
+                     (MonadIO m) =>
+                       CanvasRenderingContext2D ->
+                         Float ->
+                           Float -> Float -> Float -> Float -> Float -> m CanvasGradient
+createRadialGradient self x0 y0 r0 x1 y1 r1
+  = liftIO (js_createRadialGradient self x0 y0 r0 x1 y1 r1)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createRadialGradient Mozilla CanvasRenderingContext2D.createRadialGradient documentation> 
+createRadialGradient_ ::
+                      (MonadIO m) =>
+                        CanvasRenderingContext2D ->
+                          Float -> Float -> Float -> Float -> Float -> Float -> m ()
+createRadialGradient_ self x0 y0 r0 x1 y1 r1
+  = liftIO (void (js_createRadialGradient self x0 y0 r0 x1 y1 r1))
+ 
+foreign import javascript unsafe "$1[\"createPattern\"]($2, $3)"
+        js_createPattern ::
+        CanvasRenderingContext2D ->
+          CanvasImageSource ->
+            Optional JSString -> IO (Nullable CanvasPattern)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
+createPattern ::
+              (MonadIO m, IsCanvasImageSource image, ToJSString repetition) =>
+                CanvasRenderingContext2D ->
+                  image -> Maybe repetition -> m (Maybe CanvasPattern)
+createPattern self image repetition
+  = liftIO
+      (nullableToMaybe <$>
+         (js_createPattern self (toCanvasImageSource image)
+            (toOptionalJSString repetition)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
+createPattern_ ::
+               (MonadIO m, IsCanvasImageSource image, ToJSString repetition) =>
+                 CanvasRenderingContext2D -> image -> Maybe repetition -> m ()
+createPattern_ self image repetition
+  = liftIO
+      (void
+         (js_createPattern self (toCanvasImageSource image)
+            (toOptionalJSString repetition)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
+createPatternUnsafe ::
+                    (MonadIO m, IsCanvasImageSource image, ToJSString repetition,
+                     HasCallStack) =>
+                      CanvasRenderingContext2D ->
+                        image -> Maybe repetition -> m CanvasPattern
+createPatternUnsafe self image repetition
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_createPattern self (toCanvasImageSource image)
+             (toOptionalJSString repetition)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.createPattern Mozilla CanvasRenderingContext2D.createPattern documentation> 
+createPatternUnchecked ::
+                       (MonadIO m, IsCanvasImageSource image, ToJSString repetition) =>
+                         CanvasRenderingContext2D ->
+                           image -> Maybe repetition -> m CanvasPattern
+createPatternUnchecked self image repetition
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_createPattern self (toCanvasImageSource image)
+            (toOptionalJSString repetition)))
+ 
+foreign import javascript unsafe
+        "$1[\"getImageData\"]($2, $3, $4,\n$5)" js_getImageData ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> IO ImageData
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.getImageData Mozilla CanvasRenderingContext2D.getImageData documentation> 
+getImageData ::
+             (MonadIO m) =>
+               CanvasRenderingContext2D ->
+                 Float -> Float -> Float -> Float -> m ImageData
+getImageData self sx sy sw sh
+  = liftIO (js_getImageData self sx sy sw sh)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.getImageData Mozilla CanvasRenderingContext2D.getImageData documentation> 
+getImageData_ ::
+              (MonadIO m) =>
+                CanvasRenderingContext2D ->
+                  Float -> Float -> Float -> Float -> m ()
+getImageData_ self sx sy sw sh
+  = liftIO (void (js_getImageData self sx sy sw sh))
+ 
+foreign import javascript unsafe
+        "$1[\"webkitGetImageDataHD\"]($2,\n$3, $4, $5)"
+        js_webkitGetImageDataHD ::
+        CanvasRenderingContext2D ->
+          Float -> Float -> Float -> Float -> IO ImageData
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitGetImageDataHD Mozilla CanvasRenderingContext2D.webkitGetImageDataHD documentation> 
+webkitGetImageDataHD ::
+                     (MonadIO m) =>
+                       CanvasRenderingContext2D ->
+                         Float -> Float -> Float -> Float -> m ImageData
+webkitGetImageDataHD self sx sy sw sh
+  = liftIO (js_webkitGetImageDataHD self sx sy sw sh)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitGetImageDataHD Mozilla CanvasRenderingContext2D.webkitGetImageDataHD documentation> 
+webkitGetImageDataHD_ ::
+                      (MonadIO m) =>
+                        CanvasRenderingContext2D ->
+                          Float -> Float -> Float -> Float -> m ()
+webkitGetImageDataHD_ self sx sy sw sh
+  = liftIO (void (js_webkitGetImageDataHD self sx sy sw sh))
+ 
+foreign import javascript unsafe "$1[\"drawFocusIfNeeded\"]($2)"
+        js_drawFocusIfNeeded ::
+        CanvasRenderingContext2D -> Element -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawFocusIfNeeded Mozilla CanvasRenderingContext2D.drawFocusIfNeeded documentation> 
+drawFocusIfNeeded ::
+                  (MonadIO m, IsElement element) =>
+                    CanvasRenderingContext2D -> element -> m ()
+drawFocusIfNeeded self element
+  = liftIO (js_drawFocusIfNeeded self (toElement element))
+ 
+foreign import javascript unsafe
+        "$1[\"drawFocusIfNeeded\"]($2, $3)" js_drawFocusIfNeededPath ::
+        CanvasRenderingContext2D -> Path2D -> Element -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawFocusIfNeeded Mozilla CanvasRenderingContext2D.drawFocusIfNeeded documentation> 
+drawFocusIfNeededPath ::
+                      (MonadIO m, IsElement element) =>
+                        CanvasRenderingContext2D -> Path2D -> element -> m ()
+drawFocusIfNeededPath self path element
+  = liftIO (js_drawFocusIfNeededPath self path (toElement element))
+ 
+foreign import javascript unsafe "$1[\"canvas\"]" js_getCanvas ::
+        CanvasRenderingContext2D -> IO HTMLCanvasElement
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.canvas Mozilla CanvasRenderingContext2D.canvas documentation> 
+getCanvas ::
+          (MonadIO m) => CanvasRenderingContext2D -> m HTMLCanvasElement
+getCanvas self = liftIO (js_getCanvas self)
+ 
+foreign import javascript unsafe "$1[\"globalAlpha\"] = $2;"
+        js_setGlobalAlpha :: CanvasRenderingContext2D -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.globalAlpha Mozilla CanvasRenderingContext2D.globalAlpha documentation> 
+setGlobalAlpha ::
+               (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
+setGlobalAlpha self val = liftIO (js_setGlobalAlpha self val)
+ 
+foreign import javascript unsafe "$1[\"globalAlpha\"]"
+        js_getGlobalAlpha :: CanvasRenderingContext2D -> IO Float
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.globalAlpha Mozilla CanvasRenderingContext2D.globalAlpha documentation> 
+getGlobalAlpha ::
+               (MonadIO m) => CanvasRenderingContext2D -> m Float
+getGlobalAlpha self = liftIO (js_getGlobalAlpha self)
+ 
+foreign import javascript unsafe
+        "$1[\"globalCompositeOperation\"] = $2;"
+        js_setGlobalCompositeOperation ::
+        CanvasRenderingContext2D -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation Mozilla CanvasRenderingContext2D.globalCompositeOperation documentation> 
+setGlobalCompositeOperation ::
+                            (MonadIO m, ToJSString val) =>
+                              CanvasRenderingContext2D -> val -> m ()
+setGlobalCompositeOperation self val
+  = liftIO (js_setGlobalCompositeOperation self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"globalCompositeOperation\"]"
+        js_getGlobalCompositeOperation ::
+        CanvasRenderingContext2D -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.globalCompositeOperation Mozilla CanvasRenderingContext2D.globalCompositeOperation documentation> 
+getGlobalCompositeOperation ::
+                            (MonadIO m, FromJSString result) =>
+                              CanvasRenderingContext2D -> m result
+getGlobalCompositeOperation self
+  = liftIO (fromJSString <$> (js_getGlobalCompositeOperation self))
+ 
+foreign import javascript unsafe "$1[\"lineWidth\"] = $2;"
+        js_setLineWidth :: CanvasRenderingContext2D -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineWidth Mozilla CanvasRenderingContext2D.lineWidth documentation> 
+setLineWidth ::
+             (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
+setLineWidth self val = liftIO (js_setLineWidth self val)
+ 
+foreign import javascript unsafe "$1[\"lineWidth\"]"
+        js_getLineWidth :: CanvasRenderingContext2D -> IO Float
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineWidth Mozilla CanvasRenderingContext2D.lineWidth documentation> 
+getLineWidth :: (MonadIO m) => CanvasRenderingContext2D -> m Float
+getLineWidth self = liftIO (js_getLineWidth self)
+ 
+foreign import javascript unsafe "$1[\"lineCap\"] = $2;"
+        js_setLineCap :: CanvasRenderingContext2D -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineCap Mozilla CanvasRenderingContext2D.lineCap documentation> 
+setLineCap ::
+           (MonadIO m, ToJSString val) =>
+             CanvasRenderingContext2D -> val -> m ()
+setLineCap self val = liftIO (js_setLineCap self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"lineCap\"]" js_getLineCap ::
+        CanvasRenderingContext2D -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineCap Mozilla CanvasRenderingContext2D.lineCap documentation> 
+getLineCap ::
+           (MonadIO m, FromJSString result) =>
+             CanvasRenderingContext2D -> m result
+getLineCap self = liftIO (fromJSString <$> (js_getLineCap self))
+ 
+foreign import javascript unsafe "$1[\"lineJoin\"] = $2;"
+        js_setLineJoin :: CanvasRenderingContext2D -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineJoin Mozilla CanvasRenderingContext2D.lineJoin documentation> 
+setLineJoin ::
+            (MonadIO m, ToJSString val) =>
+              CanvasRenderingContext2D -> val -> m ()
+setLineJoin self val
+  = liftIO (js_setLineJoin self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"lineJoin\"]" js_getLineJoin
+        :: CanvasRenderingContext2D -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineJoin Mozilla CanvasRenderingContext2D.lineJoin documentation> 
+getLineJoin ::
+            (MonadIO m, FromJSString result) =>
+              CanvasRenderingContext2D -> m result
+getLineJoin self = liftIO (fromJSString <$> (js_getLineJoin self))
+ 
+foreign import javascript unsafe "$1[\"miterLimit\"] = $2;"
+        js_setMiterLimit :: CanvasRenderingContext2D -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.miterLimit Mozilla CanvasRenderingContext2D.miterLimit documentation> 
+setMiterLimit ::
+              (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
+setMiterLimit self val = liftIO (js_setMiterLimit self val)
+ 
+foreign import javascript unsafe "$1[\"miterLimit\"]"
+        js_getMiterLimit :: CanvasRenderingContext2D -> IO Float
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.miterLimit Mozilla CanvasRenderingContext2D.miterLimit documentation> 
+getMiterLimit :: (MonadIO m) => CanvasRenderingContext2D -> m Float
+getMiterLimit self = liftIO (js_getMiterLimit self)
+ 
+foreign import javascript unsafe "$1[\"shadowOffsetX\"] = $2;"
+        js_setShadowOffsetX :: CanvasRenderingContext2D -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowOffsetX Mozilla CanvasRenderingContext2D.shadowOffsetX documentation> 
+setShadowOffsetX ::
+                 (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
+setShadowOffsetX self val = liftIO (js_setShadowOffsetX self val)
+ 
+foreign import javascript unsafe "$1[\"shadowOffsetX\"]"
+        js_getShadowOffsetX :: CanvasRenderingContext2D -> IO Float
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowOffsetX Mozilla CanvasRenderingContext2D.shadowOffsetX documentation> 
+getShadowOffsetX ::
+                 (MonadIO m) => CanvasRenderingContext2D -> m Float
+getShadowOffsetX self = liftIO (js_getShadowOffsetX self)
+ 
+foreign import javascript unsafe "$1[\"shadowOffsetY\"] = $2;"
+        js_setShadowOffsetY :: CanvasRenderingContext2D -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowOffsetY Mozilla CanvasRenderingContext2D.shadowOffsetY documentation> 
+setShadowOffsetY ::
+                 (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
+setShadowOffsetY self val = liftIO (js_setShadowOffsetY self val)
+ 
+foreign import javascript unsafe "$1[\"shadowOffsetY\"]"
+        js_getShadowOffsetY :: CanvasRenderingContext2D -> IO Float
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowOffsetY Mozilla CanvasRenderingContext2D.shadowOffsetY documentation> 
+getShadowOffsetY ::
+                 (MonadIO m) => CanvasRenderingContext2D -> m Float
+getShadowOffsetY self = liftIO (js_getShadowOffsetY self)
+ 
+foreign import javascript unsafe "$1[\"shadowBlur\"] = $2;"
+        js_setShadowBlur :: CanvasRenderingContext2D -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowBlur Mozilla CanvasRenderingContext2D.shadowBlur documentation> 
+setShadowBlur ::
+              (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
+setShadowBlur self val = liftIO (js_setShadowBlur self val)
+ 
+foreign import javascript unsafe "$1[\"shadowBlur\"]"
+        js_getShadowBlur :: CanvasRenderingContext2D -> IO Float
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowBlur Mozilla CanvasRenderingContext2D.shadowBlur documentation> 
+getShadowBlur :: (MonadIO m) => CanvasRenderingContext2D -> m Float
+getShadowBlur self = liftIO (js_getShadowBlur self)
+ 
+foreign import javascript unsafe "$1[\"shadowColor\"] = $2;"
+        js_setShadowColor :: CanvasRenderingContext2D -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowColor Mozilla CanvasRenderingContext2D.shadowColor documentation> 
+setShadowColor ::
+               (MonadIO m, ToJSString val) =>
+                 CanvasRenderingContext2D -> val -> m ()
+setShadowColor self val
+  = liftIO (js_setShadowColor self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"shadowColor\"]"
+        js_getShadowColor :: CanvasRenderingContext2D -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.shadowColor Mozilla CanvasRenderingContext2D.shadowColor documentation> 
+getShadowColor ::
+               (MonadIO m, FromJSString result) =>
+                 CanvasRenderingContext2D -> m result
+getShadowColor self
+  = liftIO (fromJSString <$> (js_getShadowColor self))
+ 
+foreign import javascript unsafe "$1[\"lineDashOffset\"] = $2;"
+        js_setLineDashOffset :: CanvasRenderingContext2D -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineDashOffset Mozilla CanvasRenderingContext2D.lineDashOffset documentation> 
+setLineDashOffset ::
+                  (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
+setLineDashOffset self val = liftIO (js_setLineDashOffset self val)
+ 
+foreign import javascript unsafe "$1[\"lineDashOffset\"]"
+        js_getLineDashOffset :: CanvasRenderingContext2D -> IO Float
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.lineDashOffset Mozilla CanvasRenderingContext2D.lineDashOffset documentation> 
+getLineDashOffset ::
+                  (MonadIO m) => CanvasRenderingContext2D -> m Float
+getLineDashOffset self = liftIO (js_getLineDashOffset self)
+ 
+foreign import javascript unsafe "$1[\"webkitLineDash\"] = $2;"
+        js_setWebkitLineDash :: CanvasRenderingContext2D -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitLineDash Mozilla CanvasRenderingContext2D.webkitLineDash documentation> 
+setWebkitLineDash ::
+                  (MonadIO m) => CanvasRenderingContext2D -> [Float] -> m ()
+setWebkitLineDash self val
+  = liftIO (toJSVal val >>= \ val' -> js_setWebkitLineDash self val')
+ 
+foreign import javascript unsafe "$1[\"webkitLineDash\"]"
+        js_getWebkitLineDash :: CanvasRenderingContext2D -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitLineDash Mozilla CanvasRenderingContext2D.webkitLineDash documentation> 
+getWebkitLineDash ::
+                  (MonadIO m) => CanvasRenderingContext2D -> m [Float]
+getWebkitLineDash self
+  = liftIO ((js_getWebkitLineDash self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe
+        "$1[\"webkitLineDashOffset\"] = $2;" js_setWebkitLineDashOffset ::
+        CanvasRenderingContext2D -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitLineDashOffset Mozilla CanvasRenderingContext2D.webkitLineDashOffset documentation> 
+setWebkitLineDashOffset ::
+                        (MonadIO m) => CanvasRenderingContext2D -> Float -> m ()
+setWebkitLineDashOffset self val
+  = liftIO (js_setWebkitLineDashOffset self val)
+ 
+foreign import javascript unsafe "$1[\"webkitLineDashOffset\"]"
+        js_getWebkitLineDashOffset :: CanvasRenderingContext2D -> IO Float
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitLineDashOffset Mozilla CanvasRenderingContext2D.webkitLineDashOffset documentation> 
+getWebkitLineDashOffset ::
+                        (MonadIO m) => CanvasRenderingContext2D -> m Float
+getWebkitLineDashOffset self
+  = liftIO (js_getWebkitLineDashOffset self)
+ 
+foreign import javascript unsafe "$1[\"font\"] = $2;" js_setFont ::
+        CanvasRenderingContext2D -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.font Mozilla CanvasRenderingContext2D.font documentation> 
+setFont ::
+        (MonadIO m, ToJSString val) =>
+          CanvasRenderingContext2D -> val -> m ()
+setFont self val = liftIO (js_setFont self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"font\"]" js_getFont ::
+        CanvasRenderingContext2D -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.font Mozilla CanvasRenderingContext2D.font documentation> 
+getFont ::
+        (MonadIO m, FromJSString result) =>
+          CanvasRenderingContext2D -> m result
+getFont self = liftIO (fromJSString <$> (js_getFont self))
+ 
+foreign import javascript unsafe "$1[\"textAlign\"] = $2;"
+        js_setTextAlign :: CanvasRenderingContext2D -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.textAlign Mozilla CanvasRenderingContext2D.textAlign documentation> 
+setTextAlign ::
+             (MonadIO m, ToJSString val) =>
+               CanvasRenderingContext2D -> val -> m ()
+setTextAlign self val
+  = liftIO (js_setTextAlign self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"textAlign\"]"
+        js_getTextAlign :: CanvasRenderingContext2D -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.textAlign Mozilla CanvasRenderingContext2D.textAlign documentation> 
+getTextAlign ::
+             (MonadIO m, FromJSString result) =>
+               CanvasRenderingContext2D -> m result
+getTextAlign self
+  = liftIO (fromJSString <$> (js_getTextAlign self))
+ 
+foreign import javascript unsafe "$1[\"textBaseline\"] = $2;"
+        js_setTextBaseline :: CanvasRenderingContext2D -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.textBaseline Mozilla CanvasRenderingContext2D.textBaseline documentation> 
+setTextBaseline ::
+                (MonadIO m, ToJSString val) =>
+                  CanvasRenderingContext2D -> val -> m ()
+setTextBaseline self val
+  = liftIO (js_setTextBaseline self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"textBaseline\"]"
+        js_getTextBaseline :: CanvasRenderingContext2D -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.textBaseline Mozilla CanvasRenderingContext2D.textBaseline documentation> 
+getTextBaseline ::
+                (MonadIO m, FromJSString result) =>
+                  CanvasRenderingContext2D -> m result
+getTextBaseline self
+  = liftIO (fromJSString <$> (js_getTextBaseline self))
+ 
+foreign import javascript unsafe "$1[\"direction\"] = $2;"
+        js_setDirection :: CanvasRenderingContext2D -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.direction Mozilla CanvasRenderingContext2D.direction documentation> 
+setDirection ::
+             (MonadIO m, ToJSString val) =>
+               CanvasRenderingContext2D -> val -> m ()
+setDirection self val
+  = liftIO (js_setDirection self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"direction\"]"
+        js_getDirection :: CanvasRenderingContext2D -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.direction Mozilla CanvasRenderingContext2D.direction documentation> 
+getDirection ::
+             (MonadIO m, FromJSString result) =>
+               CanvasRenderingContext2D -> m result
+getDirection self
+  = liftIO (fromJSString <$> (js_getDirection self))
+ 
+foreign import javascript unsafe "$1[\"strokeStyle\"] = $2;"
+        js_setStrokeStyle ::
+        CanvasRenderingContext2D -> CanvasStyle -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.strokeStyle Mozilla CanvasRenderingContext2D.strokeStyle documentation> 
+setStrokeStyle ::
+               (MonadIO m, IsCanvasStyle val) =>
+                 CanvasRenderingContext2D -> val -> m ()
+setStrokeStyle self val
+  = liftIO
+      (toJSVal val >>=
+         \ val' -> js_setStrokeStyle self (CanvasStyle val'))
+ 
+foreign import javascript unsafe "$1[\"strokeStyle\"]"
+        js_getStrokeStyle :: CanvasRenderingContext2D -> IO CanvasStyle
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.strokeStyle Mozilla CanvasRenderingContext2D.strokeStyle documentation> 
+getStrokeStyle ::
+               (MonadIO m) => CanvasRenderingContext2D -> m CanvasStyle
+getStrokeStyle self = liftIO (js_getStrokeStyle self)
+ 
+foreign import javascript unsafe "$1[\"fillStyle\"] = $2;"
+        js_setFillStyle :: CanvasRenderingContext2D -> CanvasStyle -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fillStyle Mozilla CanvasRenderingContext2D.fillStyle documentation> 
+setFillStyle ::
+             (MonadIO m, IsCanvasStyle val) =>
+               CanvasRenderingContext2D -> val -> m ()
+setFillStyle self val
+  = liftIO
+      (toJSVal val >>= \ val' -> js_setFillStyle self (CanvasStyle val'))
+ 
+foreign import javascript unsafe "$1[\"fillStyle\"]"
+        js_getFillStyle :: CanvasRenderingContext2D -> IO CanvasStyle
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.fillStyle Mozilla CanvasRenderingContext2D.fillStyle documentation> 
+getFillStyle ::
+             (MonadIO m) => CanvasRenderingContext2D -> m CanvasStyle
+getFillStyle self = liftIO (js_getFillStyle self)
+ 
+foreign import javascript unsafe
+        "$1[\"webkitBackingStorePixelRatio\"]"
+        js_getWebkitBackingStorePixelRatio ::
+        CanvasRenderingContext2D -> IO Float
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitBackingStorePixelRatio Mozilla CanvasRenderingContext2D.webkitBackingStorePixelRatio documentation> 
+getWebkitBackingStorePixelRatio ::
+                                (MonadIO m) => CanvasRenderingContext2D -> m Float
+getWebkitBackingStorePixelRatio self
+  = liftIO (js_getWebkitBackingStorePixelRatio self)
+ 
+foreign import javascript unsafe
+        "$1[\"imageSmoothingEnabled\"] = $2;" js_setImageSmoothingEnabled
+        :: CanvasRenderingContext2D -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.imageSmoothingEnabled Mozilla CanvasRenderingContext2D.imageSmoothingEnabled documentation> 
+setImageSmoothingEnabled ::
+                         (MonadIO m) => CanvasRenderingContext2D -> Bool -> m ()
+setImageSmoothingEnabled self val
+  = liftIO (js_setImageSmoothingEnabled self val)
+ 
+foreign import javascript unsafe
+        "($1[\"imageSmoothingEnabled\"] ? 1 : 0)"
+        js_getImageSmoothingEnabled :: CanvasRenderingContext2D -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.imageSmoothingEnabled Mozilla CanvasRenderingContext2D.imageSmoothingEnabled documentation> 
+getImageSmoothingEnabled ::
+                         (MonadIO m) => CanvasRenderingContext2D -> m Bool
+getImageSmoothingEnabled self
+  = liftIO (js_getImageSmoothingEnabled self)
+ 
+foreign import javascript unsafe
+        "$1[\"webkitImageSmoothingEnabled\"] = $2;"
+        js_setWebkitImageSmoothingEnabled ::
+        CanvasRenderingContext2D -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitImageSmoothingEnabled Mozilla CanvasRenderingContext2D.webkitImageSmoothingEnabled documentation> 
+setWebkitImageSmoothingEnabled ::
+                               (MonadIO m) => CanvasRenderingContext2D -> Bool -> m ()
+setWebkitImageSmoothingEnabled self val
+  = liftIO (js_setWebkitImageSmoothingEnabled self val)
+ 
+foreign import javascript unsafe
+        "($1[\"webkitImageSmoothingEnabled\"] ? 1 : 0)"
+        js_getWebkitImageSmoothingEnabled ::
+        CanvasRenderingContext2D -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.webkitImageSmoothingEnabled Mozilla CanvasRenderingContext2D.webkitImageSmoothingEnabled documentation> 
+getWebkitImageSmoothingEnabled ::
+                               (MonadIO m) => CanvasRenderingContext2D -> m Bool
+getWebkitImageSmoothingEnabled self
+  = liftIO (js_getWebkitImageSmoothingEnabled self)
+ 
+foreign import javascript unsafe
+        "$1[\"imageSmoothingQuality\"] = $2;" js_setImageSmoothingQuality
+        :: CanvasRenderingContext2D -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.imageSmoothingQuality Mozilla CanvasRenderingContext2D.imageSmoothingQuality documentation> 
+setImageSmoothingQuality ::
+                         (MonadIO m) =>
+                           CanvasRenderingContext2D -> ImageSmoothingQuality -> m ()
+setImageSmoothingQuality self val
+  = liftIO (js_setImageSmoothingQuality self (pToJSVal val))
+ 
+foreign import javascript unsafe "$1[\"imageSmoothingQuality\"]"
+        js_getImageSmoothingQuality :: CanvasRenderingContext2D -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.imageSmoothingQuality Mozilla CanvasRenderingContext2D.imageSmoothingQuality documentation> 
+getImageSmoothingQuality ::
+                         (MonadIO m) => CanvasRenderingContext2D -> m ImageSmoothingQuality
+getImageSmoothingQuality self
+  = liftIO
+      ((js_getImageSmoothingQuality self) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CapabilityRange.hs b/src/GHCJS/DOM/JSFFI/Generated/CapabilityRange.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/CapabilityRange.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.CapabilityRange
-       (js_getMax, getMax, js_getMin, getMin, js_getSupported,
-        getSupported, CapabilityRange(..), gTypeCapabilityRange)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"max\"]" js_getMax ::
-        CapabilityRange -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CapabilityRange.max Mozilla CapabilityRange.max documentation> 
-getMax :: (MonadIO m) => CapabilityRange -> m JSVal
-getMax self = liftIO (js_getMax (self))
- 
-foreign import javascript unsafe "$1[\"min\"]" js_getMin ::
-        CapabilityRange -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CapabilityRange.min Mozilla CapabilityRange.min documentation> 
-getMin :: (MonadIO m) => CapabilityRange -> m JSVal
-getMin self = liftIO (js_getMin (self))
- 
-foreign import javascript unsafe "($1[\"supported\"] ? 1 : 0)"
-        js_getSupported :: CapabilityRange -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CapabilityRange.supported Mozilla CapabilityRange.supported documentation> 
-getSupported :: (MonadIO m) => CapabilityRange -> m Bool
-getSupported self = liftIO (js_getSupported (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CharacterData.hs b/src/GHCJS/DOM/JSFFI/Generated/CharacterData.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CharacterData.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CharacterData.hs
@@ -16,7 +16,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,6 +25,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -114,14 +115,15 @@
          (toJSString data'))
  
 foreign import javascript unsafe "$1[\"data\"] = $2;" js_setData ::
-        CharacterData -> Nullable JSString -> IO ()
+        CharacterData -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CharacterData.data Mozilla CharacterData.data documentation> 
 setData ::
         (MonadIO m, IsCharacterData self, ToJSString val) =>
           self -> Maybe val -> m ()
 setData self val
-  = liftIO (js_setData (toCharacterData self) (toMaybeJSString val))
+  = liftIO
+      (js_setData (toCharacterData self) (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"data\"]" js_getData ::
         CharacterData -> IO (Nullable JSString)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ChildNode.hs b/src/GHCJS/DOM/JSFFI/Generated/ChildNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ChildNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ChildNode.hs
@@ -4,12 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.ChildNode
-       (js_remove, remove, ChildNode(..), gTypeChildNode) where
+       (js_before, before, js_after, after, js_replaceWith, replaceWith,
+        js_remove, remove, ChildNode(..), gTypeChildNode, IsChildNode,
+        toChildNode)
+       where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -18,14 +21,49 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe "$1[\"before\"]($2)" js_before ::
+        ChildNode -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ChildNode.before Mozilla ChildNode.before documentation> 
+before ::
+       (MonadIO m, IsChildNode self, IsNodeOrString nodes) =>
+         self -> [nodes] -> m ()
+before self nodes
+  = liftIO
+      (toJSVal nodes >>= \ nodes' -> js_before (toChildNode self) nodes')
+ 
+foreign import javascript unsafe "$1[\"after\"]($2)" js_after ::
+        ChildNode -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ChildNode.after Mozilla ChildNode.after documentation> 
+after ::
+      (MonadIO m, IsChildNode self, IsNodeOrString nodes) =>
+        self -> [nodes] -> m ()
+after self nodes
+  = liftIO
+      (toJSVal nodes >>= \ nodes' -> js_after (toChildNode self) nodes')
+ 
+foreign import javascript unsafe "$1[\"replaceWith\"]($2)"
+        js_replaceWith :: ChildNode -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ChildNode.replaceWith Mozilla ChildNode.replaceWith documentation> 
+replaceWith ::
+            (MonadIO m, IsChildNode self, IsNodeOrString nodes) =>
+              self -> [nodes] -> m ()
+replaceWith self nodes
+  = liftIO
+      (toJSVal nodes >>=
+         \ nodes' -> js_replaceWith (toChildNode self) nodes')
+ 
 foreign import javascript unsafe "$1[\"remove\"]()" js_remove ::
         ChildNode -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ChildNode.remove Mozilla ChildNode.remove documentation> 
-remove :: (MonadIO m) => ChildNode -> m ()
-remove self = liftIO (js_remove (self))
+remove :: (MonadIO m, IsChildNode self) => self -> m ()
+remove self = liftIO (js_remove (toChildNode self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ClientRect.hs b/src/GHCJS/DOM/JSFFI/Generated/ClientRect.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ClientRect.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ClientRect.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,39 +32,39 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ClientRect.top Mozilla ClientRect.top documentation> 
 getTop :: (MonadIO m) => ClientRect -> m Float
-getTop self = liftIO (js_getTop (self))
+getTop self = liftIO (js_getTop self)
  
 foreign import javascript unsafe "$1[\"right\"]" js_getRight ::
         ClientRect -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ClientRect.right Mozilla ClientRect.right documentation> 
 getRight :: (MonadIO m) => ClientRect -> m Float
-getRight self = liftIO (js_getRight (self))
+getRight self = liftIO (js_getRight self)
  
 foreign import javascript unsafe "$1[\"bottom\"]" js_getBottom ::
         ClientRect -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ClientRect.bottom Mozilla ClientRect.bottom documentation> 
 getBottom :: (MonadIO m) => ClientRect -> m Float
-getBottom self = liftIO (js_getBottom (self))
+getBottom self = liftIO (js_getBottom self)
  
 foreign import javascript unsafe "$1[\"left\"]" js_getLeft ::
         ClientRect -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ClientRect.left Mozilla ClientRect.left documentation> 
 getLeft :: (MonadIO m) => ClientRect -> m Float
-getLeft self = liftIO (js_getLeft (self))
+getLeft self = liftIO (js_getLeft self)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         ClientRect -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ClientRect.width Mozilla ClientRect.width documentation> 
 getWidth :: (MonadIO m) => ClientRect -> m Float
-getWidth self = liftIO (js_getWidth (self))
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
         ClientRect -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ClientRect.height Mozilla ClientRect.height documentation> 
 getHeight :: (MonadIO m) => ClientRect -> m Float
-getHeight self = liftIO (js_getHeight (self))
+getHeight self = liftIO (js_getHeight self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ClientRectList.hs b/src/GHCJS/DOM/JSFFI/Generated/ClientRectList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ClientRectList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ClientRectList.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.ClientRectList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getLength,
-        getLength, ClientRectList(..), gTypeClientRectList)
+       (js_item, item, item_, js_getLength, getLength, ClientRectList(..),
+        gTypeClientRectList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,41 +20,26 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        ClientRectList -> Word -> IO (Nullable ClientRect)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        ClientRectList -> Word -> IO ClientRect
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ClientRectList.item Mozilla ClientRectList.item documentation> 
-item ::
-     (MonadIO m) => ClientRectList -> Word -> m (Maybe ClientRect)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item :: (MonadIO m) => ClientRectList -> Word -> m ClientRect
+item self index = liftIO (js_item self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ClientRectList.item Mozilla ClientRectList.item documentation> 
 item_ :: (MonadIO m) => ClientRectList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ClientRectList.item Mozilla ClientRectList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, HasCallStack) => ClientRectList -> Word -> m ClientRect
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ClientRectList.item Mozilla ClientRectList.item documentation> 
-itemUnchecked ::
-              (MonadIO m) => ClientRectList -> Word -> m ClientRect
-itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         ClientRectList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ClientRectList.length Mozilla ClientRectList.length documentation> 
 getLength :: (MonadIO m) => ClientRectList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ClipboardEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/ClipboardEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ClipboardEvent.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ClipboardEvent
+       (js_newClipboardEvent, newClipboardEvent, js_getClipboardData,
+        getClipboardData, getClipboardDataUnsafe,
+        getClipboardDataUnchecked, ClipboardEvent(..), gTypeClipboardEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"ClipboardEvent\"]($1,\n$2)" js_newClipboardEvent ::
+        JSString -> Optional ClipboardEventInit -> IO ClipboardEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent Mozilla ClipboardEvent documentation> 
+newClipboardEvent ::
+                  (MonadIO m, ToJSString type') =>
+                    type' -> Maybe ClipboardEventInit -> m ClipboardEvent
+newClipboardEvent type' eventInitDict
+  = liftIO
+      (js_newClipboardEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe "$1[\"clipboardData\"]"
+        js_getClipboardData :: ClipboardEvent -> IO (Nullable DataTransfer)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent.clipboardData Mozilla ClipboardEvent.clipboardData documentation> 
+getClipboardData ::
+                 (MonadIO m) => ClipboardEvent -> m (Maybe DataTransfer)
+getClipboardData self
+  = liftIO (nullableToMaybe <$> (js_getClipboardData self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent.clipboardData Mozilla ClipboardEvent.clipboardData documentation> 
+getClipboardDataUnsafe ::
+                       (MonadIO m, HasCallStack) => ClipboardEvent -> m DataTransfer
+getClipboardDataUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getClipboardData self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent.clipboardData Mozilla ClipboardEvent.clipboardData documentation> 
+getClipboardDataUnchecked ::
+                          (MonadIO m) => ClipboardEvent -> m DataTransfer
+getClipboardDataUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$> (js_getClipboardData self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CloseEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/CloseEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CloseEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CloseEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CloseEvent
-       (js_getWasClean, getWasClean, js_getCode, getCode, js_getReason,
-        getReason, CloseEvent(..), gTypeCloseEvent)
+       (js_newCloseEvent, newCloseEvent, js_getWasClean, getWasClean,
+        js_getCode, getCode, js_getReason, getReason, CloseEvent(..),
+        gTypeCloseEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,24 +21,38 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"CloseEvent\"]($1, $2)" js_newCloseEvent ::
+        JSString -> Optional CloseEventInit -> IO CloseEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent Mozilla CloseEvent documentation> 
+newCloseEvent ::
+              (MonadIO m, ToJSString type') =>
+                type' -> Maybe CloseEventInit -> m CloseEvent
+newCloseEvent type' eventInitDict
+  = liftIO
+      (js_newCloseEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "($1[\"wasClean\"] ? 1 : 0)"
         js_getWasClean :: CloseEvent -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent.wasClean Mozilla CloseEvent.wasClean documentation> 
 getWasClean :: (MonadIO m) => CloseEvent -> m Bool
-getWasClean self = liftIO (js_getWasClean (self))
+getWasClean self = liftIO (js_getWasClean self)
  
 foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
         CloseEvent -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent.code Mozilla CloseEvent.code documentation> 
 getCode :: (MonadIO m) => CloseEvent -> m Word
-getCode self = liftIO (js_getCode (self))
+getCode self = liftIO (js_getCode self)
  
 foreign import javascript unsafe "$1[\"reason\"]" js_getReason ::
         CloseEvent -> IO JSString
@@ -45,4 +60,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent.reason Mozilla CloseEvent.reason documentation> 
 getReason ::
           (MonadIO m, FromJSString result) => CloseEvent -> m result
-getReason self = liftIO (fromJSString <$> (js_getReason (self)))
+getReason self = liftIO (fromJSString <$> (js_getReason self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CommandLineAPIHost.hs b/src/GHCJS/DOM/JSFFI/Generated/CommandLineAPIHost.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CommandLineAPIHost.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CommandLineAPIHost.hs
@@ -7,8 +7,7 @@
        (js_clearConsoleMessages, clearConsoleMessages, js_copyText,
         copyText, js_inspect, inspect, js_inspectedObject, inspectedObject,
         inspectedObject_, js_getEventListeners, getEventListeners,
-        getEventListeners_, getEventListenersUnsafe,
-        getEventListenersUnchecked, js_databaseId, databaseId, databaseId_,
+        getEventListeners_, js_databaseId, databaseId, databaseId_,
         js_storageId, storageId, storageId_, CommandLineAPIHost(..),
         gTypeCommandLineAPIHost)
        where
@@ -16,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -35,7 +35,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.clearConsoleMessages Mozilla CommandLineAPIHost.clearConsoleMessages documentation> 
 clearConsoleMessages :: (MonadIO m) => CommandLineAPIHost -> m ()
-clearConsoleMessages self = liftIO (js_clearConsoleMessages (self))
+clearConsoleMessages self = liftIO (js_clearConsoleMessages self)
  
 foreign import javascript unsafe "$1[\"copyText\"]($2)" js_copyText
         :: CommandLineAPIHost -> JSString -> IO ()
@@ -43,98 +43,86 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.copyText Mozilla CommandLineAPIHost.copyText documentation> 
 copyText ::
          (MonadIO m, ToJSString text) => CommandLineAPIHost -> text -> m ()
-copyText self text = liftIO (js_copyText (self) (toJSString text))
+copyText self text = liftIO (js_copyText self (toJSString text))
  
 foreign import javascript unsafe "$1[\"inspect\"]($2, $3)"
         js_inspect :: CommandLineAPIHost -> JSVal -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.inspect Mozilla CommandLineAPIHost.inspect documentation> 
 inspect ::
-        (MonadIO m) => CommandLineAPIHost -> JSVal -> JSVal -> m ()
+        (MonadIO m, ToJSVal objectId, ToJSVal hints) =>
+          CommandLineAPIHost -> objectId -> hints -> m ()
 inspect self objectId hints
-  = liftIO (js_inspect (self) objectId hints)
+  = liftIO
+      (toJSVal hints >>=
+         \ hints' ->
+           toJSVal objectId >>= \ objectId' -> js_inspect self objectId'
+             hints')
  
-foreign import javascript unsafe "$1[\"inspectedObject\"]($2)"
-        js_inspectedObject :: CommandLineAPIHost -> Int -> IO JSVal
+foreign import javascript unsafe "$1[\"inspectedObject\"]()"
+        js_inspectedObject :: CommandLineAPIHost -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.inspectedObject Mozilla CommandLineAPIHost.inspectedObject documentation> 
-inspectedObject ::
-                (MonadIO m) => CommandLineAPIHost -> Int -> m JSVal
-inspectedObject self num = liftIO (js_inspectedObject (self) num)
+inspectedObject :: (MonadIO m) => CommandLineAPIHost -> m JSVal
+inspectedObject self = liftIO (js_inspectedObject self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.inspectedObject Mozilla CommandLineAPIHost.inspectedObject documentation> 
-inspectedObject_ ::
-                 (MonadIO m) => CommandLineAPIHost -> Int -> m ()
-inspectedObject_ self num
-  = liftIO (void (js_inspectedObject (self) num))
+inspectedObject_ :: (MonadIO m) => CommandLineAPIHost -> m ()
+inspectedObject_ self = liftIO (void (js_inspectedObject self))
  
 foreign import javascript unsafe "$1[\"getEventListeners\"]($2)"
-        js_getEventListeners ::
-        CommandLineAPIHost -> Nullable Node -> IO (Nullable Array)
+        js_getEventListeners :: CommandLineAPIHost -> Node -> IO Array
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.getEventListeners Mozilla CommandLineAPIHost.getEventListeners documentation> 
 getEventListeners ::
-                  (MonadIO m, IsNode node) =>
-                    CommandLineAPIHost -> Maybe node -> m (Maybe Array)
+                  (MonadIO m, IsNode node) => CommandLineAPIHost -> node -> m Array
 getEventListeners self node
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getEventListeners (self) (maybeToNullable (fmap toNode node))))
+  = liftIO (js_getEventListeners self (toNode node))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.getEventListeners Mozilla CommandLineAPIHost.getEventListeners documentation> 
 getEventListeners_ ::
-                   (MonadIO m, IsNode node) =>
-                     CommandLineAPIHost -> Maybe node -> m ()
+                   (MonadIO m, IsNode node) => CommandLineAPIHost -> node -> m ()
 getEventListeners_ self node
-  = liftIO
-      (void
-         (js_getEventListeners (self) (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.getEventListeners Mozilla CommandLineAPIHost.getEventListeners documentation> 
-getEventListenersUnsafe ::
-                        (MonadIO m, IsNode node, HasCallStack) =>
-                          CommandLineAPIHost -> Maybe node -> m Array
-getEventListenersUnsafe self node
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getEventListeners (self) (maybeToNullable (fmap toNode node))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.getEventListeners Mozilla CommandLineAPIHost.getEventListeners documentation> 
-getEventListenersUnchecked ::
-                           (MonadIO m, IsNode node) =>
-                             CommandLineAPIHost -> Maybe node -> m Array
-getEventListenersUnchecked self node
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getEventListeners (self) (maybeToNullable (fmap toNode node))))
+  = liftIO (void (js_getEventListeners self (toNode node)))
  
 foreign import javascript unsafe "$1[\"databaseId\"]($2)"
         js_databaseId :: CommandLineAPIHost -> JSVal -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.databaseId Mozilla CommandLineAPIHost.databaseId documentation> 
 databaseId ::
-           (MonadIO m, FromJSString result) =>
-             CommandLineAPIHost -> JSVal -> m result
+           (MonadIO m, ToJSVal database, FromJSString result) =>
+             CommandLineAPIHost -> database -> m result
 databaseId self database
-  = liftIO (fromJSString <$> (js_databaseId (self) database))
+  = liftIO
+      (fromJSString <$>
+         (toJSVal database >>= \ database' -> js_databaseId self database'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.databaseId Mozilla CommandLineAPIHost.databaseId documentation> 
-databaseId_ :: (MonadIO m) => CommandLineAPIHost -> JSVal -> m ()
+databaseId_ ::
+            (MonadIO m, ToJSVal database) =>
+              CommandLineAPIHost -> database -> m ()
 databaseId_ self database
-  = liftIO (void (js_databaseId (self) database))
+  = liftIO
+      (void
+         (toJSVal database >>= \ database' -> js_databaseId self database'))
  
 foreign import javascript unsafe "$1[\"storageId\"]($2)"
         js_storageId :: CommandLineAPIHost -> JSVal -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.storageId Mozilla CommandLineAPIHost.storageId documentation> 
 storageId ::
-          (MonadIO m, FromJSString result) =>
-            CommandLineAPIHost -> JSVal -> m result
+          (MonadIO m, ToJSVal storage, FromJSString result) =>
+            CommandLineAPIHost -> storage -> m result
 storageId self storage
-  = liftIO (fromJSString <$> (js_storageId (self) storage))
+  = liftIO
+      (fromJSString <$>
+         (toJSVal storage >>= \ storage' -> js_storageId self storage'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost.storageId Mozilla CommandLineAPIHost.storageId documentation> 
-storageId_ :: (MonadIO m) => CommandLineAPIHost -> JSVal -> m ()
+storageId_ ::
+           (MonadIO m, ToJSVal storage) =>
+             CommandLineAPIHost -> storage -> m ()
 storageId_ self storage
-  = liftIO (void (js_storageId (self) storage))
+  = liftIO
+      (void
+         (toJSVal storage >>= \ storage' -> js_storageId self storage'))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Comment.hs b/src/GHCJS/DOM/JSFFI/Generated/Comment.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Comment.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Comment.hs
@@ -9,7 +9,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -18,14 +18,17 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "new window[\"Comment\"]($1)"
-        js_newComment :: JSString -> IO Comment
+        js_newComment :: Optional JSString -> IO Comment
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Comment Mozilla Comment documentation> 
-newComment :: (MonadIO m, ToJSString data') => data' -> m Comment
-newComment data' = liftIO (js_newComment (toJSString data'))
+newComment ::
+           (MonadIO m, ToJSString data') => Maybe data' -> m Comment
+newComment data'
+  = liftIO (js_newComment (toOptionalJSString data'))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CompositionEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/CompositionEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CompositionEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CompositionEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CompositionEvent
-       (js_initCompositionEvent, initCompositionEvent, js_getData,
-        getData, CompositionEvent(..), gTypeCompositionEvent)
+       (js_newCompositionEvent, newCompositionEvent,
+        js_initCompositionEvent, initCompositionEvent, js_getData, getData,
+        CompositionEvent(..), gTypeCompositionEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,29 +21,46 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
+        "new window[\"CompositionEvent\"]($1,\n$2)" js_newCompositionEvent
+        :: JSString -> Optional CompositionEventInit -> IO CompositionEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent Mozilla CompositionEvent documentation> 
+newCompositionEvent ::
+                    (MonadIO m, ToJSString type') =>
+                      type' -> Maybe CompositionEventInit -> m CompositionEvent
+newCompositionEvent type' eventInitDict
+  = liftIO
+      (js_newCompositionEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe
         "$1[\"initCompositionEvent\"]($2,\n$3, $4, $5, $6)"
         js_initCompositionEvent ::
         CompositionEvent ->
-          JSString -> Bool -> Bool -> Nullable Window -> JSString -> IO ()
+          Optional JSString ->
+            Bool -> Bool -> Optional Window -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent.initCompositionEvent Mozilla CompositionEvent.initCompositionEvent documentation> 
 initCompositionEvent ::
                      (MonadIO m, ToJSString typeArg, ToJSString dataArg) =>
                        CompositionEvent ->
-                         typeArg -> Bool -> Bool -> Maybe Window -> dataArg -> m ()
+                         Maybe typeArg ->
+                           Bool -> Bool -> Maybe Window -> Maybe dataArg -> m ()
 initCompositionEvent self typeArg canBubbleArg cancelableArg
   viewArg dataArg
   = liftIO
-      (js_initCompositionEvent (self) (toJSString typeArg) canBubbleArg
+      (js_initCompositionEvent self (toOptionalJSString typeArg)
+         canBubbleArg
          cancelableArg
-         (maybeToNullable viewArg)
-         (toJSString dataArg))
+         (maybeToOptional viewArg)
+         (toOptionalJSString dataArg))
  
 foreign import javascript unsafe "$1[\"data\"]" js_getData ::
         CompositionEvent -> IO JSString
@@ -50,4 +68,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent.data Mozilla CompositionEvent.data documentation> 
 getData ::
         (MonadIO m, FromJSString result) => CompositionEvent -> m result
-getData self = liftIO (fromJSString <$> (js_getData (self)))
+getData self = liftIO (fromJSString <$> (js_getData self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ConvolverNode.hs b/src/GHCJS/DOM/JSFFI/Generated/ConvolverNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ConvolverNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ConvolverNode.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,50 +21,51 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"buffer\"] = $2;"
-        js_setBuffer :: ConvolverNode -> Nullable AudioBuffer -> IO ()
+        js_setBuffer :: ConvolverNode -> Optional AudioBuffer -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode.buffer Mozilla ConvolverNode.buffer documentation> 
 setBuffer ::
           (MonadIO m) => ConvolverNode -> Maybe AudioBuffer -> m ()
 setBuffer self val
-  = liftIO (js_setBuffer (self) (maybeToNullable val))
+  = liftIO (js_setBuffer self (maybeToOptional val))
  
 foreign import javascript unsafe "$1[\"buffer\"]" js_getBuffer ::
         ConvolverNode -> IO (Nullable AudioBuffer)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode.buffer Mozilla ConvolverNode.buffer documentation> 
 getBuffer :: (MonadIO m) => ConvolverNode -> m (Maybe AudioBuffer)
-getBuffer self = liftIO (nullableToMaybe <$> (js_getBuffer (self)))
+getBuffer self = liftIO (nullableToMaybe <$> (js_getBuffer self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode.buffer Mozilla ConvolverNode.buffer documentation> 
 getBufferUnsafe ::
                 (MonadIO m, HasCallStack) => ConvolverNode -> m AudioBuffer
 getBufferUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getBuffer (self))) >>=
+      ((nullableToMaybe <$> (js_getBuffer self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode.buffer Mozilla ConvolverNode.buffer documentation> 
 getBufferUnchecked :: (MonadIO m) => ConvolverNode -> m AudioBuffer
 getBufferUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBuffer (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getBuffer self))
  
 foreign import javascript unsafe "$1[\"normalize\"] = $2;"
         js_setNormalize :: ConvolverNode -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode.normalize Mozilla ConvolverNode.normalize documentation> 
 setNormalize :: (MonadIO m) => ConvolverNode -> Bool -> m ()
-setNormalize self val = liftIO (js_setNormalize (self) val)
+setNormalize self val = liftIO (js_setNormalize self val)
  
 foreign import javascript unsafe "($1[\"normalize\"] ? 1 : 0)"
         js_getNormalize :: ConvolverNode -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode.normalize Mozilla ConvolverNode.normalize documentation> 
 getNormalize :: (MonadIO m) => ConvolverNode -> m Bool
-getNormalize self = liftIO (js_getNormalize (self))
+getNormalize self = liftIO (js_getNormalize self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Coordinates.hs b/src/GHCJS/DOM/JSFFI/Generated/Coordinates.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Coordinates.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Coordinates.hs
@@ -17,7 +17,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,6 +26,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -36,104 +37,103 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.latitude Mozilla Coordinates.latitude documentation> 
 getLatitude :: (MonadIO m) => Coordinates -> m Double
-getLatitude self = liftIO (js_getLatitude (self))
+getLatitude self = liftIO (js_getLatitude self)
  
 foreign import javascript unsafe "$1[\"longitude\"]"
         js_getLongitude :: Coordinates -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.longitude Mozilla Coordinates.longitude documentation> 
 getLongitude :: (MonadIO m) => Coordinates -> m Double
-getLongitude self = liftIO (js_getLongitude (self))
+getLongitude self = liftIO (js_getLongitude self)
  
 foreign import javascript unsafe "$1[\"altitude\"]" js_getAltitude
-        :: Coordinates -> IO JSVal
+        :: Coordinates -> IO (Nullable Double)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.altitude Mozilla Coordinates.altitude documentation> 
 getAltitude :: (MonadIO m) => Coordinates -> m (Maybe Double)
 getAltitude self
-  = liftIO ((js_getAltitude (self)) >>= fromJSValUnchecked)
+  = liftIO (nullableToMaybe <$> (js_getAltitude self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.altitude Mozilla Coordinates.altitude documentation> 
 getAltitudeUnsafe ::
                   (MonadIO m, HasCallStack) => Coordinates -> m Double
 getAltitudeUnsafe self
   = liftIO
-      (((js_getAltitude (self)) >>= fromJSValUnchecked) >>=
+      ((nullableToMaybe <$> (js_getAltitude self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.altitude Mozilla Coordinates.altitude documentation> 
 getAltitudeUnchecked :: (MonadIO m) => Coordinates -> m Double
 getAltitudeUnchecked self
-  = liftIO ((js_getAltitude (self)) >>= fromJSValUnchecked)
+  = liftIO (fromJust . nullableToMaybe <$> (js_getAltitude self))
  
 foreign import javascript unsafe "$1[\"accuracy\"]" js_getAccuracy
         :: Coordinates -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.accuracy Mozilla Coordinates.accuracy documentation> 
 getAccuracy :: (MonadIO m) => Coordinates -> m Double
-getAccuracy self = liftIO (js_getAccuracy (self))
+getAccuracy self = liftIO (js_getAccuracy self)
  
 foreign import javascript unsafe "$1[\"altitudeAccuracy\"]"
-        js_getAltitudeAccuracy :: Coordinates -> IO JSVal
+        js_getAltitudeAccuracy :: Coordinates -> IO (Nullable Double)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.altitudeAccuracy Mozilla Coordinates.altitudeAccuracy documentation> 
 getAltitudeAccuracy ::
                     (MonadIO m) => Coordinates -> m (Maybe Double)
 getAltitudeAccuracy self
-  = liftIO ((js_getAltitudeAccuracy (self)) >>= fromJSValUnchecked)
+  = liftIO (nullableToMaybe <$> (js_getAltitudeAccuracy self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.altitudeAccuracy Mozilla Coordinates.altitudeAccuracy documentation> 
 getAltitudeAccuracyUnsafe ::
                           (MonadIO m, HasCallStack) => Coordinates -> m Double
 getAltitudeAccuracyUnsafe self
   = liftIO
-      (((js_getAltitudeAccuracy (self)) >>= fromJSValUnchecked) >>=
+      ((nullableToMaybe <$> (js_getAltitudeAccuracy self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.altitudeAccuracy Mozilla Coordinates.altitudeAccuracy documentation> 
 getAltitudeAccuracyUnchecked ::
                              (MonadIO m) => Coordinates -> m Double
 getAltitudeAccuracyUnchecked self
-  = liftIO ((js_getAltitudeAccuracy (self)) >>= fromJSValUnchecked)
+  = liftIO
+      (fromJust . nullableToMaybe <$> (js_getAltitudeAccuracy self))
  
 foreign import javascript unsafe "$1[\"heading\"]" js_getHeading ::
-        Coordinates -> IO JSVal
+        Coordinates -> IO (Nullable Double)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.heading Mozilla Coordinates.heading documentation> 
 getHeading :: (MonadIO m) => Coordinates -> m (Maybe Double)
-getHeading self
-  = liftIO ((js_getHeading (self)) >>= fromJSValUnchecked)
+getHeading self = liftIO (nullableToMaybe <$> (js_getHeading self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.heading Mozilla Coordinates.heading documentation> 
 getHeadingUnsafe ::
                  (MonadIO m, HasCallStack) => Coordinates -> m Double
 getHeadingUnsafe self
   = liftIO
-      (((js_getHeading (self)) >>= fromJSValUnchecked) >>=
+      ((nullableToMaybe <$> (js_getHeading self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.heading Mozilla Coordinates.heading documentation> 
 getHeadingUnchecked :: (MonadIO m) => Coordinates -> m Double
 getHeadingUnchecked self
-  = liftIO ((js_getHeading (self)) >>= fromJSValUnchecked)
+  = liftIO (fromJust . nullableToMaybe <$> (js_getHeading self))
  
 foreign import javascript unsafe "$1[\"speed\"]" js_getSpeed ::
-        Coordinates -> IO JSVal
+        Coordinates -> IO (Nullable Double)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.speed Mozilla Coordinates.speed documentation> 
 getSpeed :: (MonadIO m) => Coordinates -> m (Maybe Double)
-getSpeed self
-  = liftIO ((js_getSpeed (self)) >>= fromJSValUnchecked)
+getSpeed self = liftIO (nullableToMaybe <$> (js_getSpeed self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.speed Mozilla Coordinates.speed documentation> 
 getSpeedUnsafe ::
                (MonadIO m, HasCallStack) => Coordinates -> m Double
 getSpeedUnsafe self
   = liftIO
-      (((js_getSpeed (self)) >>= fromJSValUnchecked) >>=
+      ((nullableToMaybe <$> (js_getSpeed self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates.speed Mozilla Coordinates.speed documentation> 
 getSpeedUnchecked :: (MonadIO m) => Coordinates -> m Double
 getSpeedUnchecked self
-  = liftIO ((js_getSpeed (self)) >>= fromJSValUnchecked)
+  = liftIO (fromJust . nullableToMaybe <$> (js_getSpeed self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CountQueuingStrategy.hs b/src/GHCJS/DOM/JSFFI/Generated/CountQueuingStrategy.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/CountQueuingStrategy.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.CountQueuingStrategy
+       (js_newCountQueuingStrategy, newCountQueuingStrategy, js_size,
+        size, size_, CountQueuingStrategy(..), gTypeCountQueuingStrategy)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"CountQueuingStrategy\"]()" js_newCountQueuingStrategy
+        :: IO CountQueuingStrategy
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CountQueuingStrategy Mozilla CountQueuingStrategy documentation> 
+newCountQueuingStrategy :: (MonadIO m) => m CountQueuingStrategy
+newCountQueuingStrategy = liftIO (js_newCountQueuingStrategy)
+ 
+foreign import javascript unsafe "$1[\"size\"]()" js_size ::
+        CountQueuingStrategy -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CountQueuingStrategy.size Mozilla CountQueuingStrategy.size documentation> 
+size :: (MonadIO m) => CountQueuingStrategy -> m Double
+size self = liftIO (js_size self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CountQueuingStrategy.size Mozilla CountQueuingStrategy.size documentation> 
+size_ :: (MonadIO m) => CountQueuingStrategy -> m ()
+size_ self = liftIO (void (js_size self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Counter.hs b/src/GHCJS/DOM/JSFFI/Generated/Counter.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Counter.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Counter.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,7 +33,7 @@
 getIdentifier ::
               (MonadIO m, FromJSString result) => Counter -> m result
 getIdentifier self
-  = liftIO (fromJSString <$> (js_getIdentifier (self)))
+  = liftIO (fromJSString <$> (js_getIdentifier self))
  
 foreign import javascript unsafe "$1[\"listStyle\"]"
         js_getListStyle :: Counter -> IO JSString
@@ -41,7 +42,7 @@
 getListStyle ::
              (MonadIO m, FromJSString result) => Counter -> m result
 getListStyle self
-  = liftIO (fromJSString <$> (js_getListStyle (self)))
+  = liftIO (fromJSString <$> (js_getListStyle self))
  
 foreign import javascript unsafe "$1[\"separator\"]"
         js_getSeparator :: Counter -> IO JSString
@@ -50,4 +51,4 @@
 getSeparator ::
              (MonadIO m, FromJSString result) => Counter -> m result
 getSeparator self
-  = liftIO (fromJSString <$> (js_getSeparator (self)))
+  = liftIO (fromJSString <$> (js_getSeparator self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Crypto.hs b/src/GHCJS/DOM/JSFFI/Generated/Crypto.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Crypto.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Crypto.hs
@@ -5,15 +5,14 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Crypto
        (js_getRandomValues, getRandomValues, getRandomValues_,
-        getRandomValuesUnsafe, getRandomValuesUnchecked,
-        js_getWebkitSubtle, getWebkitSubtle, getWebkitSubtleUnsafe,
-        getWebkitSubtleUnchecked, Crypto(..), gTypeCrypto)
+        js_getSubtle, getSubtle, js_getWebkitSubtle, getWebkitSubtle,
+        Crypto(..), gTypeCrypto)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -29,67 +29,31 @@
  
 foreign import javascript unsafe "$1[\"getRandomValues\"]($2)"
         js_getRandomValues ::
-        Crypto -> Nullable ArrayBufferView -> IO (Nullable ArrayBufferView)
+        Crypto -> ArrayBufferView -> IO ArrayBufferView
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Crypto.getRandomValues Mozilla Crypto.getRandomValues documentation> 
 getRandomValues ::
                 (MonadIO m, IsArrayBufferView array) =>
-                  Crypto -> Maybe array -> m (Maybe ArrayBufferView)
+                  Crypto -> array -> m ArrayBufferView
 getRandomValues self array
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getRandomValues (self)
-            (maybeToNullable (fmap toArrayBufferView array))))
+  = liftIO (js_getRandomValues self (toArrayBufferView array))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Crypto.getRandomValues Mozilla Crypto.getRandomValues documentation> 
 getRandomValues_ ::
-                 (MonadIO m, IsArrayBufferView array) =>
-                   Crypto -> Maybe array -> m ()
+                 (MonadIO m, IsArrayBufferView array) => Crypto -> array -> m ()
 getRandomValues_ self array
-  = liftIO
-      (void
-         (js_getRandomValues (self)
-            (maybeToNullable (fmap toArrayBufferView array))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Crypto.getRandomValues Mozilla Crypto.getRandomValues documentation> 
-getRandomValuesUnsafe ::
-                      (MonadIO m, IsArrayBufferView array, HasCallStack) =>
-                        Crypto -> Maybe array -> m ArrayBufferView
-getRandomValuesUnsafe self array
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getRandomValues (self)
-             (maybeToNullable (fmap toArrayBufferView array))))
-         >>= maybe (Prelude.error "Nothing to return") return)
+  = liftIO (void (js_getRandomValues self (toArrayBufferView array)))
+ 
+foreign import javascript unsafe "$1[\"subtle\"]" js_getSubtle ::
+        Crypto -> IO SubtleCrypto
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Crypto.getRandomValues Mozilla Crypto.getRandomValues documentation> 
-getRandomValuesUnchecked ::
-                         (MonadIO m, IsArrayBufferView array) =>
-                           Crypto -> Maybe array -> m ArrayBufferView
-getRandomValuesUnchecked self array
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getRandomValues (self)
-            (maybeToNullable (fmap toArrayBufferView array))))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Crypto.subtle Mozilla Crypto.subtle documentation> 
+getSubtle :: (MonadIO m) => Crypto -> m SubtleCrypto
+getSubtle self = liftIO (js_getSubtle self)
  
 foreign import javascript unsafe "$1[\"webkitSubtle\"]"
-        js_getWebkitSubtle :: Crypto -> IO (Nullable SubtleCrypto)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Crypto.webkitSubtle Mozilla Crypto.webkitSubtle documentation> 
-getWebkitSubtle :: (MonadIO m) => Crypto -> m (Maybe SubtleCrypto)
-getWebkitSubtle self
-  = liftIO (nullableToMaybe <$> (js_getWebkitSubtle (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Crypto.webkitSubtle Mozilla Crypto.webkitSubtle documentation> 
-getWebkitSubtleUnsafe ::
-                      (MonadIO m, HasCallStack) => Crypto -> m SubtleCrypto
-getWebkitSubtleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWebkitSubtle (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getWebkitSubtle :: Crypto -> IO WebKitSubtleCrypto
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Crypto.webkitSubtle Mozilla Crypto.webkitSubtle documentation> 
-getWebkitSubtleUnchecked :: (MonadIO m) => Crypto -> m SubtleCrypto
-getWebkitSubtleUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getWebkitSubtle (self)))
+getWebkitSubtle :: (MonadIO m) => Crypto -> m WebKitSubtleCrypto
+getWebkitSubtle self = liftIO (js_getWebkitSubtle self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CryptoKey.hs b/src/GHCJS/DOM/JSFFI/Generated/CryptoKey.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CryptoKey.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CryptoKey.hs
@@ -5,15 +5,14 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CryptoKey
        (js_getType, getType, js_getExtractable, getExtractable,
-        js_getAlgorithm, getAlgorithm, getAlgorithmUnsafe,
-        getAlgorithmUnchecked, js_getUsages, getUsages, CryptoKey(..),
-        gTypeCryptoKey)
+        js_getAlgorithm, getAlgorithm, js_getUsages, getUsages,
+        CryptoKey(..), gTypeCryptoKey)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,40 +32,26 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey.type Mozilla CryptoKey.type documentation> 
 getType :: (MonadIO m) => CryptoKey -> m KeyType
-getType self = liftIO ((js_getType (self)) >>= fromJSValUnchecked)
+getType self = liftIO ((js_getType self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "($1[\"extractable\"] ? 1 : 0)"
         js_getExtractable :: CryptoKey -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey.extractable Mozilla CryptoKey.extractable documentation> 
 getExtractable :: (MonadIO m) => CryptoKey -> m Bool
-getExtractable self = liftIO (js_getExtractable (self))
+getExtractable self = liftIO (js_getExtractable self)
  
 foreign import javascript unsafe "$1[\"algorithm\"]"
-        js_getAlgorithm :: CryptoKey -> IO (Nullable Algorithm)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey.algorithm Mozilla CryptoKey.algorithm documentation> 
-getAlgorithm :: (MonadIO m) => CryptoKey -> m (Maybe Algorithm)
-getAlgorithm self
-  = liftIO (nullableToMaybe <$> (js_getAlgorithm (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey.algorithm Mozilla CryptoKey.algorithm documentation> 
-getAlgorithmUnsafe ::
-                   (MonadIO m, HasCallStack) => CryptoKey -> m Algorithm
-getAlgorithmUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAlgorithm (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getAlgorithm :: CryptoKey -> IO GObject
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey.algorithm Mozilla CryptoKey.algorithm documentation> 
-getAlgorithmUnchecked :: (MonadIO m) => CryptoKey -> m Algorithm
-getAlgorithmUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAlgorithm (self)))
+getAlgorithm :: (MonadIO m) => CryptoKey -> m GObject
+getAlgorithm self = liftIO (js_getAlgorithm self)
  
 foreign import javascript unsafe "$1[\"usages\"]" js_getUsages ::
         CryptoKey -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey.usages Mozilla CryptoKey.usages documentation> 
-getUsages :: (MonadIO m) => CryptoKey -> m [KeyUsage]
+getUsages :: (MonadIO m) => CryptoKey -> m [CryptoKeyUsage]
 getUsages self
-  = liftIO ((js_getUsages (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_getUsages self) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CryptoKeyPair.hs b/src/GHCJS/DOM/JSFFI/Generated/CryptoKeyPair.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/CryptoKeyPair.hs
+++ /dev/null
@@ -1,73 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.CryptoKeyPair
-       (js_getPublicKey, getPublicKey, getPublicKeyUnsafe,
-        getPublicKeyUnchecked, js_getPrivateKey, getPrivateKey,
-        getPrivateKeyUnsafe, getPrivateKeyUnchecked, CryptoKeyPair(..),
-        gTypeCryptoKeyPair)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"publicKey\"]"
-        js_getPublicKey :: CryptoKeyPair -> IO (Nullable CryptoKey)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKeyPair.publicKey Mozilla CryptoKeyPair.publicKey documentation> 
-getPublicKey :: (MonadIO m) => CryptoKeyPair -> m (Maybe CryptoKey)
-getPublicKey self
-  = liftIO (nullableToMaybe <$> (js_getPublicKey (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKeyPair.publicKey Mozilla CryptoKeyPair.publicKey documentation> 
-getPublicKeyUnsafe ::
-                   (MonadIO m, HasCallStack) => CryptoKeyPair -> m CryptoKey
-getPublicKeyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPublicKey (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKeyPair.publicKey Mozilla CryptoKeyPair.publicKey documentation> 
-getPublicKeyUnchecked ::
-                      (MonadIO m) => CryptoKeyPair -> m CryptoKey
-getPublicKeyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPublicKey (self)))
- 
-foreign import javascript unsafe "$1[\"privateKey\"]"
-        js_getPrivateKey :: CryptoKeyPair -> IO (Nullable CryptoKey)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKeyPair.privateKey Mozilla CryptoKeyPair.privateKey documentation> 
-getPrivateKey ::
-              (MonadIO m) => CryptoKeyPair -> m (Maybe CryptoKey)
-getPrivateKey self
-  = liftIO (nullableToMaybe <$> (js_getPrivateKey (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKeyPair.privateKey Mozilla CryptoKeyPair.privateKey documentation> 
-getPrivateKeyUnsafe ::
-                    (MonadIO m, HasCallStack) => CryptoKeyPair -> m CryptoKey
-getPrivateKeyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPrivateKey (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKeyPair.privateKey Mozilla CryptoKeyPair.privateKey documentation> 
-getPrivateKeyUnchecked ::
-                       (MonadIO m) => CryptoKeyPair -> m CryptoKey
-getPrivateKeyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPrivateKey (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CustomElementRegistry.hs b/src/GHCJS/DOM/JSFFI/Generated/CustomElementRegistry.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/CustomElementRegistry.hs
@@ -0,0 +1,64 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.CustomElementRegistry
+       (js_define, define, js_get, get, get_, js_whenDefined, whenDefined,
+        CustomElementRegistry(..), gTypeCustomElementRegistry)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"define\"]($2, $3)" js_define
+        :: CustomElementRegistry -> JSString -> Function -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry.define Mozilla CustomElementRegistry.define documentation> 
+define ::
+       (MonadIO m, ToJSString name, IsFunction constructor) =>
+         CustomElementRegistry -> name -> constructor -> m ()
+define self name constructor
+  = liftIO
+      (js_define self (toJSString name) (toFunction constructor))
+ 
+foreign import javascript unsafe "$1[\"get\"]($2)" js_get ::
+        CustomElementRegistry -> JSString -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry.get Mozilla CustomElementRegistry.get documentation> 
+get ::
+    (MonadIO m, ToJSString name) =>
+      CustomElementRegistry -> name -> m JSVal
+get self name = liftIO (js_get self (toJSString name))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry.get Mozilla CustomElementRegistry.get documentation> 
+get_ ::
+     (MonadIO m, ToJSString name) =>
+       CustomElementRegistry -> name -> m ()
+get_ self name = liftIO (void (js_get self (toJSString name)))
+ 
+foreign import javascript interruptible
+        "$1[\"whenDefined\"]($2).then($c);" js_whenDefined ::
+        CustomElementRegistry -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry.whenDefined Mozilla CustomElementRegistry.whenDefined documentation> 
+whenDefined ::
+            (MonadIO m, ToJSString name) =>
+              CustomElementRegistry -> name -> m ()
+whenDefined self name
+  = liftIO (js_whenDefined self (toJSString name))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/CustomEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/CustomEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/CustomEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/CustomEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.CustomEvent
-       (js_initCustomEvent, initCustomEvent, js_getDetail, getDetail,
-        CustomEvent(..), gTypeCustomEvent)
+       (js_newCustomEvent, newCustomEvent, js_initCustomEvent,
+        initCustomEvent, js_getDetail, getDetail, CustomEvent(..),
+        gTypeCustomEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,28 +21,43 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
+        "new window[\"CustomEvent\"]($1,\n$2)" js_newCustomEvent ::
+        JSString -> Optional CustomEventInit -> IO CustomEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent Mozilla CustomEvent documentation> 
+newCustomEvent ::
+               (MonadIO m, ToJSString type') =>
+                 type' -> Maybe CustomEventInit -> m CustomEvent
+newCustomEvent type' eventInitDict
+  = liftIO
+      (js_newCustomEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe
         "$1[\"initCustomEvent\"]($2, $3,\n$4, $5)" js_initCustomEvent ::
-        CustomEvent -> JSString -> Bool -> Bool -> JSVal -> IO ()
+        CustomEvent -> JSString -> Bool -> Bool -> Optional JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.initCustomEvent Mozilla CustomEvent.initCustomEvent documentation> 
 initCustomEvent ::
-                (MonadIO m, ToJSString typeArg) =>
-                  CustomEvent -> typeArg -> Bool -> Bool -> JSVal -> m ()
-initCustomEvent self typeArg canBubbleArg cancelableArg detailArg
+                (MonadIO m, ToJSString type', ToJSVal detail) =>
+                  CustomEvent -> type' -> Bool -> Bool -> Maybe detail -> m ()
+initCustomEvent self type' bubbles cancelable detail
   = liftIO
-      (js_initCustomEvent (self) (toJSString typeArg) canBubbleArg
-         cancelableArg
-         detailArg)
+      (mapM toJSVal detail >>=
+         \ detail' ->
+           js_initCustomEvent self (toJSString type') bubbles cancelable
+             (maybeToOptional detail'))
  
 foreign import javascript unsafe "$1[\"detail\"]" js_getDetail ::
         CustomEvent -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.detail Mozilla CustomEvent.detail documentation> 
 getDetail :: (MonadIO m) => CustomEvent -> m JSVal
-getDetail self = liftIO (js_getDetail (self))
+getDetail self = liftIO (js_getDetail self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMError.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMError.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DOMError.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMError.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DOMError
-       (js_getName, getName, DOMError(..), gTypeDOMError, IsDOMError,
-        toDOMError)
+       (js_getName, getName, js_getMessage, getMessage, DOMError(..),
+        gTypeDOMError, IsDOMError, toDOMError)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,3 +35,13 @@
           self -> m result
 getName self
   = liftIO (fromJSString <$> (js_getName (toDOMError self)))
+ 
+foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
+        DOMError -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMError.message Mozilla DOMError.message documentation> 
+getMessage ::
+           (MonadIO m, IsDOMError self, FromJSString result) =>
+             self -> m result
+getMessage self
+  = liftIO (fromJSString <$> (js_getMessage (toDOMError self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMException.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMException.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMException.hs
@@ -0,0 +1,113 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.DOMException
+       (js_newDOMException, newDOMException, js_toString, toString,
+        toString_, pattern INDEX_SIZE_ERR, pattern DOMSTRING_SIZE_ERR,
+        pattern HIERARCHY_REQUEST_ERR, pattern WRONG_DOCUMENT_ERR,
+        pattern INVALID_CHARACTER_ERR, pattern NO_DATA_ALLOWED_ERR,
+        pattern NO_MODIFICATION_ALLOWED_ERR, pattern NOT_FOUND_ERR,
+        pattern NOT_SUPPORTED_ERR, pattern INUSE_ATTRIBUTE_ERR,
+        pattern INVALID_STATE_ERR, pattern SYNTAX_ERR,
+        pattern INVALID_MODIFICATION_ERR, pattern NAMESPACE_ERR,
+        pattern INVALID_ACCESS_ERR, pattern VALIDATION_ERR,
+        pattern TYPE_MISMATCH_ERR, pattern SECURITY_ERR,
+        pattern NETWORK_ERR, pattern ABORT_ERR, pattern URL_MISMATCH_ERR,
+        pattern QUOTA_EXCEEDED_ERR, pattern TIMEOUT_ERR,
+        pattern INVALID_NODE_TYPE_ERR, pattern DATA_CLONE_ERR, js_getCode,
+        getCode, js_getName, getName, js_getMessage, getMessage,
+        DOMException(..), gTypeDOMException)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"DOMException\"]($1,\n$2)" js_newDOMException ::
+        Optional JSString -> Optional JSString -> IO DOMException
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMException Mozilla DOMException documentation> 
+newDOMException ::
+                (MonadIO m, ToJSString message, ToJSString name) =>
+                  Maybe message -> Maybe name -> m DOMException
+newDOMException message name
+  = liftIO
+      (js_newDOMException (toOptionalJSString message)
+         (toOptionalJSString name))
+ 
+foreign import javascript unsafe "$1[\"toString\"]()" js_toString
+        :: DOMException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMException.toString Mozilla DOMException.toString documentation> 
+toString ::
+         (MonadIO m, FromJSString result) => DOMException -> m result
+toString self = liftIO (fromJSString <$> (js_toString self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMException.toString Mozilla DOMException.toString documentation> 
+toString_ :: (MonadIO m) => DOMException -> m ()
+toString_ self = liftIO (void (js_toString self))
+pattern INDEX_SIZE_ERR = 1
+pattern DOMSTRING_SIZE_ERR = 2
+pattern HIERARCHY_REQUEST_ERR = 3
+pattern WRONG_DOCUMENT_ERR = 4
+pattern INVALID_CHARACTER_ERR = 5
+pattern NO_DATA_ALLOWED_ERR = 6
+pattern NO_MODIFICATION_ALLOWED_ERR = 7
+pattern NOT_FOUND_ERR = 8
+pattern NOT_SUPPORTED_ERR = 9
+pattern INUSE_ATTRIBUTE_ERR = 10
+pattern INVALID_STATE_ERR = 11
+pattern SYNTAX_ERR = 12
+pattern INVALID_MODIFICATION_ERR = 13
+pattern NAMESPACE_ERR = 14
+pattern INVALID_ACCESS_ERR = 15
+pattern VALIDATION_ERR = 16
+pattern TYPE_MISMATCH_ERR = 17
+pattern SECURITY_ERR = 18
+pattern NETWORK_ERR = 19
+pattern ABORT_ERR = 20
+pattern URL_MISMATCH_ERR = 21
+pattern QUOTA_EXCEEDED_ERR = 22
+pattern TIMEOUT_ERR = 23
+pattern INVALID_NODE_TYPE_ERR = 24
+pattern DATA_CLONE_ERR = 25
+ 
+foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
+        DOMException -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMException.code Mozilla DOMException.code documentation> 
+getCode :: (MonadIO m) => DOMException -> m Word
+getCode self = liftIO (js_getCode self)
+ 
+foreign import javascript unsafe "$1[\"name\"]" js_getName ::
+        DOMException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMException.name Mozilla DOMException.name documentation> 
+getName ::
+        (MonadIO m, FromJSString result) => DOMException -> m result
+getName self = liftIO (fromJSString <$> (js_getName self))
+ 
+foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
+        DOMException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMException.message Mozilla DOMException.message documentation> 
+getMessage ::
+           (MonadIO m, FromJSString result) => DOMException -> m result
+getMessage self = liftIO (fromJSString <$> (js_getMessage self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMImplementation.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMImplementation.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DOMImplementation.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMImplementation.hs
@@ -4,21 +4,18 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DOMImplementation
-       (js_hasFeature, hasFeature, hasFeature_, js_createDocumentType,
-        createDocumentType, createDocumentType_, createDocumentTypeUnsafe,
-        createDocumentTypeUnchecked, js_createDocument, createDocument,
-        createDocument_, createDocumentUnsafe, createDocumentUnchecked,
-        js_createCSSStyleSheet, createCSSStyleSheet, createCSSStyleSheet_,
-        createCSSStyleSheetUnsafe, createCSSStyleSheetUnchecked,
+       (js_createDocumentType, createDocumentType, createDocumentType_,
+        js_createDocument, createDocument, createDocument_,
         js_createHTMLDocument, createHTMLDocument, createHTMLDocument_,
-        createHTMLDocumentUnsafe, createHTMLDocumentUnchecked,
-        DOMImplementation(..), gTypeDOMImplementation)
+        js_hasFeature, hasFeature, hasFeature_, js_createCSSStyleSheet,
+        createCSSStyleSheet, createCSSStyleSheet_, DOMImplementation(..),
+        gTypeDOMImplementation)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,116 +24,58 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
-        "($1[\"hasFeature\"]($2,\n$3) ? 1 : 0)" js_hasFeature ::
-        DOMImplementation -> JSString -> Nullable JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.hasFeature Mozilla DOMImplementation.hasFeature documentation> 
-hasFeature ::
-           (MonadIO m, ToJSString feature, ToJSString version) =>
-             DOMImplementation -> feature -> Maybe version -> m Bool
-hasFeature self feature version
-  = liftIO
-      (js_hasFeature (self) (toJSString feature)
-         (toMaybeJSString version))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.hasFeature Mozilla DOMImplementation.hasFeature documentation> 
-hasFeature_ ::
-            (MonadIO m, ToJSString feature, ToJSString version) =>
-              DOMImplementation -> feature -> Maybe version -> m ()
-hasFeature_ self feature version
-  = liftIO
-      (void
-         (js_hasFeature (self) (toJSString feature)
-            (toMaybeJSString version)))
- 
-foreign import javascript unsafe
         "$1[\"createDocumentType\"]($2, $3,\n$4)" js_createDocumentType ::
         DOMImplementation ->
-          Nullable JSString ->
-            Nullable JSString ->
-              Nullable JSString -> IO (Nullable DocumentType)
+          JSString -> JSString -> JSString -> IO DocumentType
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createDocumentType Mozilla DOMImplementation.createDocumentType documentation> 
 createDocumentType ::
                    (MonadIO m, ToJSString qualifiedName, ToJSString publicId,
                     ToJSString systemId) =>
                      DOMImplementation ->
-                       Maybe qualifiedName ->
-                         Maybe publicId -> Maybe systemId -> m (Maybe DocumentType)
+                       qualifiedName -> publicId -> systemId -> m DocumentType
 createDocumentType self qualifiedName publicId systemId
   = liftIO
-      (nullableToMaybe <$>
-         (js_createDocumentType (self) (toMaybeJSString qualifiedName)
-            (toMaybeJSString publicId)
-            (toMaybeJSString systemId)))
+      (js_createDocumentType self (toJSString qualifiedName)
+         (toJSString publicId)
+         (toJSString systemId))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createDocumentType Mozilla DOMImplementation.createDocumentType documentation> 
 createDocumentType_ ::
                     (MonadIO m, ToJSString qualifiedName, ToJSString publicId,
                      ToJSString systemId) =>
-                      DOMImplementation ->
-                        Maybe qualifiedName -> Maybe publicId -> Maybe systemId -> m ()
+                      DOMImplementation -> qualifiedName -> publicId -> systemId -> m ()
 createDocumentType_ self qualifiedName publicId systemId
   = liftIO
       (void
-         (js_createDocumentType (self) (toMaybeJSString qualifiedName)
-            (toMaybeJSString publicId)
-            (toMaybeJSString systemId)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createDocumentType Mozilla DOMImplementation.createDocumentType documentation> 
-createDocumentTypeUnsafe ::
-                         (MonadIO m, ToJSString qualifiedName, ToJSString publicId,
-                          ToJSString systemId, HasCallStack) =>
-                           DOMImplementation ->
-                             Maybe qualifiedName ->
-                               Maybe publicId -> Maybe systemId -> m DocumentType
-createDocumentTypeUnsafe self qualifiedName publicId systemId
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createDocumentType (self) (toMaybeJSString qualifiedName)
-             (toMaybeJSString publicId)
-             (toMaybeJSString systemId)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createDocumentType Mozilla DOMImplementation.createDocumentType documentation> 
-createDocumentTypeUnchecked ::
-                            (MonadIO m, ToJSString qualifiedName, ToJSString publicId,
-                             ToJSString systemId) =>
-                              DOMImplementation ->
-                                Maybe qualifiedName ->
-                                  Maybe publicId -> Maybe systemId -> m DocumentType
-createDocumentTypeUnchecked self qualifiedName publicId systemId
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createDocumentType (self) (toMaybeJSString qualifiedName)
-            (toMaybeJSString publicId)
-            (toMaybeJSString systemId)))
+         (js_createDocumentType self (toJSString qualifiedName)
+            (toJSString publicId)
+            (toJSString systemId)))
  
 foreign import javascript unsafe
         "$1[\"createDocument\"]($2, $3, $4)" js_createDocument ::
         DOMImplementation ->
-          Nullable JSString ->
-            Nullable JSString ->
-              Nullable DocumentType -> IO (Nullable Document)
+          Optional JSString ->
+            Optional JSString -> Optional DocumentType -> IO XMLDocument
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createDocument Mozilla DOMImplementation.createDocument documentation> 
 createDocument ::
                (MonadIO m, ToJSString namespaceURI, ToJSString qualifiedName) =>
                  DOMImplementation ->
                    Maybe namespaceURI ->
-                     Maybe qualifiedName -> Maybe DocumentType -> m (Maybe Document)
+                     Maybe qualifiedName -> Maybe DocumentType -> m XMLDocument
 createDocument self namespaceURI qualifiedName doctype
   = liftIO
-      (nullableToMaybe <$>
-         (js_createDocument (self) (toMaybeJSString namespaceURI)
-            (toMaybeJSString qualifiedName)
-            (maybeToNullable doctype)))
+      (js_createDocument self (toOptionalJSString namespaceURI)
+         (toOptionalJSString qualifiedName)
+         (maybeToOptional doctype))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createDocument Mozilla DOMImplementation.createDocument documentation> 
 createDocument_ ::
@@ -147,118 +86,60 @@
 createDocument_ self namespaceURI qualifiedName doctype
   = liftIO
       (void
-         (js_createDocument (self) (toMaybeJSString namespaceURI)
-            (toMaybeJSString qualifiedName)
-            (maybeToNullable doctype)))
+         (js_createDocument self (toOptionalJSString namespaceURI)
+            (toOptionalJSString qualifiedName)
+            (maybeToOptional doctype)))
+ 
+foreign import javascript unsafe "$1[\"createHTMLDocument\"]($2)"
+        js_createHTMLDocument ::
+        DOMImplementation -> Optional JSString -> IO HTMLDocument
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createDocument Mozilla DOMImplementation.createDocument documentation> 
-createDocumentUnsafe ::
-                     (MonadIO m, ToJSString namespaceURI, ToJSString qualifiedName,
-                      HasCallStack) =>
-                       DOMImplementation ->
-                         Maybe namespaceURI ->
-                           Maybe qualifiedName -> Maybe DocumentType -> m Document
-createDocumentUnsafe self namespaceURI qualifiedName doctype
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createDocument (self) (toMaybeJSString namespaceURI)
-             (toMaybeJSString qualifiedName)
-             (maybeToNullable doctype)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createHTMLDocument Mozilla DOMImplementation.createHTMLDocument documentation> 
+createHTMLDocument ::
+                   (MonadIO m, ToJSString title) =>
+                     DOMImplementation -> Maybe title -> m HTMLDocument
+createHTMLDocument self title
+  = liftIO (js_createHTMLDocument self (toOptionalJSString title))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createDocument Mozilla DOMImplementation.createDocument documentation> 
-createDocumentUnchecked ::
-                        (MonadIO m, ToJSString namespaceURI, ToJSString qualifiedName) =>
-                          DOMImplementation ->
-                            Maybe namespaceURI ->
-                              Maybe qualifiedName -> Maybe DocumentType -> m Document
-createDocumentUnchecked self namespaceURI qualifiedName doctype
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createHTMLDocument Mozilla DOMImplementation.createHTMLDocument documentation> 
+createHTMLDocument_ ::
+                    (MonadIO m, ToJSString title) =>
+                      DOMImplementation -> Maybe title -> m ()
+createHTMLDocument_ self title
   = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createDocument (self) (toMaybeJSString namespaceURI)
-            (toMaybeJSString qualifiedName)
-            (maybeToNullable doctype)))
+      (void (js_createHTMLDocument self (toOptionalJSString title)))
  
+foreign import javascript unsafe "($1[\"hasFeature\"]() ? 1 : 0)"
+        js_hasFeature :: DOMImplementation -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.hasFeature Mozilla DOMImplementation.hasFeature documentation> 
+hasFeature :: (MonadIO m) => DOMImplementation -> m Bool
+hasFeature self = liftIO (js_hasFeature self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.hasFeature Mozilla DOMImplementation.hasFeature documentation> 
+hasFeature_ :: (MonadIO m) => DOMImplementation -> m ()
+hasFeature_ self = liftIO (void (js_hasFeature self))
+ 
 foreign import javascript unsafe
         "$1[\"createCSSStyleSheet\"]($2,\n$3)" js_createCSSStyleSheet ::
         DOMImplementation ->
-          JSString -> JSString -> IO (Nullable CSSStyleSheet)
+          Optional JSString -> Optional JSString -> IO CSSStyleSheet
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createCSSStyleSheet Mozilla DOMImplementation.createCSSStyleSheet documentation> 
 createCSSStyleSheet ::
                     (MonadIO m, ToJSString title, ToJSString media) =>
-                      DOMImplementation -> title -> media -> m (Maybe CSSStyleSheet)
+                      DOMImplementation -> Maybe title -> Maybe media -> m CSSStyleSheet
 createCSSStyleSheet self title media
   = liftIO
-      (nullableToMaybe <$>
-         (js_createCSSStyleSheet (self) (toJSString title)
-            (toJSString media)))
+      (js_createCSSStyleSheet self (toOptionalJSString title)
+         (toOptionalJSString media))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createCSSStyleSheet Mozilla DOMImplementation.createCSSStyleSheet documentation> 
 createCSSStyleSheet_ ::
                      (MonadIO m, ToJSString title, ToJSString media) =>
-                       DOMImplementation -> title -> media -> m ()
+                       DOMImplementation -> Maybe title -> Maybe media -> m ()
 createCSSStyleSheet_ self title media
   = liftIO
       (void
-         (js_createCSSStyleSheet (self) (toJSString title)
-            (toJSString media)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createCSSStyleSheet Mozilla DOMImplementation.createCSSStyleSheet documentation> 
-createCSSStyleSheetUnsafe ::
-                          (MonadIO m, ToJSString title, ToJSString media, HasCallStack) =>
-                            DOMImplementation -> title -> media -> m CSSStyleSheet
-createCSSStyleSheetUnsafe self title media
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createCSSStyleSheet (self) (toJSString title)
-             (toJSString media)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createCSSStyleSheet Mozilla DOMImplementation.createCSSStyleSheet documentation> 
-createCSSStyleSheetUnchecked ::
-                             (MonadIO m, ToJSString title, ToJSString media) =>
-                               DOMImplementation -> title -> media -> m CSSStyleSheet
-createCSSStyleSheetUnchecked self title media
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createCSSStyleSheet (self) (toJSString title)
-            (toJSString media)))
- 
-foreign import javascript unsafe "$1[\"createHTMLDocument\"]($2)"
-        js_createHTMLDocument ::
-        DOMImplementation -> JSString -> IO (Nullable HTMLDocument)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createHTMLDocument Mozilla DOMImplementation.createHTMLDocument documentation> 
-createHTMLDocument ::
-                   (MonadIO m, ToJSString title) =>
-                     DOMImplementation -> title -> m (Maybe HTMLDocument)
-createHTMLDocument self title
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createHTMLDocument (self) (toJSString title)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createHTMLDocument Mozilla DOMImplementation.createHTMLDocument documentation> 
-createHTMLDocument_ ::
-                    (MonadIO m, ToJSString title) => DOMImplementation -> title -> m ()
-createHTMLDocument_ self title
-  = liftIO (void (js_createHTMLDocument (self) (toJSString title)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createHTMLDocument Mozilla DOMImplementation.createHTMLDocument documentation> 
-createHTMLDocumentUnsafe ::
-                         (MonadIO m, ToJSString title, HasCallStack) =>
-                           DOMImplementation -> title -> m HTMLDocument
-createHTMLDocumentUnsafe self title
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createHTMLDocument (self) (toJSString title)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createHTMLDocument Mozilla DOMImplementation.createHTMLDocument documentation> 
-createHTMLDocumentUnchecked ::
-                            (MonadIO m, ToJSString title) =>
-                              DOMImplementation -> title -> m HTMLDocument
-createHTMLDocumentUnchecked self title
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createHTMLDocument (self) (toJSString title)))
+         (js_createCSSStyleSheet self (toOptionalJSString title)
+            (toOptionalJSString media)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMNamedFlowCollection.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMNamedFlowCollection.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DOMNamedFlowCollection.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMNamedFlowCollection.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,24 +22,24 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
+foreign import javascript unsafe "$1[$2]" js_item ::
         DOMNamedFlowCollection -> Word -> IO (Nullable WebKitNamedFlow)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.item Mozilla WebKitNamedFlowCollection.item documentation> 
 item ::
      (MonadIO m) =>
        DOMNamedFlowCollection -> Word -> m (Maybe WebKitNamedFlow)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item self index = liftIO (nullableToMaybe <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.item Mozilla WebKitNamedFlowCollection.item documentation> 
 item_ :: (MonadIO m) => DOMNamedFlowCollection -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.item Mozilla WebKitNamedFlowCollection.item documentation> 
 itemUnsafe ::
@@ -47,17 +47,16 @@
              DOMNamedFlowCollection -> Word -> m WebKitNamedFlow
 itemUnsafe self index
   = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
+      ((nullableToMaybe <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.item Mozilla WebKitNamedFlowCollection.item documentation> 
 itemUnchecked ::
               (MonadIO m) => DOMNamedFlowCollection -> Word -> m WebKitNamedFlow
 itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+  = liftIO (fromJust . nullableToMaybe <$> (js_item self index))
  
-foreign import javascript unsafe "$1[\"namedItem\"]($2)"
-        js_namedItem ::
+foreign import javascript unsafe "$1[$2]" js_namedItem ::
         DOMNamedFlowCollection -> JSString -> IO (Nullable WebKitNamedFlow)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.namedItem Mozilla WebKitNamedFlowCollection.namedItem documentation> 
@@ -66,14 +65,14 @@
             DOMNamedFlowCollection -> name -> m (Maybe WebKitNamedFlow)
 namedItem self name
   = liftIO
-      (nullableToMaybe <$> (js_namedItem (self) (toJSString name)))
+      (nullableToMaybe <$> (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.namedItem Mozilla WebKitNamedFlowCollection.namedItem documentation> 
 namedItem_ ::
            (MonadIO m, ToJSString name) =>
              DOMNamedFlowCollection -> name -> m ()
 namedItem_ self name
-  = liftIO (void (js_namedItem (self) (toJSString name)))
+  = liftIO (void (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.namedItem Mozilla WebKitNamedFlowCollection.namedItem documentation> 
 namedItemUnsafe ::
@@ -81,7 +80,7 @@
                   DOMNamedFlowCollection -> name -> m WebKitNamedFlow
 namedItemUnsafe self name
   = liftIO
-      ((nullableToMaybe <$> (js_namedItem (self) (toJSString name))) >>=
+      ((nullableToMaybe <$> (js_namedItem self (toJSString name))) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.namedItem Mozilla WebKitNamedFlowCollection.namedItem documentation> 
@@ -91,11 +90,11 @@
 namedItemUnchecked self name
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_namedItem (self) (toJSString name)))
+         (js_namedItem self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         DOMNamedFlowCollection -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection.length Mozilla WebKitNamedFlowCollection.length documentation> 
 getLength :: (MonadIO m) => DOMNamedFlowCollection -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMParser.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMParser.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DOMParser.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMParser.hs
@@ -5,14 +5,13 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DOMParser
        (js_newDOMParser, newDOMParser, js_parseFromString,
-        parseFromString, parseFromString_, parseFromStringUnsafe,
-        parseFromStringUnchecked, DOMParser(..), gTypeDOMParser)
+        parseFromString, parseFromString_, DOMParser(..), gTypeDOMParser)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -35,46 +35,23 @@
  
 foreign import javascript unsafe "$1[\"parseFromString\"]($2, $3)"
         js_parseFromString ::
-        DOMParser -> JSString -> JSString -> IO (Nullable Document)
+        DOMParser -> JSString -> JSString -> IO Document
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMParser.parseFromString Mozilla DOMParser.parseFromString documentation> 
 parseFromString ::
-                (MonadIO m, ToJSString str, ToJSString contentType) =>
-                  DOMParser -> str -> contentType -> m (Maybe Document)
-parseFromString self str contentType
+                (MonadIO m, ToJSString string, ToJSString contentType) =>
+                  DOMParser -> string -> contentType -> m Document
+parseFromString self string contentType
   = liftIO
-      (nullableToMaybe <$>
-         (js_parseFromString (self) (toJSString str)
-            (toJSString contentType)))
+      (js_parseFromString self (toJSString string)
+         (toJSString contentType))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMParser.parseFromString Mozilla DOMParser.parseFromString documentation> 
 parseFromString_ ::
-                 (MonadIO m, ToJSString str, ToJSString contentType) =>
-                   DOMParser -> str -> contentType -> m ()
-parseFromString_ self str contentType
+                 (MonadIO m, ToJSString string, ToJSString contentType) =>
+                   DOMParser -> string -> contentType -> m ()
+parseFromString_ self string contentType
   = liftIO
       (void
-         (js_parseFromString (self) (toJSString str)
-            (toJSString contentType)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMParser.parseFromString Mozilla DOMParser.parseFromString documentation> 
-parseFromStringUnsafe ::
-                      (MonadIO m, ToJSString str, ToJSString contentType,
-                       HasCallStack) =>
-                        DOMParser -> str -> contentType -> m Document
-parseFromStringUnsafe self str contentType
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_parseFromString (self) (toJSString str)
-             (toJSString contentType)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMParser.parseFromString Mozilla DOMParser.parseFromString documentation> 
-parseFromStringUnchecked ::
-                         (MonadIO m, ToJSString str, ToJSString contentType) =>
-                           DOMParser -> str -> contentType -> m Document
-parseFromStringUnchecked self str contentType
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_parseFromString (self) (toJSString str)
+         (js_parseFromString self (toJSString string)
             (toJSString contentType)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMPoint.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMPoint.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMPoint.hs
@@ -0,0 +1,123 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.DOMPoint
+       (js_newDOMPoint, newDOMPoint, js_newDOMPoint', newDOMPoint',
+        js_fromPoint, fromPoint, fromPoint_, js_setX, setX, js_getX, getX,
+        js_setY, setY, js_getY, getY, js_setZ, setZ, js_getZ, getZ,
+        js_setW, setW, js_getW, getW, DOMPoint(..), gTypeDOMPoint)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "new window[\"DOMPoint\"]($1)"
+        js_newDOMPoint :: DOMPointInit -> IO DOMPoint
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint Mozilla DOMPoint documentation> 
+newDOMPoint :: (MonadIO m) => DOMPointInit -> m DOMPoint
+newDOMPoint point = liftIO (js_newDOMPoint point)
+ 
+foreign import javascript unsafe
+        "new window[\"DOMPoint\"]($1, $2,\n$3, $4)" js_newDOMPoint' ::
+        Optional Double ->
+          Optional Double ->
+            Optional Double -> Optional Double -> IO DOMPoint
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint Mozilla DOMPoint documentation> 
+newDOMPoint' ::
+             (MonadIO m) =>
+               Maybe Double ->
+                 Maybe Double -> Maybe Double -> Maybe Double -> m DOMPoint
+newDOMPoint' x y z w
+  = liftIO
+      (js_newDOMPoint' (maybeToOptional x) (maybeToOptional y)
+         (maybeToOptional z)
+         (maybeToOptional w))
+ 
+foreign import javascript unsafe "$1[\"fromPoint\"]($2)"
+        js_fromPoint :: DOMPoint -> Optional DOMPointInit -> IO DOMPoint
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint.fromPoint Mozilla DOMPoint.fromPoint documentation> 
+fromPoint ::
+          (MonadIO m) => DOMPoint -> Maybe DOMPointInit -> m DOMPoint
+fromPoint self other
+  = liftIO (js_fromPoint self (maybeToOptional other))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint.fromPoint Mozilla DOMPoint.fromPoint documentation> 
+fromPoint_ :: (MonadIO m) => DOMPoint -> Maybe DOMPointInit -> m ()
+fromPoint_ self other
+  = liftIO (void (js_fromPoint self (maybeToOptional other)))
+ 
+foreign import javascript unsafe "$1[\"x\"] = $2;" js_setX ::
+        DOMPoint -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint.x Mozilla DOMPoint.x documentation> 
+setX :: (MonadIO m) => DOMPoint -> Double -> m ()
+setX self val = liftIO (js_setX self val)
+ 
+foreign import javascript unsafe "$1[\"x\"]" js_getX ::
+        DOMPoint -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint.x Mozilla DOMPoint.x documentation> 
+getX :: (MonadIO m) => DOMPoint -> m Double
+getX self = liftIO (js_getX self)
+ 
+foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
+        DOMPoint -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint.y Mozilla DOMPoint.y documentation> 
+setY :: (MonadIO m) => DOMPoint -> Double -> m ()
+setY self val = liftIO (js_setY self val)
+ 
+foreign import javascript unsafe "$1[\"y\"]" js_getY ::
+        DOMPoint -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint.y Mozilla DOMPoint.y documentation> 
+getY :: (MonadIO m) => DOMPoint -> m Double
+getY self = liftIO (js_getY self)
+ 
+foreign import javascript unsafe "$1[\"z\"] = $2;" js_setZ ::
+        DOMPoint -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint.z Mozilla DOMPoint.z documentation> 
+setZ :: (MonadIO m) => DOMPoint -> Double -> m ()
+setZ self val = liftIO (js_setZ self val)
+ 
+foreign import javascript unsafe "$1[\"z\"]" js_getZ ::
+        DOMPoint -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint.z Mozilla DOMPoint.z documentation> 
+getZ :: (MonadIO m) => DOMPoint -> m Double
+getZ self = liftIO (js_getZ self)
+ 
+foreign import javascript unsafe "$1[\"w\"] = $2;" js_setW ::
+        DOMPoint -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint.w Mozilla DOMPoint.w documentation> 
+setW :: (MonadIO m) => DOMPoint -> Double -> m ()
+setW self val = liftIO (js_setW self val)
+ 
+foreign import javascript unsafe "$1[\"w\"]" js_getW ::
+        DOMPoint -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint.w Mozilla DOMPoint.w documentation> 
+getW :: (MonadIO m) => DOMPoint -> m Double
+getW self = liftIO (js_getW self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMPointReadOnly.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMPointReadOnly.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMPointReadOnly.hs
@@ -0,0 +1,106 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.DOMPointReadOnly
+       (js_newDOMPointReadOnly, newDOMPointReadOnly,
+        js_newDOMPointReadOnly', newDOMPointReadOnly', js_fromPoint,
+        fromPoint, fromPoint_, js_getX, getX, js_getY, getY, js_getZ, getZ,
+        js_getW, getW, DOMPointReadOnly(..), gTypeDOMPointReadOnly,
+        IsDOMPointReadOnly, toDOMPointReadOnly)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"DOMPointReadOnly\"]($1)" js_newDOMPointReadOnly ::
+        DOMPointInit -> IO DOMPointReadOnly
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly Mozilla DOMPointReadOnly documentation> 
+newDOMPointReadOnly ::
+                    (MonadIO m) => DOMPointInit -> m DOMPointReadOnly
+newDOMPointReadOnly point = liftIO (js_newDOMPointReadOnly point)
+ 
+foreign import javascript unsafe
+        "new window[\"DOMPointReadOnly\"]($1,\n$2, $3, $4)"
+        js_newDOMPointReadOnly' ::
+        Optional Double ->
+          Optional Double ->
+            Optional Double -> Optional Double -> IO DOMPointReadOnly
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly Mozilla DOMPointReadOnly documentation> 
+newDOMPointReadOnly' ::
+                     (MonadIO m) =>
+                       Maybe Double ->
+                         Maybe Double -> Maybe Double -> Maybe Double -> m DOMPointReadOnly
+newDOMPointReadOnly' x y z w
+  = liftIO
+      (js_newDOMPointReadOnly' (maybeToOptional x) (maybeToOptional y)
+         (maybeToOptional z)
+         (maybeToOptional w))
+ 
+foreign import javascript unsafe "$1[\"fromPoint\"]($2)"
+        js_fromPoint ::
+        DOMPointReadOnly -> Optional DOMPointInit -> IO DOMPointReadOnly
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly.fromPoint Mozilla DOMPointReadOnly.fromPoint documentation> 
+fromPoint ::
+          (MonadIO m, IsDOMPointReadOnly self) =>
+            self -> Maybe DOMPointInit -> m DOMPointReadOnly
+fromPoint self other
+  = liftIO
+      (js_fromPoint (toDOMPointReadOnly self) (maybeToOptional other))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly.fromPoint Mozilla DOMPointReadOnly.fromPoint documentation> 
+fromPoint_ ::
+           (MonadIO m, IsDOMPointReadOnly self) =>
+             self -> Maybe DOMPointInit -> m ()
+fromPoint_ self other
+  = liftIO
+      (void
+         (js_fromPoint (toDOMPointReadOnly self) (maybeToOptional other)))
+ 
+foreign import javascript unsafe "$1[\"x\"]" js_getX ::
+        DOMPointReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly.x Mozilla DOMPointReadOnly.x documentation> 
+getX :: (MonadIO m, IsDOMPointReadOnly self) => self -> m Double
+getX self = liftIO (js_getX (toDOMPointReadOnly self))
+ 
+foreign import javascript unsafe "$1[\"y\"]" js_getY ::
+        DOMPointReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly.y Mozilla DOMPointReadOnly.y documentation> 
+getY :: (MonadIO m, IsDOMPointReadOnly self) => self -> m Double
+getY self = liftIO (js_getY (toDOMPointReadOnly self))
+ 
+foreign import javascript unsafe "$1[\"z\"]" js_getZ ::
+        DOMPointReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly.z Mozilla DOMPointReadOnly.z documentation> 
+getZ :: (MonadIO m, IsDOMPointReadOnly self) => self -> m Double
+getZ self = liftIO (js_getZ (toDOMPointReadOnly self))
+ 
+foreign import javascript unsafe "$1[\"w\"]" js_getW ::
+        DOMPointReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly.w Mozilla DOMPointReadOnly.w documentation> 
+getW :: (MonadIO m, IsDOMPointReadOnly self) => self -> m Double
+getW self = liftIO (js_getW (toDOMPointReadOnly self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMRect.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMRect.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMRect.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.DOMRect
+       (js_newDOMRect, newDOMRect, js_fromRect, fromRect, fromRect_,
+        js_setX, setX, js_getX, getX, js_setY, setY, js_getY, getY,
+        js_setWidth, setWidth, js_getWidth, getWidth, js_setHeight,
+        setHeight, js_getHeight, getHeight, DOMRect(..), gTypeDOMRect)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"DOMRect\"]($1, $2,\n$3, $4)" js_newDOMRect ::
+        Optional Double ->
+          Optional Double -> Optional Double -> Optional Double -> IO DOMRect
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect Mozilla DOMRect documentation> 
+newDOMRect ::
+           (MonadIO m) =>
+             Maybe Double ->
+               Maybe Double -> Maybe Double -> Maybe Double -> m DOMRect
+newDOMRect x y width height
+  = liftIO
+      (js_newDOMRect (maybeToOptional x) (maybeToOptional y)
+         (maybeToOptional width)
+         (maybeToOptional height))
+ 
+foreign import javascript unsafe "$1[\"fromRect\"]($2)" js_fromRect
+        :: DOMRect -> Optional DOMRectInit -> IO DOMRect
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect.fromRect Mozilla DOMRect.fromRect documentation> 
+fromRect ::
+         (MonadIO m) => DOMRect -> Maybe DOMRectInit -> m DOMRect
+fromRect self other
+  = liftIO (js_fromRect self (maybeToOptional other))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect.fromRect Mozilla DOMRect.fromRect documentation> 
+fromRect_ :: (MonadIO m) => DOMRect -> Maybe DOMRectInit -> m ()
+fromRect_ self other
+  = liftIO (void (js_fromRect self (maybeToOptional other)))
+ 
+foreign import javascript unsafe "$1[\"x\"] = $2;" js_setX ::
+        DOMRect -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect.x Mozilla DOMRect.x documentation> 
+setX :: (MonadIO m) => DOMRect -> Double -> m ()
+setX self val = liftIO (js_setX self val)
+ 
+foreign import javascript unsafe "$1[\"x\"]" js_getX ::
+        DOMRect -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect.x Mozilla DOMRect.x documentation> 
+getX :: (MonadIO m) => DOMRect -> m Double
+getX self = liftIO (js_getX self)
+ 
+foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
+        DOMRect -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect.y Mozilla DOMRect.y documentation> 
+setY :: (MonadIO m) => DOMRect -> Double -> m ()
+setY self val = liftIO (js_setY self val)
+ 
+foreign import javascript unsafe "$1[\"y\"]" js_getY ::
+        DOMRect -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect.y Mozilla DOMRect.y documentation> 
+getY :: (MonadIO m) => DOMRect -> m Double
+getY self = liftIO (js_getY self)
+ 
+foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
+        :: DOMRect -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect.width Mozilla DOMRect.width documentation> 
+setWidth :: (MonadIO m) => DOMRect -> Double -> m ()
+setWidth self val = liftIO (js_setWidth self val)
+ 
+foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
+        DOMRect -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect.width Mozilla DOMRect.width documentation> 
+getWidth :: (MonadIO m) => DOMRect -> m Double
+getWidth self = liftIO (js_getWidth self)
+ 
+foreign import javascript unsafe "$1[\"height\"] = $2;"
+        js_setHeight :: DOMRect -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect.height Mozilla DOMRect.height documentation> 
+setHeight :: (MonadIO m) => DOMRect -> Double -> m ()
+setHeight self val = liftIO (js_setHeight self val)
+ 
+foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
+        DOMRect -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect.height Mozilla DOMRect.height documentation> 
+getHeight :: (MonadIO m) => DOMRect -> m Double
+getHeight self = liftIO (js_getHeight self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMRectReadOnly.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMRectReadOnly.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMRectReadOnly.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.DOMRectReadOnly
+       (js_newDOMRectReadOnly, newDOMRectReadOnly, js_fromRect, fromRect,
+        fromRect_, js_getX, getX, js_getY, getY, js_getWidth, getWidth,
+        js_getHeight, getHeight, js_getTop, getTop, js_getRight, getRight,
+        js_getBottom, getBottom, js_getLeft, getLeft, DOMRectReadOnly(..),
+        gTypeDOMRectReadOnly, IsDOMRectReadOnly, toDOMRectReadOnly)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"DOMRectReadOnly\"]($1,\n$2, $3, $4)"
+        js_newDOMRectReadOnly ::
+        Optional Double ->
+          Optional Double ->
+            Optional Double -> Optional Double -> IO DOMRectReadOnly
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly Mozilla DOMRectReadOnly documentation> 
+newDOMRectReadOnly ::
+                   (MonadIO m) =>
+                     Maybe Double ->
+                       Maybe Double -> Maybe Double -> Maybe Double -> m DOMRectReadOnly
+newDOMRectReadOnly x y width height
+  = liftIO
+      (js_newDOMRectReadOnly (maybeToOptional x) (maybeToOptional y)
+         (maybeToOptional width)
+         (maybeToOptional height))
+ 
+foreign import javascript unsafe "$1[\"fromRect\"]($2)" js_fromRect
+        :: DOMRectReadOnly -> Optional DOMRectInit -> IO DOMRectReadOnly
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly.fromRect Mozilla DOMRectReadOnly.fromRect documentation> 
+fromRect ::
+         (MonadIO m, IsDOMRectReadOnly self) =>
+           self -> Maybe DOMRectInit -> m DOMRectReadOnly
+fromRect self other
+  = liftIO
+      (js_fromRect (toDOMRectReadOnly self) (maybeToOptional other))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly.fromRect Mozilla DOMRectReadOnly.fromRect documentation> 
+fromRect_ ::
+          (MonadIO m, IsDOMRectReadOnly self) =>
+            self -> Maybe DOMRectInit -> m ()
+fromRect_ self other
+  = liftIO
+      (void
+         (js_fromRect (toDOMRectReadOnly self) (maybeToOptional other)))
+ 
+foreign import javascript unsafe "$1[\"x\"]" js_getX ::
+        DOMRectReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly.x Mozilla DOMRectReadOnly.x documentation> 
+getX :: (MonadIO m, IsDOMRectReadOnly self) => self -> m Double
+getX self = liftIO (js_getX (toDOMRectReadOnly self))
+ 
+foreign import javascript unsafe "$1[\"y\"]" js_getY ::
+        DOMRectReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly.y Mozilla DOMRectReadOnly.y documentation> 
+getY :: (MonadIO m, IsDOMRectReadOnly self) => self -> m Double
+getY self = liftIO (js_getY (toDOMRectReadOnly self))
+ 
+foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
+        DOMRectReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly.width Mozilla DOMRectReadOnly.width documentation> 
+getWidth :: (MonadIO m, IsDOMRectReadOnly self) => self -> m Double
+getWidth self = liftIO (js_getWidth (toDOMRectReadOnly self))
+ 
+foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
+        DOMRectReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly.height Mozilla DOMRectReadOnly.height documentation> 
+getHeight ::
+          (MonadIO m, IsDOMRectReadOnly self) => self -> m Double
+getHeight self = liftIO (js_getHeight (toDOMRectReadOnly self))
+ 
+foreign import javascript unsafe "$1[\"top\"]" js_getTop ::
+        DOMRectReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly.top Mozilla DOMRectReadOnly.top documentation> 
+getTop :: (MonadIO m, IsDOMRectReadOnly self) => self -> m Double
+getTop self = liftIO (js_getTop (toDOMRectReadOnly self))
+ 
+foreign import javascript unsafe "$1[\"right\"]" js_getRight ::
+        DOMRectReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly.right Mozilla DOMRectReadOnly.right documentation> 
+getRight :: (MonadIO m, IsDOMRectReadOnly self) => self -> m Double
+getRight self = liftIO (js_getRight (toDOMRectReadOnly self))
+ 
+foreign import javascript unsafe "$1[\"bottom\"]" js_getBottom ::
+        DOMRectReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly.bottom Mozilla DOMRectReadOnly.bottom documentation> 
+getBottom ::
+          (MonadIO m, IsDOMRectReadOnly self) => self -> m Double
+getBottom self = liftIO (js_getBottom (toDOMRectReadOnly self))
+ 
+foreign import javascript unsafe "$1[\"left\"]" js_getLeft ::
+        DOMRectReadOnly -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly.left Mozilla DOMRectReadOnly.left documentation> 
+getLeft :: (MonadIO m, IsDOMRectReadOnly self) => self -> m Double
+getLeft self = liftIO (js_getLeft (toDOMRectReadOnly self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMSettableTokenList.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMSettableTokenList.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/DOMSettableTokenList.hs
+++ /dev/null
@@ -1,74 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.DOMSettableTokenList
-       (js__get, _get, _get_, _getUnsafe, _getUnchecked, js_setValue,
-        setValue, js_getValue, getValue, DOMSettableTokenList(..),
-        gTypeDOMSettableTokenList)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"_get\"]($2)" js__get ::
-        DOMSettableTokenList -> Word -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMSettableTokenList._get Mozilla DOMSettableTokenList._get documentation> 
-_get ::
-     (MonadIO m, FromJSString result) =>
-       DOMSettableTokenList -> Word -> m (Maybe result)
-_get self index
-  = liftIO (fromMaybeJSString <$> (js__get (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMSettableTokenList._get Mozilla DOMSettableTokenList._get documentation> 
-_get_ :: (MonadIO m) => DOMSettableTokenList -> Word -> m ()
-_get_ self index = liftIO (void (js__get (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMSettableTokenList._get Mozilla DOMSettableTokenList._get documentation> 
-_getUnsafe ::
-           (MonadIO m, HasCallStack, FromJSString result) =>
-             DOMSettableTokenList -> Word -> m result
-_getUnsafe self index
-  = liftIO
-      ((fromMaybeJSString <$> (js__get (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMSettableTokenList._get Mozilla DOMSettableTokenList._get documentation> 
-_getUnchecked ::
-              (MonadIO m, FromJSString result) =>
-                DOMSettableTokenList -> Word -> m result
-_getUnchecked self index
-  = liftIO (fromJust . fromMaybeJSString <$> (js__get (self) index))
- 
-foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
-        :: DOMSettableTokenList -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMSettableTokenList.value Mozilla DOMSettableTokenList.value documentation> 
-setValue ::
-         (MonadIO m, ToJSString val) => DOMSettableTokenList -> val -> m ()
-setValue self val = liftIO (js_setValue (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
-        DOMSettableTokenList -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMSettableTokenList.value Mozilla DOMSettableTokenList.value documentation> 
-getValue ::
-         (MonadIO m, FromJSString result) =>
-           DOMSettableTokenList -> m result
-getValue self = liftIO (fromJSString <$> (js_getValue (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMStringList.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMStringList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DOMStringList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMStringList.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,12 +21,13 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
+foreign import javascript unsafe "$1[$2]" js_item ::
         DOMStringList -> Word -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringList.item Mozilla DOMStringList.item documentation> 
@@ -34,11 +35,11 @@
      (MonadIO m, FromJSString result) =>
        DOMStringList -> Word -> m (Maybe result)
 item self index
-  = liftIO (fromMaybeJSString <$> (js_item (self) index))
+  = liftIO (fromMaybeJSString <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringList.item Mozilla DOMStringList.item documentation> 
 item_ :: (MonadIO m) => DOMStringList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringList.item Mozilla DOMStringList.item documentation> 
 itemUnsafe ::
@@ -46,7 +47,7 @@
              DOMStringList -> Word -> m result
 itemUnsafe self index
   = liftIO
-      ((fromMaybeJSString <$> (js_item (self) index)) >>=
+      ((fromMaybeJSString <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringList.item Mozilla DOMStringList.item documentation> 
@@ -54,7 +55,7 @@
               (MonadIO m, FromJSString result) =>
                 DOMStringList -> Word -> m result
 itemUnchecked self index
-  = liftIO (fromJust . fromMaybeJSString <$> (js_item (self) index))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_item self index))
  
 foreign import javascript unsafe "($1[\"contains\"]($2) ? 1 : 0)"
         js_contains :: DOMStringList -> JSString -> IO Bool
@@ -63,17 +64,17 @@
 contains ::
          (MonadIO m, ToJSString string) => DOMStringList -> string -> m Bool
 contains self string
-  = liftIO (js_contains (self) (toJSString string))
+  = liftIO (js_contains self (toJSString string))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringList.contains Mozilla DOMStringList.contains documentation> 
 contains_ ::
           (MonadIO m, ToJSString string) => DOMStringList -> string -> m ()
 contains_ self string
-  = liftIO (void (js_contains (self) (toJSString string)))
+  = liftIO (void (js_contains self (toJSString string)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         DOMStringList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringList.length Mozilla DOMStringList.length documentation> 
 getLength :: (MonadIO m) => DOMStringList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMStringMap.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMStringMap.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMStringMap.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.DOMStringMap
+       (js_get, get, get_, DOMStringMap(..), gTypeDOMStringMap) where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[$2]" js_get ::
+        DOMStringMap -> JSString -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringMap.get Mozilla DOMStringMap.get documentation> 
+get ::
+    (MonadIO m, ToJSString name, FromJSString result) =>
+      DOMStringMap -> name -> m result
+get self name
+  = liftIO (fromJSString <$> (js_get self (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringMap.get Mozilla DOMStringMap.get documentation> 
+get_ ::
+     (MonadIO m, ToJSString name) => DOMStringMap -> name -> m ()
+get_ self name = liftIO (void (js_get self (toJSString name)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DOMTokenList.hs b/src/GHCJS/DOM/JSFFI/Generated/DOMTokenList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DOMTokenList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DOMTokenList.hs
@@ -6,15 +6,15 @@
 module GHCJS.DOM.JSFFI.Generated.DOMTokenList
        (js_item, item, item_, itemUnsafe, itemUnchecked, js_contains,
         contains, contains_, js_add, add, js_remove, remove, js_toggle,
-        toggle, toggle_, js_toString, toString, toString_, js_getLength,
-        getLength, DOMTokenList(..), gTypeDOMTokenList, IsDOMTokenList,
-        toDOMTokenList)
+        toggle, toggle_, js_replace, replace, js_supports, supports,
+        supports_, js_getLength, getLength, js_setValue, setValue,
+        js_getValue, getValue, DOMTokenList(..), gTypeDOMTokenList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,125 +23,134 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
+foreign import javascript unsafe "$1[$2]" js_item ::
         DOMTokenList -> Word -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.item Mozilla DOMTokenList.item documentation> 
 item ::
-     (MonadIO m, IsDOMTokenList self, FromJSString result) =>
-       self -> Word -> m (Maybe result)
+     (MonadIO m, FromJSString result) =>
+       DOMTokenList -> Word -> m (Maybe result)
 item self index
-  = liftIO
-      (fromMaybeJSString <$> (js_item (toDOMTokenList self) index))
+  = liftIO (fromMaybeJSString <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.item Mozilla DOMTokenList.item documentation> 
-item_ :: (MonadIO m, IsDOMTokenList self) => self -> Word -> m ()
-item_ self index
-  = liftIO (void (js_item (toDOMTokenList self) index))
+item_ :: (MonadIO m) => DOMTokenList -> Word -> m ()
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.item Mozilla DOMTokenList.item documentation> 
 itemUnsafe ::
-           (MonadIO m, IsDOMTokenList self, HasCallStack,
-            FromJSString result) =>
-             self -> Word -> m result
+           (MonadIO m, HasCallStack, FromJSString result) =>
+             DOMTokenList -> Word -> m result
 itemUnsafe self index
   = liftIO
-      ((fromMaybeJSString <$> (js_item (toDOMTokenList self) index)) >>=
+      ((fromMaybeJSString <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.item Mozilla DOMTokenList.item documentation> 
 itemUnchecked ::
-              (MonadIO m, IsDOMTokenList self, FromJSString result) =>
-                self -> Word -> m result
+              (MonadIO m, FromJSString result) =>
+                DOMTokenList -> Word -> m result
 itemUnchecked self index
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_item (toDOMTokenList self) index))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_item self index))
  
 foreign import javascript unsafe "($1[\"contains\"]($2) ? 1 : 0)"
         js_contains :: DOMTokenList -> JSString -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.contains Mozilla DOMTokenList.contains documentation> 
 contains ::
-         (MonadIO m, IsDOMTokenList self, ToJSString token) =>
-           self -> token -> m Bool
-contains self token
-  = liftIO (js_contains (toDOMTokenList self) (toJSString token))
+         (MonadIO m, ToJSString token) => DOMTokenList -> token -> m Bool
+contains self token = liftIO (js_contains self (toJSString token))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.contains Mozilla DOMTokenList.contains documentation> 
 contains_ ::
-          (MonadIO m, IsDOMTokenList self, ToJSString token) =>
-            self -> token -> m ()
+          (MonadIO m, ToJSString token) => DOMTokenList -> token -> m ()
 contains_ self token
-  = liftIO
-      (void (js_contains (toDOMTokenList self) (toJSString token)))
+  = liftIO (void (js_contains self (toJSString token)))
  
-foreign import javascript unsafe "$1[\"add\"].apply($1, $2)" js_add
-        :: DOMTokenList -> JSVal -> IO ()
+foreign import javascript unsafe "$1[\"add\"]($2)" js_add ::
+        DOMTokenList -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.add Mozilla DOMTokenList.add documentation> 
 add ::
-    (MonadIO m, IsDOMTokenList self, ToJSString tokens,
-     ToJSVal tokens) =>
-      self -> [tokens] -> m ()
+    (MonadIO m, ToJSString tokens) => DOMTokenList -> [tokens] -> m ()
 add self tokens
-  = liftIO
-      (toJSVal tokens >>=
-         \ tokens' -> js_add (toDOMTokenList self) tokens')
+  = liftIO (toJSVal tokens >>= \ tokens' -> js_add self tokens')
  
-foreign import javascript unsafe "$1[\"remove\"].apply($1, $2)"
-        js_remove :: DOMTokenList -> JSVal -> IO ()
+foreign import javascript unsafe "$1[\"remove\"]($2)" js_remove ::
+        DOMTokenList -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.remove Mozilla DOMTokenList.remove documentation> 
 remove ::
-       (MonadIO m, IsDOMTokenList self, ToJSString tokens,
-        ToJSVal tokens) =>
-         self -> [tokens] -> m ()
+       (MonadIO m, ToJSString tokens) => DOMTokenList -> [tokens] -> m ()
 remove self tokens
-  = liftIO
-      (toJSVal tokens >>=
-         \ tokens' -> js_remove (toDOMTokenList self) tokens')
+  = liftIO (toJSVal tokens >>= \ tokens' -> js_remove self tokens')
  
 foreign import javascript unsafe "($1[\"toggle\"]($2, $3) ? 1 : 0)"
         js_toggle :: DOMTokenList -> JSString -> Bool -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.toggle Mozilla DOMTokenList.toggle documentation> 
 toggle ::
-       (MonadIO m, IsDOMTokenList self, ToJSString token) =>
-         self -> token -> Bool -> m Bool
+       (MonadIO m, ToJSString token) =>
+         DOMTokenList -> token -> Bool -> m Bool
 toggle self token force
-  = liftIO (js_toggle (toDOMTokenList self) (toJSString token) force)
+  = liftIO (js_toggle self (toJSString token) force)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.toggle Mozilla DOMTokenList.toggle documentation> 
 toggle_ ::
-        (MonadIO m, IsDOMTokenList self, ToJSString token) =>
-          self -> token -> Bool -> m ()
+        (MonadIO m, ToJSString token) =>
+          DOMTokenList -> token -> Bool -> m ()
 toggle_ self token force
-  = liftIO
-      (void (js_toggle (toDOMTokenList self) (toJSString token) force))
+  = liftIO (void (js_toggle self (toJSString token) force))
  
-foreign import javascript unsafe "$1[\"toString\"]()" js_toString
-        :: DOMTokenList -> IO JSString
+foreign import javascript unsafe "$1[\"replace\"]($2, $3)"
+        js_replace :: DOMTokenList -> JSString -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.toString Mozilla DOMTokenList.toString documentation> 
-toString ::
-         (MonadIO m, IsDOMTokenList self, FromJSString result) =>
-           self -> m result
-toString self
-  = liftIO (fromJSString <$> (js_toString (toDOMTokenList self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.replace Mozilla DOMTokenList.replace documentation> 
+replace ::
+        (MonadIO m, ToJSString token, ToJSString newToken) =>
+          DOMTokenList -> token -> newToken -> m ()
+replace self token newToken
+  = liftIO (js_replace self (toJSString token) (toJSString newToken))
+ 
+foreign import javascript unsafe "($1[\"supports\"]($2) ? 1 : 0)"
+        js_supports :: DOMTokenList -> JSString -> IO Bool
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.toString Mozilla DOMTokenList.toString documentation> 
-toString_ :: (MonadIO m, IsDOMTokenList self) => self -> m ()
-toString_ self = liftIO (void (js_toString (toDOMTokenList self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.supports Mozilla DOMTokenList.supports documentation> 
+supports ::
+         (MonadIO m, ToJSString token) => DOMTokenList -> token -> m Bool
+supports self token = liftIO (js_supports self (toJSString token))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.supports Mozilla DOMTokenList.supports documentation> 
+supports_ ::
+          (MonadIO m, ToJSString token) => DOMTokenList -> token -> m ()
+supports_ self token
+  = liftIO (void (js_supports self (toJSString token)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         DOMTokenList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.length Mozilla DOMTokenList.length documentation> 
-getLength :: (MonadIO m, IsDOMTokenList self) => self -> m Word
-getLength self = liftIO (js_getLength (toDOMTokenList self))
+getLength :: (MonadIO m) => DOMTokenList -> m Word
+getLength self = liftIO (js_getLength self)
+ 
+foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
+        :: DOMTokenList -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.value Mozilla DOMTokenList.value documentation> 
+setValue ::
+         (MonadIO m, ToJSString val) => DOMTokenList -> val -> m ()
+setValue self val = liftIO (js_setValue self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
+        DOMTokenList -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList.value Mozilla DOMTokenList.value documentation> 
+getValue ::
+         (MonadIO m, FromJSString result) => DOMTokenList -> m result
+getValue self = liftIO (fromJSString <$> (js_getValue self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DataCue.hs b/src/GHCJS/DOM/JSFFI/Generated/DataCue.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DataCue.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DataCue.hs
@@ -5,15 +5,15 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DataCue
        (js_newDataCue, newDataCue, js_newDataCue', newDataCue',
-        js_setData, setData, js_getData, getData, getDataUnsafe,
-        getDataUnchecked, js_setValue, setValue, js_getValue, getValue,
-        js_getType, getType, DataCue(..), gTypeDataCue)
+        js_setData, setData, js_getData, getData, js_setValue, setValue,
+        js_getValue, getValue, js_getType, getType, DataCue(..),
+        gTypeDataCue)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,77 +22,69 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "new window[\"WebKitDataCue\"]()"
-        js_newDataCue :: IO DataCue
+foreign import javascript unsafe
+        "new window[\"WebKitDataCue\"]($1,\n$2, $3)" js_newDataCue ::
+        Double -> Double -> ArrayBuffer -> IO DataCue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue Mozilla WebKitDataCue documentation> 
-newDataCue :: (MonadIO m) => m DataCue
-newDataCue = liftIO (js_newDataCue)
+newDataCue ::
+           (MonadIO m, IsArrayBuffer data') =>
+             Double -> Double -> data' -> m DataCue
+newDataCue startTime endTime data'
+  = liftIO (js_newDataCue startTime endTime (toArrayBuffer data'))
  
 foreign import javascript unsafe
         "new window[\"WebKitDataCue\"]($1,\n$2, $3, $4)" js_newDataCue' ::
-        Double -> Double -> JSVal -> JSString -> IO DataCue
+        Double -> Double -> JSVal -> Optional JSString -> IO DataCue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue Mozilla WebKitDataCue documentation> 
 newDataCue' ::
-            (MonadIO m, ToJSString type') =>
-              Double -> Double -> JSVal -> type' -> m DataCue
+            (MonadIO m, ToJSVal value, ToJSString type') =>
+              Double -> Double -> value -> Maybe type' -> m DataCue
 newDataCue' startTime endTime value type'
   = liftIO
-      (js_newDataCue' startTime endTime value (toJSString type'))
+      (toJSVal value >>=
+         \ value' -> js_newDataCue' startTime endTime value'
+         (toOptionalJSString type'))
  
 foreign import javascript unsafe "$1[\"data\"] = $2;" js_setData ::
-        DataCue -> Nullable ArrayBuffer -> IO ()
+        DataCue -> ArrayBuffer -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue.data Mozilla WebKitDataCue.data documentation> 
-setData ::
-        (MonadIO m, IsArrayBuffer val) => DataCue -> Maybe val -> m ()
-setData self val
-  = liftIO
-      (js_setData (self) (maybeToNullable (fmap toArrayBuffer val)))
+setData :: (MonadIO m, IsArrayBuffer val) => DataCue -> val -> m ()
+setData self val = liftIO (js_setData self (toArrayBuffer val))
  
 foreign import javascript unsafe "$1[\"data\"]" js_getData ::
-        DataCue -> IO (Nullable ArrayBuffer)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue.data Mozilla WebKitDataCue.data documentation> 
-getData :: (MonadIO m) => DataCue -> m (Maybe ArrayBuffer)
-getData self = liftIO (nullableToMaybe <$> (js_getData (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue.data Mozilla WebKitDataCue.data documentation> 
-getDataUnsafe ::
-              (MonadIO m, HasCallStack) => DataCue -> m ArrayBuffer
-getDataUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getData (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        DataCue -> IO ArrayBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue.data Mozilla WebKitDataCue.data documentation> 
-getDataUnchecked :: (MonadIO m) => DataCue -> m ArrayBuffer
-getDataUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getData (self)))
+getData :: (MonadIO m) => DataCue -> m ArrayBuffer
+getData self = liftIO (js_getData self)
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
         :: DataCue -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue.value Mozilla WebKitDataCue.value documentation> 
-setValue :: (MonadIO m) => DataCue -> JSVal -> m ()
-setValue self val = liftIO (js_setValue (self) val)
+setValue :: (MonadIO m, ToJSVal val) => DataCue -> val -> m ()
+setValue self val
+  = liftIO (toJSVal val >>= \ val' -> js_setValue self val')
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         DataCue -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue.value Mozilla WebKitDataCue.value documentation> 
 getValue :: (MonadIO m) => DataCue -> m JSVal
-getValue self = liftIO (js_getValue (self))
+getValue self = liftIO (js_getValue self)
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         DataCue -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue.type Mozilla WebKitDataCue.type documentation> 
 getType :: (MonadIO m, FromJSString result) => DataCue -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DataTransfer.hs b/src/GHCJS/DOM/JSFFI/Generated/DataTransfer.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DataTransfer.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DataTransfer.hs
@@ -4,20 +4,18 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DataTransfer
-       (js_clearData, clearData, js_getData, getData, getData_,
-        js_setData, setData, js_setDragImage, setDragImage,
-        js_setDropEffect, setDropEffect, js_getDropEffect, getDropEffect,
+       (js_setDragImage, setDragImage, js_getData, getData, getData_,
+        js_setData, setData, js_clearData, clearData, js_setDropEffect,
+        setDropEffect, js_getDropEffect, getDropEffect,
         js_setEffectAllowed, setEffectAllowed, js_getEffectAllowed,
-        getEffectAllowed, js_getTypes, getTypes, getTypesUnsafe,
-        getTypesUnchecked, js_getFiles, getFiles, getFilesUnsafe,
-        getFilesUnchecked, js_getItems, getItems, getItemsUnsafe,
-        getItemsUnchecked, DataTransfer(..), gTypeDataTransfer)
+        getEffectAllowed, js_getItems, getItems, js_getTypes, getTypes,
+        js_getFiles, getFiles, DataTransfer(..), gTypeDataTransfer)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,58 +24,59 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"clearData\"]($2)"
-        js_clearData :: DataTransfer -> JSString -> IO ()
+foreign import javascript unsafe "$1[\"setDragImage\"]($2, $3, $4)"
+        js_setDragImage ::
+        DataTransfer -> Optional Element -> Int -> Int -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.clearData Mozilla DataTransfer.clearData documentation> 
-clearData ::
-          (MonadIO m, ToJSString type') => DataTransfer -> type' -> m ()
-clearData self type'
-  = liftIO (js_clearData (self) (toJSString type'))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.setDragImage Mozilla DataTransfer.setDragImage documentation> 
+setDragImage ::
+             (MonadIO m, IsElement image) =>
+               DataTransfer -> Maybe image -> Int -> Int -> m ()
+setDragImage self image x y
+  = liftIO
+      (js_setDragImage self (maybeToOptional (fmap toElement image)) x y)
  
 foreign import javascript unsafe "$1[\"getData\"]($2)" js_getData
         :: DataTransfer -> JSString -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.getData Mozilla DataTransfer.getData documentation> 
 getData ::
-        (MonadIO m, ToJSString type', FromJSString result) =>
-          DataTransfer -> type' -> m result
-getData self type'
-  = liftIO (fromJSString <$> (js_getData (self) (toJSString type')))
+        (MonadIO m, ToJSString format, FromJSString result) =>
+          DataTransfer -> format -> m result
+getData self format
+  = liftIO (fromJSString <$> (js_getData self (toJSString format)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.getData Mozilla DataTransfer.getData documentation> 
 getData_ ::
-         (MonadIO m, ToJSString type') => DataTransfer -> type' -> m ()
-getData_ self type'
-  = liftIO (void (js_getData (self) (toJSString type')))
+         (MonadIO m, ToJSString format) => DataTransfer -> format -> m ()
+getData_ self format
+  = liftIO (void (js_getData self (toJSString format)))
  
 foreign import javascript unsafe "$1[\"setData\"]($2, $3)"
         js_setData :: DataTransfer -> JSString -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.setData Mozilla DataTransfer.setData documentation> 
 setData ::
-        (MonadIO m, ToJSString type', ToJSString data') =>
-          DataTransfer -> type' -> data' -> m ()
-setData self type' data'
-  = liftIO (js_setData (self) (toJSString type') (toJSString data'))
+        (MonadIO m, ToJSString format, ToJSString data') =>
+          DataTransfer -> format -> data' -> m ()
+setData self format data'
+  = liftIO (js_setData self (toJSString format) (toJSString data'))
  
-foreign import javascript unsafe "$1[\"setDragImage\"]($2, $3, $4)"
-        js_setDragImage ::
-        DataTransfer -> Nullable Element -> Int -> Int -> IO ()
+foreign import javascript unsafe "$1[\"clearData\"]($2)"
+        js_clearData :: DataTransfer -> Optional JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.setDragImage Mozilla DataTransfer.setDragImage documentation> 
-setDragImage ::
-             (MonadIO m, IsElement image) =>
-               DataTransfer -> Maybe image -> Int -> Int -> m ()
-setDragImage self image x y
-  = liftIO
-      (js_setDragImage (self) (maybeToNullable (fmap toElement image)) x
-         y)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.clearData Mozilla DataTransfer.clearData documentation> 
+clearData ::
+          (MonadIO m, ToJSString format) =>
+            DataTransfer -> Maybe format -> m ()
+clearData self format
+  = liftIO (js_clearData self (toOptionalJSString format))
  
 foreign import javascript unsafe "$1[\"dropEffect\"] = $2;"
         js_setDropEffect :: DataTransfer -> JSString -> IO ()
@@ -86,7 +85,7 @@
 setDropEffect ::
               (MonadIO m, ToJSString val) => DataTransfer -> val -> m ()
 setDropEffect self val
-  = liftIO (js_setDropEffect (self) (toJSString val))
+  = liftIO (js_setDropEffect self (toJSString val))
  
 foreign import javascript unsafe "$1[\"dropEffect\"]"
         js_getDropEffect :: DataTransfer -> IO JSString
@@ -95,7 +94,7 @@
 getDropEffect ::
               (MonadIO m, FromJSString result) => DataTransfer -> m result
 getDropEffect self
-  = liftIO (fromJSString <$> (js_getDropEffect (self)))
+  = liftIO (fromJSString <$> (js_getDropEffect self))
  
 foreign import javascript unsafe "$1[\"effectAllowed\"] = $2;"
         js_setEffectAllowed :: DataTransfer -> JSString -> IO ()
@@ -104,7 +103,7 @@
 setEffectAllowed ::
                  (MonadIO m, ToJSString val) => DataTransfer -> val -> m ()
 setEffectAllowed self val
-  = liftIO (js_setEffectAllowed (self) (toJSString val))
+  = liftIO (js_setEffectAllowed self (toJSString val))
  
 foreign import javascript unsafe "$1[\"effectAllowed\"]"
         js_getEffectAllowed :: DataTransfer -> IO JSString
@@ -113,66 +112,26 @@
 getEffectAllowed ::
                  (MonadIO m, FromJSString result) => DataTransfer -> m result
 getEffectAllowed self
-  = liftIO (fromJSString <$> (js_getEffectAllowed (self)))
+  = liftIO (fromJSString <$> (js_getEffectAllowed self))
  
-foreign import javascript unsafe "$1[\"types\"]" js_getTypes ::
-        DataTransfer -> IO (Nullable Array)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.types Mozilla DataTransfer.types documentation> 
-getTypes :: (MonadIO m) => DataTransfer -> m (Maybe Array)
-getTypes self = liftIO (nullableToMaybe <$> (js_getTypes (self)))
+foreign import javascript unsafe "$1[\"items\"]" js_getItems ::
+        DataTransfer -> IO DataTransferItemList
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.types Mozilla DataTransfer.types documentation> 
-getTypesUnsafe ::
-               (MonadIO m, HasCallStack) => DataTransfer -> m Array
-getTypesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTypes (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.items Mozilla DataTransfer.items documentation> 
+getItems :: (MonadIO m) => DataTransfer -> m DataTransferItemList
+getItems self = liftIO (js_getItems self)
+ 
+foreign import javascript unsafe "$1[\"types\"]" js_getTypes ::
+        DataTransfer -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.types Mozilla DataTransfer.types documentation> 
-getTypesUnchecked :: (MonadIO m) => DataTransfer -> m Array
-getTypesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTypes (self)))
+getTypes ::
+         (MonadIO m, FromJSString result) => DataTransfer -> m [result]
+getTypes self = liftIO ((js_getTypes self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "$1[\"files\"]" js_getFiles ::
-        DataTransfer -> IO (Nullable FileList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.files Mozilla DataTransfer.files documentation> 
-getFiles :: (MonadIO m) => DataTransfer -> m (Maybe FileList)
-getFiles self = liftIO (nullableToMaybe <$> (js_getFiles (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.files Mozilla DataTransfer.files documentation> 
-getFilesUnsafe ::
-               (MonadIO m, HasCallStack) => DataTransfer -> m FileList
-getFilesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFiles (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        DataTransfer -> IO FileList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.files Mozilla DataTransfer.files documentation> 
-getFilesUnchecked :: (MonadIO m) => DataTransfer -> m FileList
-getFilesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFiles (self)))
- 
-foreign import javascript unsafe "$1[\"items\"]" js_getItems ::
-        DataTransfer -> IO (Nullable DataTransferItemList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.items Mozilla DataTransfer.items documentation> 
-getItems ::
-         (MonadIO m) => DataTransfer -> m (Maybe DataTransferItemList)
-getItems self = liftIO (nullableToMaybe <$> (js_getItems (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.items Mozilla DataTransfer.items documentation> 
-getItemsUnsafe ::
-               (MonadIO m, HasCallStack) => DataTransfer -> m DataTransferItemList
-getItemsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getItems (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer.items Mozilla DataTransfer.items documentation> 
-getItemsUnchecked ::
-                  (MonadIO m) => DataTransfer -> m DataTransferItemList
-getItemsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getItems (self)))
+getFiles :: (MonadIO m) => DataTransfer -> m FileList
+getFiles self = liftIO (js_getFiles self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DataTransferItem.hs b/src/GHCJS/DOM/JSFFI/Generated/DataTransferItem.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DataTransferItem.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DataTransferItem.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,38 +29,38 @@
  
 foreign import javascript unsafe "$1[\"getAsString\"]($2)"
         js_getAsString ::
-        DataTransferItem -> Nullable (StringCallback callback) -> IO ()
+        DataTransferItem -> Optional (StringCallback callback) -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem.getAsString Mozilla DataTransferItem.getAsString documentation> 
 getAsString ::
             (MonadIO m, ToJSString callback) =>
               DataTransferItem -> Maybe (StringCallback callback) -> m ()
 getAsString self callback
-  = liftIO (js_getAsString (self) (maybeToNullable callback))
+  = liftIO (js_getAsString self (maybeToOptional callback))
  
 foreign import javascript unsafe "$1[\"getAsFile\"]()" js_getAsFile
         :: DataTransferItem -> IO (Nullable Blob)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem.getAsFile Mozilla DataTransferItem.getAsFile documentation> 
 getAsFile :: (MonadIO m) => DataTransferItem -> m (Maybe Blob)
-getAsFile self = liftIO (nullableToMaybe <$> (js_getAsFile (self)))
+getAsFile self = liftIO (nullableToMaybe <$> (js_getAsFile self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem.getAsFile Mozilla DataTransferItem.getAsFile documentation> 
 getAsFile_ :: (MonadIO m) => DataTransferItem -> m ()
-getAsFile_ self = liftIO (void (js_getAsFile (self)))
+getAsFile_ self = liftIO (void (js_getAsFile self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem.getAsFile Mozilla DataTransferItem.getAsFile documentation> 
 getAsFileUnsafe ::
                 (MonadIO m, HasCallStack) => DataTransferItem -> m Blob
 getAsFileUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getAsFile (self))) >>=
+      ((nullableToMaybe <$> (js_getAsFile self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem.getAsFile Mozilla DataTransferItem.getAsFile documentation> 
 getAsFileUnchecked :: (MonadIO m) => DataTransferItem -> m Blob
 getAsFileUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAsFile (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getAsFile self))
  
 foreign import javascript unsafe "$1[\"kind\"]" js_getKind ::
         DataTransferItem -> IO JSString
@@ -67,7 +68,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem.kind Mozilla DataTransferItem.kind documentation> 
 getKind ::
         (MonadIO m, FromJSString result) => DataTransferItem -> m result
-getKind self = liftIO (fromJSString <$> (js_getKind (self)))
+getKind self = liftIO (fromJSString <$> (js_getKind self))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         DataTransferItem -> IO JSString
@@ -75,4 +76,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem.type Mozilla DataTransferItem.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => DataTransferItem -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DataTransferItemList.hs b/src/GHCJS/DOM/JSFFI/Generated/DataTransferItemList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DataTransferItemList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DataTransferItemList.hs
@@ -4,15 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DataTransferItemList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_clear, clear,
-        js_addFile, addFile, js_add, add, js_getLength, getLength,
-        DataTransferItemList(..), gTypeDataTransferItemList)
+       (js_item, item, item_, js_clear, clear, js_addFile, addFile,
+        js_add, add, js_getLength, getLength, DataTransferItemList(..),
+        gTypeDataTransferItemList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,69 +21,54 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        DataTransferItemList -> Word -> IO (Nullable DataTransferItem)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        DataTransferItemList -> Word -> IO DataTransferItem
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList.item Mozilla DataTransferItemList.item documentation> 
 item ::
-     (MonadIO m) =>
-       DataTransferItemList -> Word -> m (Maybe DataTransferItem)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+     (MonadIO m) => DataTransferItemList -> Word -> m DataTransferItem
+item self index = liftIO (js_item self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList.item Mozilla DataTransferItemList.item documentation> 
 item_ :: (MonadIO m) => DataTransferItemList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList.item Mozilla DataTransferItemList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             DataTransferItemList -> Word -> m DataTransferItem
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList.item Mozilla DataTransferItemList.item documentation> 
-itemUnchecked ::
-              (MonadIO m) => DataTransferItemList -> Word -> m DataTransferItem
-itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"clear\"]()" js_clear ::
         DataTransferItemList -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList.clear Mozilla DataTransferItemList.clear documentation> 
 clear :: (MonadIO m) => DataTransferItemList -> m ()
-clear self = liftIO (js_clear (self))
+clear self = liftIO (js_clear self)
  
 foreign import javascript unsafe "$1[\"add\"]($2)" js_addFile ::
-        DataTransferItemList -> Nullable File -> IO ()
+        DataTransferItemList -> Optional File -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList.add Mozilla DataTransferItemList.add documentation> 
 addFile ::
         (MonadIO m) => DataTransferItemList -> Maybe File -> m ()
-addFile self file
-  = liftIO (js_addFile (self) (maybeToNullable file))
+addFile self file = liftIO (js_addFile self (maybeToOptional file))
  
 foreign import javascript unsafe "$1[\"add\"]($2, $3)" js_add ::
-        DataTransferItemList -> JSString -> JSString -> IO ()
+        DataTransferItemList ->
+          Optional JSString -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList.add Mozilla DataTransferItemList.add documentation> 
 add ::
     (MonadIO m, ToJSString data', ToJSString type') =>
-      DataTransferItemList -> data' -> type' -> m ()
+      DataTransferItemList -> Maybe data' -> Maybe type' -> m ()
 add self data' type'
-  = liftIO (js_add (self) (toJSString data') (toJSString type'))
+  = liftIO
+      (js_add self (toOptionalJSString data') (toOptionalJSString type'))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         DataTransferItemList -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList.length Mozilla DataTransferItemList.length documentation> 
 getLength :: (MonadIO m) => DataTransferItemList -> m Int
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Database.hs b/src/GHCJS/DOM/JSFFI/Generated/Database.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Database.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Database.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,9 +32,9 @@
         Database ->
           JSString ->
             JSString ->
-              Nullable SQLTransactionCallback ->
-                Nullable SQLTransactionErrorCallback ->
-                  Nullable VoidCallback -> IO ()
+              Optional SQLTransactionCallback ->
+                Optional SQLTransactionErrorCallback ->
+                  Optional VoidCallback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Database.changeVersion Mozilla Database.changeVersion documentation> 
 changeVersion ::
@@ -46,49 +47,47 @@
 changeVersion self oldVersion newVersion callback errorCallback
   successCallback
   = liftIO
-      (js_changeVersion (self) (toJSString oldVersion)
+      (js_changeVersion self (toJSString oldVersion)
          (toJSString newVersion)
-         (maybeToNullable callback)
-         (maybeToNullable errorCallback)
-         (maybeToNullable successCallback))
+         (maybeToOptional callback)
+         (maybeToOptional errorCallback)
+         (maybeToOptional successCallback))
  
 foreign import javascript unsafe "$1[\"transaction\"]($2, $3, $4)"
         js_transaction ::
         Database ->
-          Nullable SQLTransactionCallback ->
-            Nullable SQLTransactionErrorCallback ->
-              Nullable VoidCallback -> IO ()
+          SQLTransactionCallback ->
+            Optional SQLTransactionErrorCallback ->
+              Optional VoidCallback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Database.transaction Mozilla Database.transaction documentation> 
 transaction ::
             (MonadIO m) =>
               Database ->
-                Maybe SQLTransactionCallback ->
+                SQLTransactionCallback ->
                   Maybe SQLTransactionErrorCallback -> Maybe VoidCallback -> m ()
 transaction self callback errorCallback successCallback
   = liftIO
-      (js_transaction (self) (maybeToNullable callback)
-         (maybeToNullable errorCallback)
-         (maybeToNullable successCallback))
+      (js_transaction self callback (maybeToOptional errorCallback)
+         (maybeToOptional successCallback))
  
 foreign import javascript unsafe
         "$1[\"readTransaction\"]($2, $3,\n$4)" js_readTransaction ::
         Database ->
-          Nullable SQLTransactionCallback ->
-            Nullable SQLTransactionErrorCallback ->
-              Nullable VoidCallback -> IO ()
+          SQLTransactionCallback ->
+            Optional SQLTransactionErrorCallback ->
+              Optional VoidCallback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Database.readTransaction Mozilla Database.readTransaction documentation> 
 readTransaction ::
                 (MonadIO m) =>
                   Database ->
-                    Maybe SQLTransactionCallback ->
+                    SQLTransactionCallback ->
                       Maybe SQLTransactionErrorCallback -> Maybe VoidCallback -> m ()
 readTransaction self callback errorCallback successCallback
   = liftIO
-      (js_readTransaction (self) (maybeToNullable callback)
-         (maybeToNullable errorCallback)
-         (maybeToNullable successCallback))
+      (js_readTransaction self callback (maybeToOptional errorCallback)
+         (maybeToOptional successCallback))
  
 foreign import javascript unsafe "$1[\"version\"]" js_getVersion ::
         Database -> IO JSString
@@ -96,4 +95,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Database.version Mozilla Database.version documentation> 
 getVersion ::
            (MonadIO m, FromJSString result) => Database -> m result
-getVersion self = liftIO (fromJSString <$> (js_getVersion (self)))
+getVersion self = liftIO (fromJSString <$> (js_getVersion self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DatabaseCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/DatabaseCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DatabaseCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DatabaseCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -27,7 +28,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DatabaseCallback Mozilla DatabaseCallback documentation> 
 newDatabaseCallback ::
-                    (MonadIO m) => (Maybe Database -> IO ()) -> m DatabaseCallback
+                    (MonadIO m) => (Database -> IO ()) -> m DatabaseCallback
 newDatabaseCallback callback
   = liftIO
       (DatabaseCallback <$>
@@ -37,7 +38,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DatabaseCallback Mozilla DatabaseCallback documentation> 
 newDatabaseCallbackSync ::
-                        (MonadIO m) => (Maybe Database -> IO ()) -> m DatabaseCallback
+                        (MonadIO m) => (Database -> IO ()) -> m DatabaseCallback
 newDatabaseCallbackSync callback
   = liftIO
       (DatabaseCallback <$>
@@ -47,7 +48,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DatabaseCallback Mozilla DatabaseCallback documentation> 
 newDatabaseCallbackAsync ::
-                         (MonadIO m) => (Maybe Database -> IO ()) -> m DatabaseCallback
+                         (MonadIO m) => (Database -> IO ()) -> m DatabaseCallback
 newDatabaseCallbackAsync callback
   = liftIO
       (DatabaseCallback <$>
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DedicatedWorkerGlobalScope.hs b/src/GHCJS/DOM/JSFFI/Generated/DedicatedWorkerGlobalScope.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DedicatedWorkerGlobalScope.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DedicatedWorkerGlobalScope.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -27,16 +28,18 @@
  
 foreign import javascript unsafe "$1[\"postMessage\"]($2, $3)"
         js_postMessage ::
-        DedicatedWorkerGlobalScope -> JSVal -> Nullable Array -> IO ()
+        DedicatedWorkerGlobalScope -> JSVal -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope.postMessage Mozilla DedicatedWorkerGlobalScope.postMessage documentation> 
 postMessage ::
-            (MonadIO m, IsArray messagePorts) =>
-              DedicatedWorkerGlobalScope -> JSVal -> Maybe messagePorts -> m ()
-postMessage self message messagePorts
+            (MonadIO m, ToJSVal message, IsGObject transfer) =>
+              DedicatedWorkerGlobalScope -> message -> [transfer] -> m ()
+postMessage self message transfer
   = liftIO
-      (js_postMessage (self) message
-         (maybeToNullable (fmap toArray messagePorts)))
+      (toJSVal transfer >>=
+         \ transfer' ->
+           toJSVal message >>= \ message' -> js_postMessage self message'
+             transfer')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope.onmessage Mozilla DedicatedWorkerGlobalScope.onmessage documentation> 
 message :: EventName DedicatedWorkerGlobalScope MessageEvent
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DelayNode.hs b/src/GHCJS/DOM/JSFFI/Generated/DelayNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DelayNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DelayNode.hs
@@ -4,14 +4,13 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DelayNode
-       (js_getDelayTime, getDelayTime, getDelayTimeUnsafe,
-        getDelayTimeUnchecked, DelayNode(..), gTypeDelayNode)
+       (js_getDelayTime, getDelayTime, DelayNode(..), gTypeDelayNode)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,28 +19,15 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"delayTime\"]"
-        js_getDelayTime :: DelayNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DelayNode.delayTime Mozilla DelayNode.delayTime documentation> 
-getDelayTime :: (MonadIO m) => DelayNode -> m (Maybe AudioParam)
-getDelayTime self
-  = liftIO (nullableToMaybe <$> (js_getDelayTime (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DelayNode.delayTime Mozilla DelayNode.delayTime documentation> 
-getDelayTimeUnsafe ::
-                   (MonadIO m, HasCallStack) => DelayNode -> m AudioParam
-getDelayTimeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDelayTime (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getDelayTime :: DelayNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DelayNode.delayTime Mozilla DelayNode.delayTime documentation> 
-getDelayTimeUnchecked :: (MonadIO m) => DelayNode -> m AudioParam
-getDelayTimeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getDelayTime (self)))
+getDelayTime :: (MonadIO m) => DelayNode -> m AudioParam
+getDelayTime self = liftIO (js_getDelayTime self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DeviceMotionEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/DeviceMotionEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DeviceMotionEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DeviceMotionEvent.hs
@@ -11,14 +11,15 @@
         getAccelerationIncludingGravityUnsafe,
         getAccelerationIncludingGravityUnchecked, js_getRotationRate,
         getRotationRate, getRotationRateUnsafe, getRotationRateUnchecked,
-        js_getInterval, getInterval, DeviceMotionEvent(..),
+        js_getInterval, getInterval, getIntervalUnsafe,
+        getIntervalUnchecked, DeviceMotionEvent(..),
         gTypeDeviceMotionEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,6 +28,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -36,34 +38,31 @@
         "$1[\"initDeviceMotionEvent\"]($2,\n$3, $4, $5, $6, $7, $8)"
         js_initDeviceMotionEvent ::
         DeviceMotionEvent ->
-          JSString ->
+          Optional JSString ->
             Bool ->
               Bool ->
-                Nullable Acceleration ->
-                  Nullable Acceleration -> Nullable RotationRate -> Double -> IO ()
+                Optional Acceleration ->
+                  Optional Acceleration ->
+                    Optional RotationRate -> Optional Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.initDeviceMotionEvent Mozilla DeviceMotionEvent.initDeviceMotionEvent documentation> 
 initDeviceMotionEvent ::
-                      (MonadIO m, ToJSString type', IsAcceleration acceleration,
-                       IsAcceleration accelerationIncludingGravity,
-                       IsRotationRate rotationRate) =>
+                      (MonadIO m, ToJSString type') =>
                         DeviceMotionEvent ->
-                          type' ->
+                          Maybe type' ->
                             Bool ->
                               Bool ->
-                                Maybe acceleration ->
-                                  Maybe accelerationIncludingGravity ->
-                                    Maybe rotationRate -> Double -> m ()
+                                Maybe Acceleration ->
+                                  Maybe Acceleration -> Maybe RotationRate -> Maybe Double -> m ()
 initDeviceMotionEvent self type' bubbles cancelable acceleration
   accelerationIncludingGravity rotationRate interval
   = liftIO
-      (js_initDeviceMotionEvent (self) (toJSString type') bubbles
+      (js_initDeviceMotionEvent self (toOptionalJSString type') bubbles
          cancelable
-         (maybeToNullable (fmap toAcceleration acceleration))
-         (maybeToNullable
-            (fmap toAcceleration accelerationIncludingGravity))
-         (maybeToNullable (fmap toRotationRate rotationRate))
-         interval)
+         (maybeToOptional acceleration)
+         (maybeToOptional accelerationIncludingGravity)
+         (maybeToOptional rotationRate)
+         (maybeToOptional interval))
  
 foreign import javascript unsafe "$1[\"acceleration\"]"
         js_getAcceleration ::
@@ -73,22 +72,21 @@
 getAcceleration ::
                 (MonadIO m) => DeviceMotionEvent -> m (Maybe Acceleration)
 getAcceleration self
-  = liftIO (nullableToMaybe <$> (js_getAcceleration (self)))
+  = liftIO (nullableToMaybe <$> (js_getAcceleration self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.acceleration Mozilla DeviceMotionEvent.acceleration documentation> 
 getAccelerationUnsafe ::
                       (MonadIO m, HasCallStack) => DeviceMotionEvent -> m Acceleration
 getAccelerationUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getAcceleration (self))) >>=
+      ((nullableToMaybe <$> (js_getAcceleration self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.acceleration Mozilla DeviceMotionEvent.acceleration documentation> 
 getAccelerationUnchecked ::
                          (MonadIO m) => DeviceMotionEvent -> m Acceleration
 getAccelerationUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getAcceleration (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getAcceleration self))
  
 foreign import javascript unsafe
         "$1[\"accelerationIncludingGravity\"]"
@@ -100,7 +98,7 @@
                                 (MonadIO m) => DeviceMotionEvent -> m (Maybe Acceleration)
 getAccelerationIncludingGravity self
   = liftIO
-      (nullableToMaybe <$> (js_getAccelerationIncludingGravity (self)))
+      (nullableToMaybe <$> (js_getAccelerationIncludingGravity self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.accelerationIncludingGravity Mozilla DeviceMotionEvent.accelerationIncludingGravity documentation> 
 getAccelerationIncludingGravityUnsafe ::
@@ -108,7 +106,7 @@
                                         DeviceMotionEvent -> m Acceleration
 getAccelerationIncludingGravityUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getAccelerationIncludingGravity (self)))
+      ((nullableToMaybe <$> (js_getAccelerationIncludingGravity self))
          >>= maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.accelerationIncludingGravity Mozilla DeviceMotionEvent.accelerationIncludingGravity documentation> 
@@ -117,7 +115,7 @@
 getAccelerationIncludingGravityUnchecked self
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_getAccelerationIncludingGravity (self)))
+         (js_getAccelerationIncludingGravity self))
  
 foreign import javascript unsafe "$1[\"rotationRate\"]"
         js_getRotationRate ::
@@ -127,26 +125,40 @@
 getRotationRate ::
                 (MonadIO m) => DeviceMotionEvent -> m (Maybe RotationRate)
 getRotationRate self
-  = liftIO (nullableToMaybe <$> (js_getRotationRate (self)))
+  = liftIO (nullableToMaybe <$> (js_getRotationRate self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.rotationRate Mozilla DeviceMotionEvent.rotationRate documentation> 
 getRotationRateUnsafe ::
                       (MonadIO m, HasCallStack) => DeviceMotionEvent -> m RotationRate
 getRotationRateUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getRotationRate (self))) >>=
+      ((nullableToMaybe <$> (js_getRotationRate self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.rotationRate Mozilla DeviceMotionEvent.rotationRate documentation> 
 getRotationRateUnchecked ::
                          (MonadIO m) => DeviceMotionEvent -> m RotationRate
 getRotationRateUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRotationRate (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getRotationRate self))
  
 foreign import javascript unsafe "$1[\"interval\"]" js_getInterval
-        :: DeviceMotionEvent -> IO Double
+        :: DeviceMotionEvent -> IO (Nullable Double)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.interval Mozilla DeviceMotionEvent.interval documentation> 
-getInterval :: (MonadIO m) => DeviceMotionEvent -> m Double
-getInterval self = liftIO (js_getInterval (self))
+getInterval :: (MonadIO m) => DeviceMotionEvent -> m (Maybe Double)
+getInterval self
+  = liftIO (nullableToMaybe <$> (js_getInterval self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.interval Mozilla DeviceMotionEvent.interval documentation> 
+getIntervalUnsafe ::
+                  (MonadIO m, HasCallStack) => DeviceMotionEvent -> m Double
+getIntervalUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getInterval self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.interval Mozilla DeviceMotionEvent.interval documentation> 
+getIntervalUnchecked ::
+                     (MonadIO m) => DeviceMotionEvent -> m Double
+getIntervalUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getInterval self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DeviceOrientationEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/DeviceOrientationEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DeviceOrientationEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DeviceOrientationEvent.hs
@@ -5,15 +5,17 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DeviceOrientationEvent
        (js_initDeviceOrientationEvent, initDeviceOrientationEvent,
-        js_getAlpha, getAlpha, js_getBeta, getBeta, js_getGamma, getGamma,
-        js_getAbsolute, getAbsolute, DeviceOrientationEvent(..),
-        gTypeDeviceOrientationEvent)
+        js_getAlpha, getAlpha, getAlphaUnsafe, getAlphaUnchecked,
+        js_getBeta, getBeta, getBetaUnsafe, getBetaUnchecked, js_getGamma,
+        getGamma, getGammaUnsafe, getGammaUnchecked, js_getAbsolute,
+        getAbsolute, getAbsoluteUnsafe, getAbsoluteUnchecked,
+        DeviceOrientationEvent(..), gTypeDeviceOrientationEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,48 +34,117 @@
         "$1[\"initDeviceOrientationEvent\"]($2,\n$3, $4, $5, $6, $7, $8)"
         js_initDeviceOrientationEvent ::
         DeviceOrientationEvent ->
-          JSString ->
-            Bool -> Bool -> Double -> Double -> Double -> Bool -> IO ()
+          Optional JSString ->
+            Bool ->
+              Bool ->
+                Optional Double ->
+                  Optional Double -> Optional Double -> Optional Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.initDeviceOrientationEvent Mozilla DeviceOrientationEvent.initDeviceOrientationEvent documentation> 
 initDeviceOrientationEvent ::
                            (MonadIO m, ToJSString type') =>
                              DeviceOrientationEvent ->
-                               type' -> Bool -> Bool -> Double -> Double -> Double -> Bool -> m ()
+                               Maybe type' ->
+                                 Bool ->
+                                   Bool ->
+                                     Maybe Double ->
+                                       Maybe Double -> Maybe Double -> Maybe Bool -> m ()
 initDeviceOrientationEvent self type' bubbles cancelable alpha beta
   gamma absolute
   = liftIO
-      (js_initDeviceOrientationEvent (self) (toJSString type') bubbles
+      (js_initDeviceOrientationEvent self (toOptionalJSString type')
+         bubbles
          cancelable
-         alpha
-         beta
-         gamma
-         absolute)
+         (maybeToOptional alpha)
+         (maybeToOptional beta)
+         (maybeToOptional gamma)
+         (maybeToOptional absolute))
  
 foreign import javascript unsafe "$1[\"alpha\"]" js_getAlpha ::
-        DeviceOrientationEvent -> IO Double
+        DeviceOrientationEvent -> IO (Nullable Double)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.alpha Mozilla DeviceOrientationEvent.alpha documentation> 
-getAlpha :: (MonadIO m) => DeviceOrientationEvent -> m Double
-getAlpha self = liftIO (js_getAlpha (self))
+getAlpha ::
+         (MonadIO m) => DeviceOrientationEvent -> m (Maybe Double)
+getAlpha self = liftIO (nullableToMaybe <$> (js_getAlpha self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.alpha Mozilla DeviceOrientationEvent.alpha documentation> 
+getAlphaUnsafe ::
+               (MonadIO m, HasCallStack) => DeviceOrientationEvent -> m Double
+getAlphaUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getAlpha self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.alpha Mozilla DeviceOrientationEvent.alpha documentation> 
+getAlphaUnchecked ::
+                  (MonadIO m) => DeviceOrientationEvent -> m Double
+getAlphaUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getAlpha self))
  
 foreign import javascript unsafe "$1[\"beta\"]" js_getBeta ::
-        DeviceOrientationEvent -> IO Double
+        DeviceOrientationEvent -> IO (Nullable Double)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.beta Mozilla DeviceOrientationEvent.beta documentation> 
-getBeta :: (MonadIO m) => DeviceOrientationEvent -> m Double
-getBeta self = liftIO (js_getBeta (self))
+getBeta ::
+        (MonadIO m) => DeviceOrientationEvent -> m (Maybe Double)
+getBeta self = liftIO (nullableToMaybe <$> (js_getBeta self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.beta Mozilla DeviceOrientationEvent.beta documentation> 
+getBetaUnsafe ::
+              (MonadIO m, HasCallStack) => DeviceOrientationEvent -> m Double
+getBetaUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getBeta self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.beta Mozilla DeviceOrientationEvent.beta documentation> 
+getBetaUnchecked ::
+                 (MonadIO m) => DeviceOrientationEvent -> m Double
+getBetaUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getBeta self))
  
 foreign import javascript unsafe "$1[\"gamma\"]" js_getGamma ::
-        DeviceOrientationEvent -> IO Double
+        DeviceOrientationEvent -> IO (Nullable Double)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.gamma Mozilla DeviceOrientationEvent.gamma documentation> 
-getGamma :: (MonadIO m) => DeviceOrientationEvent -> m Double
-getGamma self = liftIO (js_getGamma (self))
+getGamma ::
+         (MonadIO m) => DeviceOrientationEvent -> m (Maybe Double)
+getGamma self = liftIO (nullableToMaybe <$> (js_getGamma self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.gamma Mozilla DeviceOrientationEvent.gamma documentation> 
+getGammaUnsafe ::
+               (MonadIO m, HasCallStack) => DeviceOrientationEvent -> m Double
+getGammaUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getGamma self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.gamma Mozilla DeviceOrientationEvent.gamma documentation> 
+getGammaUnchecked ::
+                  (MonadIO m) => DeviceOrientationEvent -> m Double
+getGammaUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getGamma self))
  
-foreign import javascript unsafe "($1[\"absolute\"] ? 1 : 0)"
-        js_getAbsolute :: DeviceOrientationEvent -> IO Bool
+foreign import javascript unsafe "$1[\"absolute\"]" js_getAbsolute
+        :: DeviceOrientationEvent -> IO (Nullable Bool)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.absolute Mozilla DeviceOrientationEvent.absolute documentation> 
-getAbsolute :: (MonadIO m) => DeviceOrientationEvent -> m Bool
-getAbsolute self = liftIO (js_getAbsolute (self))
+getAbsolute ::
+            (MonadIO m) => DeviceOrientationEvent -> m (Maybe Bool)
+getAbsolute self
+  = liftIO (nullableToMaybe <$> (js_getAbsolute self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.absolute Mozilla DeviceOrientationEvent.absolute documentation> 
+getAbsoluteUnsafe ::
+                  (MonadIO m, HasCallStack) => DeviceOrientationEvent -> m Bool
+getAbsoluteUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getAbsolute self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent.absolute Mozilla DeviceOrientationEvent.absolute documentation> 
+getAbsoluteUnchecked ::
+                     (MonadIO m) => DeviceOrientationEvent -> m Bool
+getAbsoluteUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getAbsolute self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DeviceProximityEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/DeviceProximityEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DeviceProximityEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DeviceProximityEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DeviceProximityEvent
-       (js_getValue, getValue, js_getMin, getMin, js_getMax, getMax,
+       (js_newDeviceProximityEvent, newDeviceProximityEvent, js_getValue,
+        getValue, js_getMin, getMin, js_getMax, getMax,
         DeviceProximityEvent(..), gTypeDeviceProximityEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,28 +21,44 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"DeviceProximityEvent\"]($1,\n$2)"
+        js_newDeviceProximityEvent ::
+        JSString ->
+          Optional DeviceProximityEventInit -> IO DeviceProximityEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceProximityEvent Mozilla DeviceProximityEvent documentation> 
+newDeviceProximityEvent ::
+                        (MonadIO m, ToJSString type') =>
+                          type' -> Maybe DeviceProximityEventInit -> m DeviceProximityEvent
+newDeviceProximityEvent type' eventInitDict
+  = liftIO
+      (js_newDeviceProximityEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         DeviceProximityEvent -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceProximityEvent.value Mozilla DeviceProximityEvent.value documentation> 
 getValue :: (MonadIO m) => DeviceProximityEvent -> m Double
-getValue self = liftIO (js_getValue (self))
+getValue self = liftIO (js_getValue self)
  
 foreign import javascript unsafe "$1[\"min\"]" js_getMin ::
         DeviceProximityEvent -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceProximityEvent.min Mozilla DeviceProximityEvent.min documentation> 
 getMin :: (MonadIO m) => DeviceProximityEvent -> m Double
-getMin self = liftIO (js_getMin (self))
+getMin self = liftIO (js_getMin self)
  
 foreign import javascript unsafe "$1[\"max\"]" js_getMax ::
         DeviceProximityEvent -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DeviceProximityEvent.max Mozilla DeviceProximityEvent.max documentation> 
 getMax :: (MonadIO m) => DeviceProximityEvent -> m Double
-getMax self = liftIO (js_getMax (self))
+getMax self = liftIO (js_getMax self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Document.hs b/src/GHCJS/DOM/JSFFI/Generated/Document.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Document.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Document.hs
@@ -4,3342 +4,1848 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Document
-       (js_newDocument, newDocument, js_createElement, createElement,
-        createElement_, createElementUnsafe, createElementUnchecked,
-        js_createDocumentFragment, createDocumentFragment,
-        createDocumentFragment_, createDocumentFragmentUnsafe,
-        createDocumentFragmentUnchecked, js_createTextNode, createTextNode,
-        createTextNode_, createTextNodeUnsafe, createTextNodeUnchecked,
-        js_createComment, createComment, createComment_,
-        createCommentUnsafe, createCommentUnchecked, js_createCDATASection,
-        createCDATASection, createCDATASection_, createCDATASectionUnsafe,
-        createCDATASectionUnchecked, js_createProcessingInstruction,
-        createProcessingInstruction, createProcessingInstruction_,
-        createProcessingInstructionUnsafe,
-        createProcessingInstructionUnchecked, js_createAttribute,
-        createAttribute, createAttribute_, createAttributeUnsafe,
-        createAttributeUnchecked, js_createEntityReference,
-        createEntityReference, createEntityReference_,
-        createEntityReferenceUnsafe, createEntityReferenceUnchecked,
-        js_getElementsByTagName, getElementsByTagName,
-        getElementsByTagName_, getElementsByTagNameUnsafe,
-        getElementsByTagNameUnchecked, js_importNode, importNode,
-        importNode_, importNodeUnsafe, importNodeUnchecked,
-        js_createElementNS, createElementNS, createElementNS_,
-        createElementNSUnsafe, createElementNSUnchecked,
-        js_createAttributeNS, createAttributeNS, createAttributeNS_,
-        createAttributeNSUnsafe, createAttributeNSUnchecked,
-        js_getElementsByTagNameNS, getElementsByTagNameNS,
-        getElementsByTagNameNS_, getElementsByTagNameNSUnsafe,
-        getElementsByTagNameNSUnchecked, js_getElementById, getElementById,
-        getElementById_, getElementByIdUnsafe, getElementByIdUnchecked,
-        js_adoptNode, adoptNode, adoptNode_, adoptNodeUnsafe,
-        adoptNodeUnchecked, js_createEvent, createEvent, createEvent_,
-        createEventUnsafe, createEventUnchecked, js_createRange,
-        createRange, createRange_, createRangeUnsafe, createRangeUnchecked,
-        js_createNodeIterator, createNodeIterator, createNodeIterator_,
-        createNodeIteratorUnsafe, createNodeIteratorUnchecked,
-        js_createTreeWalker, createTreeWalker, createTreeWalker_,
-        createTreeWalkerUnsafe, createTreeWalkerUnchecked,
-        js_getOverrideStyle, getOverrideStyle, getOverrideStyle_,
-        getOverrideStyleUnsafe, getOverrideStyleUnchecked,
-        js_createExpression, createExpression, createExpression_,
-        createExpressionUnsafe, createExpressionUnchecked,
-        js_createNSResolver, createNSResolver, createNSResolver_,
-        createNSResolverUnsafe, createNSResolverUnchecked, js_evaluate,
-        evaluate, evaluate_, evaluateUnsafe, evaluateUnchecked,
-        js_execCommand, execCommand, execCommand_, js_queryCommandEnabled,
-        queryCommandEnabled, queryCommandEnabled_, js_queryCommandIndeterm,
-        queryCommandIndeterm, queryCommandIndeterm_, js_queryCommandState,
-        queryCommandState, queryCommandState_, js_queryCommandSupported,
-        queryCommandSupported, queryCommandSupported_,
-        js_queryCommandValue, queryCommandValue, queryCommandValue_,
-        js_getElementsByName, getElementsByName, getElementsByName_,
-        getElementsByNameUnsafe, getElementsByNameUnchecked,
-        js_elementFromPoint, elementFromPoint, elementFromPoint_,
-        elementFromPointUnsafe, elementFromPointUnchecked,
-        js_caretRangeFromPoint, caretRangeFromPoint, caretRangeFromPoint_,
-        caretRangeFromPointUnsafe, caretRangeFromPointUnchecked,
-        js_getSelection, getSelection, getSelection_, getSelectionUnsafe,
-        getSelectionUnchecked, js_getCSSCanvasContext, getCSSCanvasContext,
-        getCSSCanvasContext_, getCSSCanvasContextUnsafe,
-        getCSSCanvasContextUnchecked, js_getElementsByClassName,
-        getElementsByClassName, getElementsByClassName_,
-        getElementsByClassNameUnsafe, getElementsByClassNameUnchecked,
-        js_hasFocus, hasFocus, hasFocus_, js_querySelector, querySelector,
-        querySelector_, querySelectorUnsafe, querySelectorUnchecked,
-        js_querySelectorAll, querySelectorAll, querySelectorAll_,
-        querySelectorAllUnsafe, querySelectorAllUnchecked,
-        js_webkitCancelFullScreen, webkitCancelFullScreen,
-        js_webkitExitFullscreen, webkitExitFullscreen, js_exitPointerLock,
-        exitPointerLock, js_webkitGetNamedFlows, webkitGetNamedFlows,
-        webkitGetNamedFlows_, webkitGetNamedFlowsUnsafe,
-        webkitGetNamedFlowsUnchecked, js_createTouch, createTouch,
-        createTouch_, createTouchUnsafe, createTouchUnchecked,
-        js_createTouchList, createTouchList, createTouchList_,
-        createTouchListUnsafe, createTouchListUnchecked, js_getDoctype,
-        getDoctype, getDoctypeUnsafe, getDoctypeUnchecked,
-        js_getImplementation, getImplementation, getImplementationUnsafe,
-        getImplementationUnchecked, js_getDocumentElement,
-        getDocumentElement, getDocumentElementUnsafe,
-        getDocumentElementUnchecked, js_getInputEncoding, getInputEncoding,
-        getInputEncodingUnsafe, getInputEncodingUnchecked,
-        js_getXmlEncoding, getXmlEncoding, getXmlEncodingUnsafe,
-        getXmlEncodingUnchecked, js_setXmlVersion, setXmlVersion,
-        js_getXmlVersion, getXmlVersion, getXmlVersionUnsafe,
-        getXmlVersionUnchecked, js_setXmlStandalone, setXmlStandalone,
-        js_getXmlStandalone, getXmlStandalone, js_getDocumentURI,
-        getDocumentURI, getDocumentURIUnsafe, getDocumentURIUnchecked,
-        js_getDefaultView, getDefaultView, getDefaultViewUnsafe,
-        getDefaultViewUnchecked, js_getStyleSheets, getStyleSheets,
-        getStyleSheetsUnsafe, getStyleSheetsUnchecked, js_getContentType,
-        getContentType, js_setTitle, setTitle, js_getTitle, getTitle,
-        getTitleUnsafe, getTitleUnchecked, js_getReferrer, getReferrer,
-        js_setDomain, setDomain, js_getDomain, getDomain, getDomainUnsafe,
-        getDomainUnchecked, js_getURL, getURL, js_setCookie, setCookie,
-        js_getCookie, getCookie, getCookieUnsafe, getCookieUnchecked,
-        js_setBody, setBody, js_getBody, getBody, getBodyUnsafe,
-        getBodyUnchecked, js_getHead, getHead, getHeadUnsafe,
-        getHeadUnchecked, js_getImages, getImages, getImagesUnsafe,
-        getImagesUnchecked, js_getApplets, getApplets, getAppletsUnsafe,
-        getAppletsUnchecked, js_getLinks, getLinks, getLinksUnsafe,
-        getLinksUnchecked, js_getForms, getForms, getFormsUnsafe,
-        getFormsUnchecked, js_getAnchors, getAnchors, getAnchorsUnsafe,
-        getAnchorsUnchecked, js_getLastModified, getLastModified,
-        js_setLocation, setLocation, js_getLocation, getLocation,
-        getLocationUnsafe, getLocationUnchecked, js_setCharset, setCharset,
-        js_getCharset, getCharset, getCharsetUnsafe, getCharsetUnchecked,
-        js_getDefaultCharset, getDefaultCharset, getDefaultCharsetUnsafe,
-        getDefaultCharsetUnchecked, js_getReadyState, getReadyState,
-        getReadyStateUnsafe, getReadyStateUnchecked, js_getCharacterSet,
-        getCharacterSet, getCharacterSetUnsafe, getCharacterSetUnchecked,
-        js_getPreferredStylesheetSet, getPreferredStylesheetSet,
-        getPreferredStylesheetSetUnsafe,
-        getPreferredStylesheetSetUnchecked, js_setSelectedStylesheetSet,
-        setSelectedStylesheetSet, js_getSelectedStylesheetSet,
-        getSelectedStylesheetSet, getSelectedStylesheetSetUnsafe,
-        getSelectedStylesheetSetUnchecked, js_getActiveElement,
-        getActiveElement, getActiveElementUnsafe,
-        getActiveElementUnchecked, js_getCompatMode, getCompatMode,
-        js_getWebkitIsFullScreen, getWebkitIsFullScreen,
-        js_getWebkitFullScreenKeyboardInputAllowed,
-        getWebkitFullScreenKeyboardInputAllowed,
-        js_getWebkitCurrentFullScreenElement,
-        getWebkitCurrentFullScreenElement,
-        getWebkitCurrentFullScreenElementUnsafe,
-        getWebkitCurrentFullScreenElementUnchecked,
-        js_getWebkitFullscreenEnabled, getWebkitFullscreenEnabled,
-        js_getWebkitFullscreenElement, getWebkitFullscreenElement,
-        getWebkitFullscreenElementUnsafe,
-        getWebkitFullscreenElementUnchecked, js_getPointerLockElement,
-        getPointerLockElement, getPointerLockElementUnsafe,
-        getPointerLockElementUnchecked, js_getFonts, getFonts,
-        getFontsUnsafe, getFontsUnchecked, abort, blur, change, click,
-        contextMenu, dblClick, drag, dragEnd, dragEnter, dragLeave,
-        dragOver, dragStart, drop, error, focus, input, invalid, keyDown,
-        keyPress, keyUp, load, mouseDown, mouseEnter, mouseLeave,
-        mouseMove, mouseOut, mouseOver, mouseUp, mouseWheel,
-        readyStateChange, scroll, select, submit, wheel, beforeCut, cut,
-        beforeCopy, copy, beforePaste, paste, reset, search, selectStart,
-        selectionchange, touchStart, touchMove, touchEnd, touchCancel,
-        webKitFullscreenChange, webKitFullscreenError, pointerlockchange,
-        pointerlockerror, securitypolicyviolation, webKitWillRevealBottom,
-        webKitWillRevealLeft, webKitWillRevealRight, webKitWillRevealTop,
-        js_getVisibilityState, getVisibilityState, js_getHidden, getHidden,
-        js_getSecurityPolicy, getSecurityPolicy, getSecurityPolicyUnsafe,
-        getSecurityPolicyUnchecked, js_getCurrentScript, getCurrentScript,
-        getCurrentScriptUnsafe, getCurrentScriptUnchecked, js_getOrigin,
-        getOrigin, Document(..), gTypeDocument, IsDocument, toDocument)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "new window[\"Document\"]()"
-        js_newDocument :: IO Document
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document Mozilla Document documentation> 
-newDocument :: (MonadIO m) => m Document
-newDocument = liftIO (js_newDocument)
- 
-foreign import javascript unsafe "$1[\"createElement\"]($2)"
-        js_createElement ::
-        Document -> Nullable JSString -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElement Mozilla Document.createElement documentation> 
-createElement ::
-              (MonadIO m, IsDocument self, ToJSString tagName) =>
-                self -> Maybe tagName -> m (Maybe Element)
-createElement self tagName
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createElement (toDocument self) (toMaybeJSString tagName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElement Mozilla Document.createElement documentation> 
-createElement_ ::
-               (MonadIO m, IsDocument self, ToJSString tagName) =>
-                 self -> Maybe tagName -> m ()
-createElement_ self tagName
-  = liftIO
-      (void
-         (js_createElement (toDocument self) (toMaybeJSString tagName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElement Mozilla Document.createElement documentation> 
-createElementUnsafe ::
-                    (MonadIO m, IsDocument self, ToJSString tagName, HasCallStack) =>
-                      self -> Maybe tagName -> m Element
-createElementUnsafe self tagName
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createElement (toDocument self) (toMaybeJSString tagName)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElement Mozilla Document.createElement documentation> 
-createElementUnchecked ::
-                       (MonadIO m, IsDocument self, ToJSString tagName) =>
-                         self -> Maybe tagName -> m Element
-createElementUnchecked self tagName
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createElement (toDocument self) (toMaybeJSString tagName)))
- 
-foreign import javascript unsafe "$1[\"createDocumentFragment\"]()"
-        js_createDocumentFragment ::
-        Document -> IO (Nullable DocumentFragment)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createDocumentFragment Mozilla Document.createDocumentFragment documentation> 
-createDocumentFragment ::
-                       (MonadIO m, IsDocument self) => self -> m (Maybe DocumentFragment)
-createDocumentFragment self
-  = liftIO
-      (nullableToMaybe <$> (js_createDocumentFragment (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createDocumentFragment Mozilla Document.createDocumentFragment documentation> 
-createDocumentFragment_ ::
-                        (MonadIO m, IsDocument self) => self -> m ()
-createDocumentFragment_ self
-  = liftIO (void (js_createDocumentFragment (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createDocumentFragment Mozilla Document.createDocumentFragment documentation> 
-createDocumentFragmentUnsafe ::
-                             (MonadIO m, IsDocument self, HasCallStack) =>
-                               self -> m DocumentFragment
-createDocumentFragmentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createDocumentFragment (toDocument self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createDocumentFragment Mozilla Document.createDocumentFragment documentation> 
-createDocumentFragmentUnchecked ::
-                                (MonadIO m, IsDocument self) => self -> m DocumentFragment
-createDocumentFragmentUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createDocumentFragment (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"createTextNode\"]($2)"
-        js_createTextNode :: Document -> JSString -> IO (Nullable Text)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTextNode Mozilla Document.createTextNode documentation> 
-createTextNode ::
-               (MonadIO m, IsDocument self, ToJSString data') =>
-                 self -> data' -> m (Maybe Text)
-createTextNode self data'
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createTextNode (toDocument self) (toJSString data')))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTextNode Mozilla Document.createTextNode documentation> 
-createTextNode_ ::
-                (MonadIO m, IsDocument self, ToJSString data') =>
-                  self -> data' -> m ()
-createTextNode_ self data'
-  = liftIO
-      (void (js_createTextNode (toDocument self) (toJSString data')))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTextNode Mozilla Document.createTextNode documentation> 
-createTextNodeUnsafe ::
-                     (MonadIO m, IsDocument self, ToJSString data', HasCallStack) =>
-                       self -> data' -> m Text
-createTextNodeUnsafe self data'
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createTextNode (toDocument self) (toJSString data')))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTextNode Mozilla Document.createTextNode documentation> 
-createTextNodeUnchecked ::
-                        (MonadIO m, IsDocument self, ToJSString data') =>
-                          self -> data' -> m Text
-createTextNodeUnchecked self data'
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createTextNode (toDocument self) (toJSString data')))
- 
-foreign import javascript unsafe "$1[\"createComment\"]($2)"
-        js_createComment :: Document -> JSString -> IO (Nullable Comment)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createComment Mozilla Document.createComment documentation> 
-createComment ::
-              (MonadIO m, IsDocument self, ToJSString data') =>
-                self -> data' -> m (Maybe Comment)
-createComment self data'
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createComment (toDocument self) (toJSString data')))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createComment Mozilla Document.createComment documentation> 
-createComment_ ::
-               (MonadIO m, IsDocument self, ToJSString data') =>
-                 self -> data' -> m ()
-createComment_ self data'
-  = liftIO
-      (void (js_createComment (toDocument self) (toJSString data')))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createComment Mozilla Document.createComment documentation> 
-createCommentUnsafe ::
-                    (MonadIO m, IsDocument self, ToJSString data', HasCallStack) =>
-                      self -> data' -> m Comment
-createCommentUnsafe self data'
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createComment (toDocument self) (toJSString data')))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createComment Mozilla Document.createComment documentation> 
-createCommentUnchecked ::
-                       (MonadIO m, IsDocument self, ToJSString data') =>
-                         self -> data' -> m Comment
-createCommentUnchecked self data'
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createComment (toDocument self) (toJSString data')))
- 
-foreign import javascript unsafe "$1[\"createCDATASection\"]($2)"
-        js_createCDATASection ::
-        Document -> JSString -> IO (Nullable CDATASection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createCDATASection Mozilla Document.createCDATASection documentation> 
-createCDATASection ::
-                   (MonadIO m, IsDocument self, ToJSString data') =>
-                     self -> data' -> m (Maybe CDATASection)
-createCDATASection self data'
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createCDATASection (toDocument self) (toJSString data')))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createCDATASection Mozilla Document.createCDATASection documentation> 
-createCDATASection_ ::
-                    (MonadIO m, IsDocument self, ToJSString data') =>
-                      self -> data' -> m ()
-createCDATASection_ self data'
-  = liftIO
-      (void (js_createCDATASection (toDocument self) (toJSString data')))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createCDATASection Mozilla Document.createCDATASection documentation> 
-createCDATASectionUnsafe ::
-                         (MonadIO m, IsDocument self, ToJSString data', HasCallStack) =>
-                           self -> data' -> m CDATASection
-createCDATASectionUnsafe self data'
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createCDATASection (toDocument self) (toJSString data')))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createCDATASection Mozilla Document.createCDATASection documentation> 
-createCDATASectionUnchecked ::
-                            (MonadIO m, IsDocument self, ToJSString data') =>
-                              self -> data' -> m CDATASection
-createCDATASectionUnchecked self data'
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createCDATASection (toDocument self) (toJSString data')))
- 
-foreign import javascript unsafe
-        "$1[\"createProcessingInstruction\"]($2,\n$3)"
-        js_createProcessingInstruction ::
-        Document ->
-          JSString -> JSString -> IO (Nullable ProcessingInstruction)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createProcessingInstruction Mozilla Document.createProcessingInstruction documentation> 
-createProcessingInstruction ::
-                            (MonadIO m, IsDocument self, ToJSString target,
-                             ToJSString data') =>
-                              self -> target -> data' -> m (Maybe ProcessingInstruction)
-createProcessingInstruction self target data'
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createProcessingInstruction (toDocument self)
-            (toJSString target)
-            (toJSString data')))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createProcessingInstruction Mozilla Document.createProcessingInstruction documentation> 
-createProcessingInstruction_ ::
-                             (MonadIO m, IsDocument self, ToJSString target,
-                              ToJSString data') =>
-                               self -> target -> data' -> m ()
-createProcessingInstruction_ self target data'
-  = liftIO
-      (void
-         (js_createProcessingInstruction (toDocument self)
-            (toJSString target)
-            (toJSString data')))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createProcessingInstruction Mozilla Document.createProcessingInstruction documentation> 
-createProcessingInstructionUnsafe ::
-                                  (MonadIO m, IsDocument self, ToJSString target, ToJSString data',
-                                   HasCallStack) =>
-                                    self -> target -> data' -> m ProcessingInstruction
-createProcessingInstructionUnsafe self target data'
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createProcessingInstruction (toDocument self)
-             (toJSString target)
-             (toJSString data')))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createProcessingInstruction Mozilla Document.createProcessingInstruction documentation> 
-createProcessingInstructionUnchecked ::
-                                     (MonadIO m, IsDocument self, ToJSString target,
-                                      ToJSString data') =>
-                                       self -> target -> data' -> m ProcessingInstruction
-createProcessingInstructionUnchecked self target data'
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createProcessingInstruction (toDocument self)
-            (toJSString target)
-            (toJSString data')))
- 
-foreign import javascript unsafe "$1[\"createAttribute\"]($2)"
-        js_createAttribute :: Document -> JSString -> IO (Nullable Attr)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttribute Mozilla Document.createAttribute documentation> 
-createAttribute ::
-                (MonadIO m, IsDocument self, ToJSString name) =>
-                  self -> name -> m (Maybe Attr)
-createAttribute self name
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createAttribute (toDocument self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttribute Mozilla Document.createAttribute documentation> 
-createAttribute_ ::
-                 (MonadIO m, IsDocument self, ToJSString name) =>
-                   self -> name -> m ()
-createAttribute_ self name
-  = liftIO
-      (void (js_createAttribute (toDocument self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttribute Mozilla Document.createAttribute documentation> 
-createAttributeUnsafe ::
-                      (MonadIO m, IsDocument self, ToJSString name, HasCallStack) =>
-                        self -> name -> m Attr
-createAttributeUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createAttribute (toDocument self) (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttribute Mozilla Document.createAttribute documentation> 
-createAttributeUnchecked ::
-                         (MonadIO m, IsDocument self, ToJSString name) =>
-                           self -> name -> m Attr
-createAttributeUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createAttribute (toDocument self) (toJSString name)))
- 
-foreign import javascript unsafe
-        "$1[\"createEntityReference\"]($2)" js_createEntityReference ::
-        Document -> JSString -> IO (Nullable EntityReference)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createEntityReference Mozilla Document.createEntityReference documentation> 
-createEntityReference ::
-                      (MonadIO m, IsDocument self, ToJSString name) =>
-                        self -> name -> m (Maybe EntityReference)
-createEntityReference self name
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createEntityReference (toDocument self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createEntityReference Mozilla Document.createEntityReference documentation> 
-createEntityReference_ ::
-                       (MonadIO m, IsDocument self, ToJSString name) =>
-                         self -> name -> m ()
-createEntityReference_ self name
-  = liftIO
-      (void
-         (js_createEntityReference (toDocument self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createEntityReference Mozilla Document.createEntityReference documentation> 
-createEntityReferenceUnsafe ::
-                            (MonadIO m, IsDocument self, ToJSString name, HasCallStack) =>
-                              self -> name -> m EntityReference
-createEntityReferenceUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createEntityReference (toDocument self) (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createEntityReference Mozilla Document.createEntityReference documentation> 
-createEntityReferenceUnchecked ::
-                               (MonadIO m, IsDocument self, ToJSString name) =>
-                                 self -> name -> m EntityReference
-createEntityReferenceUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createEntityReference (toDocument self) (toJSString name)))
- 
-foreign import javascript unsafe "$1[\"getElementsByTagName\"]($2)"
-        js_getElementsByTagName ::
-        Document -> JSString -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagName Mozilla Document.getElementsByTagName documentation> 
-getElementsByTagName ::
-                     (MonadIO m, IsDocument self, ToJSString tagname) =>
-                       self -> tagname -> m (Maybe NodeList)
-getElementsByTagName self tagname
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getElementsByTagName (toDocument self) (toJSString tagname)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagName Mozilla Document.getElementsByTagName documentation> 
-getElementsByTagName_ ::
-                      (MonadIO m, IsDocument self, ToJSString tagname) =>
-                        self -> tagname -> m ()
-getElementsByTagName_ self tagname
-  = liftIO
-      (void
-         (js_getElementsByTagName (toDocument self) (toJSString tagname)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagName Mozilla Document.getElementsByTagName documentation> 
-getElementsByTagNameUnsafe ::
-                           (MonadIO m, IsDocument self, ToJSString tagname, HasCallStack) =>
-                             self -> tagname -> m NodeList
-getElementsByTagNameUnsafe self tagname
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getElementsByTagName (toDocument self) (toJSString tagname)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagName Mozilla Document.getElementsByTagName documentation> 
-getElementsByTagNameUnchecked ::
-                              (MonadIO m, IsDocument self, ToJSString tagname) =>
-                                self -> tagname -> m NodeList
-getElementsByTagNameUnchecked self tagname
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getElementsByTagName (toDocument self) (toJSString tagname)))
- 
-foreign import javascript unsafe "$1[\"importNode\"]($2, $3)"
-        js_importNode ::
-        Document -> Nullable Node -> Bool -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.importNode Mozilla Document.importNode documentation> 
-importNode ::
-           (MonadIO m, IsDocument self, IsNode importedNode) =>
-             self -> Maybe importedNode -> Bool -> m (Maybe Node)
-importNode self importedNode deep
-  = liftIO
-      (nullableToMaybe <$>
-         (js_importNode (toDocument self)
-            (maybeToNullable (fmap toNode importedNode))
-            deep))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.importNode Mozilla Document.importNode documentation> 
-importNode_ ::
-            (MonadIO m, IsDocument self, IsNode importedNode) =>
-              self -> Maybe importedNode -> Bool -> m ()
-importNode_ self importedNode deep
-  = liftIO
-      (void
-         (js_importNode (toDocument self)
-            (maybeToNullable (fmap toNode importedNode))
-            deep))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.importNode Mozilla Document.importNode documentation> 
-importNodeUnsafe ::
-                 (MonadIO m, IsDocument self, IsNode importedNode, HasCallStack) =>
-                   self -> Maybe importedNode -> Bool -> m Node
-importNodeUnsafe self importedNode deep
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_importNode (toDocument self)
-             (maybeToNullable (fmap toNode importedNode))
-             deep))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.importNode Mozilla Document.importNode documentation> 
-importNodeUnchecked ::
-                    (MonadIO m, IsDocument self, IsNode importedNode) =>
-                      self -> Maybe importedNode -> Bool -> m Node
-importNodeUnchecked self importedNode deep
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_importNode (toDocument self)
-            (maybeToNullable (fmap toNode importedNode))
-            deep))
- 
-foreign import javascript unsafe "$1[\"createElementNS\"]($2, $3)"
-        js_createElementNS ::
-        Document ->
-          Nullable JSString -> Nullable JSString -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElementNS Mozilla Document.createElementNS documentation> 
-createElementNS ::
-                (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                 ToJSString qualifiedName) =>
-                  self ->
-                    Maybe namespaceURI -> Maybe qualifiedName -> m (Maybe Element)
-createElementNS self namespaceURI qualifiedName
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createElementNS (toDocument self)
-            (toMaybeJSString namespaceURI)
-            (toMaybeJSString qualifiedName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElementNS Mozilla Document.createElementNS documentation> 
-createElementNS_ ::
-                 (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                  ToJSString qualifiedName) =>
-                   self -> Maybe namespaceURI -> Maybe qualifiedName -> m ()
-createElementNS_ self namespaceURI qualifiedName
-  = liftIO
-      (void
-         (js_createElementNS (toDocument self)
-            (toMaybeJSString namespaceURI)
-            (toMaybeJSString qualifiedName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElementNS Mozilla Document.createElementNS documentation> 
-createElementNSUnsafe ::
-                      (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                       ToJSString qualifiedName, HasCallStack) =>
-                        self -> Maybe namespaceURI -> Maybe qualifiedName -> m Element
-createElementNSUnsafe self namespaceURI qualifiedName
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createElementNS (toDocument self)
-             (toMaybeJSString namespaceURI)
-             (toMaybeJSString qualifiedName)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElementNS Mozilla Document.createElementNS documentation> 
-createElementNSUnchecked ::
-                         (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                          ToJSString qualifiedName) =>
-                           self -> Maybe namespaceURI -> Maybe qualifiedName -> m Element
-createElementNSUnchecked self namespaceURI qualifiedName
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createElementNS (toDocument self)
-            (toMaybeJSString namespaceURI)
-            (toMaybeJSString qualifiedName)))
- 
-foreign import javascript unsafe
-        "$1[\"createAttributeNS\"]($2, $3)" js_createAttributeNS ::
-        Document ->
-          Nullable JSString -> Nullable JSString -> IO (Nullable Attr)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttributeNS Mozilla Document.createAttributeNS documentation> 
-createAttributeNS ::
-                  (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                   ToJSString qualifiedName) =>
-                    self -> Maybe namespaceURI -> Maybe qualifiedName -> m (Maybe Attr)
-createAttributeNS self namespaceURI qualifiedName
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createAttributeNS (toDocument self)
-            (toMaybeJSString namespaceURI)
-            (toMaybeJSString qualifiedName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttributeNS Mozilla Document.createAttributeNS documentation> 
-createAttributeNS_ ::
-                   (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                    ToJSString qualifiedName) =>
-                     self -> Maybe namespaceURI -> Maybe qualifiedName -> m ()
-createAttributeNS_ self namespaceURI qualifiedName
-  = liftIO
-      (void
-         (js_createAttributeNS (toDocument self)
-            (toMaybeJSString namespaceURI)
-            (toMaybeJSString qualifiedName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttributeNS Mozilla Document.createAttributeNS documentation> 
-createAttributeNSUnsafe ::
-                        (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                         ToJSString qualifiedName, HasCallStack) =>
-                          self -> Maybe namespaceURI -> Maybe qualifiedName -> m Attr
-createAttributeNSUnsafe self namespaceURI qualifiedName
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createAttributeNS (toDocument self)
-             (toMaybeJSString namespaceURI)
-             (toMaybeJSString qualifiedName)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttributeNS Mozilla Document.createAttributeNS documentation> 
-createAttributeNSUnchecked ::
-                           (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                            ToJSString qualifiedName) =>
-                             self -> Maybe namespaceURI -> Maybe qualifiedName -> m Attr
-createAttributeNSUnchecked self namespaceURI qualifiedName
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createAttributeNS (toDocument self)
-            (toMaybeJSString namespaceURI)
-            (toMaybeJSString qualifiedName)))
- 
-foreign import javascript unsafe
-        "$1[\"getElementsByTagNameNS\"]($2,\n$3)" js_getElementsByTagNameNS
-        ::
-        Document -> Nullable JSString -> JSString -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagNameNS Mozilla Document.getElementsByTagNameNS documentation> 
-getElementsByTagNameNS ::
-                       (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                        ToJSString localName) =>
-                         self -> Maybe namespaceURI -> localName -> m (Maybe NodeList)
-getElementsByTagNameNS self namespaceURI localName
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getElementsByTagNameNS (toDocument self)
-            (toMaybeJSString namespaceURI)
-            (toJSString localName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagNameNS Mozilla Document.getElementsByTagNameNS documentation> 
-getElementsByTagNameNS_ ::
-                        (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                         ToJSString localName) =>
-                          self -> Maybe namespaceURI -> localName -> m ()
-getElementsByTagNameNS_ self namespaceURI localName
-  = liftIO
-      (void
-         (js_getElementsByTagNameNS (toDocument self)
-            (toMaybeJSString namespaceURI)
-            (toJSString localName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagNameNS Mozilla Document.getElementsByTagNameNS documentation> 
-getElementsByTagNameNSUnsafe ::
-                             (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                              ToJSString localName, HasCallStack) =>
-                               self -> Maybe namespaceURI -> localName -> m NodeList
-getElementsByTagNameNSUnsafe self namespaceURI localName
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getElementsByTagNameNS (toDocument self)
-             (toMaybeJSString namespaceURI)
-             (toJSString localName)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagNameNS Mozilla Document.getElementsByTagNameNS documentation> 
-getElementsByTagNameNSUnchecked ::
-                                (MonadIO m, IsDocument self, ToJSString namespaceURI,
-                                 ToJSString localName) =>
-                                  self -> Maybe namespaceURI -> localName -> m NodeList
-getElementsByTagNameNSUnchecked self namespaceURI localName
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getElementsByTagNameNS (toDocument self)
-            (toMaybeJSString namespaceURI)
-            (toJSString localName)))
- 
-foreign import javascript unsafe "$1[\"getElementById\"]($2)"
-        js_getElementById :: Document -> JSString -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementById Mozilla Document.getElementById documentation> 
-getElementById ::
-               (MonadIO m, IsDocument self, ToJSString elementId) =>
-                 self -> elementId -> m (Maybe Element)
-getElementById self elementId
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getElementById (toDocument self) (toJSString elementId)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementById Mozilla Document.getElementById documentation> 
-getElementById_ ::
-                (MonadIO m, IsDocument self, ToJSString elementId) =>
-                  self -> elementId -> m ()
-getElementById_ self elementId
-  = liftIO
-      (void (js_getElementById (toDocument self) (toJSString elementId)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementById Mozilla Document.getElementById documentation> 
-getElementByIdUnsafe ::
-                     (MonadIO m, IsDocument self, ToJSString elementId, HasCallStack) =>
-                       self -> elementId -> m Element
-getElementByIdUnsafe self elementId
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getElementById (toDocument self) (toJSString elementId)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementById Mozilla Document.getElementById documentation> 
-getElementByIdUnchecked ::
-                        (MonadIO m, IsDocument self, ToJSString elementId) =>
-                          self -> elementId -> m Element
-getElementByIdUnchecked self elementId
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getElementById (toDocument self) (toJSString elementId)))
- 
-foreign import javascript unsafe "$1[\"adoptNode\"]($2)"
-        js_adoptNode :: Document -> Nullable Node -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.adoptNode Mozilla Document.adoptNode documentation> 
-adoptNode ::
-          (MonadIO m, IsDocument self, IsNode source) =>
-            self -> Maybe source -> m (Maybe Node)
-adoptNode self source
-  = liftIO
-      (nullableToMaybe <$>
-         (js_adoptNode (toDocument self)
-            (maybeToNullable (fmap toNode source))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.adoptNode Mozilla Document.adoptNode documentation> 
-adoptNode_ ::
-           (MonadIO m, IsDocument self, IsNode source) =>
-             self -> Maybe source -> m ()
-adoptNode_ self source
-  = liftIO
-      (void
-         (js_adoptNode (toDocument self)
-            (maybeToNullable (fmap toNode source))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.adoptNode Mozilla Document.adoptNode documentation> 
-adoptNodeUnsafe ::
-                (MonadIO m, IsDocument self, IsNode source, HasCallStack) =>
-                  self -> Maybe source -> m Node
-adoptNodeUnsafe self source
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_adoptNode (toDocument self)
-             (maybeToNullable (fmap toNode source))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.adoptNode Mozilla Document.adoptNode documentation> 
-adoptNodeUnchecked ::
-                   (MonadIO m, IsDocument self, IsNode source) =>
-                     self -> Maybe source -> m Node
-adoptNodeUnchecked self source
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_adoptNode (toDocument self)
-            (maybeToNullable (fmap toNode source))))
- 
-foreign import javascript unsafe "$1[\"createEvent\"]($2)"
-        js_createEvent :: Document -> JSString -> IO (Nullable Event)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createEvent Mozilla Document.createEvent documentation> 
-createEvent ::
-            (MonadIO m, IsDocument self, ToJSString eventType) =>
-              self -> eventType -> m (Maybe Event)
-createEvent self eventType
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createEvent (toDocument self) (toJSString eventType)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createEvent Mozilla Document.createEvent documentation> 
-createEvent_ ::
-             (MonadIO m, IsDocument self, ToJSString eventType) =>
-               self -> eventType -> m ()
-createEvent_ self eventType
-  = liftIO
-      (void (js_createEvent (toDocument self) (toJSString eventType)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createEvent Mozilla Document.createEvent documentation> 
-createEventUnsafe ::
-                  (MonadIO m, IsDocument self, ToJSString eventType, HasCallStack) =>
-                    self -> eventType -> m Event
-createEventUnsafe self eventType
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createEvent (toDocument self) (toJSString eventType)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createEvent Mozilla Document.createEvent documentation> 
-createEventUnchecked ::
-                     (MonadIO m, IsDocument self, ToJSString eventType) =>
-                       self -> eventType -> m Event
-createEventUnchecked self eventType
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createEvent (toDocument self) (toJSString eventType)))
- 
-foreign import javascript unsafe "$1[\"createRange\"]()"
-        js_createRange :: Document -> IO (Nullable Range)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createRange Mozilla Document.createRange documentation> 
-createRange ::
-            (MonadIO m, IsDocument self) => self -> m (Maybe Range)
-createRange self
-  = liftIO (nullableToMaybe <$> (js_createRange (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createRange Mozilla Document.createRange documentation> 
-createRange_ :: (MonadIO m, IsDocument self) => self -> m ()
-createRange_ self
-  = liftIO (void (js_createRange (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createRange Mozilla Document.createRange documentation> 
-createRangeUnsafe ::
-                  (MonadIO m, IsDocument self, HasCallStack) => self -> m Range
-createRangeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createRange (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createRange Mozilla Document.createRange documentation> 
-createRangeUnchecked ::
-                     (MonadIO m, IsDocument self) => self -> m Range
-createRangeUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_createRange (toDocument self)))
- 
-foreign import javascript unsafe
-        "$1[\"createNodeIterator\"]($2, $3,\n$4, $5)" js_createNodeIterator
-        ::
-        Document ->
-          Nullable Node ->
-            Word -> Nullable NodeFilter -> Bool -> IO (Nullable NodeIterator)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNodeIterator Mozilla Document.createNodeIterator documentation> 
-createNodeIterator ::
-                   (MonadIO m, IsDocument self, IsNode root) =>
-                     self ->
-                       Maybe root ->
-                         Word -> Maybe NodeFilter -> Bool -> m (Maybe NodeIterator)
-createNodeIterator self root whatToShow filter
-  expandEntityReferences
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createNodeIterator (toDocument self)
-            (maybeToNullable (fmap toNode root))
-            whatToShow
-            (maybeToNullable filter)
-            expandEntityReferences))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNodeIterator Mozilla Document.createNodeIterator documentation> 
-createNodeIterator_ ::
-                    (MonadIO m, IsDocument self, IsNode root) =>
-                      self -> Maybe root -> Word -> Maybe NodeFilter -> Bool -> m ()
-createNodeIterator_ self root whatToShow filter
-  expandEntityReferences
-  = liftIO
-      (void
-         (js_createNodeIterator (toDocument self)
-            (maybeToNullable (fmap toNode root))
-            whatToShow
-            (maybeToNullable filter)
-            expandEntityReferences))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNodeIterator Mozilla Document.createNodeIterator documentation> 
-createNodeIteratorUnsafe ::
-                         (MonadIO m, IsDocument self, IsNode root, HasCallStack) =>
-                           self ->
-                             Maybe root -> Word -> Maybe NodeFilter -> Bool -> m NodeIterator
-createNodeIteratorUnsafe self root whatToShow filter
-  expandEntityReferences
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createNodeIterator (toDocument self)
-             (maybeToNullable (fmap toNode root))
-             whatToShow
-             (maybeToNullable filter)
-             expandEntityReferences))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNodeIterator Mozilla Document.createNodeIterator documentation> 
-createNodeIteratorUnchecked ::
-                            (MonadIO m, IsDocument self, IsNode root) =>
-                              self ->
-                                Maybe root -> Word -> Maybe NodeFilter -> Bool -> m NodeIterator
-createNodeIteratorUnchecked self root whatToShow filter
-  expandEntityReferences
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createNodeIterator (toDocument self)
-            (maybeToNullable (fmap toNode root))
-            whatToShow
-            (maybeToNullable filter)
-            expandEntityReferences))
- 
-foreign import javascript unsafe
-        "$1[\"createTreeWalker\"]($2, $3,\n$4, $5)" js_createTreeWalker ::
-        Document ->
-          Nullable Node ->
-            Word -> Nullable NodeFilter -> Bool -> IO (Nullable TreeWalker)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTreeWalker Mozilla Document.createTreeWalker documentation> 
-createTreeWalker ::
-                 (MonadIO m, IsDocument self, IsNode root) =>
-                   self ->
-                     Maybe root ->
-                       Word -> Maybe NodeFilter -> Bool -> m (Maybe TreeWalker)
-createTreeWalker self root whatToShow filter expandEntityReferences
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createTreeWalker (toDocument self)
-            (maybeToNullable (fmap toNode root))
-            whatToShow
-            (maybeToNullable filter)
-            expandEntityReferences))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTreeWalker Mozilla Document.createTreeWalker documentation> 
-createTreeWalker_ ::
-                  (MonadIO m, IsDocument self, IsNode root) =>
-                    self -> Maybe root -> Word -> Maybe NodeFilter -> Bool -> m ()
-createTreeWalker_ self root whatToShow filter
-  expandEntityReferences
-  = liftIO
-      (void
-         (js_createTreeWalker (toDocument self)
-            (maybeToNullable (fmap toNode root))
-            whatToShow
-            (maybeToNullable filter)
-            expandEntityReferences))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTreeWalker Mozilla Document.createTreeWalker documentation> 
-createTreeWalkerUnsafe ::
-                       (MonadIO m, IsDocument self, IsNode root, HasCallStack) =>
-                         self ->
-                           Maybe root -> Word -> Maybe NodeFilter -> Bool -> m TreeWalker
-createTreeWalkerUnsafe self root whatToShow filter
-  expandEntityReferences
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createTreeWalker (toDocument self)
-             (maybeToNullable (fmap toNode root))
-             whatToShow
-             (maybeToNullable filter)
-             expandEntityReferences))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTreeWalker Mozilla Document.createTreeWalker documentation> 
-createTreeWalkerUnchecked ::
-                          (MonadIO m, IsDocument self, IsNode root) =>
-                            self ->
-                              Maybe root -> Word -> Maybe NodeFilter -> Bool -> m TreeWalker
-createTreeWalkerUnchecked self root whatToShow filter
-  expandEntityReferences
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createTreeWalker (toDocument self)
-            (maybeToNullable (fmap toNode root))
-            whatToShow
-            (maybeToNullable filter)
-            expandEntityReferences))
- 
-foreign import javascript unsafe "$1[\"getOverrideStyle\"]($2, $3)"
-        js_getOverrideStyle ::
-        Document ->
-          Nullable Element -> JSString -> IO (Nullable CSSStyleDeclaration)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getOverrideStyle Mozilla Document.getOverrideStyle documentation> 
-getOverrideStyle ::
-                 (MonadIO m, IsDocument self, IsElement element,
-                  ToJSString pseudoElement) =>
-                   self ->
-                     Maybe element -> pseudoElement -> m (Maybe CSSStyleDeclaration)
-getOverrideStyle self element pseudoElement
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getOverrideStyle (toDocument self)
-            (maybeToNullable (fmap toElement element))
-            (toJSString pseudoElement)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getOverrideStyle Mozilla Document.getOverrideStyle documentation> 
-getOverrideStyle_ ::
-                  (MonadIO m, IsDocument self, IsElement element,
-                   ToJSString pseudoElement) =>
-                    self -> Maybe element -> pseudoElement -> m ()
-getOverrideStyle_ self element pseudoElement
-  = liftIO
-      (void
-         (js_getOverrideStyle (toDocument self)
-            (maybeToNullable (fmap toElement element))
-            (toJSString pseudoElement)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getOverrideStyle Mozilla Document.getOverrideStyle documentation> 
-getOverrideStyleUnsafe ::
-                       (MonadIO m, IsDocument self, IsElement element,
-                        ToJSString pseudoElement, HasCallStack) =>
-                         self -> Maybe element -> pseudoElement -> m CSSStyleDeclaration
-getOverrideStyleUnsafe self element pseudoElement
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getOverrideStyle (toDocument self)
-             (maybeToNullable (fmap toElement element))
-             (toJSString pseudoElement)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getOverrideStyle Mozilla Document.getOverrideStyle documentation> 
-getOverrideStyleUnchecked ::
-                          (MonadIO m, IsDocument self, IsElement element,
-                           ToJSString pseudoElement) =>
-                            self -> Maybe element -> pseudoElement -> m CSSStyleDeclaration
-getOverrideStyleUnchecked self element pseudoElement
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getOverrideStyle (toDocument self)
-            (maybeToNullable (fmap toElement element))
-            (toJSString pseudoElement)))
- 
-foreign import javascript unsafe "$1[\"createExpression\"]($2, $3)"
-        js_createExpression ::
-        Document ->
-          JSString ->
-            Nullable XPathNSResolver -> IO (Nullable XPathExpression)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createExpression Mozilla Document.createExpression documentation> 
-createExpression ::
-                 (MonadIO m, IsDocument self, ToJSString expression) =>
-                   self ->
-                     expression -> Maybe XPathNSResolver -> m (Maybe XPathExpression)
-createExpression self expression resolver
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createExpression (toDocument self) (toJSString expression)
-            (maybeToNullable resolver)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createExpression Mozilla Document.createExpression documentation> 
-createExpression_ ::
-                  (MonadIO m, IsDocument self, ToJSString expression) =>
-                    self -> expression -> Maybe XPathNSResolver -> m ()
-createExpression_ self expression resolver
-  = liftIO
-      (void
-         (js_createExpression (toDocument self) (toJSString expression)
-            (maybeToNullable resolver)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createExpression Mozilla Document.createExpression documentation> 
-createExpressionUnsafe ::
-                       (MonadIO m, IsDocument self, ToJSString expression,
-                        HasCallStack) =>
-                         self -> expression -> Maybe XPathNSResolver -> m XPathExpression
-createExpressionUnsafe self expression resolver
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createExpression (toDocument self) (toJSString expression)
-             (maybeToNullable resolver)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createExpression Mozilla Document.createExpression documentation> 
-createExpressionUnchecked ::
-                          (MonadIO m, IsDocument self, ToJSString expression) =>
-                            self -> expression -> Maybe XPathNSResolver -> m XPathExpression
-createExpressionUnchecked self expression resolver
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createExpression (toDocument self) (toJSString expression)
-            (maybeToNullable resolver)))
- 
-foreign import javascript unsafe "$1[\"createNSResolver\"]($2)"
-        js_createNSResolver ::
-        Document -> Nullable Node -> IO (Nullable XPathNSResolver)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNSResolver Mozilla Document.createNSResolver documentation> 
-createNSResolver ::
-                 (MonadIO m, IsDocument self, IsNode nodeResolver) =>
-                   self -> Maybe nodeResolver -> m (Maybe XPathNSResolver)
-createNSResolver self nodeResolver
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createNSResolver (toDocument self)
-            (maybeToNullable (fmap toNode nodeResolver))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNSResolver Mozilla Document.createNSResolver documentation> 
-createNSResolver_ ::
-                  (MonadIO m, IsDocument self, IsNode nodeResolver) =>
-                    self -> Maybe nodeResolver -> m ()
-createNSResolver_ self nodeResolver
-  = liftIO
-      (void
-         (js_createNSResolver (toDocument self)
-            (maybeToNullable (fmap toNode nodeResolver))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNSResolver Mozilla Document.createNSResolver documentation> 
-createNSResolverUnsafe ::
-                       (MonadIO m, IsDocument self, IsNode nodeResolver, HasCallStack) =>
-                         self -> Maybe nodeResolver -> m XPathNSResolver
-createNSResolverUnsafe self nodeResolver
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createNSResolver (toDocument self)
-             (maybeToNullable (fmap toNode nodeResolver))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNSResolver Mozilla Document.createNSResolver documentation> 
-createNSResolverUnchecked ::
-                          (MonadIO m, IsDocument self, IsNode nodeResolver) =>
-                            self -> Maybe nodeResolver -> m XPathNSResolver
-createNSResolverUnchecked self nodeResolver
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createNSResolver (toDocument self)
-            (maybeToNullable (fmap toNode nodeResolver))))
- 
-foreign import javascript unsafe
-        "$1[\"evaluate\"]($2, $3, $4, $5,\n$6)" js_evaluate ::
-        Document ->
-          JSString ->
-            Nullable Node ->
-              Nullable XPathNSResolver ->
-                Word -> Nullable XPathResult -> IO (Nullable XPathResult)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.evaluate Mozilla Document.evaluate documentation> 
-evaluate ::
-         (MonadIO m, IsDocument self, ToJSString expression,
-          IsNode contextNode) =>
-           self ->
-             expression ->
-               Maybe contextNode ->
-                 Maybe XPathNSResolver ->
-                   Word -> Maybe XPathResult -> m (Maybe XPathResult)
-evaluate self expression contextNode resolver type' inResult
-  = liftIO
-      (nullableToMaybe <$>
-         (js_evaluate (toDocument self) (toJSString expression)
-            (maybeToNullable (fmap toNode contextNode))
-            (maybeToNullable resolver)
-            type'
-            (maybeToNullable inResult)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.evaluate Mozilla Document.evaluate documentation> 
-evaluate_ ::
-          (MonadIO m, IsDocument self, ToJSString expression,
-           IsNode contextNode) =>
-            self ->
-              expression ->
-                Maybe contextNode ->
-                  Maybe XPathNSResolver -> Word -> Maybe XPathResult -> m ()
-evaluate_ self expression contextNode resolver type' inResult
-  = liftIO
-      (void
-         (js_evaluate (toDocument self) (toJSString expression)
-            (maybeToNullable (fmap toNode contextNode))
-            (maybeToNullable resolver)
-            type'
-            (maybeToNullable inResult)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.evaluate Mozilla Document.evaluate documentation> 
-evaluateUnsafe ::
-               (MonadIO m, IsDocument self, ToJSString expression,
-                IsNode contextNode, HasCallStack) =>
-                 self ->
-                   expression ->
-                     Maybe contextNode ->
-                       Maybe XPathNSResolver -> Word -> Maybe XPathResult -> m XPathResult
-evaluateUnsafe self expression contextNode resolver type' inResult
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_evaluate (toDocument self) (toJSString expression)
-             (maybeToNullable (fmap toNode contextNode))
-             (maybeToNullable resolver)
-             type'
-             (maybeToNullable inResult)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.evaluate Mozilla Document.evaluate documentation> 
-evaluateUnchecked ::
-                  (MonadIO m, IsDocument self, ToJSString expression,
-                   IsNode contextNode) =>
-                    self ->
-                      expression ->
-                        Maybe contextNode ->
-                          Maybe XPathNSResolver -> Word -> Maybe XPathResult -> m XPathResult
-evaluateUnchecked self expression contextNode resolver type'
-  inResult
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_evaluate (toDocument self) (toJSString expression)
-            (maybeToNullable (fmap toNode contextNode))
-            (maybeToNullable resolver)
-            type'
-            (maybeToNullable inResult)))
- 
-foreign import javascript unsafe
-        "($1[\"execCommand\"]($2, $3,\n$4) ? 1 : 0)" js_execCommand ::
-        Document -> JSString -> Bool -> Nullable JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.execCommand Mozilla Document.execCommand documentation> 
-execCommand ::
-            (MonadIO m, IsDocument self, ToJSString command,
-             ToJSString value) =>
-              self -> command -> Bool -> Maybe value -> m Bool
-execCommand self command userInterface value
-  = liftIO
-      (js_execCommand (toDocument self) (toJSString command)
-         userInterface
-         (toMaybeJSString value))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.execCommand Mozilla Document.execCommand documentation> 
-execCommand_ ::
-             (MonadIO m, IsDocument self, ToJSString command,
-              ToJSString value) =>
-               self -> command -> Bool -> Maybe value -> m ()
-execCommand_ self command userInterface value
-  = liftIO
-      (void
-         (js_execCommand (toDocument self) (toJSString command)
-            userInterface
-            (toMaybeJSString value)))
- 
-foreign import javascript unsafe
-        "($1[\"queryCommandEnabled\"]($2) ? 1 : 0)" js_queryCommandEnabled
-        :: Document -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandEnabled Mozilla Document.queryCommandEnabled documentation> 
-queryCommandEnabled ::
-                    (MonadIO m, IsDocument self, ToJSString command) =>
-                      self -> command -> m Bool
-queryCommandEnabled self command
-  = liftIO
-      (js_queryCommandEnabled (toDocument self) (toJSString command))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandEnabled Mozilla Document.queryCommandEnabled documentation> 
-queryCommandEnabled_ ::
-                     (MonadIO m, IsDocument self, ToJSString command) =>
-                       self -> command -> m ()
-queryCommandEnabled_ self command
-  = liftIO
-      (void
-         (js_queryCommandEnabled (toDocument self) (toJSString command)))
- 
-foreign import javascript unsafe
-        "($1[\"queryCommandIndeterm\"]($2) ? 1 : 0)"
-        js_queryCommandIndeterm :: Document -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandIndeterm Mozilla Document.queryCommandIndeterm documentation> 
-queryCommandIndeterm ::
-                     (MonadIO m, IsDocument self, ToJSString command) =>
-                       self -> command -> m Bool
-queryCommandIndeterm self command
-  = liftIO
-      (js_queryCommandIndeterm (toDocument self) (toJSString command))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandIndeterm Mozilla Document.queryCommandIndeterm documentation> 
-queryCommandIndeterm_ ::
-                      (MonadIO m, IsDocument self, ToJSString command) =>
-                        self -> command -> m ()
-queryCommandIndeterm_ self command
-  = liftIO
-      (void
-         (js_queryCommandIndeterm (toDocument self) (toJSString command)))
- 
-foreign import javascript unsafe
-        "($1[\"queryCommandState\"]($2) ? 1 : 0)" js_queryCommandState ::
-        Document -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandState Mozilla Document.queryCommandState documentation> 
-queryCommandState ::
-                  (MonadIO m, IsDocument self, ToJSString command) =>
-                    self -> command -> m Bool
-queryCommandState self command
-  = liftIO
-      (js_queryCommandState (toDocument self) (toJSString command))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandState Mozilla Document.queryCommandState documentation> 
-queryCommandState_ ::
-                   (MonadIO m, IsDocument self, ToJSString command) =>
-                     self -> command -> m ()
-queryCommandState_ self command
-  = liftIO
-      (void
-         (js_queryCommandState (toDocument self) (toJSString command)))
- 
-foreign import javascript unsafe
-        "($1[\"queryCommandSupported\"]($2) ? 1 : 0)"
-        js_queryCommandSupported :: Document -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandSupported Mozilla Document.queryCommandSupported documentation> 
-queryCommandSupported ::
-                      (MonadIO m, IsDocument self, ToJSString command) =>
-                        self -> command -> m Bool
-queryCommandSupported self command
-  = liftIO
-      (js_queryCommandSupported (toDocument self) (toJSString command))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandSupported Mozilla Document.queryCommandSupported documentation> 
-queryCommandSupported_ ::
-                       (MonadIO m, IsDocument self, ToJSString command) =>
-                         self -> command -> m ()
-queryCommandSupported_ self command
-  = liftIO
-      (void
-         (js_queryCommandSupported (toDocument self) (toJSString command)))
- 
-foreign import javascript unsafe "$1[\"queryCommandValue\"]($2)"
-        js_queryCommandValue :: Document -> JSString -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandValue Mozilla Document.queryCommandValue documentation> 
-queryCommandValue ::
-                  (MonadIO m, IsDocument self, ToJSString command,
-                   FromJSString result) =>
-                    self -> command -> m result
-queryCommandValue self command
-  = liftIO
-      (fromJSString <$>
-         (js_queryCommandValue (toDocument self) (toJSString command)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandValue Mozilla Document.queryCommandValue documentation> 
-queryCommandValue_ ::
-                   (MonadIO m, IsDocument self, ToJSString command) =>
-                     self -> command -> m ()
-queryCommandValue_ self command
-  = liftIO
-      (void
-         (js_queryCommandValue (toDocument self) (toJSString command)))
- 
-foreign import javascript unsafe "$1[\"getElementsByName\"]($2)"
-        js_getElementsByName ::
-        Document -> JSString -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByName Mozilla Document.getElementsByName documentation> 
-getElementsByName ::
-                  (MonadIO m, IsDocument self, ToJSString elementName) =>
-                    self -> elementName -> m (Maybe NodeList)
-getElementsByName self elementName
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getElementsByName (toDocument self) (toJSString elementName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByName Mozilla Document.getElementsByName documentation> 
-getElementsByName_ ::
-                   (MonadIO m, IsDocument self, ToJSString elementName) =>
-                     self -> elementName -> m ()
-getElementsByName_ self elementName
-  = liftIO
-      (void
-         (js_getElementsByName (toDocument self) (toJSString elementName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByName Mozilla Document.getElementsByName documentation> 
-getElementsByNameUnsafe ::
-                        (MonadIO m, IsDocument self, ToJSString elementName,
-                         HasCallStack) =>
-                          self -> elementName -> m NodeList
-getElementsByNameUnsafe self elementName
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getElementsByName (toDocument self) (toJSString elementName)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByName Mozilla Document.getElementsByName documentation> 
-getElementsByNameUnchecked ::
-                           (MonadIO m, IsDocument self, ToJSString elementName) =>
-                             self -> elementName -> m NodeList
-getElementsByNameUnchecked self elementName
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getElementsByName (toDocument self) (toJSString elementName)))
- 
-foreign import javascript unsafe "$1[\"elementFromPoint\"]($2, $3)"
-        js_elementFromPoint ::
-        Document -> Int -> Int -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.elementFromPoint Mozilla Document.elementFromPoint documentation> 
-elementFromPoint ::
-                 (MonadIO m, IsDocument self) =>
-                   self -> Int -> Int -> m (Maybe Element)
-elementFromPoint self x y
-  = liftIO
-      (nullableToMaybe <$> (js_elementFromPoint (toDocument self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.elementFromPoint Mozilla Document.elementFromPoint documentation> 
-elementFromPoint_ ::
-                  (MonadIO m, IsDocument self) => self -> Int -> Int -> m ()
-elementFromPoint_ self x y
-  = liftIO (void (js_elementFromPoint (toDocument self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.elementFromPoint Mozilla Document.elementFromPoint documentation> 
-elementFromPointUnsafe ::
-                       (MonadIO m, IsDocument self, HasCallStack) =>
-                         self -> Int -> Int -> m Element
-elementFromPointUnsafe self x y
-  = liftIO
-      ((nullableToMaybe <$> (js_elementFromPoint (toDocument self) x y))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.elementFromPoint Mozilla Document.elementFromPoint documentation> 
-elementFromPointUnchecked ::
-                          (MonadIO m, IsDocument self) => self -> Int -> Int -> m Element
-elementFromPointUnchecked self x y
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_elementFromPoint (toDocument self) x y))
- 
-foreign import javascript unsafe
-        "$1[\"caretRangeFromPoint\"]($2,\n$3)" js_caretRangeFromPoint ::
-        Document -> Int -> Int -> IO (Nullable Range)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.caretRangeFromPoint Mozilla Document.caretRangeFromPoint documentation> 
-caretRangeFromPoint ::
-                    (MonadIO m, IsDocument self) =>
-                      self -> Int -> Int -> m (Maybe Range)
-caretRangeFromPoint self x y
-  = liftIO
-      (nullableToMaybe <$>
-         (js_caretRangeFromPoint (toDocument self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.caretRangeFromPoint Mozilla Document.caretRangeFromPoint documentation> 
-caretRangeFromPoint_ ::
-                     (MonadIO m, IsDocument self) => self -> Int -> Int -> m ()
-caretRangeFromPoint_ self x y
-  = liftIO (void (js_caretRangeFromPoint (toDocument self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.caretRangeFromPoint Mozilla Document.caretRangeFromPoint documentation> 
-caretRangeFromPointUnsafe ::
-                          (MonadIO m, IsDocument self, HasCallStack) =>
-                            self -> Int -> Int -> m Range
-caretRangeFromPointUnsafe self x y
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_caretRangeFromPoint (toDocument self) x y))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.caretRangeFromPoint Mozilla Document.caretRangeFromPoint documentation> 
-caretRangeFromPointUnchecked ::
-                             (MonadIO m, IsDocument self) => self -> Int -> Int -> m Range
-caretRangeFromPointUnchecked self x y
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_caretRangeFromPoint (toDocument self) x y))
- 
-foreign import javascript unsafe "$1[\"getSelection\"]()"
-        js_getSelection :: Document -> IO (Nullable Selection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getSelection Mozilla Document.getSelection documentation> 
-getSelection ::
-             (MonadIO m, IsDocument self) => self -> m (Maybe Selection)
-getSelection self
-  = liftIO (nullableToMaybe <$> (js_getSelection (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getSelection Mozilla Document.getSelection documentation> 
-getSelection_ :: (MonadIO m, IsDocument self) => self -> m ()
-getSelection_ self
-  = liftIO (void (js_getSelection (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getSelection Mozilla Document.getSelection documentation> 
-getSelectionUnsafe ::
-                   (MonadIO m, IsDocument self, HasCallStack) => self -> m Selection
-getSelectionUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSelection (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getSelection Mozilla Document.getSelection documentation> 
-getSelectionUnchecked ::
-                      (MonadIO m, IsDocument self) => self -> m Selection
-getSelectionUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getSelection (toDocument self)))
- 
-foreign import javascript unsafe
-        "$1[\"getCSSCanvasContext\"]($2,\n$3, $4, $5)"
-        js_getCSSCanvasContext ::
-        Document ->
-          JSString ->
-            JSString -> Int -> Int -> IO (Nullable CanvasRenderingContext)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getCSSCanvasContext Mozilla Document.getCSSCanvasContext documentation> 
-getCSSCanvasContext ::
-                    (MonadIO m, IsDocument self, ToJSString contextId,
-                     ToJSString name) =>
-                      self ->
-                        contextId -> name -> Int -> Int -> m (Maybe CanvasRenderingContext)
-getCSSCanvasContext self contextId name width height
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getCSSCanvasContext (toDocument self) (toJSString contextId)
-            (toJSString name)
-            width
-            height))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getCSSCanvasContext Mozilla Document.getCSSCanvasContext documentation> 
-getCSSCanvasContext_ ::
-                     (MonadIO m, IsDocument self, ToJSString contextId,
-                      ToJSString name) =>
-                       self -> contextId -> name -> Int -> Int -> m ()
-getCSSCanvasContext_ self contextId name width height
-  = liftIO
-      (void
-         (js_getCSSCanvasContext (toDocument self) (toJSString contextId)
-            (toJSString name)
-            width
-            height))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getCSSCanvasContext Mozilla Document.getCSSCanvasContext documentation> 
-getCSSCanvasContextUnsafe ::
-                          (MonadIO m, IsDocument self, ToJSString contextId, ToJSString name,
-                           HasCallStack) =>
-                            self -> contextId -> name -> Int -> Int -> m CanvasRenderingContext
-getCSSCanvasContextUnsafe self contextId name width height
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getCSSCanvasContext (toDocument self) (toJSString contextId)
-             (toJSString name)
-             width
-             height))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getCSSCanvasContext Mozilla Document.getCSSCanvasContext documentation> 
-getCSSCanvasContextUnchecked ::
-                             (MonadIO m, IsDocument self, ToJSString contextId,
-                              ToJSString name) =>
-                               self -> contextId -> name -> Int -> Int -> m CanvasRenderingContext
-getCSSCanvasContextUnchecked self contextId name width height
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getCSSCanvasContext (toDocument self) (toJSString contextId)
-            (toJSString name)
-            width
-            height))
- 
-foreign import javascript unsafe
-        "$1[\"getElementsByClassName\"]($2)" js_getElementsByClassName ::
-        Document -> JSString -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByClassName Mozilla Document.getElementsByClassName documentation> 
-getElementsByClassName ::
-                       (MonadIO m, IsDocument self, ToJSString tagname) =>
-                         self -> tagname -> m (Maybe NodeList)
-getElementsByClassName self tagname
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getElementsByClassName (toDocument self) (toJSString tagname)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByClassName Mozilla Document.getElementsByClassName documentation> 
-getElementsByClassName_ ::
-                        (MonadIO m, IsDocument self, ToJSString tagname) =>
-                          self -> tagname -> m ()
-getElementsByClassName_ self tagname
-  = liftIO
-      (void
-         (js_getElementsByClassName (toDocument self) (toJSString tagname)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByClassName Mozilla Document.getElementsByClassName documentation> 
-getElementsByClassNameUnsafe ::
-                             (MonadIO m, IsDocument self, ToJSString tagname, HasCallStack) =>
-                               self -> tagname -> m NodeList
-getElementsByClassNameUnsafe self tagname
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getElementsByClassName (toDocument self) (toJSString tagname)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByClassName Mozilla Document.getElementsByClassName documentation> 
-getElementsByClassNameUnchecked ::
-                                (MonadIO m, IsDocument self, ToJSString tagname) =>
-                                  self -> tagname -> m NodeList
-getElementsByClassNameUnchecked self tagname
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getElementsByClassName (toDocument self) (toJSString tagname)))
- 
-foreign import javascript unsafe "($1[\"hasFocus\"]() ? 1 : 0)"
-        js_hasFocus :: Document -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.hasFocus Mozilla Document.hasFocus documentation> 
-hasFocus :: (MonadIO m, IsDocument self) => self -> m Bool
-hasFocus self = liftIO (js_hasFocus (toDocument self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.hasFocus Mozilla Document.hasFocus documentation> 
-hasFocus_ :: (MonadIO m, IsDocument self) => self -> m ()
-hasFocus_ self = liftIO (void (js_hasFocus (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"querySelector\"]($2)"
-        js_querySelector :: Document -> JSString -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelector Mozilla Document.querySelector documentation> 
-querySelector ::
-              (MonadIO m, IsDocument self, ToJSString selectors) =>
-                self -> selectors -> m (Maybe Element)
-querySelector self selectors
-  = liftIO
-      (nullableToMaybe <$>
-         (js_querySelector (toDocument self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelector Mozilla Document.querySelector documentation> 
-querySelector_ ::
-               (MonadIO m, IsDocument self, ToJSString selectors) =>
-                 self -> selectors -> m ()
-querySelector_ self selectors
-  = liftIO
-      (void (js_querySelector (toDocument self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelector Mozilla Document.querySelector documentation> 
-querySelectorUnsafe ::
-                    (MonadIO m, IsDocument self, ToJSString selectors, HasCallStack) =>
-                      self -> selectors -> m Element
-querySelectorUnsafe self selectors
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_querySelector (toDocument self) (toJSString selectors)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelector Mozilla Document.querySelector documentation> 
-querySelectorUnchecked ::
-                       (MonadIO m, IsDocument self, ToJSString selectors) =>
-                         self -> selectors -> m Element
-querySelectorUnchecked self selectors
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_querySelector (toDocument self) (toJSString selectors)))
- 
-foreign import javascript unsafe "$1[\"querySelectorAll\"]($2)"
-        js_querySelectorAll ::
-        Document -> JSString -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelectorAll Mozilla Document.querySelectorAll documentation> 
-querySelectorAll ::
-                 (MonadIO m, IsDocument self, ToJSString selectors) =>
-                   self -> selectors -> m (Maybe NodeList)
-querySelectorAll self selectors
-  = liftIO
-      (nullableToMaybe <$>
-         (js_querySelectorAll (toDocument self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelectorAll Mozilla Document.querySelectorAll documentation> 
-querySelectorAll_ ::
-                  (MonadIO m, IsDocument self, ToJSString selectors) =>
-                    self -> selectors -> m ()
-querySelectorAll_ self selectors
-  = liftIO
-      (void
-         (js_querySelectorAll (toDocument self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelectorAll Mozilla Document.querySelectorAll documentation> 
-querySelectorAllUnsafe ::
-                       (MonadIO m, IsDocument self, ToJSString selectors, HasCallStack) =>
-                         self -> selectors -> m NodeList
-querySelectorAllUnsafe self selectors
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_querySelectorAll (toDocument self) (toJSString selectors)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelectorAll Mozilla Document.querySelectorAll documentation> 
-querySelectorAllUnchecked ::
-                          (MonadIO m, IsDocument self, ToJSString selectors) =>
-                            self -> selectors -> m NodeList
-querySelectorAllUnchecked self selectors
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_querySelectorAll (toDocument self) (toJSString selectors)))
- 
-foreign import javascript unsafe "$1[\"webkitCancelFullScreen\"]()"
-        js_webkitCancelFullScreen :: Document -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitCancelFullScreen Mozilla Document.webkitCancelFullScreen documentation> 
-webkitCancelFullScreen ::
-                       (MonadIO m, IsDocument self) => self -> m ()
-webkitCancelFullScreen self
-  = liftIO (js_webkitCancelFullScreen (toDocument self))
- 
-foreign import javascript unsafe "$1[\"webkitExitFullscreen\"]()"
-        js_webkitExitFullscreen :: Document -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitExitFullscreen Mozilla Document.webkitExitFullscreen documentation> 
-webkitExitFullscreen ::
-                     (MonadIO m, IsDocument self) => self -> m ()
-webkitExitFullscreen self
-  = liftIO (js_webkitExitFullscreen (toDocument self))
- 
-foreign import javascript unsafe "$1[\"exitPointerLock\"]()"
-        js_exitPointerLock :: Document -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.exitPointerLock Mozilla Document.exitPointerLock documentation> 
-exitPointerLock :: (MonadIO m, IsDocument self) => self -> m ()
-exitPointerLock self
-  = liftIO (js_exitPointerLock (toDocument self))
- 
-foreign import javascript unsafe "$1[\"webkitGetNamedFlows\"]()"
-        js_webkitGetNamedFlows ::
-        Document -> IO (Nullable DOMNamedFlowCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitGetNamedFlows Mozilla Document.webkitGetNamedFlows documentation> 
-webkitGetNamedFlows ::
-                    (MonadIO m, IsDocument self) =>
-                      self -> m (Maybe DOMNamedFlowCollection)
-webkitGetNamedFlows self
-  = liftIO
-      (nullableToMaybe <$> (js_webkitGetNamedFlows (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitGetNamedFlows Mozilla Document.webkitGetNamedFlows documentation> 
-webkitGetNamedFlows_ ::
-                     (MonadIO m, IsDocument self) => self -> m ()
-webkitGetNamedFlows_ self
-  = liftIO (void (js_webkitGetNamedFlows (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitGetNamedFlows Mozilla Document.webkitGetNamedFlows documentation> 
-webkitGetNamedFlowsUnsafe ::
-                          (MonadIO m, IsDocument self, HasCallStack) =>
-                            self -> m DOMNamedFlowCollection
-webkitGetNamedFlowsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_webkitGetNamedFlows (toDocument self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitGetNamedFlows Mozilla Document.webkitGetNamedFlows documentation> 
-webkitGetNamedFlowsUnchecked ::
-                             (MonadIO m, IsDocument self) => self -> m DOMNamedFlowCollection
-webkitGetNamedFlowsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_webkitGetNamedFlows (toDocument self)))
- 
-foreign import javascript unsafe
-        "$1[\"createTouch\"]($2, $3, $4,\n$5, $6, $7, $8, $9, $10, $11,\n$12)"
-        js_createTouch ::
-        Document ->
-          Nullable Window ->
-            Nullable EventTarget ->
-              Int ->
-                Int ->
-                  Int ->
-                    Int -> Int -> Int -> Int -> Float -> Float -> IO (Nullable Touch)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouch Mozilla Document.createTouch documentation> 
-createTouch ::
-            (MonadIO m, IsDocument self, IsEventTarget target) =>
-              self ->
-                Maybe Window ->
-                  Maybe target ->
-                    Int ->
-                      Int ->
-                        Int ->
-                          Int -> Int -> Int -> Int -> Float -> Float -> m (Maybe Touch)
-createTouch self window target identifier pageX pageY screenX
-  screenY webkitRadiusX webkitRadiusY webkitRotationAngle webkitForce
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createTouch (toDocument self) (maybeToNullable window)
-            (maybeToNullable (fmap toEventTarget target))
-            identifier
-            pageX
-            pageY
-            screenX
-            screenY
-            webkitRadiusX
-            webkitRadiusY
-            webkitRotationAngle
-            webkitForce))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouch Mozilla Document.createTouch documentation> 
-createTouch_ ::
-             (MonadIO m, IsDocument self, IsEventTarget target) =>
-               self ->
-                 Maybe Window ->
-                   Maybe target ->
-                     Int ->
-                       Int -> Int -> Int -> Int -> Int -> Int -> Float -> Float -> m ()
-createTouch_ self window target identifier pageX pageY screenX
-  screenY webkitRadiusX webkitRadiusY webkitRotationAngle webkitForce
-  = liftIO
-      (void
-         (js_createTouch (toDocument self) (maybeToNullable window)
-            (maybeToNullable (fmap toEventTarget target))
-            identifier
-            pageX
-            pageY
-            screenX
-            screenY
-            webkitRadiusX
-            webkitRadiusY
-            webkitRotationAngle
-            webkitForce))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouch Mozilla Document.createTouch documentation> 
-createTouchUnsafe ::
-                  (MonadIO m, IsDocument self, IsEventTarget target, HasCallStack) =>
-                    self ->
-                      Maybe Window ->
-                        Maybe target ->
-                          Int ->
-                            Int -> Int -> Int -> Int -> Int -> Int -> Float -> Float -> m Touch
-createTouchUnsafe self window target identifier pageX pageY screenX
-  screenY webkitRadiusX webkitRadiusY webkitRotationAngle webkitForce
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createTouch (toDocument self) (maybeToNullable window)
-             (maybeToNullable (fmap toEventTarget target))
-             identifier
-             pageX
-             pageY
-             screenX
-             screenY
-             webkitRadiusX
-             webkitRadiusY
-             webkitRotationAngle
-             webkitForce))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouch Mozilla Document.createTouch documentation> 
-createTouchUnchecked ::
-                     (MonadIO m, IsDocument self, IsEventTarget target) =>
-                       self ->
-                         Maybe Window ->
-                           Maybe target ->
-                             Int ->
-                               Int -> Int -> Int -> Int -> Int -> Int -> Float -> Float -> m Touch
-createTouchUnchecked self window target identifier pageX pageY
-  screenX screenY webkitRadiusX webkitRadiusY webkitRotationAngle
-  webkitForce
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createTouch (toDocument self) (maybeToNullable window)
-            (maybeToNullable (fmap toEventTarget target))
-            identifier
-            pageX
-            pageY
-            screenX
-            screenY
-            webkitRadiusX
-            webkitRadiusY
-            webkitRotationAngle
-            webkitForce))
- 
-foreign import javascript unsafe "$1[\"createTouchList\"]()"
-        js_createTouchList :: Document -> IO (Nullable TouchList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouchList Mozilla Document.createTouchList documentation> 
-createTouchList ::
-                (MonadIO m, IsDocument self) => self -> m (Maybe TouchList)
-createTouchList self
-  = liftIO
-      (nullableToMaybe <$> (js_createTouchList (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouchList Mozilla Document.createTouchList documentation> 
-createTouchList_ :: (MonadIO m, IsDocument self) => self -> m ()
-createTouchList_ self
-  = liftIO (void (js_createTouchList (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouchList Mozilla Document.createTouchList documentation> 
-createTouchListUnsafe ::
-                      (MonadIO m, IsDocument self, HasCallStack) => self -> m TouchList
-createTouchListUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createTouchList (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouchList Mozilla Document.createTouchList documentation> 
-createTouchListUnchecked ::
-                         (MonadIO m, IsDocument self) => self -> m TouchList
-createTouchListUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createTouchList (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"doctype\"]" js_getDoctype ::
-        Document -> IO (Nullable DocumentType)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.doctype Mozilla Document.doctype documentation> 
-getDoctype ::
-           (MonadIO m, IsDocument self) => self -> m (Maybe DocumentType)
-getDoctype self
-  = liftIO (nullableToMaybe <$> (js_getDoctype (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.doctype Mozilla Document.doctype documentation> 
-getDoctypeUnsafe ::
-                 (MonadIO m, IsDocument self, HasCallStack) =>
-                   self -> m DocumentType
-getDoctypeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDoctype (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.doctype Mozilla Document.doctype documentation> 
-getDoctypeUnchecked ::
-                    (MonadIO m, IsDocument self) => self -> m DocumentType
-getDoctypeUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getDoctype (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"implementation\"]"
-        js_getImplementation :: Document -> IO (Nullable DOMImplementation)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.implementation Mozilla Document.implementation documentation> 
-getImplementation ::
-                  (MonadIO m, IsDocument self) => self -> m (Maybe DOMImplementation)
-getImplementation self
-  = liftIO
-      (nullableToMaybe <$> (js_getImplementation (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.implementation Mozilla Document.implementation documentation> 
-getImplementationUnsafe ::
-                        (MonadIO m, IsDocument self, HasCallStack) =>
-                          self -> m DOMImplementation
-getImplementationUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getImplementation (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.implementation Mozilla Document.implementation documentation> 
-getImplementationUnchecked ::
-                           (MonadIO m, IsDocument self) => self -> m DOMImplementation
-getImplementationUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getImplementation (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"documentElement\"]"
-        js_getDocumentElement :: Document -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement Mozilla Document.documentElement documentation> 
-getDocumentElement ::
-                   (MonadIO m, IsDocument self) => self -> m (Maybe Element)
-getDocumentElement self
-  = liftIO
-      (nullableToMaybe <$> (js_getDocumentElement (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement Mozilla Document.documentElement documentation> 
-getDocumentElementUnsafe ::
-                         (MonadIO m, IsDocument self, HasCallStack) => self -> m Element
-getDocumentElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDocumentElement (toDocument self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement Mozilla Document.documentElement documentation> 
-getDocumentElementUnchecked ::
-                            (MonadIO m, IsDocument self) => self -> m Element
-getDocumentElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getDocumentElement (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"inputEncoding\"]"
-        js_getInputEncoding :: Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.inputEncoding Mozilla Document.inputEncoding documentation> 
-getInputEncoding ::
-                 (MonadIO m, IsDocument self, FromJSString result) =>
-                   self -> m (Maybe result)
-getInputEncoding self
-  = liftIO
-      (fromMaybeJSString <$> (js_getInputEncoding (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.inputEncoding Mozilla Document.inputEncoding documentation> 
-getInputEncodingUnsafe ::
-                       (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                         self -> m result
-getInputEncodingUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getInputEncoding (toDocument self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.inputEncoding Mozilla Document.inputEncoding documentation> 
-getInputEncodingUnchecked ::
-                          (MonadIO m, IsDocument self, FromJSString result) =>
-                            self -> m result
-getInputEncodingUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getInputEncoding (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"xmlEncoding\"]"
-        js_getXmlEncoding :: Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlEncoding Mozilla Document.xmlEncoding documentation> 
-getXmlEncoding ::
-               (MonadIO m, IsDocument self, FromJSString result) =>
-                 self -> m (Maybe result)
-getXmlEncoding self
-  = liftIO
-      (fromMaybeJSString <$> (js_getXmlEncoding (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlEncoding Mozilla Document.xmlEncoding documentation> 
-getXmlEncodingUnsafe ::
-                     (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                       self -> m result
-getXmlEncodingUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getXmlEncoding (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlEncoding Mozilla Document.xmlEncoding documentation> 
-getXmlEncodingUnchecked ::
-                        (MonadIO m, IsDocument self, FromJSString result) =>
-                          self -> m result
-getXmlEncodingUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getXmlEncoding (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"xmlVersion\"] = $2;"
-        js_setXmlVersion :: Document -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlVersion Mozilla Document.xmlVersion documentation> 
-setXmlVersion ::
-              (MonadIO m, IsDocument self, ToJSString val) =>
-                self -> Maybe val -> m ()
-setXmlVersion self val
-  = liftIO (js_setXmlVersion (toDocument self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"xmlVersion\"]"
-        js_getXmlVersion :: Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlVersion Mozilla Document.xmlVersion documentation> 
-getXmlVersion ::
-              (MonadIO m, IsDocument self, FromJSString result) =>
-                self -> m (Maybe result)
-getXmlVersion self
-  = liftIO
-      (fromMaybeJSString <$> (js_getXmlVersion (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlVersion Mozilla Document.xmlVersion documentation> 
-getXmlVersionUnsafe ::
-                    (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                      self -> m result
-getXmlVersionUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getXmlVersion (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlVersion Mozilla Document.xmlVersion documentation> 
-getXmlVersionUnchecked ::
-                       (MonadIO m, IsDocument self, FromJSString result) =>
-                         self -> m result
-getXmlVersionUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getXmlVersion (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"xmlStandalone\"] = $2;"
-        js_setXmlStandalone :: Document -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlStandalone Mozilla Document.xmlStandalone documentation> 
-setXmlStandalone ::
-                 (MonadIO m, IsDocument self) => self -> Bool -> m ()
-setXmlStandalone self val
-  = liftIO (js_setXmlStandalone (toDocument self) val)
- 
-foreign import javascript unsafe "($1[\"xmlStandalone\"] ? 1 : 0)"
-        js_getXmlStandalone :: Document -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlStandalone Mozilla Document.xmlStandalone documentation> 
-getXmlStandalone :: (MonadIO m, IsDocument self) => self -> m Bool
-getXmlStandalone self
-  = liftIO (js_getXmlStandalone (toDocument self))
- 
-foreign import javascript unsafe "$1[\"documentURI\"]"
-        js_getDocumentURI :: Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.documentURI Mozilla Document.documentURI documentation> 
-getDocumentURI ::
-               (MonadIO m, IsDocument self, FromJSString result) =>
-                 self -> m (Maybe result)
-getDocumentURI self
-  = liftIO
-      (fromMaybeJSString <$> (js_getDocumentURI (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.documentURI Mozilla Document.documentURI documentation> 
-getDocumentURIUnsafe ::
-                     (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                       self -> m result
-getDocumentURIUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getDocumentURI (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.documentURI Mozilla Document.documentURI documentation> 
-getDocumentURIUnchecked ::
-                        (MonadIO m, IsDocument self, FromJSString result) =>
-                          self -> m result
-getDocumentURIUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getDocumentURI (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"defaultView\"]"
-        js_getDefaultView :: Document -> IO (Nullable Window)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.defaultView Mozilla Document.defaultView documentation> 
-getDefaultView ::
-               (MonadIO m, IsDocument self) => self -> m (Maybe Window)
-getDefaultView self
-  = liftIO
-      (nullableToMaybe <$> (js_getDefaultView (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.defaultView Mozilla Document.defaultView documentation> 
-getDefaultViewUnsafe ::
-                     (MonadIO m, IsDocument self, HasCallStack) => self -> m Window
-getDefaultViewUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDefaultView (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.defaultView Mozilla Document.defaultView documentation> 
-getDefaultViewUnchecked ::
-                        (MonadIO m, IsDocument self) => self -> m Window
-getDefaultViewUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getDefaultView (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"styleSheets\"]"
-        js_getStyleSheets :: Document -> IO (Nullable StyleSheetList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.styleSheets Mozilla Document.styleSheets documentation> 
-getStyleSheets ::
-               (MonadIO m, IsDocument self) => self -> m (Maybe StyleSheetList)
-getStyleSheets self
-  = liftIO
-      (nullableToMaybe <$> (js_getStyleSheets (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.styleSheets Mozilla Document.styleSheets documentation> 
-getStyleSheetsUnsafe ::
-                     (MonadIO m, IsDocument self, HasCallStack) =>
-                       self -> m StyleSheetList
-getStyleSheetsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStyleSheets (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.styleSheets Mozilla Document.styleSheets documentation> 
-getStyleSheetsUnchecked ::
-                        (MonadIO m, IsDocument self) => self -> m StyleSheetList
-getStyleSheetsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getStyleSheets (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"contentType\"]"
-        js_getContentType :: Document -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.contentType Mozilla Document.contentType documentation> 
-getContentType ::
-               (MonadIO m, IsDocument self, FromJSString result) =>
-                 self -> m result
-getContentType self
-  = liftIO (fromJSString <$> (js_getContentType (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"title\"] = $2;" js_setTitle
-        :: Document -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.title Mozilla Document.title documentation> 
-setTitle ::
-         (MonadIO m, IsDocument self, ToJSString val) =>
-           self -> Maybe val -> m ()
-setTitle self val
-  = liftIO (js_setTitle (toDocument self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"title\"]" js_getTitle ::
-        Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.title Mozilla Document.title documentation> 
-getTitle ::
-         (MonadIO m, IsDocument self, FromJSString result) =>
-           self -> m (Maybe result)
-getTitle self
-  = liftIO (fromMaybeJSString <$> (js_getTitle (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.title Mozilla Document.title documentation> 
-getTitleUnsafe ::
-               (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                 self -> m result
-getTitleUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getTitle (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.title Mozilla Document.title documentation> 
-getTitleUnchecked ::
-                  (MonadIO m, IsDocument self, FromJSString result) =>
-                    self -> m result
-getTitleUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getTitle (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"referrer\"]" js_getReferrer
-        :: Document -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.referrer Mozilla Document.referrer documentation> 
-getReferrer ::
-            (MonadIO m, IsDocument self, FromJSString result) =>
-              self -> m result
-getReferrer self
-  = liftIO (fromJSString <$> (js_getReferrer (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"domain\"] = $2;"
-        js_setDomain :: Document -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.domain Mozilla Document.domain documentation> 
-setDomain ::
-          (MonadIO m, IsDocument self, ToJSString val) =>
-            self -> Maybe val -> m ()
-setDomain self val
-  = liftIO (js_setDomain (toDocument self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"domain\"]" js_getDomain ::
-        Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.domain Mozilla Document.domain documentation> 
-getDomain ::
-          (MonadIO m, IsDocument self, FromJSString result) =>
-            self -> m (Maybe result)
-getDomain self
-  = liftIO (fromMaybeJSString <$> (js_getDomain (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.domain Mozilla Document.domain documentation> 
-getDomainUnsafe ::
-                (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                  self -> m result
-getDomainUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getDomain (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.domain Mozilla Document.domain documentation> 
-getDomainUnchecked ::
-                   (MonadIO m, IsDocument self, FromJSString result) =>
-                     self -> m result
-getDomainUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getDomain (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"URL\"]" js_getURL ::
-        Document -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.URL Mozilla Document.URL documentation> 
-getURL ::
-       (MonadIO m, IsDocument self, FromJSString result) =>
-         self -> m result
-getURL self
-  = liftIO (fromJSString <$> (js_getURL (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"cookie\"] = $2;"
-        js_setCookie :: Document -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.cookie Mozilla Document.cookie documentation> 
-setCookie ::
-          (MonadIO m, IsDocument self, ToJSString val) =>
-            self -> Maybe val -> m ()
-setCookie self val
-  = liftIO (js_setCookie (toDocument self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"cookie\"]" js_getCookie ::
-        Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.cookie Mozilla Document.cookie documentation> 
-getCookie ::
-          (MonadIO m, IsDocument self, FromJSString result) =>
-            self -> m (Maybe result)
-getCookie self
-  = liftIO (fromMaybeJSString <$> (js_getCookie (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.cookie Mozilla Document.cookie documentation> 
-getCookieUnsafe ::
-                (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                  self -> m result
-getCookieUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getCookie (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.cookie Mozilla Document.cookie documentation> 
-getCookieUnchecked ::
-                   (MonadIO m, IsDocument self, FromJSString result) =>
-                     self -> m result
-getCookieUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getCookie (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"body\"] = $2;" js_setBody ::
-        Document -> Nullable HTMLElement -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.body Mozilla Document.body documentation> 
-setBody ::
-        (MonadIO m, IsDocument self, IsHTMLElement val) =>
-          self -> Maybe val -> m ()
-setBody self val
-  = liftIO
-      (js_setBody (toDocument self)
-         (maybeToNullable (fmap toHTMLElement val)))
- 
-foreign import javascript unsafe "$1[\"body\"]" js_getBody ::
-        Document -> IO (Nullable HTMLElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.body Mozilla Document.body documentation> 
-getBody ::
-        (MonadIO m, IsDocument self) => self -> m (Maybe HTMLElement)
-getBody self
-  = liftIO (nullableToMaybe <$> (js_getBody (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.body Mozilla Document.body documentation> 
-getBodyUnsafe ::
-              (MonadIO m, IsDocument self, HasCallStack) => self -> m HTMLElement
-getBodyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBody (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.body Mozilla Document.body documentation> 
-getBodyUnchecked ::
-                 (MonadIO m, IsDocument self) => self -> m HTMLElement
-getBodyUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getBody (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"head\"]" js_getHead ::
-        Document -> IO (Nullable HTMLHeadElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.head Mozilla Document.head documentation> 
-getHead ::
-        (MonadIO m, IsDocument self) => self -> m (Maybe HTMLHeadElement)
-getHead self
-  = liftIO (nullableToMaybe <$> (js_getHead (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.head Mozilla Document.head documentation> 
-getHeadUnsafe ::
-              (MonadIO m, IsDocument self, HasCallStack) =>
-                self -> m HTMLHeadElement
-getHeadUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHead (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.head Mozilla Document.head documentation> 
-getHeadUnchecked ::
-                 (MonadIO m, IsDocument self) => self -> m HTMLHeadElement
-getHeadUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getHead (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"images\"]" js_getImages ::
-        Document -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.images Mozilla Document.images documentation> 
-getImages ::
-          (MonadIO m, IsDocument self) => self -> m (Maybe HTMLCollection)
-getImages self
-  = liftIO (nullableToMaybe <$> (js_getImages (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.images Mozilla Document.images documentation> 
-getImagesUnsafe ::
-                (MonadIO m, IsDocument self, HasCallStack) =>
-                  self -> m HTMLCollection
-getImagesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getImages (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.images Mozilla Document.images documentation> 
-getImagesUnchecked ::
-                   (MonadIO m, IsDocument self) => self -> m HTMLCollection
-getImagesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getImages (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"applets\"]" js_getApplets ::
-        Document -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.applets Mozilla Document.applets documentation> 
-getApplets ::
-           (MonadIO m, IsDocument self) => self -> m (Maybe HTMLCollection)
-getApplets self
-  = liftIO (nullableToMaybe <$> (js_getApplets (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.applets Mozilla Document.applets documentation> 
-getAppletsUnsafe ::
-                 (MonadIO m, IsDocument self, HasCallStack) =>
-                   self -> m HTMLCollection
-getAppletsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getApplets (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.applets Mozilla Document.applets documentation> 
-getAppletsUnchecked ::
-                    (MonadIO m, IsDocument self) => self -> m HTMLCollection
-getAppletsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getApplets (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"links\"]" js_getLinks ::
-        Document -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.links Mozilla Document.links documentation> 
-getLinks ::
-         (MonadIO m, IsDocument self) => self -> m (Maybe HTMLCollection)
-getLinks self
-  = liftIO (nullableToMaybe <$> (js_getLinks (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.links Mozilla Document.links documentation> 
-getLinksUnsafe ::
-               (MonadIO m, IsDocument self, HasCallStack) =>
-                 self -> m HTMLCollection
-getLinksUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLinks (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.links Mozilla Document.links documentation> 
-getLinksUnchecked ::
-                  (MonadIO m, IsDocument self) => self -> m HTMLCollection
-getLinksUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getLinks (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"forms\"]" js_getForms ::
-        Document -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.forms Mozilla Document.forms documentation> 
-getForms ::
-         (MonadIO m, IsDocument self) => self -> m (Maybe HTMLCollection)
-getForms self
-  = liftIO (nullableToMaybe <$> (js_getForms (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.forms Mozilla Document.forms documentation> 
-getFormsUnsafe ::
-               (MonadIO m, IsDocument self, HasCallStack) =>
-                 self -> m HTMLCollection
-getFormsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getForms (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.forms Mozilla Document.forms documentation> 
-getFormsUnchecked ::
-                  (MonadIO m, IsDocument self) => self -> m HTMLCollection
-getFormsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getForms (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"anchors\"]" js_getAnchors ::
-        Document -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.anchors Mozilla Document.anchors documentation> 
-getAnchors ::
-           (MonadIO m, IsDocument self) => self -> m (Maybe HTMLCollection)
-getAnchors self
-  = liftIO (nullableToMaybe <$> (js_getAnchors (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.anchors Mozilla Document.anchors documentation> 
-getAnchorsUnsafe ::
-                 (MonadIO m, IsDocument self, HasCallStack) =>
-                   self -> m HTMLCollection
-getAnchorsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnchors (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.anchors Mozilla Document.anchors documentation> 
-getAnchorsUnchecked ::
-                    (MonadIO m, IsDocument self) => self -> m HTMLCollection
-getAnchorsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getAnchors (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"lastModified\"]"
-        js_getLastModified :: Document -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.lastModified Mozilla Document.lastModified documentation> 
-getLastModified ::
-                (MonadIO m, IsDocument self, FromJSString result) =>
-                  self -> m result
-getLastModified self
-  = liftIO (fromJSString <$> (js_getLastModified (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"location\"] = $2;"
-        js_setLocation :: Document -> Nullable Location -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.location Mozilla Document.location documentation> 
-setLocation ::
-            (MonadIO m, IsDocument self) => self -> Maybe Location -> m ()
-setLocation self val
-  = liftIO (js_setLocation (toDocument self) (maybeToNullable val))
- 
-foreign import javascript unsafe "$1[\"location\"]" js_getLocation
-        :: Document -> IO (Nullable Location)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.location Mozilla Document.location documentation> 
-getLocation ::
-            (MonadIO m, IsDocument self) => self -> m (Maybe Location)
-getLocation self
-  = liftIO (nullableToMaybe <$> (js_getLocation (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.location Mozilla Document.location documentation> 
-getLocationUnsafe ::
-                  (MonadIO m, IsDocument self, HasCallStack) => self -> m Location
-getLocationUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLocation (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.location Mozilla Document.location documentation> 
-getLocationUnchecked ::
-                     (MonadIO m, IsDocument self) => self -> m Location
-getLocationUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getLocation (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"charset\"] = $2;"
-        js_setCharset :: Document -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.charset Mozilla Document.charset documentation> 
-setCharset ::
-           (MonadIO m, IsDocument self, ToJSString val) =>
-             self -> Maybe val -> m ()
-setCharset self val
-  = liftIO (js_setCharset (toDocument self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"charset\"]" js_getCharset ::
-        Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.charset Mozilla Document.charset documentation> 
-getCharset ::
-           (MonadIO m, IsDocument self, FromJSString result) =>
-             self -> m (Maybe result)
-getCharset self
-  = liftIO (fromMaybeJSString <$> (js_getCharset (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.charset Mozilla Document.charset documentation> 
-getCharsetUnsafe ::
-                 (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                   self -> m result
-getCharsetUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getCharset (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.charset Mozilla Document.charset documentation> 
-getCharsetUnchecked ::
-                    (MonadIO m, IsDocument self, FromJSString result) =>
-                      self -> m result
-getCharsetUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getCharset (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"defaultCharset\"]"
-        js_getDefaultCharset :: Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.defaultCharset Mozilla Document.defaultCharset documentation> 
-getDefaultCharset ::
-                  (MonadIO m, IsDocument self, FromJSString result) =>
-                    self -> m (Maybe result)
-getDefaultCharset self
-  = liftIO
-      (fromMaybeJSString <$> (js_getDefaultCharset (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.defaultCharset Mozilla Document.defaultCharset documentation> 
-getDefaultCharsetUnsafe ::
-                        (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                          self -> m result
-getDefaultCharsetUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getDefaultCharset (toDocument self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.defaultCharset Mozilla Document.defaultCharset documentation> 
-getDefaultCharsetUnchecked ::
-                           (MonadIO m, IsDocument self, FromJSString result) =>
-                             self -> m result
-getDefaultCharsetUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getDefaultCharset (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"readyState\"]"
-        js_getReadyState :: Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.readyState Mozilla Document.readyState documentation> 
-getReadyState ::
-              (MonadIO m, IsDocument self, FromJSString result) =>
-                self -> m (Maybe result)
-getReadyState self
-  = liftIO
-      (fromMaybeJSString <$> (js_getReadyState (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.readyState Mozilla Document.readyState documentation> 
-getReadyStateUnsafe ::
-                    (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                      self -> m result
-getReadyStateUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getReadyState (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.readyState Mozilla Document.readyState documentation> 
-getReadyStateUnchecked ::
-                       (MonadIO m, IsDocument self, FromJSString result) =>
-                         self -> m result
-getReadyStateUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getReadyState (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"characterSet\"]"
-        js_getCharacterSet :: Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.characterSet Mozilla Document.characterSet documentation> 
-getCharacterSet ::
-                (MonadIO m, IsDocument self, FromJSString result) =>
-                  self -> m (Maybe result)
-getCharacterSet self
-  = liftIO
-      (fromMaybeJSString <$> (js_getCharacterSet (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.characterSet Mozilla Document.characterSet documentation> 
-getCharacterSetUnsafe ::
-                      (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                        self -> m result
-getCharacterSetUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getCharacterSet (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.characterSet Mozilla Document.characterSet documentation> 
-getCharacterSetUnchecked ::
-                         (MonadIO m, IsDocument self, FromJSString result) =>
-                           self -> m result
-getCharacterSetUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getCharacterSet (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"preferredStylesheetSet\"]"
-        js_getPreferredStylesheetSet :: Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.preferredStylesheetSet Mozilla Document.preferredStylesheetSet documentation> 
-getPreferredStylesheetSet ::
-                          (MonadIO m, IsDocument self, FromJSString result) =>
-                            self -> m (Maybe result)
-getPreferredStylesheetSet self
-  = liftIO
-      (fromMaybeJSString <$>
-         (js_getPreferredStylesheetSet (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.preferredStylesheetSet Mozilla Document.preferredStylesheetSet documentation> 
-getPreferredStylesheetSetUnsafe ::
-                                (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                                  self -> m result
-getPreferredStylesheetSetUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_getPreferredStylesheetSet (toDocument self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.preferredStylesheetSet Mozilla Document.preferredStylesheetSet documentation> 
-getPreferredStylesheetSetUnchecked ::
-                                   (MonadIO m, IsDocument self, FromJSString result) =>
-                                     self -> m result
-getPreferredStylesheetSetUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getPreferredStylesheetSet (toDocument self)))
- 
-foreign import javascript unsafe
-        "$1[\"selectedStylesheetSet\"] = $2;" js_setSelectedStylesheetSet
-        :: Document -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.selectedStylesheetSet Mozilla Document.selectedStylesheetSet documentation> 
-setSelectedStylesheetSet ::
-                         (MonadIO m, IsDocument self, ToJSString val) =>
-                           self -> Maybe val -> m ()
-setSelectedStylesheetSet self val
-  = liftIO
-      (js_setSelectedStylesheetSet (toDocument self)
-         (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"selectedStylesheetSet\"]"
-        js_getSelectedStylesheetSet :: Document -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.selectedStylesheetSet Mozilla Document.selectedStylesheetSet documentation> 
-getSelectedStylesheetSet ::
-                         (MonadIO m, IsDocument self, FromJSString result) =>
-                           self -> m (Maybe result)
-getSelectedStylesheetSet self
-  = liftIO
-      (fromMaybeJSString <$>
-         (js_getSelectedStylesheetSet (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.selectedStylesheetSet Mozilla Document.selectedStylesheetSet documentation> 
-getSelectedStylesheetSetUnsafe ::
-                               (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
-                                 self -> m result
-getSelectedStylesheetSetUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_getSelectedStylesheetSet (toDocument self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.selectedStylesheetSet Mozilla Document.selectedStylesheetSet documentation> 
-getSelectedStylesheetSetUnchecked ::
-                                  (MonadIO m, IsDocument self, FromJSString result) =>
-                                    self -> m result
-getSelectedStylesheetSetUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getSelectedStylesheetSet (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"activeElement\"]"
-        js_getActiveElement :: Document -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.activeElement Mozilla Document.activeElement documentation> 
-getActiveElement ::
-                 (MonadIO m, IsDocument self) => self -> m (Maybe Element)
-getActiveElement self
-  = liftIO
-      (nullableToMaybe <$> (js_getActiveElement (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.activeElement Mozilla Document.activeElement documentation> 
-getActiveElementUnsafe ::
-                       (MonadIO m, IsDocument self, HasCallStack) => self -> m Element
-getActiveElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getActiveElement (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.activeElement Mozilla Document.activeElement documentation> 
-getActiveElementUnchecked ::
-                          (MonadIO m, IsDocument self) => self -> m Element
-getActiveElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getActiveElement (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"compatMode\"]"
-        js_getCompatMode :: Document -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.compatMode Mozilla Document.compatMode documentation> 
-getCompatMode ::
-              (MonadIO m, IsDocument self, FromJSString result) =>
-                self -> m result
-getCompatMode self
-  = liftIO (fromJSString <$> (js_getCompatMode (toDocument self)))
- 
-foreign import javascript unsafe
-        "($1[\"webkitIsFullScreen\"] ? 1 : 0)" js_getWebkitIsFullScreen ::
-        Document -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitIsFullScreen Mozilla Document.webkitIsFullScreen documentation> 
-getWebkitIsFullScreen ::
-                      (MonadIO m, IsDocument self) => self -> m Bool
-getWebkitIsFullScreen self
-  = liftIO (js_getWebkitIsFullScreen (toDocument self))
- 
-foreign import javascript unsafe
-        "($1[\"webkitFullScreenKeyboardInputAllowed\"] ? 1 : 0)"
-        js_getWebkitFullScreenKeyboardInputAllowed :: Document -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitFullScreenKeyboardInputAllowed Mozilla Document.webkitFullScreenKeyboardInputAllowed documentation> 
-getWebkitFullScreenKeyboardInputAllowed ::
-                                        (MonadIO m, IsDocument self) => self -> m Bool
-getWebkitFullScreenKeyboardInputAllowed self
-  = liftIO
-      (js_getWebkitFullScreenKeyboardInputAllowed (toDocument self))
- 
-foreign import javascript unsafe
-        "$1[\"webkitCurrentFullScreenElement\"]"
-        js_getWebkitCurrentFullScreenElement ::
-        Document -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitCurrentFullScreenElement Mozilla Document.webkitCurrentFullScreenElement documentation> 
-getWebkitCurrentFullScreenElement ::
-                                  (MonadIO m, IsDocument self) => self -> m (Maybe Element)
-getWebkitCurrentFullScreenElement self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getWebkitCurrentFullScreenElement (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitCurrentFullScreenElement Mozilla Document.webkitCurrentFullScreenElement documentation> 
-getWebkitCurrentFullScreenElementUnsafe ::
-                                        (MonadIO m, IsDocument self, HasCallStack) =>
-                                          self -> m Element
-getWebkitCurrentFullScreenElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getWebkitCurrentFullScreenElement (toDocument self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitCurrentFullScreenElement Mozilla Document.webkitCurrentFullScreenElement documentation> 
-getWebkitCurrentFullScreenElementUnchecked ::
-                                           (MonadIO m, IsDocument self) => self -> m Element
-getWebkitCurrentFullScreenElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getWebkitCurrentFullScreenElement (toDocument self)))
- 
-foreign import javascript unsafe
-        "($1[\"webkitFullscreenEnabled\"] ? 1 : 0)"
-        js_getWebkitFullscreenEnabled :: Document -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitFullscreenEnabled Mozilla Document.webkitFullscreenEnabled documentation> 
-getWebkitFullscreenEnabled ::
-                           (MonadIO m, IsDocument self) => self -> m Bool
-getWebkitFullscreenEnabled self
-  = liftIO (js_getWebkitFullscreenEnabled (toDocument self))
- 
-foreign import javascript unsafe "$1[\"webkitFullscreenElement\"]"
-        js_getWebkitFullscreenElement :: Document -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitFullscreenElement Mozilla Document.webkitFullscreenElement documentation> 
-getWebkitFullscreenElement ::
-                           (MonadIO m, IsDocument self) => self -> m (Maybe Element)
-getWebkitFullscreenElement self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getWebkitFullscreenElement (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitFullscreenElement Mozilla Document.webkitFullscreenElement documentation> 
-getWebkitFullscreenElementUnsafe ::
-                                 (MonadIO m, IsDocument self, HasCallStack) => self -> m Element
-getWebkitFullscreenElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getWebkitFullscreenElement (toDocument self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitFullscreenElement Mozilla Document.webkitFullscreenElement documentation> 
-getWebkitFullscreenElementUnchecked ::
-                                    (MonadIO m, IsDocument self) => self -> m Element
-getWebkitFullscreenElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getWebkitFullscreenElement (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"pointerLockElement\"]"
-        js_getPointerLockElement :: Document -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.pointerLockElement Mozilla Document.pointerLockElement documentation> 
-getPointerLockElement ::
-                      (MonadIO m, IsDocument self) => self -> m (Maybe Element)
-getPointerLockElement self
-  = liftIO
-      (nullableToMaybe <$> (js_getPointerLockElement (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.pointerLockElement Mozilla Document.pointerLockElement documentation> 
-getPointerLockElementUnsafe ::
-                            (MonadIO m, IsDocument self, HasCallStack) => self -> m Element
-getPointerLockElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPointerLockElement (toDocument self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.pointerLockElement Mozilla Document.pointerLockElement documentation> 
-getPointerLockElementUnchecked ::
-                               (MonadIO m, IsDocument self) => self -> m Element
-getPointerLockElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getPointerLockElement (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"fonts\"]" js_getFonts ::
-        Document -> IO (Nullable FontLoader)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.fonts Mozilla Document.fonts documentation> 
-getFonts ::
-         (MonadIO m, IsDocument self) => self -> m (Maybe FontLoader)
-getFonts self
-  = liftIO (nullableToMaybe <$> (js_getFonts (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.fonts Mozilla Document.fonts documentation> 
-getFontsUnsafe ::
-               (MonadIO m, IsDocument self, HasCallStack) => self -> m FontLoader
-getFontsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFonts (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.fonts Mozilla Document.fonts documentation> 
-getFontsUnchecked ::
-                  (MonadIO m, IsDocument self) => self -> m FontLoader
-getFontsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getFonts (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onabort Mozilla Document.onabort documentation> 
-abort ::
-      (IsDocument self, IsEventTarget self) => EventName self UIEvent
-abort = unsafeEventName (toJSString "abort")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onblur Mozilla Document.onblur documentation> 
-blur ::
-     (IsDocument self, IsEventTarget self) => EventName self FocusEvent
-blur = unsafeEventName (toJSString "blur")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onchange Mozilla Document.onchange documentation> 
-change ::
-       (IsDocument self, IsEventTarget self) => EventName self Event
-change = unsafeEventName (toJSString "change")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onclick Mozilla Document.onclick documentation> 
-click ::
-      (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-click = unsafeEventName (toJSString "click")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.oncontextmenu Mozilla Document.oncontextmenu documentation> 
-contextMenu ::
-            (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-contextMenu = unsafeEventName (toJSString "contextmenu")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ondblclick Mozilla Document.ondblclick documentation> 
-dblClick ::
-         (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-dblClick = unsafeEventName (toJSString "dblclick")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ondrag Mozilla Document.ondrag documentation> 
-drag ::
-     (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-drag = unsafeEventName (toJSString "drag")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ondragend Mozilla Document.ondragend documentation> 
-dragEnd ::
-        (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-dragEnd = unsafeEventName (toJSString "dragend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ondragenter Mozilla Document.ondragenter documentation> 
-dragEnter ::
-          (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-dragEnter = unsafeEventName (toJSString "dragenter")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ondragleave Mozilla Document.ondragleave documentation> 
-dragLeave ::
-          (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-dragLeave = unsafeEventName (toJSString "dragleave")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ondragover Mozilla Document.ondragover documentation> 
-dragOver ::
-         (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-dragOver = unsafeEventName (toJSString "dragover")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ondragstart Mozilla Document.ondragstart documentation> 
-dragStart ::
-          (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-dragStart = unsafeEventName (toJSString "dragstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ondrop Mozilla Document.ondrop documentation> 
-drop ::
-     (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-drop = unsafeEventName (toJSString "drop")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onerror Mozilla Document.onerror documentation> 
-error ::
-      (IsDocument self, IsEventTarget self) => EventName self UIEvent
-error = unsafeEventName (toJSString "error")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onfocus Mozilla Document.onfocus documentation> 
-focus ::
-      (IsDocument self, IsEventTarget self) => EventName self FocusEvent
-focus = unsafeEventName (toJSString "focus")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.oninput Mozilla Document.oninput documentation> 
-input ::
-      (IsDocument self, IsEventTarget self) => EventName self Event
-input = unsafeEventName (toJSString "input")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.oninvalid Mozilla Document.oninvalid documentation> 
-invalid ::
-        (IsDocument self, IsEventTarget self) => EventName self Event
-invalid = unsafeEventName (toJSString "invalid")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onkeydown Mozilla Document.onkeydown documentation> 
-keyDown ::
-        (IsDocument self, IsEventTarget self) =>
-          EventName self KeyboardEvent
-keyDown = unsafeEventName (toJSString "keydown")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onkeypress Mozilla Document.onkeypress documentation> 
-keyPress ::
-         (IsDocument self, IsEventTarget self) =>
-           EventName self KeyboardEvent
-keyPress = unsafeEventName (toJSString "keypress")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onkeyup Mozilla Document.onkeyup documentation> 
-keyUp ::
-      (IsDocument self, IsEventTarget self) =>
-        EventName self KeyboardEvent
-keyUp = unsafeEventName (toJSString "keyup")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onload Mozilla Document.onload documentation> 
-load ::
-     (IsDocument self, IsEventTarget self) => EventName self UIEvent
-load = unsafeEventName (toJSString "load")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onmousedown Mozilla Document.onmousedown documentation> 
-mouseDown ::
-          (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-mouseDown = unsafeEventName (toJSString "mousedown")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onmouseenter Mozilla Document.onmouseenter documentation> 
-mouseEnter ::
-           (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-mouseEnter = unsafeEventName (toJSString "mouseenter")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onmouseleave Mozilla Document.onmouseleave documentation> 
-mouseLeave ::
-           (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-mouseLeave = unsafeEventName (toJSString "mouseleave")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onmousemove Mozilla Document.onmousemove documentation> 
-mouseMove ::
-          (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-mouseMove = unsafeEventName (toJSString "mousemove")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onmouseout Mozilla Document.onmouseout documentation> 
-mouseOut ::
-         (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-mouseOut = unsafeEventName (toJSString "mouseout")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onmouseover Mozilla Document.onmouseover documentation> 
-mouseOver ::
-          (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-mouseOver = unsafeEventName (toJSString "mouseover")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onmouseup Mozilla Document.onmouseup documentation> 
-mouseUp ::
-        (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-mouseUp = unsafeEventName (toJSString "mouseup")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onmousewheel Mozilla Document.onmousewheel documentation> 
-mouseWheel ::
-           (IsDocument self, IsEventTarget self) => EventName self MouseEvent
-mouseWheel = unsafeEventName (toJSString "mousewheel")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onreadystatechange Mozilla Document.onreadystatechange documentation> 
-readyStateChange ::
-                 (IsDocument self, IsEventTarget self) => EventName self Event
-readyStateChange = unsafeEventName (toJSString "readystatechange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onscroll Mozilla Document.onscroll documentation> 
-scroll ::
-       (IsDocument self, IsEventTarget self) => EventName self UIEvent
-scroll = unsafeEventName (toJSString "scroll")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onselect Mozilla Document.onselect documentation> 
-select ::
-       (IsDocument self, IsEventTarget self) => EventName self UIEvent
-select = unsafeEventName (toJSString "select")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onsubmit Mozilla Document.onsubmit documentation> 
-submit ::
-       (IsDocument self, IsEventTarget self) => EventName self Event
-submit = unsafeEventName (toJSString "submit")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onwheel Mozilla Document.onwheel documentation> 
-wheel ::
-      (IsDocument self, IsEventTarget self) => EventName self WheelEvent
-wheel = unsafeEventName (toJSString "wheel")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onbeforecut Mozilla Document.onbeforecut documentation> 
-beforeCut ::
-          (IsDocument self, IsEventTarget self) => EventName self Event
-beforeCut = unsafeEventName (toJSString "beforecut")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.oncut Mozilla Document.oncut documentation> 
-cut ::
-    (IsDocument self, IsEventTarget self) => EventName self Event
-cut = unsafeEventName (toJSString "cut")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onbeforecopy Mozilla Document.onbeforecopy documentation> 
-beforeCopy ::
-           (IsDocument self, IsEventTarget self) => EventName self Event
-beforeCopy = unsafeEventName (toJSString "beforecopy")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.oncopy Mozilla Document.oncopy documentation> 
-copy ::
-     (IsDocument self, IsEventTarget self) => EventName self Event
-copy = unsafeEventName (toJSString "copy")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onbeforepaste Mozilla Document.onbeforepaste documentation> 
-beforePaste ::
-            (IsDocument self, IsEventTarget self) => EventName self Event
-beforePaste = unsafeEventName (toJSString "beforepaste")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onpaste Mozilla Document.onpaste documentation> 
-paste ::
-      (IsDocument self, IsEventTarget self) => EventName self Event
-paste = unsafeEventName (toJSString "paste")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onreset Mozilla Document.onreset documentation> 
-reset ::
-      (IsDocument self, IsEventTarget self) => EventName self Event
-reset = unsafeEventName (toJSString "reset")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onsearch Mozilla Document.onsearch documentation> 
-search ::
-       (IsDocument self, IsEventTarget self) => EventName self Event
-search = unsafeEventName (toJSString "search")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onselectstart Mozilla Document.onselectstart documentation> 
-selectStart ::
-            (IsDocument self, IsEventTarget self) => EventName self Event
-selectStart = unsafeEventName (toJSString "selectstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onselectionchange Mozilla Document.onselectionchange documentation> 
-selectionchange ::
-                (IsDocument self, IsEventTarget self) =>
-                  EventName self onselectionchange
-selectionchange = unsafeEventName (toJSString "selectionchange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ontouchstart Mozilla Document.ontouchstart documentation> 
-touchStart ::
-           (IsDocument self, IsEventTarget self) => EventName self TouchEvent
-touchStart = unsafeEventName (toJSString "touchstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ontouchmove Mozilla Document.ontouchmove documentation> 
-touchMove ::
-          (IsDocument self, IsEventTarget self) => EventName self TouchEvent
-touchMove = unsafeEventName (toJSString "touchmove")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ontouchend Mozilla Document.ontouchend documentation> 
-touchEnd ::
-         (IsDocument self, IsEventTarget self) => EventName self TouchEvent
-touchEnd = unsafeEventName (toJSString "touchend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.ontouchcancel Mozilla Document.ontouchcancel documentation> 
-touchCancel ::
-            (IsDocument self, IsEventTarget self) => EventName self TouchEvent
-touchCancel = unsafeEventName (toJSString "touchcancel")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onwebkitfullscreenchange Mozilla Document.onwebkitfullscreenchange documentation> 
-webKitFullscreenChange ::
-                       (IsDocument self, IsEventTarget self) => EventName self Event
-webKitFullscreenChange
-  = unsafeEventName (toJSString "webkitfullscreenchange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onwebkitfullscreenerror Mozilla Document.onwebkitfullscreenerror documentation> 
-webKitFullscreenError ::
-                      (IsDocument self, IsEventTarget self) => EventName self Event
-webKitFullscreenError
-  = unsafeEventName (toJSString "webkitfullscreenerror")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onpointerlockchange Mozilla Document.onpointerlockchange documentation> 
-pointerlockchange ::
-                  (IsDocument self, IsEventTarget self) => EventName self Event
-pointerlockchange
-  = unsafeEventName (toJSString "pointerlockchange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onpointerlockerror Mozilla Document.onpointerlockerror documentation> 
-pointerlockerror ::
-                 (IsDocument self, IsEventTarget self) => EventName self Event
-pointerlockerror = unsafeEventName (toJSString "pointerlockerror")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onsecuritypolicyviolation Mozilla Document.onsecuritypolicyviolation documentation> 
-securitypolicyviolation ::
-                        (IsDocument self, IsEventTarget self) =>
-                          EventName self onsecuritypolicyviolation
-securitypolicyviolation
-  = unsafeEventName (toJSString "securitypolicyviolation")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onwebkitwillrevealbottom Mozilla Document.onwebkitwillrevealbottom documentation> 
-webKitWillRevealBottom ::
-                       (IsDocument self, IsEventTarget self) => EventName self Event
-webKitWillRevealBottom
-  = unsafeEventName (toJSString "webkitwillrevealbottom")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onwebkitwillrevealleft Mozilla Document.onwebkitwillrevealleft documentation> 
-webKitWillRevealLeft ::
-                     (IsDocument self, IsEventTarget self) => EventName self Event
-webKitWillRevealLeft
-  = unsafeEventName (toJSString "webkitwillrevealleft")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onwebkitwillrevealright Mozilla Document.onwebkitwillrevealright documentation> 
-webKitWillRevealRight ::
-                      (IsDocument self, IsEventTarget self) => EventName self Event
-webKitWillRevealRight
-  = unsafeEventName (toJSString "webkitwillrevealright")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onwebkitwillrevealtop Mozilla Document.onwebkitwillrevealtop documentation> 
-webKitWillRevealTop ::
-                    (IsDocument self, IsEventTarget self) => EventName self Event
-webKitWillRevealTop
-  = unsafeEventName (toJSString "webkitwillrevealtop")
- 
-foreign import javascript unsafe "$1[\"visibilityState\"]"
-        js_getVisibilityState :: Document -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.visibilityState Mozilla Document.visibilityState documentation> 
-getVisibilityState ::
-                   (MonadIO m, IsDocument self, FromJSString result) =>
-                     self -> m result
-getVisibilityState self
-  = liftIO
-      (fromJSString <$> (js_getVisibilityState (toDocument self)))
- 
-foreign import javascript unsafe "($1[\"hidden\"] ? 1 : 0)"
-        js_getHidden :: Document -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.hidden Mozilla Document.hidden documentation> 
-getHidden :: (MonadIO m, IsDocument self) => self -> m Bool
-getHidden self = liftIO (js_getHidden (toDocument self))
- 
-foreign import javascript unsafe "$1[\"securityPolicy\"]"
-        js_getSecurityPolicy :: Document -> IO (Nullable SecurityPolicy)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.securityPolicy Mozilla Document.securityPolicy documentation> 
-getSecurityPolicy ::
-                  (MonadIO m, IsDocument self) => self -> m (Maybe SecurityPolicy)
-getSecurityPolicy self
-  = liftIO
-      (nullableToMaybe <$> (js_getSecurityPolicy (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.securityPolicy Mozilla Document.securityPolicy documentation> 
-getSecurityPolicyUnsafe ::
-                        (MonadIO m, IsDocument self, HasCallStack) =>
-                          self -> m SecurityPolicy
-getSecurityPolicyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSecurityPolicy (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.securityPolicy Mozilla Document.securityPolicy documentation> 
-getSecurityPolicyUnchecked ::
-                           (MonadIO m, IsDocument self) => self -> m SecurityPolicy
-getSecurityPolicyUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getSecurityPolicy (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"currentScript\"]"
-        js_getCurrentScript :: Document -> IO (Nullable HTMLScriptElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.currentScript Mozilla Document.currentScript documentation> 
-getCurrentScript ::
-                 (MonadIO m, IsDocument self) => self -> m (Maybe HTMLScriptElement)
-getCurrentScript self
-  = liftIO
-      (nullableToMaybe <$> (js_getCurrentScript (toDocument self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.currentScript Mozilla Document.currentScript documentation> 
-getCurrentScriptUnsafe ::
-                       (MonadIO m, IsDocument self, HasCallStack) =>
-                         self -> m HTMLScriptElement
-getCurrentScriptUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCurrentScript (toDocument self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.currentScript Mozilla Document.currentScript documentation> 
-getCurrentScriptUnchecked ::
-                          (MonadIO m, IsDocument self) => self -> m HTMLScriptElement
-getCurrentScriptUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getCurrentScript (toDocument self)))
- 
-foreign import javascript unsafe "$1[\"origin\"]" js_getOrigin ::
-        Document -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.origin Mozilla Document.origin documentation> 
-getOrigin ::
-          (MonadIO m, IsDocument self, FromJSString result) =>
-            self -> m result
-getOrigin self
-  = liftIO (fromJSString <$> (js_getOrigin (toDocument self)))
+       (js_getAnimations, getAnimations, getAnimations_, js_newDocument,
+        newDocument, js_createElement, createElement, createElement_,
+        js_createDocumentFragment, createDocumentFragment,
+        createDocumentFragment_, js_createTextNode, createTextNode,
+        createTextNode_, js_createComment, createComment, createComment_,
+        js_createCDATASection, createCDATASection, createCDATASection_,
+        js_createProcessingInstruction, createProcessingInstruction,
+        createProcessingInstruction_, js_createAttribute, createAttribute,
+        createAttribute_, js_getElementsByTagName, getElementsByTagName,
+        getElementsByTagName_, js_importNode, importNode, importNode_,
+        js_createElementNS, createElementNS, createElementNS_,
+        js_createAttributeNS, createAttributeNS, createAttributeNS_,
+        js_getElementsByTagNameNS, getElementsByTagNameNS,
+        getElementsByTagNameNS_, js_adoptNode, adoptNode, adoptNode_,
+        js_createEvent, createEvent, createEvent_, js_createRange,
+        createRange, createRange_, js_createNodeIterator,
+        createNodeIterator, createNodeIterator_, js_createTreeWalker,
+        createTreeWalker, createTreeWalker_, js_getOverrideStyle,
+        getOverrideStyle, getOverrideStyle_, js_createExpression,
+        createExpression, createExpression_, js_createNSResolver,
+        createNSResolver, createNSResolver_, js_evaluate, evaluate,
+        evaluate_, js_execCommand, execCommand, execCommand_,
+        js_queryCommandEnabled, queryCommandEnabled, queryCommandEnabled_,
+        js_queryCommandIndeterm, queryCommandIndeterm,
+        queryCommandIndeterm_, js_queryCommandState, queryCommandState,
+        queryCommandState_, js_queryCommandSupported,
+        queryCommandSupported, queryCommandSupported_,
+        js_queryCommandValue, queryCommandValue, queryCommandValue_,
+        js_getElementsByName, getElementsByName, getElementsByName_,
+        js_caretRangeFromPoint, caretRangeFromPoint, caretRangeFromPoint_,
+        js_getSelection, getSelection, getSelection_,
+        js_getCSSCanvasContext, getCSSCanvasContext, getCSSCanvasContext_,
+        js_getElementsByClassName, getElementsByClassName,
+        getElementsByClassName_, js_hasFocus, hasFocus, hasFocus_,
+        js_webkitCancelFullScreen, webkitCancelFullScreen,
+        js_webkitExitFullscreen, webkitExitFullscreen, js_exitPointerLock,
+        exitPointerLock, js_webkitGetNamedFlows, webkitGetNamedFlows,
+        webkitGetNamedFlows_, js_createTouch, createTouch, createTouch_,
+        js_createTouchList, createTouchList, createTouchList_,
+        js_getTimeline, getTimeline, js_getDoctype, getDoctype,
+        getDoctypeUnsafe, getDoctypeUnchecked, js_getImplementation,
+        getImplementation, js_getDocumentElement, getDocumentElement,
+        getDocumentElementUnsafe, getDocumentElementUnchecked,
+        js_getInputEncoding, getInputEncoding, js_getXmlEncoding,
+        getXmlEncoding, getXmlEncodingUnsafe, getXmlEncodingUnchecked,
+        js_setXmlVersion, setXmlVersion, js_getXmlVersion, getXmlVersion,
+        getXmlVersionUnsafe, getXmlVersionUnchecked, js_setXmlStandalone,
+        setXmlStandalone, js_getXmlStandalone, getXmlStandalone,
+        js_getDocumentURI, getDocumentURI, js_getDefaultView,
+        getDefaultView, js_getStyleSheets, getStyleSheets,
+        js_getContentType, getContentType, js_setTitle, setTitle,
+        js_getTitle, getTitle, js_setDir, setDir, js_getDir, getDir,
+        js_setDesignMode, setDesignMode, js_getDesignMode, getDesignMode,
+        js_getReferrer, getReferrer, js_setDomain, setDomain, js_getDomain,
+        getDomain, js_getURL, getURL, js_setCookie, setCookie,
+        js_getCookie, getCookie, js_setBody, setBody, js_getBody, getBody,
+        getBodyUnsafe, getBodyUnchecked, js_getHead, getHead,
+        getHeadUnsafe, getHeadUnchecked, js_getImages, getImages,
+        js_getApplets, getApplets, js_getLinks, getLinks, js_getForms,
+        getForms, js_getAnchors, getAnchors, js_getEmbeds, getEmbeds,
+        js_getPlugins, getPlugins, js_getScripts, getScripts,
+        js_getLastModified, getLastModified, js_getLocation, getLocation,
+        getLocationUnsafe, getLocationUnchecked, js_getCharset, getCharset,
+        js_getReadyState, getReadyState, js_getCharacterSet,
+        getCharacterSet, js_getPreferredStylesheetSet,
+        getPreferredStylesheetSet, getPreferredStylesheetSetUnsafe,
+        getPreferredStylesheetSetUnchecked, js_setSelectedStylesheetSet,
+        setSelectedStylesheetSet, js_getSelectedStylesheetSet,
+        getSelectedStylesheetSet, getSelectedStylesheetSetUnsafe,
+        getSelectedStylesheetSetUnchecked, js_getCompatMode, getCompatMode,
+        js_getWebkitIsFullScreen, getWebkitIsFullScreen,
+        js_getWebkitFullScreenKeyboardInputAllowed,
+        getWebkitFullScreenKeyboardInputAllowed,
+        js_getWebkitCurrentFullScreenElement,
+        getWebkitCurrentFullScreenElement, js_getWebkitFullscreenEnabled,
+        getWebkitFullscreenEnabled, js_getWebkitFullscreenElement,
+        getWebkitFullscreenElement, getWebkitFullscreenElementUnsafe,
+        getWebkitFullscreenElementUnchecked, js_getFonts, getFonts,
+        js_getVisibilityState, getVisibilityState, js_getHidden, getHidden,
+        visibilitychange, js_getCurrentScript, getCurrentScript,
+        getCurrentScriptUnsafe, getCurrentScriptUnchecked, js_getOrigin,
+        getOrigin, js_getScrollingElement, getScrollingElement,
+        getScrollingElementUnsafe, getScrollingElementUnchecked,
+        beforeCopy, beforeCut, beforeinput, beforePaste, copy, cut, paste,
+        selectStart, webKitFullscreenChange, webKitFullscreenError,
+        selectionchange, readyStateChange, pointerlockchange,
+        pointerlockerror, js_getRootElement, getRootElement,
+        getRootElementUnsafe, getRootElementUnchecked, Document(..),
+        gTypeDocument, IsDocument, toDocument)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"getAnimations\"]()"
+        js_getAnimations :: Document -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getAnimations Mozilla Document.getAnimations documentation> 
+getAnimations ::
+              (MonadIO m, IsDocument self) => self -> m [Animation]
+getAnimations self
+  = liftIO
+      ((js_getAnimations (toDocument self)) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getAnimations Mozilla Document.getAnimations documentation> 
+getAnimations_ :: (MonadIO m, IsDocument self) => self -> m ()
+getAnimations_ self
+  = liftIO (void (js_getAnimations (toDocument self)))
+ 
+foreign import javascript unsafe "new window[\"Document\"]()"
+        js_newDocument :: IO Document
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document Mozilla Document documentation> 
+newDocument :: (MonadIO m) => m Document
+newDocument = liftIO (js_newDocument)
+ 
+foreign import javascript unsafe "$1[\"createElement\"]($2)"
+        js_createElement :: Document -> JSString -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElement Mozilla Document.createElement documentation> 
+createElement ::
+              (MonadIO m, IsDocument self, ToJSString tagName) =>
+                self -> tagName -> m Element
+createElement self tagName
+  = liftIO (js_createElement (toDocument self) (toJSString tagName))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElement Mozilla Document.createElement documentation> 
+createElement_ ::
+               (MonadIO m, IsDocument self, ToJSString tagName) =>
+                 self -> tagName -> m ()
+createElement_ self tagName
+  = liftIO
+      (void (js_createElement (toDocument self) (toJSString tagName)))
+ 
+foreign import javascript unsafe "$1[\"createDocumentFragment\"]()"
+        js_createDocumentFragment :: Document -> IO DocumentFragment
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createDocumentFragment Mozilla Document.createDocumentFragment documentation> 
+createDocumentFragment ::
+                       (MonadIO m, IsDocument self) => self -> m DocumentFragment
+createDocumentFragment self
+  = liftIO (js_createDocumentFragment (toDocument self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createDocumentFragment Mozilla Document.createDocumentFragment documentation> 
+createDocumentFragment_ ::
+                        (MonadIO m, IsDocument self) => self -> m ()
+createDocumentFragment_ self
+  = liftIO (void (js_createDocumentFragment (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"createTextNode\"]($2)"
+        js_createTextNode :: Document -> JSString -> IO Text
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTextNode Mozilla Document.createTextNode documentation> 
+createTextNode ::
+               (MonadIO m, IsDocument self, ToJSString data') =>
+                 self -> data' -> m Text
+createTextNode self data'
+  = liftIO (js_createTextNode (toDocument self) (toJSString data'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTextNode Mozilla Document.createTextNode documentation> 
+createTextNode_ ::
+                (MonadIO m, IsDocument self, ToJSString data') =>
+                  self -> data' -> m ()
+createTextNode_ self data'
+  = liftIO
+      (void (js_createTextNode (toDocument self) (toJSString data')))
+ 
+foreign import javascript unsafe "$1[\"createComment\"]($2)"
+        js_createComment :: Document -> JSString -> IO Comment
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createComment Mozilla Document.createComment documentation> 
+createComment ::
+              (MonadIO m, IsDocument self, ToJSString data') =>
+                self -> data' -> m Comment
+createComment self data'
+  = liftIO (js_createComment (toDocument self) (toJSString data'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createComment Mozilla Document.createComment documentation> 
+createComment_ ::
+               (MonadIO m, IsDocument self, ToJSString data') =>
+                 self -> data' -> m ()
+createComment_ self data'
+  = liftIO
+      (void (js_createComment (toDocument self) (toJSString data')))
+ 
+foreign import javascript unsafe "$1[\"createCDATASection\"]($2)"
+        js_createCDATASection :: Document -> JSString -> IO CDATASection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createCDATASection Mozilla Document.createCDATASection documentation> 
+createCDATASection ::
+                   (MonadIO m, IsDocument self, ToJSString data') =>
+                     self -> data' -> m CDATASection
+createCDATASection self data'
+  = liftIO
+      (js_createCDATASection (toDocument self) (toJSString data'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createCDATASection Mozilla Document.createCDATASection documentation> 
+createCDATASection_ ::
+                    (MonadIO m, IsDocument self, ToJSString data') =>
+                      self -> data' -> m ()
+createCDATASection_ self data'
+  = liftIO
+      (void (js_createCDATASection (toDocument self) (toJSString data')))
+ 
+foreign import javascript unsafe
+        "$1[\"createProcessingInstruction\"]($2,\n$3)"
+        js_createProcessingInstruction ::
+        Document -> JSString -> JSString -> IO ProcessingInstruction
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createProcessingInstruction Mozilla Document.createProcessingInstruction documentation> 
+createProcessingInstruction ::
+                            (MonadIO m, IsDocument self, ToJSString target,
+                             ToJSString data') =>
+                              self -> target -> data' -> m ProcessingInstruction
+createProcessingInstruction self target data'
+  = liftIO
+      (js_createProcessingInstruction (toDocument self)
+         (toJSString target)
+         (toJSString data'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createProcessingInstruction Mozilla Document.createProcessingInstruction documentation> 
+createProcessingInstruction_ ::
+                             (MonadIO m, IsDocument self, ToJSString target,
+                              ToJSString data') =>
+                               self -> target -> data' -> m ()
+createProcessingInstruction_ self target data'
+  = liftIO
+      (void
+         (js_createProcessingInstruction (toDocument self)
+            (toJSString target)
+            (toJSString data')))
+ 
+foreign import javascript unsafe "$1[\"createAttribute\"]($2)"
+        js_createAttribute :: Document -> JSString -> IO Attr
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttribute Mozilla Document.createAttribute documentation> 
+createAttribute ::
+                (MonadIO m, IsDocument self, ToJSString name) =>
+                  self -> name -> m Attr
+createAttribute self name
+  = liftIO (js_createAttribute (toDocument self) (toJSString name))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttribute Mozilla Document.createAttribute documentation> 
+createAttribute_ ::
+                 (MonadIO m, IsDocument self, ToJSString name) =>
+                   self -> name -> m ()
+createAttribute_ self name
+  = liftIO
+      (void (js_createAttribute (toDocument self) (toJSString name)))
+ 
+foreign import javascript unsafe "$1[\"getElementsByTagName\"]($2)"
+        js_getElementsByTagName ::
+        Document -> JSString -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagName Mozilla Document.getElementsByTagName documentation> 
+getElementsByTagName ::
+                     (MonadIO m, IsDocument self, ToJSString tagname) =>
+                       self -> tagname -> m HTMLCollection
+getElementsByTagName self tagname
+  = liftIO
+      (js_getElementsByTagName (toDocument self) (toJSString tagname))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagName Mozilla Document.getElementsByTagName documentation> 
+getElementsByTagName_ ::
+                      (MonadIO m, IsDocument self, ToJSString tagname) =>
+                        self -> tagname -> m ()
+getElementsByTagName_ self tagname
+  = liftIO
+      (void
+         (js_getElementsByTagName (toDocument self) (toJSString tagname)))
+ 
+foreign import javascript unsafe "$1[\"importNode\"]($2, $3)"
+        js_importNode :: Document -> Node -> Bool -> IO Node
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.importNode Mozilla Document.importNode documentation> 
+importNode ::
+           (MonadIO m, IsDocument self, IsNode importedNode) =>
+             self -> importedNode -> Bool -> m Node
+importNode self importedNode deep
+  = liftIO
+      (js_importNode (toDocument self) (toNode importedNode) deep)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.importNode Mozilla Document.importNode documentation> 
+importNode_ ::
+            (MonadIO m, IsDocument self, IsNode importedNode) =>
+              self -> importedNode -> Bool -> m ()
+importNode_ self importedNode deep
+  = liftIO
+      (void (js_importNode (toDocument self) (toNode importedNode) deep))
+ 
+foreign import javascript unsafe "$1[\"createElementNS\"]($2, $3)"
+        js_createElementNS ::
+        Document -> Optional JSString -> JSString -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElementNS Mozilla Document.createElementNS documentation> 
+createElementNS ::
+                (MonadIO m, IsDocument self, ToJSString namespaceURI,
+                 ToJSString qualifiedName) =>
+                  self -> Maybe namespaceURI -> qualifiedName -> m Element
+createElementNS self namespaceURI qualifiedName
+  = liftIO
+      (js_createElementNS (toDocument self)
+         (toOptionalJSString namespaceURI)
+         (toJSString qualifiedName))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createElementNS Mozilla Document.createElementNS documentation> 
+createElementNS_ ::
+                 (MonadIO m, IsDocument self, ToJSString namespaceURI,
+                  ToJSString qualifiedName) =>
+                   self -> Maybe namespaceURI -> qualifiedName -> m ()
+createElementNS_ self namespaceURI qualifiedName
+  = liftIO
+      (void
+         (js_createElementNS (toDocument self)
+            (toOptionalJSString namespaceURI)
+            (toJSString qualifiedName)))
+ 
+foreign import javascript unsafe
+        "$1[\"createAttributeNS\"]($2, $3)" js_createAttributeNS ::
+        Document -> Optional JSString -> JSString -> IO Attr
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttributeNS Mozilla Document.createAttributeNS documentation> 
+createAttributeNS ::
+                  (MonadIO m, IsDocument self, ToJSString namespaceURI,
+                   ToJSString qualifiedName) =>
+                    self -> Maybe namespaceURI -> qualifiedName -> m Attr
+createAttributeNS self namespaceURI qualifiedName
+  = liftIO
+      (js_createAttributeNS (toDocument self)
+         (toOptionalJSString namespaceURI)
+         (toJSString qualifiedName))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createAttributeNS Mozilla Document.createAttributeNS documentation> 
+createAttributeNS_ ::
+                   (MonadIO m, IsDocument self, ToJSString namespaceURI,
+                    ToJSString qualifiedName) =>
+                     self -> Maybe namespaceURI -> qualifiedName -> m ()
+createAttributeNS_ self namespaceURI qualifiedName
+  = liftIO
+      (void
+         (js_createAttributeNS (toDocument self)
+            (toOptionalJSString namespaceURI)
+            (toJSString qualifiedName)))
+ 
+foreign import javascript unsafe
+        "$1[\"getElementsByTagNameNS\"]($2,\n$3)" js_getElementsByTagNameNS
+        :: Document -> Optional JSString -> JSString -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagNameNS Mozilla Document.getElementsByTagNameNS documentation> 
+getElementsByTagNameNS ::
+                       (MonadIO m, IsDocument self, ToJSString namespaceURI,
+                        ToJSString localName) =>
+                         self -> Maybe namespaceURI -> localName -> m HTMLCollection
+getElementsByTagNameNS self namespaceURI localName
+  = liftIO
+      (js_getElementsByTagNameNS (toDocument self)
+         (toOptionalJSString namespaceURI)
+         (toJSString localName))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByTagNameNS Mozilla Document.getElementsByTagNameNS documentation> 
+getElementsByTagNameNS_ ::
+                        (MonadIO m, IsDocument self, ToJSString namespaceURI,
+                         ToJSString localName) =>
+                          self -> Maybe namespaceURI -> localName -> m ()
+getElementsByTagNameNS_ self namespaceURI localName
+  = liftIO
+      (void
+         (js_getElementsByTagNameNS (toDocument self)
+            (toOptionalJSString namespaceURI)
+            (toJSString localName)))
+ 
+foreign import javascript unsafe "$1[\"adoptNode\"]($2)"
+        js_adoptNode :: Document -> Node -> IO Node
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.adoptNode Mozilla Document.adoptNode documentation> 
+adoptNode ::
+          (MonadIO m, IsDocument self, IsNode source) =>
+            self -> source -> m Node
+adoptNode self source
+  = liftIO (js_adoptNode (toDocument self) (toNode source))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.adoptNode Mozilla Document.adoptNode documentation> 
+adoptNode_ ::
+           (MonadIO m, IsDocument self, IsNode source) =>
+             self -> source -> m ()
+adoptNode_ self source
+  = liftIO (void (js_adoptNode (toDocument self) (toNode source)))
+ 
+foreign import javascript unsafe "$1[\"createEvent\"]($2)"
+        js_createEvent :: Document -> JSString -> IO Event
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createEvent Mozilla Document.createEvent documentation> 
+createEvent ::
+            (MonadIO m, IsDocument self, ToJSString eventType) =>
+              self -> eventType -> m Event
+createEvent self eventType
+  = liftIO (js_createEvent (toDocument self) (toJSString eventType))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createEvent Mozilla Document.createEvent documentation> 
+createEvent_ ::
+             (MonadIO m, IsDocument self, ToJSString eventType) =>
+               self -> eventType -> m ()
+createEvent_ self eventType
+  = liftIO
+      (void (js_createEvent (toDocument self) (toJSString eventType)))
+ 
+foreign import javascript unsafe "$1[\"createRange\"]()"
+        js_createRange :: Document -> IO Range
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createRange Mozilla Document.createRange documentation> 
+createRange :: (MonadIO m, IsDocument self) => self -> m Range
+createRange self = liftIO (js_createRange (toDocument self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createRange Mozilla Document.createRange documentation> 
+createRange_ :: (MonadIO m, IsDocument self) => self -> m ()
+createRange_ self
+  = liftIO (void (js_createRange (toDocument self)))
+ 
+foreign import javascript unsafe
+        "$1[\"createNodeIterator\"]($2, $3,\n$4)" js_createNodeIterator ::
+        Document ->
+          Node -> Optional Word -> Optional NodeFilter -> IO NodeIterator
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNodeIterator Mozilla Document.createNodeIterator documentation> 
+createNodeIterator ::
+                   (MonadIO m, IsDocument self, IsNode root) =>
+                     self -> root -> Maybe Word -> Maybe NodeFilter -> m NodeIterator
+createNodeIterator self root whatToShow filter
+  = liftIO
+      (js_createNodeIterator (toDocument self) (toNode root)
+         (maybeToOptional whatToShow)
+         (maybeToOptional filter))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNodeIterator Mozilla Document.createNodeIterator documentation> 
+createNodeIterator_ ::
+                    (MonadIO m, IsDocument self, IsNode root) =>
+                      self -> root -> Maybe Word -> Maybe NodeFilter -> m ()
+createNodeIterator_ self root whatToShow filter
+  = liftIO
+      (void
+         (js_createNodeIterator (toDocument self) (toNode root)
+            (maybeToOptional whatToShow)
+            (maybeToOptional filter)))
+ 
+foreign import javascript unsafe
+        "$1[\"createTreeWalker\"]($2, $3,\n$4)" js_createTreeWalker ::
+        Document ->
+          Node -> Optional Word -> Optional NodeFilter -> IO TreeWalker
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTreeWalker Mozilla Document.createTreeWalker documentation> 
+createTreeWalker ::
+                 (MonadIO m, IsDocument self, IsNode root) =>
+                   self -> root -> Maybe Word -> Maybe NodeFilter -> m TreeWalker
+createTreeWalker self root whatToShow filter
+  = liftIO
+      (js_createTreeWalker (toDocument self) (toNode root)
+         (maybeToOptional whatToShow)
+         (maybeToOptional filter))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTreeWalker Mozilla Document.createTreeWalker documentation> 
+createTreeWalker_ ::
+                  (MonadIO m, IsDocument self, IsNode root) =>
+                    self -> root -> Maybe Word -> Maybe NodeFilter -> m ()
+createTreeWalker_ self root whatToShow filter
+  = liftIO
+      (void
+         (js_createTreeWalker (toDocument self) (toNode root)
+            (maybeToOptional whatToShow)
+            (maybeToOptional filter)))
+ 
+foreign import javascript unsafe "$1[\"getOverrideStyle\"]($2, $3)"
+        js_getOverrideStyle ::
+        Document ->
+          Optional Element -> Optional JSString -> IO CSSStyleDeclaration
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getOverrideStyle Mozilla Document.getOverrideStyle documentation> 
+getOverrideStyle ::
+                 (MonadIO m, IsDocument self, IsElement element,
+                  ToJSString pseudoElement) =>
+                   self ->
+                     Maybe element -> Maybe pseudoElement -> m CSSStyleDeclaration
+getOverrideStyle self element pseudoElement
+  = liftIO
+      (js_getOverrideStyle (toDocument self)
+         (maybeToOptional (fmap toElement element))
+         (toOptionalJSString pseudoElement))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getOverrideStyle Mozilla Document.getOverrideStyle documentation> 
+getOverrideStyle_ ::
+                  (MonadIO m, IsDocument self, IsElement element,
+                   ToJSString pseudoElement) =>
+                    self -> Maybe element -> Maybe pseudoElement -> m ()
+getOverrideStyle_ self element pseudoElement
+  = liftIO
+      (void
+         (js_getOverrideStyle (toDocument self)
+            (maybeToOptional (fmap toElement element))
+            (toOptionalJSString pseudoElement)))
+ 
+foreign import javascript unsafe "$1[\"createExpression\"]($2, $3)"
+        js_createExpression ::
+        Document ->
+          Optional JSString -> Optional XPathNSResolver -> IO XPathExpression
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createExpression Mozilla Document.createExpression documentation> 
+createExpression ::
+                 (MonadIO m, IsDocument self, ToJSString expression) =>
+                   self ->
+                     Maybe expression -> Maybe XPathNSResolver -> m XPathExpression
+createExpression self expression resolver
+  = liftIO
+      (js_createExpression (toDocument self)
+         (toOptionalJSString expression)
+         (maybeToOptional resolver))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createExpression Mozilla Document.createExpression documentation> 
+createExpression_ ::
+                  (MonadIO m, IsDocument self, ToJSString expression) =>
+                    self -> Maybe expression -> Maybe XPathNSResolver -> m ()
+createExpression_ self expression resolver
+  = liftIO
+      (void
+         (js_createExpression (toDocument self)
+            (toOptionalJSString expression)
+            (maybeToOptional resolver)))
+ 
+foreign import javascript unsafe "$1[\"createNSResolver\"]($2)"
+        js_createNSResolver ::
+        Document -> Optional Node -> IO XPathNSResolver
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNSResolver Mozilla Document.createNSResolver documentation> 
+createNSResolver ::
+                 (MonadIO m, IsDocument self, IsNode nodeResolver) =>
+                   self -> Maybe nodeResolver -> m XPathNSResolver
+createNSResolver self nodeResolver
+  = liftIO
+      (js_createNSResolver (toDocument self)
+         (maybeToOptional (fmap toNode nodeResolver)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createNSResolver Mozilla Document.createNSResolver documentation> 
+createNSResolver_ ::
+                  (MonadIO m, IsDocument self, IsNode nodeResolver) =>
+                    self -> Maybe nodeResolver -> m ()
+createNSResolver_ self nodeResolver
+  = liftIO
+      (void
+         (js_createNSResolver (toDocument self)
+            (maybeToOptional (fmap toNode nodeResolver))))
+ 
+foreign import javascript unsafe
+        "$1[\"evaluate\"]($2, $3, $4, $5,\n$6)" js_evaluate ::
+        Document ->
+          Optional JSString ->
+            Optional Node ->
+              Optional XPathNSResolver ->
+                Optional Word -> Optional XPathResult -> IO XPathResult
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.evaluate Mozilla Document.evaluate documentation> 
+evaluate ::
+         (MonadIO m, IsDocument self, ToJSString expression,
+          IsNode contextNode) =>
+           self ->
+             Maybe expression ->
+               Maybe contextNode ->
+                 Maybe XPathNSResolver ->
+                   Maybe Word -> Maybe XPathResult -> m XPathResult
+evaluate self expression contextNode resolver type' inResult
+  = liftIO
+      (js_evaluate (toDocument self) (toOptionalJSString expression)
+         (maybeToOptional (fmap toNode contextNode))
+         (maybeToOptional resolver)
+         (maybeToOptional type')
+         (maybeToOptional inResult))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.evaluate Mozilla Document.evaluate documentation> 
+evaluate_ ::
+          (MonadIO m, IsDocument self, ToJSString expression,
+           IsNode contextNode) =>
+            self ->
+              Maybe expression ->
+                Maybe contextNode ->
+                  Maybe XPathNSResolver -> Maybe Word -> Maybe XPathResult -> m ()
+evaluate_ self expression contextNode resolver type' inResult
+  = liftIO
+      (void
+         (js_evaluate (toDocument self) (toOptionalJSString expression)
+            (maybeToOptional (fmap toNode contextNode))
+            (maybeToOptional resolver)
+            (maybeToOptional type')
+            (maybeToOptional inResult)))
+ 
+foreign import javascript unsafe
+        "($1[\"execCommand\"]($2, $3,\n$4) ? 1 : 0)" js_execCommand ::
+        Document -> JSString -> Bool -> Optional JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.execCommand Mozilla Document.execCommand documentation> 
+execCommand ::
+            (MonadIO m, IsDocument self, ToJSString command,
+             ToJSString value) =>
+              self -> command -> Bool -> Maybe value -> m Bool
+execCommand self command userInterface value
+  = liftIO
+      (js_execCommand (toDocument self) (toJSString command)
+         userInterface
+         (toOptionalJSString value))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.execCommand Mozilla Document.execCommand documentation> 
+execCommand_ ::
+             (MonadIO m, IsDocument self, ToJSString command,
+              ToJSString value) =>
+               self -> command -> Bool -> Maybe value -> m ()
+execCommand_ self command userInterface value
+  = liftIO
+      (void
+         (js_execCommand (toDocument self) (toJSString command)
+            userInterface
+            (toOptionalJSString value)))
+ 
+foreign import javascript unsafe
+        "($1[\"queryCommandEnabled\"]($2) ? 1 : 0)" js_queryCommandEnabled
+        :: Document -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandEnabled Mozilla Document.queryCommandEnabled documentation> 
+queryCommandEnabled ::
+                    (MonadIO m, IsDocument self, ToJSString command) =>
+                      self -> command -> m Bool
+queryCommandEnabled self command
+  = liftIO
+      (js_queryCommandEnabled (toDocument self) (toJSString command))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandEnabled Mozilla Document.queryCommandEnabled documentation> 
+queryCommandEnabled_ ::
+                     (MonadIO m, IsDocument self, ToJSString command) =>
+                       self -> command -> m ()
+queryCommandEnabled_ self command
+  = liftIO
+      (void
+         (js_queryCommandEnabled (toDocument self) (toJSString command)))
+ 
+foreign import javascript unsafe
+        "($1[\"queryCommandIndeterm\"]($2) ? 1 : 0)"
+        js_queryCommandIndeterm :: Document -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandIndeterm Mozilla Document.queryCommandIndeterm documentation> 
+queryCommandIndeterm ::
+                     (MonadIO m, IsDocument self, ToJSString command) =>
+                       self -> command -> m Bool
+queryCommandIndeterm self command
+  = liftIO
+      (js_queryCommandIndeterm (toDocument self) (toJSString command))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandIndeterm Mozilla Document.queryCommandIndeterm documentation> 
+queryCommandIndeterm_ ::
+                      (MonadIO m, IsDocument self, ToJSString command) =>
+                        self -> command -> m ()
+queryCommandIndeterm_ self command
+  = liftIO
+      (void
+         (js_queryCommandIndeterm (toDocument self) (toJSString command)))
+ 
+foreign import javascript unsafe
+        "($1[\"queryCommandState\"]($2) ? 1 : 0)" js_queryCommandState ::
+        Document -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandState Mozilla Document.queryCommandState documentation> 
+queryCommandState ::
+                  (MonadIO m, IsDocument self, ToJSString command) =>
+                    self -> command -> m Bool
+queryCommandState self command
+  = liftIO
+      (js_queryCommandState (toDocument self) (toJSString command))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandState Mozilla Document.queryCommandState documentation> 
+queryCommandState_ ::
+                   (MonadIO m, IsDocument self, ToJSString command) =>
+                     self -> command -> m ()
+queryCommandState_ self command
+  = liftIO
+      (void
+         (js_queryCommandState (toDocument self) (toJSString command)))
+ 
+foreign import javascript unsafe
+        "($1[\"queryCommandSupported\"]($2) ? 1 : 0)"
+        js_queryCommandSupported :: Document -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandSupported Mozilla Document.queryCommandSupported documentation> 
+queryCommandSupported ::
+                      (MonadIO m, IsDocument self, ToJSString command) =>
+                        self -> command -> m Bool
+queryCommandSupported self command
+  = liftIO
+      (js_queryCommandSupported (toDocument self) (toJSString command))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandSupported Mozilla Document.queryCommandSupported documentation> 
+queryCommandSupported_ ::
+                       (MonadIO m, IsDocument self, ToJSString command) =>
+                         self -> command -> m ()
+queryCommandSupported_ self command
+  = liftIO
+      (void
+         (js_queryCommandSupported (toDocument self) (toJSString command)))
+ 
+foreign import javascript unsafe "$1[\"queryCommandValue\"]($2)"
+        js_queryCommandValue :: Document -> JSString -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandValue Mozilla Document.queryCommandValue documentation> 
+queryCommandValue ::
+                  (MonadIO m, IsDocument self, ToJSString command,
+                   FromJSString result) =>
+                    self -> command -> m result
+queryCommandValue self command
+  = liftIO
+      (fromJSString <$>
+         (js_queryCommandValue (toDocument self) (toJSString command)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.queryCommandValue Mozilla Document.queryCommandValue documentation> 
+queryCommandValue_ ::
+                   (MonadIO m, IsDocument self, ToJSString command) =>
+                     self -> command -> m ()
+queryCommandValue_ self command
+  = liftIO
+      (void
+         (js_queryCommandValue (toDocument self) (toJSString command)))
+ 
+foreign import javascript unsafe "$1[\"getElementsByName\"]($2)"
+        js_getElementsByName :: Document -> JSString -> IO NodeList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByName Mozilla Document.getElementsByName documentation> 
+getElementsByName ::
+                  (MonadIO m, IsDocument self, ToJSString elementName) =>
+                    self -> elementName -> m NodeList
+getElementsByName self elementName
+  = liftIO
+      (js_getElementsByName (toDocument self) (toJSString elementName))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByName Mozilla Document.getElementsByName documentation> 
+getElementsByName_ ::
+                   (MonadIO m, IsDocument self, ToJSString elementName) =>
+                     self -> elementName -> m ()
+getElementsByName_ self elementName
+  = liftIO
+      (void
+         (js_getElementsByName (toDocument self) (toJSString elementName)))
+ 
+foreign import javascript unsafe
+        "$1[\"caretRangeFromPoint\"]($2,\n$3)" js_caretRangeFromPoint ::
+        Document -> Optional Int -> Optional Int -> IO Range
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.caretRangeFromPoint Mozilla Document.caretRangeFromPoint documentation> 
+caretRangeFromPoint ::
+                    (MonadIO m, IsDocument self) =>
+                      self -> Maybe Int -> Maybe Int -> m Range
+caretRangeFromPoint self x y
+  = liftIO
+      (js_caretRangeFromPoint (toDocument self) (maybeToOptional x)
+         (maybeToOptional y))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.caretRangeFromPoint Mozilla Document.caretRangeFromPoint documentation> 
+caretRangeFromPoint_ ::
+                     (MonadIO m, IsDocument self) =>
+                       self -> Maybe Int -> Maybe Int -> m ()
+caretRangeFromPoint_ self x y
+  = liftIO
+      (void
+         (js_caretRangeFromPoint (toDocument self) (maybeToOptional x)
+            (maybeToOptional y)))
+ 
+foreign import javascript unsafe "$1[\"getSelection\"]()"
+        js_getSelection :: Document -> IO Selection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getSelection Mozilla Document.getSelection documentation> 
+getSelection :: (MonadIO m, IsDocument self) => self -> m Selection
+getSelection self = liftIO (js_getSelection (toDocument self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getSelection Mozilla Document.getSelection documentation> 
+getSelection_ :: (MonadIO m, IsDocument self) => self -> m ()
+getSelection_ self
+  = liftIO (void (js_getSelection (toDocument self)))
+ 
+foreign import javascript unsafe
+        "$1[\"getCSSCanvasContext\"]($2,\n$3, $4, $5)"
+        js_getCSSCanvasContext ::
+        Document ->
+          JSString -> JSString -> Int -> Int -> IO RenderingContext
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getCSSCanvasContext Mozilla Document.getCSSCanvasContext documentation> 
+getCSSCanvasContext ::
+                    (MonadIO m, IsDocument self, ToJSString contextId,
+                     ToJSString name) =>
+                      self -> contextId -> name -> Int -> Int -> m RenderingContext
+getCSSCanvasContext self contextId name width height
+  = liftIO
+      (js_getCSSCanvasContext (toDocument self) (toJSString contextId)
+         (toJSString name)
+         width
+         height)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getCSSCanvasContext Mozilla Document.getCSSCanvasContext documentation> 
+getCSSCanvasContext_ ::
+                     (MonadIO m, IsDocument self, ToJSString contextId,
+                      ToJSString name) =>
+                       self -> contextId -> name -> Int -> Int -> m ()
+getCSSCanvasContext_ self contextId name width height
+  = liftIO
+      (void
+         (js_getCSSCanvasContext (toDocument self) (toJSString contextId)
+            (toJSString name)
+            width
+            height))
+ 
+foreign import javascript unsafe
+        "$1[\"getElementsByClassName\"]($2)" js_getElementsByClassName ::
+        Document -> JSString -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByClassName Mozilla Document.getElementsByClassName documentation> 
+getElementsByClassName ::
+                       (MonadIO m, IsDocument self, ToJSString classNames) =>
+                         self -> classNames -> m HTMLCollection
+getElementsByClassName self classNames
+  = liftIO
+      (js_getElementsByClassName (toDocument self)
+         (toJSString classNames))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.getElementsByClassName Mozilla Document.getElementsByClassName documentation> 
+getElementsByClassName_ ::
+                        (MonadIO m, IsDocument self, ToJSString classNames) =>
+                          self -> classNames -> m ()
+getElementsByClassName_ self classNames
+  = liftIO
+      (void
+         (js_getElementsByClassName (toDocument self)
+            (toJSString classNames)))
+ 
+foreign import javascript unsafe "($1[\"hasFocus\"]() ? 1 : 0)"
+        js_hasFocus :: Document -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.hasFocus Mozilla Document.hasFocus documentation> 
+hasFocus :: (MonadIO m, IsDocument self) => self -> m Bool
+hasFocus self = liftIO (js_hasFocus (toDocument self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.hasFocus Mozilla Document.hasFocus documentation> 
+hasFocus_ :: (MonadIO m, IsDocument self) => self -> m ()
+hasFocus_ self = liftIO (void (js_hasFocus (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"webkitCancelFullScreen\"]()"
+        js_webkitCancelFullScreen :: Document -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitCancelFullScreen Mozilla Document.webkitCancelFullScreen documentation> 
+webkitCancelFullScreen ::
+                       (MonadIO m, IsDocument self) => self -> m ()
+webkitCancelFullScreen self
+  = liftIO (js_webkitCancelFullScreen (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"webkitExitFullscreen\"]()"
+        js_webkitExitFullscreen :: Document -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitExitFullscreen Mozilla Document.webkitExitFullscreen documentation> 
+webkitExitFullscreen ::
+                     (MonadIO m, IsDocument self) => self -> m ()
+webkitExitFullscreen self
+  = liftIO (js_webkitExitFullscreen (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"exitPointerLock\"]()"
+        js_exitPointerLock :: Document -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.exitPointerLock Mozilla Document.exitPointerLock documentation> 
+exitPointerLock :: (MonadIO m, IsDocument self) => self -> m ()
+exitPointerLock self
+  = liftIO (js_exitPointerLock (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"webkitGetNamedFlows\"]()"
+        js_webkitGetNamedFlows :: Document -> IO DOMNamedFlowCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitGetNamedFlows Mozilla Document.webkitGetNamedFlows documentation> 
+webkitGetNamedFlows ::
+                    (MonadIO m, IsDocument self) => self -> m DOMNamedFlowCollection
+webkitGetNamedFlows self
+  = liftIO (js_webkitGetNamedFlows (toDocument self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitGetNamedFlows Mozilla Document.webkitGetNamedFlows documentation> 
+webkitGetNamedFlows_ ::
+                     (MonadIO m, IsDocument self) => self -> m ()
+webkitGetNamedFlows_ self
+  = liftIO (void (js_webkitGetNamedFlows (toDocument self)))
+ 
+foreign import javascript unsafe
+        "$1[\"createTouch\"]($2, $3, $4,\n$5, $6, $7, $8, $9, $10, $11,\n$12)"
+        js_createTouch ::
+        Document ->
+          Optional Window ->
+            Optional EventTarget ->
+              Optional Int ->
+                Optional Int ->
+                  Optional Int ->
+                    Optional Int ->
+                      Optional Int ->
+                        Optional Int ->
+                          Optional Int -> Optional Float -> Optional Float -> IO Touch
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouch Mozilla Document.createTouch documentation> 
+createTouch ::
+            (MonadIO m, IsDocument self, IsEventTarget target) =>
+              self ->
+                Maybe Window ->
+                  Maybe target ->
+                    Maybe Int ->
+                      Maybe Int ->
+                        Maybe Int ->
+                          Maybe Int ->
+                            Maybe Int ->
+                              Maybe Int -> Maybe Int -> Maybe Float -> Maybe Float -> m Touch
+createTouch self window target identifier pageX pageY screenX
+  screenY webkitRadiusX webkitRadiusY webkitRotationAngle webkitForce
+  = liftIO
+      (js_createTouch (toDocument self) (maybeToOptional window)
+         (maybeToOptional (fmap toEventTarget target))
+         (maybeToOptional identifier)
+         (maybeToOptional pageX)
+         (maybeToOptional pageY)
+         (maybeToOptional screenX)
+         (maybeToOptional screenY)
+         (maybeToOptional webkitRadiusX)
+         (maybeToOptional webkitRadiusY)
+         (maybeToOptional webkitRotationAngle)
+         (maybeToOptional webkitForce))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouch Mozilla Document.createTouch documentation> 
+createTouch_ ::
+             (MonadIO m, IsDocument self, IsEventTarget target) =>
+               self ->
+                 Maybe Window ->
+                   Maybe target ->
+                     Maybe Int ->
+                       Maybe Int ->
+                         Maybe Int ->
+                           Maybe Int ->
+                             Maybe Int ->
+                               Maybe Int -> Maybe Int -> Maybe Float -> Maybe Float -> m ()
+createTouch_ self window target identifier pageX pageY screenX
+  screenY webkitRadiusX webkitRadiusY webkitRotationAngle webkitForce
+  = liftIO
+      (void
+         (js_createTouch (toDocument self) (maybeToOptional window)
+            (maybeToOptional (fmap toEventTarget target))
+            (maybeToOptional identifier)
+            (maybeToOptional pageX)
+            (maybeToOptional pageY)
+            (maybeToOptional screenX)
+            (maybeToOptional screenY)
+            (maybeToOptional webkitRadiusX)
+            (maybeToOptional webkitRadiusY)
+            (maybeToOptional webkitRotationAngle)
+            (maybeToOptional webkitForce)))
+ 
+foreign import javascript unsafe "$1[\"createTouchList\"]($2)"
+        js_createTouchList :: Document -> JSVal -> IO TouchList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouchList Mozilla Document.createTouchList documentation> 
+createTouchList ::
+                (MonadIO m, IsDocument self) => self -> [Touch] -> m TouchList
+createTouchList self touches
+  = liftIO
+      (toJSVal touches >>=
+         \ touches' -> js_createTouchList (toDocument self) touches')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.createTouchList Mozilla Document.createTouchList documentation> 
+createTouchList_ ::
+                 (MonadIO m, IsDocument self) => self -> [Touch] -> m ()
+createTouchList_ self touches
+  = liftIO
+      (void
+         (toJSVal touches >>=
+            \ touches' -> js_createTouchList (toDocument self) touches'))
+ 
+foreign import javascript unsafe "$1[\"timeline\"]" js_getTimeline
+        :: Document -> IO DocumentTimeline
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.timeline Mozilla Document.timeline documentation> 
+getTimeline ::
+            (MonadIO m, IsDocument self) => self -> m DocumentTimeline
+getTimeline self = liftIO (js_getTimeline (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"doctype\"]" js_getDoctype ::
+        Document -> IO (Nullable DocumentType)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.doctype Mozilla Document.doctype documentation> 
+getDoctype ::
+           (MonadIO m, IsDocument self) => self -> m (Maybe DocumentType)
+getDoctype self
+  = liftIO (nullableToMaybe <$> (js_getDoctype (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.doctype Mozilla Document.doctype documentation> 
+getDoctypeUnsafe ::
+                 (MonadIO m, IsDocument self, HasCallStack) =>
+                   self -> m DocumentType
+getDoctypeUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getDoctype (toDocument self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.doctype Mozilla Document.doctype documentation> 
+getDoctypeUnchecked ::
+                    (MonadIO m, IsDocument self) => self -> m DocumentType
+getDoctypeUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$> (js_getDoctype (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"implementation\"]"
+        js_getImplementation :: Document -> IO DOMImplementation
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.implementation Mozilla Document.implementation documentation> 
+getImplementation ::
+                  (MonadIO m, IsDocument self) => self -> m DOMImplementation
+getImplementation self
+  = liftIO (js_getImplementation (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"documentElement\"]"
+        js_getDocumentElement :: Document -> IO (Nullable Element)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement Mozilla Document.documentElement documentation> 
+getDocumentElement ::
+                   (MonadIO m, IsDocument self) => self -> m (Maybe Element)
+getDocumentElement self
+  = liftIO
+      (nullableToMaybe <$> (js_getDocumentElement (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement Mozilla Document.documentElement documentation> 
+getDocumentElementUnsafe ::
+                         (MonadIO m, IsDocument self, HasCallStack) => self -> m Element
+getDocumentElementUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getDocumentElement (toDocument self)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement Mozilla Document.documentElement documentation> 
+getDocumentElementUnchecked ::
+                            (MonadIO m, IsDocument self) => self -> m Element
+getDocumentElementUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getDocumentElement (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"inputEncoding\"]"
+        js_getInputEncoding :: Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.inputEncoding Mozilla Document.inputEncoding documentation> 
+getInputEncoding ::
+                 (MonadIO m, IsDocument self, FromJSString result) =>
+                   self -> m result
+getInputEncoding self
+  = liftIO (fromJSString <$> (js_getInputEncoding (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"xmlEncoding\"]"
+        js_getXmlEncoding :: Document -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlEncoding Mozilla Document.xmlEncoding documentation> 
+getXmlEncoding ::
+               (MonadIO m, IsDocument self, FromJSString result) =>
+                 self -> m (Maybe result)
+getXmlEncoding self
+  = liftIO
+      (fromMaybeJSString <$> (js_getXmlEncoding (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlEncoding Mozilla Document.xmlEncoding documentation> 
+getXmlEncodingUnsafe ::
+                     (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
+                       self -> m result
+getXmlEncodingUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getXmlEncoding (toDocument self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlEncoding Mozilla Document.xmlEncoding documentation> 
+getXmlEncodingUnchecked ::
+                        (MonadIO m, IsDocument self, FromJSString result) =>
+                          self -> m result
+getXmlEncodingUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getXmlEncoding (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"xmlVersion\"] = $2;"
+        js_setXmlVersion :: Document -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlVersion Mozilla Document.xmlVersion documentation> 
+setXmlVersion ::
+              (MonadIO m, IsDocument self, ToJSString val) =>
+                self -> Maybe val -> m ()
+setXmlVersion self val
+  = liftIO
+      (js_setXmlVersion (toDocument self) (toOptionalJSString val))
+ 
+foreign import javascript unsafe "$1[\"xmlVersion\"]"
+        js_getXmlVersion :: Document -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlVersion Mozilla Document.xmlVersion documentation> 
+getXmlVersion ::
+              (MonadIO m, IsDocument self, FromJSString result) =>
+                self -> m (Maybe result)
+getXmlVersion self
+  = liftIO
+      (fromMaybeJSString <$> (js_getXmlVersion (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlVersion Mozilla Document.xmlVersion documentation> 
+getXmlVersionUnsafe ::
+                    (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
+                      self -> m result
+getXmlVersionUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getXmlVersion (toDocument self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlVersion Mozilla Document.xmlVersion documentation> 
+getXmlVersionUnchecked ::
+                       (MonadIO m, IsDocument self, FromJSString result) =>
+                         self -> m result
+getXmlVersionUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getXmlVersion (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"xmlStandalone\"] = $2;"
+        js_setXmlStandalone :: Document -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlStandalone Mozilla Document.xmlStandalone documentation> 
+setXmlStandalone ::
+                 (MonadIO m, IsDocument self) => self -> Bool -> m ()
+setXmlStandalone self val
+  = liftIO (js_setXmlStandalone (toDocument self) val)
+ 
+foreign import javascript unsafe "($1[\"xmlStandalone\"] ? 1 : 0)"
+        js_getXmlStandalone :: Document -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.xmlStandalone Mozilla Document.xmlStandalone documentation> 
+getXmlStandalone :: (MonadIO m, IsDocument self) => self -> m Bool
+getXmlStandalone self
+  = liftIO (js_getXmlStandalone (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"documentURI\"]"
+        js_getDocumentURI :: Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.documentURI Mozilla Document.documentURI documentation> 
+getDocumentURI ::
+               (MonadIO m, IsDocument self, FromJSString result) =>
+                 self -> m result
+getDocumentURI self
+  = liftIO (fromJSString <$> (js_getDocumentURI (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"defaultView\"]"
+        js_getDefaultView :: Document -> IO Window
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.defaultView Mozilla Document.defaultView documentation> 
+getDefaultView :: (MonadIO m, IsDocument self) => self -> m Window
+getDefaultView self = liftIO (js_getDefaultView (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"styleSheets\"]"
+        js_getStyleSheets :: Document -> IO StyleSheetList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.styleSheets Mozilla Document.styleSheets documentation> 
+getStyleSheets ::
+               (MonadIO m, IsDocument self) => self -> m StyleSheetList
+getStyleSheets self = liftIO (js_getStyleSheets (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"contentType\"]"
+        js_getContentType :: Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.contentType Mozilla Document.contentType documentation> 
+getContentType ::
+               (MonadIO m, IsDocument self, FromJSString result) =>
+                 self -> m result
+getContentType self
+  = liftIO (fromJSString <$> (js_getContentType (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"title\"] = $2;" js_setTitle
+        :: Document -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.title Mozilla Document.title documentation> 
+setTitle ::
+         (MonadIO m, IsDocument self, ToJSString val) => self -> val -> m ()
+setTitle self val
+  = liftIO (js_setTitle (toDocument self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"title\"]" js_getTitle ::
+        Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.title Mozilla Document.title documentation> 
+getTitle ::
+         (MonadIO m, IsDocument self, FromJSString result) =>
+           self -> m result
+getTitle self
+  = liftIO (fromJSString <$> (js_getTitle (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"dir\"] = $2;" js_setDir ::
+        Document -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.dir Mozilla Document.dir documentation> 
+setDir ::
+       (MonadIO m, IsDocument self, ToJSString val) => self -> val -> m ()
+setDir self val
+  = liftIO (js_setDir (toDocument self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"dir\"]" js_getDir ::
+        Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.dir Mozilla Document.dir documentation> 
+getDir ::
+       (MonadIO m, IsDocument self, FromJSString result) =>
+         self -> m result
+getDir self
+  = liftIO (fromJSString <$> (js_getDir (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"designMode\"] = $2;"
+        js_setDesignMode :: Document -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.designMode Mozilla Document.designMode documentation> 
+setDesignMode ::
+              (MonadIO m, IsDocument self, ToJSString val) => self -> val -> m ()
+setDesignMode self val
+  = liftIO (js_setDesignMode (toDocument self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"designMode\"]"
+        js_getDesignMode :: Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.designMode Mozilla Document.designMode documentation> 
+getDesignMode ::
+              (MonadIO m, IsDocument self, FromJSString result) =>
+                self -> m result
+getDesignMode self
+  = liftIO (fromJSString <$> (js_getDesignMode (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"referrer\"]" js_getReferrer
+        :: Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.referrer Mozilla Document.referrer documentation> 
+getReferrer ::
+            (MonadIO m, IsDocument self, FromJSString result) =>
+              self -> m result
+getReferrer self
+  = liftIO (fromJSString <$> (js_getReferrer (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"domain\"] = $2;"
+        js_setDomain :: Document -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.domain Mozilla Document.domain documentation> 
+setDomain ::
+          (MonadIO m, IsDocument self, ToJSString val) => self -> val -> m ()
+setDomain self val
+  = liftIO (js_setDomain (toDocument self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"domain\"]" js_getDomain ::
+        Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.domain Mozilla Document.domain documentation> 
+getDomain ::
+          (MonadIO m, IsDocument self, FromJSString result) =>
+            self -> m result
+getDomain self
+  = liftIO (fromJSString <$> (js_getDomain (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"URL\"]" js_getURL ::
+        Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.URL Mozilla Document.URL documentation> 
+getURL ::
+       (MonadIO m, IsDocument self, FromJSString result) =>
+         self -> m result
+getURL self
+  = liftIO (fromJSString <$> (js_getURL (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"cookie\"] = $2;"
+        js_setCookie :: Document -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.cookie Mozilla Document.cookie documentation> 
+setCookie ::
+          (MonadIO m, IsDocument self, ToJSString val) => self -> val -> m ()
+setCookie self val
+  = liftIO (js_setCookie (toDocument self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"cookie\"]" js_getCookie ::
+        Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.cookie Mozilla Document.cookie documentation> 
+getCookie ::
+          (MonadIO m, IsDocument self, FromJSString result) =>
+            self -> m result
+getCookie self
+  = liftIO (fromJSString <$> (js_getCookie (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"body\"] = $2;" js_setBody ::
+        Document -> Optional HTMLElement -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.body Mozilla Document.body documentation> 
+setBody ::
+        (MonadIO m, IsDocument self, IsHTMLElement val) =>
+          self -> Maybe val -> m ()
+setBody self val
+  = liftIO
+      (js_setBody (toDocument self)
+         (maybeToOptional (fmap toHTMLElement val)))
+ 
+foreign import javascript unsafe "$1[\"body\"]" js_getBody ::
+        Document -> IO (Nullable HTMLElement)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.body Mozilla Document.body documentation> 
+getBody ::
+        (MonadIO m, IsDocument self) => self -> m (Maybe HTMLElement)
+getBody self
+  = liftIO (nullableToMaybe <$> (js_getBody (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.body Mozilla Document.body documentation> 
+getBodyUnsafe ::
+              (MonadIO m, IsDocument self, HasCallStack) => self -> m HTMLElement
+getBodyUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getBody (toDocument self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.body Mozilla Document.body documentation> 
+getBodyUnchecked ::
+                 (MonadIO m, IsDocument self) => self -> m HTMLElement
+getBodyUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$> (js_getBody (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"head\"]" js_getHead ::
+        Document -> IO (Nullable HTMLHeadElement)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.head Mozilla Document.head documentation> 
+getHead ::
+        (MonadIO m, IsDocument self) => self -> m (Maybe HTMLHeadElement)
+getHead self
+  = liftIO (nullableToMaybe <$> (js_getHead (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.head Mozilla Document.head documentation> 
+getHeadUnsafe ::
+              (MonadIO m, IsDocument self, HasCallStack) =>
+                self -> m HTMLHeadElement
+getHeadUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getHead (toDocument self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.head Mozilla Document.head documentation> 
+getHeadUnchecked ::
+                 (MonadIO m, IsDocument self) => self -> m HTMLHeadElement
+getHeadUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$> (js_getHead (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"images\"]" js_getImages ::
+        Document -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.images Mozilla Document.images documentation> 
+getImages ::
+          (MonadIO m, IsDocument self) => self -> m HTMLCollection
+getImages self = liftIO (js_getImages (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"applets\"]" js_getApplets ::
+        Document -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.applets Mozilla Document.applets documentation> 
+getApplets ::
+           (MonadIO m, IsDocument self) => self -> m HTMLCollection
+getApplets self = liftIO (js_getApplets (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"links\"]" js_getLinks ::
+        Document -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.links Mozilla Document.links documentation> 
+getLinks ::
+         (MonadIO m, IsDocument self) => self -> m HTMLCollection
+getLinks self = liftIO (js_getLinks (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"forms\"]" js_getForms ::
+        Document -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.forms Mozilla Document.forms documentation> 
+getForms ::
+         (MonadIO m, IsDocument self) => self -> m HTMLCollection
+getForms self = liftIO (js_getForms (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"anchors\"]" js_getAnchors ::
+        Document -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.anchors Mozilla Document.anchors documentation> 
+getAnchors ::
+           (MonadIO m, IsDocument self) => self -> m HTMLCollection
+getAnchors self = liftIO (js_getAnchors (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"embeds\"]" js_getEmbeds ::
+        Document -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.embeds Mozilla Document.embeds documentation> 
+getEmbeds ::
+          (MonadIO m, IsDocument self) => self -> m HTMLCollection
+getEmbeds self = liftIO (js_getEmbeds (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"plugins\"]" js_getPlugins ::
+        Document -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.plugins Mozilla Document.plugins documentation> 
+getPlugins ::
+           (MonadIO m, IsDocument self) => self -> m HTMLCollection
+getPlugins self = liftIO (js_getPlugins (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"scripts\"]" js_getScripts ::
+        Document -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.scripts Mozilla Document.scripts documentation> 
+getScripts ::
+           (MonadIO m, IsDocument self) => self -> m HTMLCollection
+getScripts self = liftIO (js_getScripts (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"lastModified\"]"
+        js_getLastModified :: Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.lastModified Mozilla Document.lastModified documentation> 
+getLastModified ::
+                (MonadIO m, IsDocument self, FromJSString result) =>
+                  self -> m result
+getLastModified self
+  = liftIO (fromJSString <$> (js_getLastModified (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"location\"]" js_getLocation
+        :: Document -> IO (Nullable Location)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.location Mozilla Document.location documentation> 
+getLocation ::
+            (MonadIO m, IsDocument self) => self -> m (Maybe Location)
+getLocation self
+  = liftIO (nullableToMaybe <$> (js_getLocation (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.location Mozilla Document.location documentation> 
+getLocationUnsafe ::
+                  (MonadIO m, IsDocument self, HasCallStack) => self -> m Location
+getLocationUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getLocation (toDocument self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.location Mozilla Document.location documentation> 
+getLocationUnchecked ::
+                     (MonadIO m, IsDocument self) => self -> m Location
+getLocationUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$> (js_getLocation (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"charset\"]" js_getCharset ::
+        Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.charset Mozilla Document.charset documentation> 
+getCharset ::
+           (MonadIO m, IsDocument self, FromJSString result) =>
+             self -> m result
+getCharset self
+  = liftIO (fromJSString <$> (js_getCharset (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"readyState\"]"
+        js_getReadyState :: Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.readyState Mozilla Document.readyState documentation> 
+getReadyState ::
+              (MonadIO m, IsDocument self, FromJSString result) =>
+                self -> m result
+getReadyState self
+  = liftIO (fromJSString <$> (js_getReadyState (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"characterSet\"]"
+        js_getCharacterSet :: Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.characterSet Mozilla Document.characterSet documentation> 
+getCharacterSet ::
+                (MonadIO m, IsDocument self, FromJSString result) =>
+                  self -> m result
+getCharacterSet self
+  = liftIO (fromJSString <$> (js_getCharacterSet (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"preferredStylesheetSet\"]"
+        js_getPreferredStylesheetSet :: Document -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.preferredStylesheetSet Mozilla Document.preferredStylesheetSet documentation> 
+getPreferredStylesheetSet ::
+                          (MonadIO m, IsDocument self, FromJSString result) =>
+                            self -> m (Maybe result)
+getPreferredStylesheetSet self
+  = liftIO
+      (fromMaybeJSString <$>
+         (js_getPreferredStylesheetSet (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.preferredStylesheetSet Mozilla Document.preferredStylesheetSet documentation> 
+getPreferredStylesheetSetUnsafe ::
+                                (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
+                                  self -> m result
+getPreferredStylesheetSetUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$>
+          (js_getPreferredStylesheetSet (toDocument self)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.preferredStylesheetSet Mozilla Document.preferredStylesheetSet documentation> 
+getPreferredStylesheetSetUnchecked ::
+                                   (MonadIO m, IsDocument self, FromJSString result) =>
+                                     self -> m result
+getPreferredStylesheetSetUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getPreferredStylesheetSet (toDocument self)))
+ 
+foreign import javascript unsafe
+        "$1[\"selectedStylesheetSet\"] = $2;" js_setSelectedStylesheetSet
+        :: Document -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.selectedStylesheetSet Mozilla Document.selectedStylesheetSet documentation> 
+setSelectedStylesheetSet ::
+                         (MonadIO m, IsDocument self, ToJSString val) =>
+                           self -> Maybe val -> m ()
+setSelectedStylesheetSet self val
+  = liftIO
+      (js_setSelectedStylesheetSet (toDocument self)
+         (toOptionalJSString val))
+ 
+foreign import javascript unsafe "$1[\"selectedStylesheetSet\"]"
+        js_getSelectedStylesheetSet :: Document -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.selectedStylesheetSet Mozilla Document.selectedStylesheetSet documentation> 
+getSelectedStylesheetSet ::
+                         (MonadIO m, IsDocument self, FromJSString result) =>
+                           self -> m (Maybe result)
+getSelectedStylesheetSet self
+  = liftIO
+      (fromMaybeJSString <$>
+         (js_getSelectedStylesheetSet (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.selectedStylesheetSet Mozilla Document.selectedStylesheetSet documentation> 
+getSelectedStylesheetSetUnsafe ::
+                               (MonadIO m, IsDocument self, HasCallStack, FromJSString result) =>
+                                 self -> m result
+getSelectedStylesheetSetUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$>
+          (js_getSelectedStylesheetSet (toDocument self)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.selectedStylesheetSet Mozilla Document.selectedStylesheetSet documentation> 
+getSelectedStylesheetSetUnchecked ::
+                                  (MonadIO m, IsDocument self, FromJSString result) =>
+                                    self -> m result
+getSelectedStylesheetSetUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getSelectedStylesheetSet (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"compatMode\"]"
+        js_getCompatMode :: Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.compatMode Mozilla Document.compatMode documentation> 
+getCompatMode ::
+              (MonadIO m, IsDocument self, FromJSString result) =>
+                self -> m result
+getCompatMode self
+  = liftIO (fromJSString <$> (js_getCompatMode (toDocument self)))
+ 
+foreign import javascript unsafe
+        "($1[\"webkitIsFullScreen\"] ? 1 : 0)" js_getWebkitIsFullScreen ::
+        Document -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitIsFullScreen Mozilla Document.webkitIsFullScreen documentation> 
+getWebkitIsFullScreen ::
+                      (MonadIO m, IsDocument self) => self -> m Bool
+getWebkitIsFullScreen self
+  = liftIO (js_getWebkitIsFullScreen (toDocument self))
+ 
+foreign import javascript unsafe
+        "($1[\"webkitFullScreenKeyboardInputAllowed\"] ? 1 : 0)"
+        js_getWebkitFullScreenKeyboardInputAllowed :: Document -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitFullScreenKeyboardInputAllowed Mozilla Document.webkitFullScreenKeyboardInputAllowed documentation> 
+getWebkitFullScreenKeyboardInputAllowed ::
+                                        (MonadIO m, IsDocument self) => self -> m Bool
+getWebkitFullScreenKeyboardInputAllowed self
+  = liftIO
+      (js_getWebkitFullScreenKeyboardInputAllowed (toDocument self))
+ 
+foreign import javascript unsafe
+        "$1[\"webkitCurrentFullScreenElement\"]"
+        js_getWebkitCurrentFullScreenElement :: Document -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitCurrentFullScreenElement Mozilla Document.webkitCurrentFullScreenElement documentation> 
+getWebkitCurrentFullScreenElement ::
+                                  (MonadIO m, IsDocument self) => self -> m Element
+getWebkitCurrentFullScreenElement self
+  = liftIO (js_getWebkitCurrentFullScreenElement (toDocument self))
+ 
+foreign import javascript unsafe
+        "($1[\"webkitFullscreenEnabled\"] ? 1 : 0)"
+        js_getWebkitFullscreenEnabled :: Document -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitFullscreenEnabled Mozilla Document.webkitFullscreenEnabled documentation> 
+getWebkitFullscreenEnabled ::
+                           (MonadIO m, IsDocument self) => self -> m Bool
+getWebkitFullscreenEnabled self
+  = liftIO (js_getWebkitFullscreenEnabled (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"webkitFullscreenElement\"]"
+        js_getWebkitFullscreenElement :: Document -> IO (Nullable Element)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitFullscreenElement Mozilla Document.webkitFullscreenElement documentation> 
+getWebkitFullscreenElement ::
+                           (MonadIO m, IsDocument self) => self -> m (Maybe Element)
+getWebkitFullscreenElement self
+  = liftIO
+      (nullableToMaybe <$>
+         (js_getWebkitFullscreenElement (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitFullscreenElement Mozilla Document.webkitFullscreenElement documentation> 
+getWebkitFullscreenElementUnsafe ::
+                                 (MonadIO m, IsDocument self, HasCallStack) => self -> m Element
+getWebkitFullscreenElementUnsafe self
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_getWebkitFullscreenElement (toDocument self)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.webkitFullscreenElement Mozilla Document.webkitFullscreenElement documentation> 
+getWebkitFullscreenElementUnchecked ::
+                                    (MonadIO m, IsDocument self) => self -> m Element
+getWebkitFullscreenElementUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getWebkitFullscreenElement (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"fonts\"]" js_getFonts ::
+        Document -> IO FontFaceSet
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.fonts Mozilla Document.fonts documentation> 
+getFonts :: (MonadIO m, IsDocument self) => self -> m FontFaceSet
+getFonts self = liftIO (js_getFonts (toDocument self))
+ 
+foreign import javascript unsafe "$1[\"visibilityState\"]"
+        js_getVisibilityState :: Document -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.visibilityState Mozilla Document.visibilityState documentation> 
+getVisibilityState ::
+                   (MonadIO m, IsDocument self) => self -> m VisibilityState
+getVisibilityState self
+  = liftIO
+      ((js_getVisibilityState (toDocument self)) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "($1[\"hidden\"] ? 1 : 0)"
+        js_getHidden :: Document -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.hidden Mozilla Document.hidden documentation> 
+getHidden :: (MonadIO m, IsDocument self) => self -> m Bool
+getHidden self = liftIO (js_getHidden (toDocument self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onvisibilitychange Mozilla Document.onvisibilitychange documentation> 
+visibilitychange ::
+                 (IsDocument self, IsEventTarget self) => EventName self Event
+visibilitychange = unsafeEventName (toJSString "visibilitychange")
+ 
+foreign import javascript unsafe "$1[\"currentScript\"]"
+        js_getCurrentScript :: Document -> IO (Nullable HTMLScriptElement)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.currentScript Mozilla Document.currentScript documentation> 
+getCurrentScript ::
+                 (MonadIO m, IsDocument self) => self -> m (Maybe HTMLScriptElement)
+getCurrentScript self
+  = liftIO
+      (nullableToMaybe <$> (js_getCurrentScript (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.currentScript Mozilla Document.currentScript documentation> 
+getCurrentScriptUnsafe ::
+                       (MonadIO m, IsDocument self, HasCallStack) =>
+                         self -> m HTMLScriptElement
+getCurrentScriptUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getCurrentScript (toDocument self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.currentScript Mozilla Document.currentScript documentation> 
+getCurrentScriptUnchecked ::
+                          (MonadIO m, IsDocument self) => self -> m HTMLScriptElement
+getCurrentScriptUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getCurrentScript (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"origin\"]" js_getOrigin ::
+        Document -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.origin Mozilla Document.origin documentation> 
+getOrigin ::
+          (MonadIO m, IsDocument self, FromJSString result) =>
+            self -> m result
+getOrigin self
+  = liftIO (fromJSString <$> (js_getOrigin (toDocument self)))
+ 
+foreign import javascript unsafe "$1[\"scrollingElement\"]"
+        js_getScrollingElement :: Document -> IO (Nullable Element)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.scrollingElement Mozilla Document.scrollingElement documentation> 
+getScrollingElement ::
+                    (MonadIO m, IsDocument self) => self -> m (Maybe Element)
+getScrollingElement self
+  = liftIO
+      (nullableToMaybe <$> (js_getScrollingElement (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.scrollingElement Mozilla Document.scrollingElement documentation> 
+getScrollingElementUnsafe ::
+                          (MonadIO m, IsDocument self, HasCallStack) => self -> m Element
+getScrollingElementUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getScrollingElement (toDocument self)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.scrollingElement Mozilla Document.scrollingElement documentation> 
+getScrollingElementUnchecked ::
+                             (MonadIO m, IsDocument self) => self -> m Element
+getScrollingElementUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getScrollingElement (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onbeforecopy Mozilla Document.onbeforecopy documentation> 
+beforeCopy ::
+           (IsDocument self, IsEventTarget self) =>
+             EventName self ClipboardEvent
+beforeCopy = unsafeEventName (toJSString "beforecopy")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onbeforecut Mozilla Document.onbeforecut documentation> 
+beforeCut ::
+          (IsDocument self, IsEventTarget self) =>
+            EventName self ClipboardEvent
+beforeCut = unsafeEventName (toJSString "beforecut")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onbeforeinput Mozilla Document.onbeforeinput documentation> 
+beforeinput ::
+            (IsDocument self, IsEventTarget self) =>
+              EventName self onbeforeinput
+beforeinput = unsafeEventName (toJSString "beforeinput")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onbeforepaste Mozilla Document.onbeforepaste documentation> 
+beforePaste ::
+            (IsDocument self, IsEventTarget self) =>
+              EventName self ClipboardEvent
+beforePaste = unsafeEventName (toJSString "beforepaste")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.oncopy Mozilla Document.oncopy documentation> 
+copy ::
+     (IsDocument self, IsEventTarget self) =>
+       EventName self ClipboardEvent
+copy = unsafeEventName (toJSString "copy")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.oncut Mozilla Document.oncut documentation> 
+cut ::
+    (IsDocument self, IsEventTarget self) =>
+      EventName self ClipboardEvent
+cut = unsafeEventName (toJSString "cut")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onpaste Mozilla Document.onpaste documentation> 
+paste ::
+      (IsDocument self, IsEventTarget self) =>
+        EventName self ClipboardEvent
+paste = unsafeEventName (toJSString "paste")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onselectstart Mozilla Document.onselectstart documentation> 
+selectStart ::
+            (IsDocument self, IsEventTarget self) => EventName self Event
+selectStart = unsafeEventName (toJSString "selectstart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onwebkitfullscreenchange Mozilla Document.onwebkitfullscreenchange documentation> 
+webKitFullscreenChange ::
+                       (IsDocument self, IsEventTarget self) => EventName self Event
+webKitFullscreenChange
+  = unsafeEventName (toJSString "webkitfullscreenchange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onwebkitfullscreenerror Mozilla Document.onwebkitfullscreenerror documentation> 
+webKitFullscreenError ::
+                      (IsDocument self, IsEventTarget self) => EventName self Event
+webKitFullscreenError
+  = unsafeEventName (toJSString "webkitfullscreenerror")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onselectionchange Mozilla Document.onselectionchange documentation> 
+selectionchange ::
+                (IsDocument self, IsEventTarget self) =>
+                  EventName self onselectionchange
+selectionchange = unsafeEventName (toJSString "selectionchange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onreadystatechange Mozilla Document.onreadystatechange documentation> 
+readyStateChange ::
+                 (IsDocument self, IsEventTarget self) => EventName self Event
+readyStateChange = unsafeEventName (toJSString "readystatechange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onpointerlockchange Mozilla Document.onpointerlockchange documentation> 
+pointerlockchange ::
+                  (IsDocument self, IsEventTarget self) => EventName self Event
+pointerlockchange
+  = unsafeEventName (toJSString "pointerlockchange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.onpointerlockerror Mozilla Document.onpointerlockerror documentation> 
+pointerlockerror ::
+                 (IsDocument self, IsEventTarget self) => EventName self Event
+pointerlockerror = unsafeEventName (toJSString "pointerlockerror")
+ 
+foreign import javascript unsafe "$1[\"rootElement\"]"
+        js_getRootElement :: Document -> IO (Nullable SVGSVGElement)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.rootElement Mozilla Document.rootElement documentation> 
+getRootElement ::
+               (MonadIO m, IsDocument self) => self -> m (Maybe SVGSVGElement)
+getRootElement self
+  = liftIO
+      (nullableToMaybe <$> (js_getRootElement (toDocument self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.rootElement Mozilla Document.rootElement documentation> 
+getRootElementUnsafe ::
+                     (MonadIO m, IsDocument self, HasCallStack) =>
+                       self -> m SVGSVGElement
+getRootElementUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getRootElement (toDocument self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Document.rootElement Mozilla Document.rootElement documentation> 
+getRootElementUnchecked ::
+                        (MonadIO m, IsDocument self) => self -> m SVGSVGElement
+getRootElementUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getRootElement (toDocument self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DocumentFragment.hs b/src/GHCJS/DOM/JSFFI/Generated/DocumentFragment.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DocumentFragment.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DocumentFragment.hs
@@ -4,18 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DocumentFragment
-       (js_newDocumentFragment, newDocumentFragment, js_querySelector,
-        querySelector, querySelector_, querySelectorUnsafe,
-        querySelectorUnchecked, js_querySelectorAll, querySelectorAll,
-        querySelectorAll_, querySelectorAllUnsafe,
-        querySelectorAllUnchecked, DocumentFragment(..),
-        gTypeDocumentFragment)
+       (js_newDocumentFragment, newDocumentFragment, DocumentFragment(..),
+        gTypeDocumentFragment, IsDocumentFragment, toDocumentFragment)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -36,81 +33,3 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment Mozilla DocumentFragment documentation> 
 newDocumentFragment :: (MonadIO m) => m DocumentFragment
 newDocumentFragment = liftIO (js_newDocumentFragment)
- 
-foreign import javascript unsafe "$1[\"querySelector\"]($2)"
-        js_querySelector ::
-        DocumentFragment -> JSString -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment.querySelector Mozilla DocumentFragment.querySelector documentation> 
-querySelector ::
-              (MonadIO m, ToJSString selectors) =>
-                DocumentFragment -> selectors -> m (Maybe Element)
-querySelector self selectors
-  = liftIO
-      (nullableToMaybe <$>
-         (js_querySelector (self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment.querySelector Mozilla DocumentFragment.querySelector documentation> 
-querySelector_ ::
-               (MonadIO m, ToJSString selectors) =>
-                 DocumentFragment -> selectors -> m ()
-querySelector_ self selectors
-  = liftIO (void (js_querySelector (self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment.querySelector Mozilla DocumentFragment.querySelector documentation> 
-querySelectorUnsafe ::
-                    (MonadIO m, ToJSString selectors, HasCallStack) =>
-                      DocumentFragment -> selectors -> m Element
-querySelectorUnsafe self selectors
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_querySelector (self) (toJSString selectors)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment.querySelector Mozilla DocumentFragment.querySelector documentation> 
-querySelectorUnchecked ::
-                       (MonadIO m, ToJSString selectors) =>
-                         DocumentFragment -> selectors -> m Element
-querySelectorUnchecked self selectors
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_querySelector (self) (toJSString selectors)))
- 
-foreign import javascript unsafe "$1[\"querySelectorAll\"]($2)"
-        js_querySelectorAll ::
-        DocumentFragment -> JSString -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment.querySelectorAll Mozilla DocumentFragment.querySelectorAll documentation> 
-querySelectorAll ::
-                 (MonadIO m, ToJSString selectors) =>
-                   DocumentFragment -> selectors -> m (Maybe NodeList)
-querySelectorAll self selectors
-  = liftIO
-      (nullableToMaybe <$>
-         (js_querySelectorAll (self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment.querySelectorAll Mozilla DocumentFragment.querySelectorAll documentation> 
-querySelectorAll_ ::
-                  (MonadIO m, ToJSString selectors) =>
-                    DocumentFragment -> selectors -> m ()
-querySelectorAll_ self selectors
-  = liftIO (void (js_querySelectorAll (self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment.querySelectorAll Mozilla DocumentFragment.querySelectorAll documentation> 
-querySelectorAllUnsafe ::
-                       (MonadIO m, ToJSString selectors, HasCallStack) =>
-                         DocumentFragment -> selectors -> m NodeList
-querySelectorAllUnsafe self selectors
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_querySelectorAll (self) (toJSString selectors)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment.querySelectorAll Mozilla DocumentFragment.querySelectorAll documentation> 
-querySelectorAllUnchecked ::
-                          (MonadIO m, ToJSString selectors) =>
-                            DocumentFragment -> selectors -> m NodeList
-querySelectorAllUnchecked self selectors
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_querySelectorAll (self) (toJSString selectors)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DocumentOrShadowRoot.hs b/src/GHCJS/DOM/JSFFI/Generated/DocumentOrShadowRoot.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/DocumentOrShadowRoot.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.DocumentOrShadowRoot
+       (js_elementFromPoint, elementFromPoint, elementFromPoint_,
+        elementFromPointUnsafe, elementFromPointUnchecked,
+        js_getActiveElement, getActiveElement, getActiveElementUnsafe,
+        getActiveElementUnchecked, js_getPointerLockElement,
+        getPointerLockElement, getPointerLockElementUnsafe,
+        getPointerLockElementUnchecked, DocumentOrShadowRoot(..),
+        gTypeDocumentOrShadowRoot, IsDocumentOrShadowRoot,
+        toDocumentOrShadowRoot)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"elementFromPoint\"]($2, $3)"
+        js_elementFromPoint ::
+        DocumentOrShadowRoot -> Double -> Double -> IO (Nullable Element)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot.elementFromPoint Mozilla DocumentOrShadowRoot.elementFromPoint documentation> 
+elementFromPoint ::
+                 (MonadIO m, IsDocumentOrShadowRoot self) =>
+                   self -> Double -> Double -> m (Maybe Element)
+elementFromPoint self x y
+  = liftIO
+      (nullableToMaybe <$>
+         (js_elementFromPoint (toDocumentOrShadowRoot self) x y))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot.elementFromPoint Mozilla DocumentOrShadowRoot.elementFromPoint documentation> 
+elementFromPoint_ ::
+                  (MonadIO m, IsDocumentOrShadowRoot self) =>
+                    self -> Double -> Double -> m ()
+elementFromPoint_ self x y
+  = liftIO
+      (void (js_elementFromPoint (toDocumentOrShadowRoot self) x y))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot.elementFromPoint Mozilla DocumentOrShadowRoot.elementFromPoint documentation> 
+elementFromPointUnsafe ::
+                       (MonadIO m, IsDocumentOrShadowRoot self, HasCallStack) =>
+                         self -> Double -> Double -> m Element
+elementFromPointUnsafe self x y
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_elementFromPoint (toDocumentOrShadowRoot self) x y))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot.elementFromPoint Mozilla DocumentOrShadowRoot.elementFromPoint documentation> 
+elementFromPointUnchecked ::
+                          (MonadIO m, IsDocumentOrShadowRoot self) =>
+                            self -> Double -> Double -> m Element
+elementFromPointUnchecked self x y
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_elementFromPoint (toDocumentOrShadowRoot self) x y))
+ 
+foreign import javascript unsafe "$1[\"activeElement\"]"
+        js_getActiveElement ::
+        DocumentOrShadowRoot -> IO (Nullable Element)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot.activeElement Mozilla DocumentOrShadowRoot.activeElement documentation> 
+getActiveElement ::
+                 (MonadIO m, IsDocumentOrShadowRoot self) =>
+                   self -> m (Maybe Element)
+getActiveElement self
+  = liftIO
+      (nullableToMaybe <$>
+         (js_getActiveElement (toDocumentOrShadowRoot self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot.activeElement Mozilla DocumentOrShadowRoot.activeElement documentation> 
+getActiveElementUnsafe ::
+                       (MonadIO m, IsDocumentOrShadowRoot self, HasCallStack) =>
+                         self -> m Element
+getActiveElementUnsafe self
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_getActiveElement (toDocumentOrShadowRoot self)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot.activeElement Mozilla DocumentOrShadowRoot.activeElement documentation> 
+getActiveElementUnchecked ::
+                          (MonadIO m, IsDocumentOrShadowRoot self) => self -> m Element
+getActiveElementUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getActiveElement (toDocumentOrShadowRoot self)))
+ 
+foreign import javascript unsafe "$1[\"pointerLockElement\"]"
+        js_getPointerLockElement ::
+        DocumentOrShadowRoot -> IO (Nullable Element)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot.pointerLockElement Mozilla DocumentOrShadowRoot.pointerLockElement documentation> 
+getPointerLockElement ::
+                      (MonadIO m, IsDocumentOrShadowRoot self) =>
+                        self -> m (Maybe Element)
+getPointerLockElement self
+  = liftIO
+      (nullableToMaybe <$>
+         (js_getPointerLockElement (toDocumentOrShadowRoot self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot.pointerLockElement Mozilla DocumentOrShadowRoot.pointerLockElement documentation> 
+getPointerLockElementUnsafe ::
+                            (MonadIO m, IsDocumentOrShadowRoot self, HasCallStack) =>
+                              self -> m Element
+getPointerLockElementUnsafe self
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_getPointerLockElement (toDocumentOrShadowRoot self)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot.pointerLockElement Mozilla DocumentOrShadowRoot.pointerLockElement documentation> 
+getPointerLockElementUnchecked ::
+                               (MonadIO m, IsDocumentOrShadowRoot self) => self -> m Element
+getPointerLockElementUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getPointerLockElement (toDocumentOrShadowRoot self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DocumentTimeline.hs b/src/GHCJS/DOM/JSFFI/Generated/DocumentTimeline.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/DocumentTimeline.hs
@@ -0,0 +1,36 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.DocumentTimeline
+       (js_newDocumentTimeline, newDocumentTimeline, DocumentTimeline(..),
+        gTypeDocumentTimeline)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"DocumentTimeline\"]($1)" js_newDocumentTimeline ::
+        Double -> IO DocumentTimeline
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentTimeline Mozilla DocumentTimeline documentation> 
+newDocumentTimeline :: (MonadIO m) => Double -> m DocumentTimeline
+newDocumentTimeline originTime
+  = liftIO (js_newDocumentTimeline originTime)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DocumentType.hs b/src/GHCJS/DOM/JSFFI/Generated/DocumentType.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DocumentType.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DocumentType.hs
@@ -4,20 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DocumentType
-       (js_getName, getName, js_getEntities, getEntities,
-        getEntitiesUnsafe, getEntitiesUnchecked, js_getNotations,
-        getNotations, getNotationsUnsafe, getNotationsUnchecked,
-        js_getPublicId, getPublicId, getPublicIdUnsafe,
-        getPublicIdUnchecked, js_getSystemId, getSystemId,
-        getSystemIdUnsafe, getSystemIdUnchecked, js_getInternalSubset,
-        getInternalSubset, getInternalSubsetUnsafe,
-        getInternalSubsetUnchecked, DocumentType(..), gTypeDocumentType)
+       (js_getName, getName, js_getPublicId, getPublicId, js_getSystemId,
+        getSystemId, DocumentType(..), gTypeDocumentType)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -37,126 +32,20 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.name Mozilla DocumentType.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => DocumentType -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
- 
-foreign import javascript unsafe "$1[\"entities\"]" js_getEntities
-        :: DocumentType -> IO (Nullable NamedNodeMap)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.entities Mozilla DocumentType.entities documentation> 
-getEntities ::
-            (MonadIO m) => DocumentType -> m (Maybe NamedNodeMap)
-getEntities self
-  = liftIO (nullableToMaybe <$> (js_getEntities (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.entities Mozilla DocumentType.entities documentation> 
-getEntitiesUnsafe ::
-                  (MonadIO m, HasCallStack) => DocumentType -> m NamedNodeMap
-getEntitiesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getEntities (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.entities Mozilla DocumentType.entities documentation> 
-getEntitiesUnchecked ::
-                     (MonadIO m) => DocumentType -> m NamedNodeMap
-getEntitiesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getEntities (self)))
- 
-foreign import javascript unsafe "$1[\"notations\"]"
-        js_getNotations :: DocumentType -> IO (Nullable NamedNodeMap)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.notations Mozilla DocumentType.notations documentation> 
-getNotations ::
-             (MonadIO m) => DocumentType -> m (Maybe NamedNodeMap)
-getNotations self
-  = liftIO (nullableToMaybe <$> (js_getNotations (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.notations Mozilla DocumentType.notations documentation> 
-getNotationsUnsafe ::
-                   (MonadIO m, HasCallStack) => DocumentType -> m NamedNodeMap
-getNotationsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getNotations (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.notations Mozilla DocumentType.notations documentation> 
-getNotationsUnchecked ::
-                      (MonadIO m) => DocumentType -> m NamedNodeMap
-getNotationsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getNotations (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"publicId\"]" js_getPublicId
-        :: DocumentType -> IO (Nullable JSString)
+        :: DocumentType -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.publicId Mozilla DocumentType.publicId documentation> 
 getPublicId ::
-            (MonadIO m, FromJSString result) =>
-              DocumentType -> m (Maybe result)
-getPublicId self
-  = liftIO (fromMaybeJSString <$> (js_getPublicId (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.publicId Mozilla DocumentType.publicId documentation> 
-getPublicIdUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    DocumentType -> m result
-getPublicIdUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getPublicId (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.publicId Mozilla DocumentType.publicId documentation> 
-getPublicIdUnchecked ::
-                     (MonadIO m, FromJSString result) => DocumentType -> m result
-getPublicIdUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getPublicId (self)))
+            (MonadIO m, FromJSString result) => DocumentType -> m result
+getPublicId self = liftIO (fromJSString <$> (js_getPublicId self))
  
 foreign import javascript unsafe "$1[\"systemId\"]" js_getSystemId
-        :: DocumentType -> IO (Nullable JSString)
+        :: DocumentType -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.systemId Mozilla DocumentType.systemId documentation> 
 getSystemId ::
-            (MonadIO m, FromJSString result) =>
-              DocumentType -> m (Maybe result)
-getSystemId self
-  = liftIO (fromMaybeJSString <$> (js_getSystemId (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.systemId Mozilla DocumentType.systemId documentation> 
-getSystemIdUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    DocumentType -> m result
-getSystemIdUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getSystemId (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.systemId Mozilla DocumentType.systemId documentation> 
-getSystemIdUnchecked ::
-                     (MonadIO m, FromJSString result) => DocumentType -> m result
-getSystemIdUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getSystemId (self)))
- 
-foreign import javascript unsafe "$1[\"internalSubset\"]"
-        js_getInternalSubset :: DocumentType -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.internalSubset Mozilla DocumentType.internalSubset documentation> 
-getInternalSubset ::
-                  (MonadIO m, FromJSString result) =>
-                    DocumentType -> m (Maybe result)
-getInternalSubset self
-  = liftIO (fromMaybeJSString <$> (js_getInternalSubset (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.internalSubset Mozilla DocumentType.internalSubset documentation> 
-getInternalSubsetUnsafe ::
-                        (MonadIO m, HasCallStack, FromJSString result) =>
-                          DocumentType -> m result
-getInternalSubsetUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getInternalSubset (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType.internalSubset Mozilla DocumentType.internalSubset documentation> 
-getInternalSubsetUnchecked ::
-                           (MonadIO m, FromJSString result) => DocumentType -> m result
-getInternalSubsetUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getInternalSubset (self)))
+            (MonadIO m, FromJSString result) => DocumentType -> m result
+getSystemId self = liftIO (fromJSString <$> (js_getSystemId self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/DynamicsCompressorNode.hs b/src/GHCJS/DOM/JSFFI/Generated/DynamicsCompressorNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/DynamicsCompressorNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/DynamicsCompressorNode.hs
@@ -4,20 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.DynamicsCompressorNode
-       (js_getThreshold, getThreshold, getThresholdUnsafe,
-        getThresholdUnchecked, js_getKnee, getKnee, getKneeUnsafe,
-        getKneeUnchecked, js_getRatio, getRatio, getRatioUnsafe,
-        getRatioUnchecked, js_getReduction, getReduction,
-        getReductionUnsafe, getReductionUnchecked, js_getAttack, getAttack,
-        getAttackUnsafe, getAttackUnchecked, js_getRelease, getRelease,
-        getReleaseUnsafe, getReleaseUnchecked, DynamicsCompressorNode(..),
+       (js_getThreshold, getThreshold, js_getKnee, getKnee, js_getRatio,
+        getRatio, js_getReduction, getReduction, js_getAttack, getAttack,
+        js_getRelease, getRelease, DynamicsCompressorNode(..),
         gTypeDynamicsCompressorNode)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,144 +22,52 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"threshold\"]"
-        js_getThreshold ::
-        DynamicsCompressorNode -> IO (Nullable AudioParam)
+        js_getThreshold :: DynamicsCompressorNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.threshold Mozilla DynamicsCompressorNode.threshold documentation> 
 getThreshold ::
-             (MonadIO m) => DynamicsCompressorNode -> m (Maybe AudioParam)
-getThreshold self
-  = liftIO (nullableToMaybe <$> (js_getThreshold (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.threshold Mozilla DynamicsCompressorNode.threshold documentation> 
-getThresholdUnsafe ::
-                   (MonadIO m, HasCallStack) => DynamicsCompressorNode -> m AudioParam
-getThresholdUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getThreshold (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.threshold Mozilla DynamicsCompressorNode.threshold documentation> 
-getThresholdUnchecked ::
-                      (MonadIO m) => DynamicsCompressorNode -> m AudioParam
-getThresholdUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getThreshold (self)))
+             (MonadIO m) => DynamicsCompressorNode -> m AudioParam
+getThreshold self = liftIO (js_getThreshold self)
  
 foreign import javascript unsafe "$1[\"knee\"]" js_getKnee ::
-        DynamicsCompressorNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.knee Mozilla DynamicsCompressorNode.knee documentation> 
-getKnee ::
-        (MonadIO m) => DynamicsCompressorNode -> m (Maybe AudioParam)
-getKnee self = liftIO (nullableToMaybe <$> (js_getKnee (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.knee Mozilla DynamicsCompressorNode.knee documentation> 
-getKneeUnsafe ::
-              (MonadIO m, HasCallStack) => DynamicsCompressorNode -> m AudioParam
-getKneeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getKnee (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        DynamicsCompressorNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.knee Mozilla DynamicsCompressorNode.knee documentation> 
-getKneeUnchecked ::
-                 (MonadIO m) => DynamicsCompressorNode -> m AudioParam
-getKneeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getKnee (self)))
+getKnee :: (MonadIO m) => DynamicsCompressorNode -> m AudioParam
+getKnee self = liftIO (js_getKnee self)
  
 foreign import javascript unsafe "$1[\"ratio\"]" js_getRatio ::
-        DynamicsCompressorNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.ratio Mozilla DynamicsCompressorNode.ratio documentation> 
-getRatio ::
-         (MonadIO m) => DynamicsCompressorNode -> m (Maybe AudioParam)
-getRatio self = liftIO (nullableToMaybe <$> (js_getRatio (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.ratio Mozilla DynamicsCompressorNode.ratio documentation> 
-getRatioUnsafe ::
-               (MonadIO m, HasCallStack) => DynamicsCompressorNode -> m AudioParam
-getRatioUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRatio (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        DynamicsCompressorNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.ratio Mozilla DynamicsCompressorNode.ratio documentation> 
-getRatioUnchecked ::
-                  (MonadIO m) => DynamicsCompressorNode -> m AudioParam
-getRatioUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRatio (self)))
+getRatio :: (MonadIO m) => DynamicsCompressorNode -> m AudioParam
+getRatio self = liftIO (js_getRatio self)
  
 foreign import javascript unsafe "$1[\"reduction\"]"
-        js_getReduction ::
-        DynamicsCompressorNode -> IO (Nullable AudioParam)
+        js_getReduction :: DynamicsCompressorNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.reduction Mozilla DynamicsCompressorNode.reduction documentation> 
 getReduction ::
-             (MonadIO m) => DynamicsCompressorNode -> m (Maybe AudioParam)
-getReduction self
-  = liftIO (nullableToMaybe <$> (js_getReduction (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.reduction Mozilla DynamicsCompressorNode.reduction documentation> 
-getReductionUnsafe ::
-                   (MonadIO m, HasCallStack) => DynamicsCompressorNode -> m AudioParam
-getReductionUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getReduction (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.reduction Mozilla DynamicsCompressorNode.reduction documentation> 
-getReductionUnchecked ::
-                      (MonadIO m) => DynamicsCompressorNode -> m AudioParam
-getReductionUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getReduction (self)))
+             (MonadIO m) => DynamicsCompressorNode -> m AudioParam
+getReduction self = liftIO (js_getReduction self)
  
 foreign import javascript unsafe "$1[\"attack\"]" js_getAttack ::
-        DynamicsCompressorNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.attack Mozilla DynamicsCompressorNode.attack documentation> 
-getAttack ::
-          (MonadIO m) => DynamicsCompressorNode -> m (Maybe AudioParam)
-getAttack self = liftIO (nullableToMaybe <$> (js_getAttack (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.attack Mozilla DynamicsCompressorNode.attack documentation> 
-getAttackUnsafe ::
-                (MonadIO m, HasCallStack) => DynamicsCompressorNode -> m AudioParam
-getAttackUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAttack (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        DynamicsCompressorNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.attack Mozilla DynamicsCompressorNode.attack documentation> 
-getAttackUnchecked ::
-                   (MonadIO m) => DynamicsCompressorNode -> m AudioParam
-getAttackUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAttack (self)))
+getAttack :: (MonadIO m) => DynamicsCompressorNode -> m AudioParam
+getAttack self = liftIO (js_getAttack self)
  
 foreign import javascript unsafe "$1[\"release\"]" js_getRelease ::
-        DynamicsCompressorNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.release Mozilla DynamicsCompressorNode.release documentation> 
-getRelease ::
-           (MonadIO m) => DynamicsCompressorNode -> m (Maybe AudioParam)
-getRelease self
-  = liftIO (nullableToMaybe <$> (js_getRelease (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.release Mozilla DynamicsCompressorNode.release documentation> 
-getReleaseUnsafe ::
-                 (MonadIO m, HasCallStack) => DynamicsCompressorNode -> m AudioParam
-getReleaseUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRelease (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        DynamicsCompressorNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode.release Mozilla DynamicsCompressorNode.release documentation> 
-getReleaseUnchecked ::
-                    (MonadIO m) => DynamicsCompressorNode -> m AudioParam
-getReleaseUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRelease (self)))
+getRelease :: (MonadIO m) => DynamicsCompressorNode -> m AudioParam
+getRelease self = liftIO (js_getRelease self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/EXTBlendMinMax.hs b/src/GHCJS/DOM/JSFFI/Generated/EXTBlendMinMax.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/EXTBlendMinMax.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/EXTBlendMinMax.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/EXTTextureFilterAnisotropic.hs b/src/GHCJS/DOM/JSFFI/Generated/EXTTextureFilterAnisotropic.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/EXTTextureFilterAnisotropic.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/EXTTextureFilterAnisotropic.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/EXTsRGB.hs b/src/GHCJS/DOM/JSFFI/Generated/EXTsRGB.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/EXTsRGB.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/EXTsRGB.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Element.hs b/src/GHCJS/DOM/JSFFI/Generated/Element.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Element.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Element.hs
@@ -11,1718 +11,1435 @@
         getAttributeNodeUnchecked, js_setAttributeNode, setAttributeNode,
         setAttributeNode_, setAttributeNodeUnsafe,
         setAttributeNodeUnchecked, js_removeAttributeNode,
-        removeAttributeNode, removeAttributeNode_,
-        removeAttributeNodeUnsafe, removeAttributeNodeUnchecked,
-        js_getElementsByTagName, getElementsByTagName,
-        getElementsByTagName_, getElementsByTagNameUnsafe,
-        getElementsByTagNameUnchecked, js_hasAttributes, hasAttributes,
-        hasAttributes_, js_getAttributeNS, getAttributeNS, getAttributeNS_,
-        js_setAttributeNS, setAttributeNS, js_removeAttributeNS,
-        removeAttributeNS, js_getElementsByTagNameNS,
-        getElementsByTagNameNS, getElementsByTagNameNS_,
-        getElementsByTagNameNSUnsafe, getElementsByTagNameNSUnchecked,
-        js_getAttributeNodeNS, getAttributeNodeNS, getAttributeNodeNS_,
-        getAttributeNodeNSUnsafe, getAttributeNodeNSUnchecked,
-        js_setAttributeNodeNS, setAttributeNodeNS, setAttributeNodeNS_,
-        setAttributeNodeNSUnsafe, setAttributeNodeNSUnchecked,
-        js_hasAttribute, hasAttribute, hasAttribute_, js_hasAttributeNS,
-        hasAttributeNS, hasAttributeNS_, js_focus, focus, js_blur, blur,
-        js_scrollIntoView, scrollIntoView, js_scrollIntoViewIfNeeded,
-        scrollIntoViewIfNeeded, js_scrollByLines, scrollByLines,
-        js_scrollByPages, scrollByPages, js_getElementsByClassName,
-        getElementsByClassName, getElementsByClassName_,
-        getElementsByClassNameUnsafe, getElementsByClassNameUnchecked,
-        js_querySelector, querySelector, querySelector_,
-        querySelectorUnsafe, querySelectorUnchecked, js_querySelectorAll,
-        querySelectorAll, querySelectorAll_, querySelectorAllUnsafe,
-        querySelectorAllUnchecked, js_matches, matches, matches_,
-        js_closest, closest, closest_, closestUnsafe, closestUnchecked,
-        js_webkitMatchesSelector, webkitMatchesSelector,
-        webkitMatchesSelector_, js_getClientRects, getClientRects,
-        getClientRects_, getClientRectsUnsafe, getClientRectsUnchecked,
-        js_getBoundingClientRect, getBoundingClientRect,
-        getBoundingClientRect_, getBoundingClientRectUnsafe,
-        getBoundingClientRectUnchecked, js_webkitRequestFullScreen,
-        webkitRequestFullScreen, js_webkitRequestFullscreen,
-        webkitRequestFullscreen, js_requestPointerLock, requestPointerLock,
-        js_webkitGetRegionFlowRanges, webkitGetRegionFlowRanges,
-        webkitGetRegionFlowRanges_, pattern ALLOW_KEYBOARD_INPUT,
-        js_getTagName, getTagName, getTagNameUnsafe, getTagNameUnchecked,
-        js_getAttributes, getAttributes, getAttributesUnsafe,
-        getAttributesUnchecked, js_getStyle, getStyle, getStyleUnsafe,
-        getStyleUnchecked, js_setId, setId, js_getId, getId,
-        js_getOffsetLeft, getOffsetLeft, js_getOffsetTop, getOffsetTop,
-        js_getOffsetWidth, getOffsetWidth, js_getOffsetHeight,
-        getOffsetHeight, js_getClientLeft, getClientLeft, js_getClientTop,
-        getClientTop, js_getClientWidth, getClientWidth,
-        js_getClientHeight, getClientHeight, js_setScrollLeft,
-        setScrollLeft, js_getScrollLeft, getScrollLeft, js_setScrollTop,
-        setScrollTop, js_getScrollTop, getScrollTop, js_getScrollWidth,
-        getScrollWidth, js_getScrollHeight, getScrollHeight,
-        js_getOffsetParent, getOffsetParent, getOffsetParentUnsafe,
-        getOffsetParentUnchecked, js_setInnerHTML, setInnerHTML,
-        js_getInnerHTML, getInnerHTML, getInnerHTMLUnsafe,
-        getInnerHTMLUnchecked, js_setOuterHTML, setOuterHTML,
-        js_getOuterHTML, getOuterHTML, getOuterHTMLUnsafe,
-        getOuterHTMLUnchecked, js_setClassName, setClassName,
-        js_getClassName, getClassName, js_getClassList, getClassList,
-        getClassListUnsafe, getClassListUnchecked, js_getDataset,
-        getDataset, getDatasetUnsafe, getDatasetUnchecked,
-        js_getFirstElementChild, getFirstElementChild,
-        getFirstElementChildUnsafe, getFirstElementChildUnchecked,
-        js_getLastElementChild, getLastElementChild,
-        getLastElementChildUnsafe, getLastElementChildUnchecked,
-        js_getPreviousElementSibling, getPreviousElementSibling,
-        getPreviousElementSiblingUnsafe,
-        getPreviousElementSiblingUnchecked, js_getNextElementSibling,
-        getNextElementSibling, getNextElementSiblingUnsafe,
-        getNextElementSiblingUnchecked, js_getChildElementCount,
-        getChildElementCount, js_setUiactions, setUiactions,
-        js_getUiactions, getUiactions, js_getWebkitRegionOverset,
-        getWebkitRegionOverset, abort, blurEvent, change, click,
-        contextMenu, dblClick, drag, dragEnd, dragEnter, dragLeave,
-        dragOver, dragStart, drop, error, focusEvent, input, invalid,
-        keyDown, keyPress, keyUp, load, mouseDown, mouseEnter, mouseLeave,
-        mouseMove, mouseOut, mouseOver, mouseUp, mouseWheel, scroll,
-        select, submit, wheel, beforeCut, cut, beforeCopy, copy,
-        beforePaste, paste, reset, search, selectStart, touchStart,
-        touchMove, touchEnd, touchCancel, webKitFullscreenChange,
-        webKitFullscreenError, webKitWillRevealBottom,
-        webKitWillRevealLeft, webKitWillRevealRight, webKitWillRevealTop,
-        Element(..), gTypeElement, IsElement, toElement)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"getAttribute\"]($2)"
-        js_getAttribute :: Element -> JSString -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttribute Mozilla Element.getAttribute documentation> 
-getAttribute ::
-             (MonadIO m, IsElement self, ToJSString name,
-              FromJSString result) =>
-               self -> name -> m (Maybe result)
-getAttribute self name
-  = liftIO
-      (fromMaybeJSString <$>
-         (js_getAttribute (toElement self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttribute Mozilla Element.getAttribute documentation> 
-getAttribute_ ::
-              (MonadIO m, IsElement self, ToJSString name) =>
-                self -> name -> m ()
-getAttribute_ self name
-  = liftIO
-      (void (js_getAttribute (toElement self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttribute Mozilla Element.getAttribute documentation> 
-getAttributeUnsafe ::
-                   (MonadIO m, IsElement self, ToJSString name, HasCallStack,
-                    FromJSString result) =>
-                     self -> name -> m result
-getAttributeUnsafe self name
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_getAttribute (toElement self) (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttribute Mozilla Element.getAttribute documentation> 
-getAttributeUnchecked ::
-                      (MonadIO m, IsElement self, ToJSString name,
-                       FromJSString result) =>
-                        self -> name -> m result
-getAttributeUnchecked self name
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getAttribute (toElement self) (toJSString name)))
- 
-foreign import javascript unsafe "$1[\"setAttribute\"]($2, $3)"
-        js_setAttribute :: Element -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttribute Mozilla Element.setAttribute documentation> 
-setAttribute ::
-             (MonadIO m, IsElement self, ToJSString name, ToJSString value) =>
-               self -> name -> value -> m ()
-setAttribute self name value
-  = liftIO
-      (js_setAttribute (toElement self) (toJSString name)
-         (toJSString value))
- 
-foreign import javascript unsafe "$1[\"removeAttribute\"]($2)"
-        js_removeAttribute :: Element -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.removeAttribute Mozilla Element.removeAttribute documentation> 
-removeAttribute ::
-                (MonadIO m, IsElement self, ToJSString name) =>
-                  self -> name -> m ()
-removeAttribute self name
-  = liftIO (js_removeAttribute (toElement self) (toJSString name))
- 
-foreign import javascript unsafe "$1[\"getAttributeNode\"]($2)"
-        js_getAttributeNode :: Element -> JSString -> IO (Nullable Attr)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNode Mozilla Element.getAttributeNode documentation> 
-getAttributeNode ::
-                 (MonadIO m, IsElement self, ToJSString name) =>
-                   self -> name -> m (Maybe Attr)
-getAttributeNode self name
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getAttributeNode (toElement self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNode Mozilla Element.getAttributeNode documentation> 
-getAttributeNode_ ::
-                  (MonadIO m, IsElement self, ToJSString name) =>
-                    self -> name -> m ()
-getAttributeNode_ self name
-  = liftIO
-      (void (js_getAttributeNode (toElement self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNode Mozilla Element.getAttributeNode documentation> 
-getAttributeNodeUnsafe ::
-                       (MonadIO m, IsElement self, ToJSString name, HasCallStack) =>
-                         self -> name -> m Attr
-getAttributeNodeUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getAttributeNode (toElement self) (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNode Mozilla Element.getAttributeNode documentation> 
-getAttributeNodeUnchecked ::
-                          (MonadIO m, IsElement self, ToJSString name) =>
-                            self -> name -> m Attr
-getAttributeNodeUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getAttributeNode (toElement self) (toJSString name)))
- 
-foreign import javascript unsafe "$1[\"setAttributeNode\"]($2)"
-        js_setAttributeNode ::
-        Element -> Nullable Attr -> IO (Nullable Attr)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNode Mozilla Element.setAttributeNode documentation> 
-setAttributeNode ::
-                 (MonadIO m, IsElement self) => self -> Maybe Attr -> m (Maybe Attr)
-setAttributeNode self newAttr
-  = liftIO
-      (nullableToMaybe <$>
-         (js_setAttributeNode (toElement self) (maybeToNullable newAttr)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNode Mozilla Element.setAttributeNode documentation> 
-setAttributeNode_ ::
-                  (MonadIO m, IsElement self) => self -> Maybe Attr -> m ()
-setAttributeNode_ self newAttr
-  = liftIO
-      (void
-         (js_setAttributeNode (toElement self) (maybeToNullable newAttr)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNode Mozilla Element.setAttributeNode documentation> 
-setAttributeNodeUnsafe ::
-                       (MonadIO m, IsElement self, HasCallStack) =>
-                         self -> Maybe Attr -> m Attr
-setAttributeNodeUnsafe self newAttr
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_setAttributeNode (toElement self) (maybeToNullable newAttr)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNode Mozilla Element.setAttributeNode documentation> 
-setAttributeNodeUnchecked ::
-                          (MonadIO m, IsElement self) => self -> Maybe Attr -> m Attr
-setAttributeNodeUnchecked self newAttr
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_setAttributeNode (toElement self) (maybeToNullable newAttr)))
- 
-foreign import javascript unsafe "$1[\"removeAttributeNode\"]($2)"
-        js_removeAttributeNode ::
-        Element -> Nullable Attr -> IO (Nullable Attr)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.removeAttributeNode Mozilla Element.removeAttributeNode documentation> 
-removeAttributeNode ::
-                    (MonadIO m, IsElement self) => self -> Maybe Attr -> m (Maybe Attr)
-removeAttributeNode self oldAttr
-  = liftIO
-      (nullableToMaybe <$>
-         (js_removeAttributeNode (toElement self)
-            (maybeToNullable oldAttr)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.removeAttributeNode Mozilla Element.removeAttributeNode documentation> 
-removeAttributeNode_ ::
-                     (MonadIO m, IsElement self) => self -> Maybe Attr -> m ()
-removeAttributeNode_ self oldAttr
-  = liftIO
-      (void
-         (js_removeAttributeNode (toElement self)
-            (maybeToNullable oldAttr)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.removeAttributeNode Mozilla Element.removeAttributeNode documentation> 
-removeAttributeNodeUnsafe ::
-                          (MonadIO m, IsElement self, HasCallStack) =>
-                            self -> Maybe Attr -> m Attr
-removeAttributeNodeUnsafe self oldAttr
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_removeAttributeNode (toElement self)
-             (maybeToNullable oldAttr)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.removeAttributeNode Mozilla Element.removeAttributeNode documentation> 
-removeAttributeNodeUnchecked ::
-                             (MonadIO m, IsElement self) => self -> Maybe Attr -> m Attr
-removeAttributeNodeUnchecked self oldAttr
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_removeAttributeNode (toElement self)
-            (maybeToNullable oldAttr)))
- 
-foreign import javascript unsafe "$1[\"getElementsByTagName\"]($2)"
-        js_getElementsByTagName ::
-        Element -> JSString -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagName Mozilla Element.getElementsByTagName documentation> 
-getElementsByTagName ::
-                     (MonadIO m, IsElement self, ToJSString name) =>
-                       self -> name -> m (Maybe NodeList)
-getElementsByTagName self name
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getElementsByTagName (toElement self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagName Mozilla Element.getElementsByTagName documentation> 
-getElementsByTagName_ ::
-                      (MonadIO m, IsElement self, ToJSString name) =>
-                        self -> name -> m ()
-getElementsByTagName_ self name
-  = liftIO
-      (void (js_getElementsByTagName (toElement self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagName Mozilla Element.getElementsByTagName documentation> 
-getElementsByTagNameUnsafe ::
-                           (MonadIO m, IsElement self, ToJSString name, HasCallStack) =>
-                             self -> name -> m NodeList
-getElementsByTagNameUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getElementsByTagName (toElement self) (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagName Mozilla Element.getElementsByTagName documentation> 
-getElementsByTagNameUnchecked ::
-                              (MonadIO m, IsElement self, ToJSString name) =>
-                                self -> name -> m NodeList
-getElementsByTagNameUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getElementsByTagName (toElement self) (toJSString name)))
- 
-foreign import javascript unsafe
-        "($1[\"hasAttributes\"]() ? 1 : 0)" js_hasAttributes ::
-        Element -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttributes Mozilla Element.hasAttributes documentation> 
-hasAttributes :: (MonadIO m, IsElement self) => self -> m Bool
-hasAttributes self = liftIO (js_hasAttributes (toElement self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttributes Mozilla Element.hasAttributes documentation> 
-hasAttributes_ :: (MonadIO m, IsElement self) => self -> m ()
-hasAttributes_ self
-  = liftIO (void (js_hasAttributes (toElement self)))
- 
-foreign import javascript unsafe "$1[\"getAttributeNS\"]($2, $3)"
-        js_getAttributeNS ::
-        Element -> Nullable JSString -> JSString -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNS Mozilla Element.getAttributeNS documentation> 
-getAttributeNS ::
-               (MonadIO m, IsElement self, ToJSString namespaceURI,
-                ToJSString localName, FromJSString result) =>
-                 self -> Maybe namespaceURI -> localName -> m result
-getAttributeNS self namespaceURI localName
-  = liftIO
-      (fromJSString <$>
-         (js_getAttributeNS (toElement self) (toMaybeJSString namespaceURI)
-            (toJSString localName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNS Mozilla Element.getAttributeNS documentation> 
-getAttributeNS_ ::
-                (MonadIO m, IsElement self, ToJSString namespaceURI,
-                 ToJSString localName) =>
-                  self -> Maybe namespaceURI -> localName -> m ()
-getAttributeNS_ self namespaceURI localName
-  = liftIO
-      (void
-         (js_getAttributeNS (toElement self) (toMaybeJSString namespaceURI)
-            (toJSString localName)))
- 
-foreign import javascript unsafe
-        "$1[\"setAttributeNS\"]($2, $3, $4)" js_setAttributeNS ::
-        Element -> Nullable JSString -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNS Mozilla Element.setAttributeNS documentation> 
-setAttributeNS ::
-               (MonadIO m, IsElement self, ToJSString namespaceURI,
-                ToJSString qualifiedName, ToJSString value) =>
-                 self -> Maybe namespaceURI -> qualifiedName -> value -> m ()
-setAttributeNS self namespaceURI qualifiedName value
-  = liftIO
-      (js_setAttributeNS (toElement self) (toMaybeJSString namespaceURI)
-         (toJSString qualifiedName)
-         (toJSString value))
- 
-foreign import javascript unsafe
-        "$1[\"removeAttributeNS\"]($2, $3)" js_removeAttributeNS ::
-        Element -> Nullable JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.removeAttributeNS Mozilla Element.removeAttributeNS documentation> 
-removeAttributeNS ::
-                  (MonadIO m, IsElement self, ToJSString namespaceURI,
-                   ToJSString localName) =>
-                    self -> Maybe namespaceURI -> localName -> m ()
-removeAttributeNS self namespaceURI localName
-  = liftIO
-      (js_removeAttributeNS (toElement self)
-         (toMaybeJSString namespaceURI)
-         (toJSString localName))
- 
-foreign import javascript unsafe
-        "$1[\"getElementsByTagNameNS\"]($2,\n$3)" js_getElementsByTagNameNS
-        ::
-        Element -> Nullable JSString -> JSString -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagNameNS Mozilla Element.getElementsByTagNameNS documentation> 
-getElementsByTagNameNS ::
-                       (MonadIO m, IsElement self, ToJSString namespaceURI,
-                        ToJSString localName) =>
-                         self -> Maybe namespaceURI -> localName -> m (Maybe NodeList)
-getElementsByTagNameNS self namespaceURI localName
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getElementsByTagNameNS (toElement self)
-            (toMaybeJSString namespaceURI)
-            (toJSString localName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagNameNS Mozilla Element.getElementsByTagNameNS documentation> 
-getElementsByTagNameNS_ ::
-                        (MonadIO m, IsElement self, ToJSString namespaceURI,
-                         ToJSString localName) =>
-                          self -> Maybe namespaceURI -> localName -> m ()
-getElementsByTagNameNS_ self namespaceURI localName
-  = liftIO
-      (void
-         (js_getElementsByTagNameNS (toElement self)
-            (toMaybeJSString namespaceURI)
-            (toJSString localName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagNameNS Mozilla Element.getElementsByTagNameNS documentation> 
-getElementsByTagNameNSUnsafe ::
-                             (MonadIO m, IsElement self, ToJSString namespaceURI,
-                              ToJSString localName, HasCallStack) =>
-                               self -> Maybe namespaceURI -> localName -> m NodeList
-getElementsByTagNameNSUnsafe self namespaceURI localName
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getElementsByTagNameNS (toElement self)
-             (toMaybeJSString namespaceURI)
-             (toJSString localName)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagNameNS Mozilla Element.getElementsByTagNameNS documentation> 
-getElementsByTagNameNSUnchecked ::
-                                (MonadIO m, IsElement self, ToJSString namespaceURI,
-                                 ToJSString localName) =>
-                                  self -> Maybe namespaceURI -> localName -> m NodeList
-getElementsByTagNameNSUnchecked self namespaceURI localName
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getElementsByTagNameNS (toElement self)
-            (toMaybeJSString namespaceURI)
-            (toJSString localName)))
- 
-foreign import javascript unsafe
-        "$1[\"getAttributeNodeNS\"]($2, $3)" js_getAttributeNodeNS ::
-        Element -> Nullable JSString -> JSString -> IO (Nullable Attr)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNodeNS Mozilla Element.getAttributeNodeNS documentation> 
-getAttributeNodeNS ::
-                   (MonadIO m, IsElement self, ToJSString namespaceURI,
-                    ToJSString localName) =>
-                     self -> Maybe namespaceURI -> localName -> m (Maybe Attr)
-getAttributeNodeNS self namespaceURI localName
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getAttributeNodeNS (toElement self)
-            (toMaybeJSString namespaceURI)
-            (toJSString localName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNodeNS Mozilla Element.getAttributeNodeNS documentation> 
-getAttributeNodeNS_ ::
-                    (MonadIO m, IsElement self, ToJSString namespaceURI,
-                     ToJSString localName) =>
-                      self -> Maybe namespaceURI -> localName -> m ()
-getAttributeNodeNS_ self namespaceURI localName
-  = liftIO
-      (void
-         (js_getAttributeNodeNS (toElement self)
-            (toMaybeJSString namespaceURI)
-            (toJSString localName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNodeNS Mozilla Element.getAttributeNodeNS documentation> 
-getAttributeNodeNSUnsafe ::
-                         (MonadIO m, IsElement self, ToJSString namespaceURI,
-                          ToJSString localName, HasCallStack) =>
-                           self -> Maybe namespaceURI -> localName -> m Attr
-getAttributeNodeNSUnsafe self namespaceURI localName
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getAttributeNodeNS (toElement self)
-             (toMaybeJSString namespaceURI)
-             (toJSString localName)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNodeNS Mozilla Element.getAttributeNodeNS documentation> 
-getAttributeNodeNSUnchecked ::
-                            (MonadIO m, IsElement self, ToJSString namespaceURI,
-                             ToJSString localName) =>
-                              self -> Maybe namespaceURI -> localName -> m Attr
-getAttributeNodeNSUnchecked self namespaceURI localName
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getAttributeNodeNS (toElement self)
-            (toMaybeJSString namespaceURI)
-            (toJSString localName)))
- 
-foreign import javascript unsafe "$1[\"setAttributeNodeNS\"]($2)"
-        js_setAttributeNodeNS ::
-        Element -> Nullable Attr -> IO (Nullable Attr)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNodeNS Mozilla Element.setAttributeNodeNS documentation> 
-setAttributeNodeNS ::
-                   (MonadIO m, IsElement self) => self -> Maybe Attr -> m (Maybe Attr)
-setAttributeNodeNS self newAttr
-  = liftIO
-      (nullableToMaybe <$>
-         (js_setAttributeNodeNS (toElement self) (maybeToNullable newAttr)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNodeNS Mozilla Element.setAttributeNodeNS documentation> 
-setAttributeNodeNS_ ::
-                    (MonadIO m, IsElement self) => self -> Maybe Attr -> m ()
-setAttributeNodeNS_ self newAttr
-  = liftIO
-      (void
-         (js_setAttributeNodeNS (toElement self) (maybeToNullable newAttr)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNodeNS Mozilla Element.setAttributeNodeNS documentation> 
-setAttributeNodeNSUnsafe ::
-                         (MonadIO m, IsElement self, HasCallStack) =>
-                           self -> Maybe Attr -> m Attr
-setAttributeNodeNSUnsafe self newAttr
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_setAttributeNodeNS (toElement self) (maybeToNullable newAttr)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNodeNS Mozilla Element.setAttributeNodeNS documentation> 
-setAttributeNodeNSUnchecked ::
-                            (MonadIO m, IsElement self) => self -> Maybe Attr -> m Attr
-setAttributeNodeNSUnchecked self newAttr
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_setAttributeNodeNS (toElement self) (maybeToNullable newAttr)))
- 
-foreign import javascript unsafe
-        "($1[\"hasAttribute\"]($2) ? 1 : 0)" js_hasAttribute ::
-        Element -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttribute Mozilla Element.hasAttribute documentation> 
-hasAttribute ::
-             (MonadIO m, IsElement self, ToJSString name) =>
-               self -> name -> m Bool
-hasAttribute self name
-  = liftIO (js_hasAttribute (toElement self) (toJSString name))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttribute Mozilla Element.hasAttribute documentation> 
-hasAttribute_ ::
-              (MonadIO m, IsElement self, ToJSString name) =>
-                self -> name -> m ()
-hasAttribute_ self name
-  = liftIO
-      (void (js_hasAttribute (toElement self) (toJSString name)))
- 
-foreign import javascript unsafe
-        "($1[\"hasAttributeNS\"]($2,\n$3) ? 1 : 0)" js_hasAttributeNS ::
-        Element -> Nullable JSString -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttributeNS Mozilla Element.hasAttributeNS documentation> 
-hasAttributeNS ::
-               (MonadIO m, IsElement self, ToJSString namespaceURI,
-                ToJSString localName) =>
-                 self -> Maybe namespaceURI -> localName -> m Bool
-hasAttributeNS self namespaceURI localName
-  = liftIO
-      (js_hasAttributeNS (toElement self) (toMaybeJSString namespaceURI)
-         (toJSString localName))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttributeNS Mozilla Element.hasAttributeNS documentation> 
-hasAttributeNS_ ::
-                (MonadIO m, IsElement self, ToJSString namespaceURI,
-                 ToJSString localName) =>
-                  self -> Maybe namespaceURI -> localName -> m ()
-hasAttributeNS_ self namespaceURI localName
-  = liftIO
-      (void
-         (js_hasAttributeNS (toElement self) (toMaybeJSString namespaceURI)
-            (toJSString localName)))
- 
-foreign import javascript unsafe "$1[\"focus\"]()" js_focus ::
-        Element -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.focus Mozilla Element.focus documentation> 
-focus :: (MonadIO m, IsElement self) => self -> m ()
-focus self = liftIO (js_focus (toElement self))
- 
-foreign import javascript unsafe "$1[\"blur\"]()" js_blur ::
-        Element -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.blur Mozilla Element.blur documentation> 
-blur :: (MonadIO m, IsElement self) => self -> m ()
-blur self = liftIO (js_blur (toElement self))
- 
-foreign import javascript unsafe "$1[\"scrollIntoView\"]($2)"
-        js_scrollIntoView :: Element -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollIntoView Mozilla Element.scrollIntoView documentation> 
-scrollIntoView ::
-               (MonadIO m, IsElement self) => self -> Bool -> m ()
-scrollIntoView self alignWithTop
-  = liftIO (js_scrollIntoView (toElement self) alignWithTop)
- 
-foreign import javascript unsafe
-        "$1[\"scrollIntoViewIfNeeded\"]($2)" js_scrollIntoViewIfNeeded ::
-        Element -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollIntoViewIfNeeded Mozilla Element.scrollIntoViewIfNeeded documentation> 
-scrollIntoViewIfNeeded ::
-                       (MonadIO m, IsElement self) => self -> Bool -> m ()
-scrollIntoViewIfNeeded self centerIfNeeded
-  = liftIO
-      (js_scrollIntoViewIfNeeded (toElement self) centerIfNeeded)
- 
-foreign import javascript unsafe "$1[\"scrollByLines\"]($2)"
-        js_scrollByLines :: Element -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollByLines Mozilla Element.scrollByLines documentation> 
-scrollByLines :: (MonadIO m, IsElement self) => self -> Int -> m ()
-scrollByLines self lines
-  = liftIO (js_scrollByLines (toElement self) lines)
- 
-foreign import javascript unsafe "$1[\"scrollByPages\"]($2)"
-        js_scrollByPages :: Element -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollByPages Mozilla Element.scrollByPages documentation> 
-scrollByPages :: (MonadIO m, IsElement self) => self -> Int -> m ()
-scrollByPages self pages
-  = liftIO (js_scrollByPages (toElement self) pages)
- 
-foreign import javascript unsafe
-        "$1[\"getElementsByClassName\"]($2)" js_getElementsByClassName ::
-        Element -> JSString -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByClassName Mozilla Element.getElementsByClassName documentation> 
-getElementsByClassName ::
-                       (MonadIO m, IsElement self, ToJSString name) =>
-                         self -> name -> m (Maybe NodeList)
-getElementsByClassName self name
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getElementsByClassName (toElement self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByClassName Mozilla Element.getElementsByClassName documentation> 
-getElementsByClassName_ ::
-                        (MonadIO m, IsElement self, ToJSString name) =>
-                          self -> name -> m ()
-getElementsByClassName_ self name
-  = liftIO
-      (void
-         (js_getElementsByClassName (toElement self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByClassName Mozilla Element.getElementsByClassName documentation> 
-getElementsByClassNameUnsafe ::
-                             (MonadIO m, IsElement self, ToJSString name, HasCallStack) =>
-                               self -> name -> m NodeList
-getElementsByClassNameUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getElementsByClassName (toElement self) (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByClassName Mozilla Element.getElementsByClassName documentation> 
-getElementsByClassNameUnchecked ::
-                                (MonadIO m, IsElement self, ToJSString name) =>
-                                  self -> name -> m NodeList
-getElementsByClassNameUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getElementsByClassName (toElement self) (toJSString name)))
- 
-foreign import javascript unsafe "$1[\"querySelector\"]($2)"
-        js_querySelector :: Element -> JSString -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelector Mozilla Element.querySelector documentation> 
-querySelector ::
-              (MonadIO m, IsElement self, ToJSString selectors) =>
-                self -> selectors -> m (Maybe Element)
-querySelector self selectors
-  = liftIO
-      (nullableToMaybe <$>
-         (js_querySelector (toElement self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelector Mozilla Element.querySelector documentation> 
-querySelector_ ::
-               (MonadIO m, IsElement self, ToJSString selectors) =>
-                 self -> selectors -> m ()
-querySelector_ self selectors
-  = liftIO
-      (void (js_querySelector (toElement self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelector Mozilla Element.querySelector documentation> 
-querySelectorUnsafe ::
-                    (MonadIO m, IsElement self, ToJSString selectors, HasCallStack) =>
-                      self -> selectors -> m Element
-querySelectorUnsafe self selectors
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_querySelector (toElement self) (toJSString selectors)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelector Mozilla Element.querySelector documentation> 
-querySelectorUnchecked ::
-                       (MonadIO m, IsElement self, ToJSString selectors) =>
-                         self -> selectors -> m Element
-querySelectorUnchecked self selectors
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_querySelector (toElement self) (toJSString selectors)))
- 
-foreign import javascript unsafe "$1[\"querySelectorAll\"]($2)"
-        js_querySelectorAll ::
-        Element -> JSString -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelectorAll Mozilla Element.querySelectorAll documentation> 
-querySelectorAll ::
-                 (MonadIO m, IsElement self, ToJSString selectors) =>
-                   self -> selectors -> m (Maybe NodeList)
-querySelectorAll self selectors
-  = liftIO
-      (nullableToMaybe <$>
-         (js_querySelectorAll (toElement self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelectorAll Mozilla Element.querySelectorAll documentation> 
-querySelectorAll_ ::
-                  (MonadIO m, IsElement self, ToJSString selectors) =>
-                    self -> selectors -> m ()
-querySelectorAll_ self selectors
-  = liftIO
-      (void
-         (js_querySelectorAll (toElement self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelectorAll Mozilla Element.querySelectorAll documentation> 
-querySelectorAllUnsafe ::
-                       (MonadIO m, IsElement self, ToJSString selectors, HasCallStack) =>
-                         self -> selectors -> m NodeList
-querySelectorAllUnsafe self selectors
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_querySelectorAll (toElement self) (toJSString selectors)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelectorAll Mozilla Element.querySelectorAll documentation> 
-querySelectorAllUnchecked ::
-                          (MonadIO m, IsElement self, ToJSString selectors) =>
-                            self -> selectors -> m NodeList
-querySelectorAllUnchecked self selectors
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_querySelectorAll (toElement self) (toJSString selectors)))
- 
-foreign import javascript unsafe "($1[\"matches\"]($2) ? 1 : 0)"
-        js_matches :: Element -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.matches Mozilla Element.matches documentation> 
-matches ::
-        (MonadIO m, IsElement self, ToJSString selectors) =>
-          self -> selectors -> m Bool
-matches self selectors
-  = liftIO (js_matches (toElement self) (toJSString selectors))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.matches Mozilla Element.matches documentation> 
-matches_ ::
-         (MonadIO m, IsElement self, ToJSString selectors) =>
-           self -> selectors -> m ()
-matches_ self selectors
-  = liftIO
-      (void (js_matches (toElement self) (toJSString selectors)))
- 
-foreign import javascript unsafe "$1[\"closest\"]($2)" js_closest
-        :: Element -> JSString -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.closest Mozilla Element.closest documentation> 
-closest ::
-        (MonadIO m, IsElement self, ToJSString selectors) =>
-          self -> selectors -> m (Maybe Element)
-closest self selectors
-  = liftIO
-      (nullableToMaybe <$>
-         (js_closest (toElement self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.closest Mozilla Element.closest documentation> 
-closest_ ::
-         (MonadIO m, IsElement self, ToJSString selectors) =>
-           self -> selectors -> m ()
-closest_ self selectors
-  = liftIO
-      (void (js_closest (toElement self) (toJSString selectors)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.closest Mozilla Element.closest documentation> 
-closestUnsafe ::
-              (MonadIO m, IsElement self, ToJSString selectors, HasCallStack) =>
-                self -> selectors -> m Element
-closestUnsafe self selectors
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_closest (toElement self) (toJSString selectors)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.closest Mozilla Element.closest documentation> 
-closestUnchecked ::
-                 (MonadIO m, IsElement self, ToJSString selectors) =>
-                   self -> selectors -> m Element
-closestUnchecked self selectors
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_closest (toElement self) (toJSString selectors)))
- 
-foreign import javascript unsafe
-        "($1[\"webkitMatchesSelector\"]($2) ? 1 : 0)"
-        js_webkitMatchesSelector :: Element -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitMatchesSelector Mozilla Element.webkitMatchesSelector documentation> 
-webkitMatchesSelector ::
-                      (MonadIO m, IsElement self, ToJSString selectors) =>
-                        self -> selectors -> m Bool
-webkitMatchesSelector self selectors
-  = liftIO
-      (js_webkitMatchesSelector (toElement self) (toJSString selectors))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitMatchesSelector Mozilla Element.webkitMatchesSelector documentation> 
-webkitMatchesSelector_ ::
-                       (MonadIO m, IsElement self, ToJSString selectors) =>
-                         self -> selectors -> m ()
-webkitMatchesSelector_ self selectors
-  = liftIO
-      (void
-         (js_webkitMatchesSelector (toElement self) (toJSString selectors)))
- 
-foreign import javascript unsafe "$1[\"getClientRects\"]()"
-        js_getClientRects :: Element -> IO (Nullable ClientRectList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getClientRects Mozilla Element.getClientRects documentation> 
-getClientRects ::
-               (MonadIO m, IsElement self) => self -> m (Maybe ClientRectList)
-getClientRects self
-  = liftIO (nullableToMaybe <$> (js_getClientRects (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getClientRects Mozilla Element.getClientRects documentation> 
-getClientRects_ :: (MonadIO m, IsElement self) => self -> m ()
-getClientRects_ self
-  = liftIO (void (js_getClientRects (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getClientRects Mozilla Element.getClientRects documentation> 
-getClientRectsUnsafe ::
-                     (MonadIO m, IsElement self, HasCallStack) =>
-                       self -> m ClientRectList
-getClientRectsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getClientRects (toElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getClientRects Mozilla Element.getClientRects documentation> 
-getClientRectsUnchecked ::
-                        (MonadIO m, IsElement self) => self -> m ClientRectList
-getClientRectsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getClientRects (toElement self)))
- 
-foreign import javascript unsafe "$1[\"getBoundingClientRect\"]()"
-        js_getBoundingClientRect :: Element -> IO (Nullable ClientRect)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect Mozilla Element.getBoundingClientRect documentation> 
-getBoundingClientRect ::
-                      (MonadIO m, IsElement self) => self -> m (Maybe ClientRect)
-getBoundingClientRect self
-  = liftIO
-      (nullableToMaybe <$> (js_getBoundingClientRect (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect Mozilla Element.getBoundingClientRect documentation> 
-getBoundingClientRect_ ::
-                       (MonadIO m, IsElement self) => self -> m ()
-getBoundingClientRect_ self
-  = liftIO (void (js_getBoundingClientRect (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect Mozilla Element.getBoundingClientRect documentation> 
-getBoundingClientRectUnsafe ::
-                            (MonadIO m, IsElement self, HasCallStack) => self -> m ClientRect
-getBoundingClientRectUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBoundingClientRect (toElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect Mozilla Element.getBoundingClientRect documentation> 
-getBoundingClientRectUnchecked ::
-                               (MonadIO m, IsElement self) => self -> m ClientRect
-getBoundingClientRectUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getBoundingClientRect (toElement self)))
- 
-foreign import javascript unsafe
-        "$1[\"webkitRequestFullScreen\"]($2)" js_webkitRequestFullScreen ::
-        Element -> Word -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitRequestFullScreen Mozilla Element.webkitRequestFullScreen documentation> 
-webkitRequestFullScreen ::
-                        (MonadIO m, IsElement self) => self -> Word -> m ()
-webkitRequestFullScreen self flags
-  = liftIO (js_webkitRequestFullScreen (toElement self) flags)
- 
-foreign import javascript unsafe
-        "$1[\"webkitRequestFullscreen\"]()" js_webkitRequestFullscreen ::
-        Element -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitRequestFullscreen Mozilla Element.webkitRequestFullscreen documentation> 
-webkitRequestFullscreen ::
-                        (MonadIO m, IsElement self) => self -> m ()
-webkitRequestFullscreen self
-  = liftIO (js_webkitRequestFullscreen (toElement self))
- 
-foreign import javascript unsafe "$1[\"requestPointerLock\"]()"
-        js_requestPointerLock :: Element -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.requestPointerLock Mozilla Element.requestPointerLock documentation> 
-requestPointerLock :: (MonadIO m, IsElement self) => self -> m ()
-requestPointerLock self
-  = liftIO (js_requestPointerLock (toElement self))
- 
-foreign import javascript unsafe
-        "$1[\"webkitGetRegionFlowRanges\"]()" js_webkitGetRegionFlowRanges
-        :: Element -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitGetRegionFlowRanges Mozilla Element.webkitGetRegionFlowRanges documentation> 
-webkitGetRegionFlowRanges ::
-                          (MonadIO m, IsElement self) => self -> m [Maybe Range]
-webkitGetRegionFlowRanges self
-  = liftIO
-      ((js_webkitGetRegionFlowRanges (toElement self)) >>=
-         fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitGetRegionFlowRanges Mozilla Element.webkitGetRegionFlowRanges documentation> 
-webkitGetRegionFlowRanges_ ::
-                           (MonadIO m, IsElement self) => self -> m ()
-webkitGetRegionFlowRanges_ self
-  = liftIO (void (js_webkitGetRegionFlowRanges (toElement self)))
-pattern ALLOW_KEYBOARD_INPUT = 1
- 
-foreign import javascript unsafe "$1[\"tagName\"]" js_getTagName ::
-        Element -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.tagName Mozilla Element.tagName documentation> 
-getTagName ::
-           (MonadIO m, IsElement self, FromJSString result) =>
-             self -> m (Maybe result)
-getTagName self
-  = liftIO (fromMaybeJSString <$> (js_getTagName (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.tagName Mozilla Element.tagName documentation> 
-getTagNameUnsafe ::
-                 (MonadIO m, IsElement self, HasCallStack, FromJSString result) =>
-                   self -> m result
-getTagNameUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getTagName (toElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.tagName Mozilla Element.tagName documentation> 
-getTagNameUnchecked ::
-                    (MonadIO m, IsElement self, FromJSString result) =>
-                      self -> m result
-getTagNameUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getTagName (toElement self)))
- 
-foreign import javascript unsafe "$1[\"attributes\"]"
-        js_getAttributes :: Element -> IO (Nullable NamedNodeMap)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.attributes Mozilla Element.attributes documentation> 
-getAttributes ::
-              (MonadIO m, IsElement self) => self -> m (Maybe NamedNodeMap)
-getAttributes self
-  = liftIO (nullableToMaybe <$> (js_getAttributes (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.attributes Mozilla Element.attributes documentation> 
-getAttributesUnsafe ::
-                    (MonadIO m, IsElement self, HasCallStack) => self -> m NamedNodeMap
-getAttributesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAttributes (toElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.attributes Mozilla Element.attributes documentation> 
-getAttributesUnchecked ::
-                       (MonadIO m, IsElement self) => self -> m NamedNodeMap
-getAttributesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getAttributes (toElement self)))
- 
-foreign import javascript unsafe "$1[\"style\"]" js_getStyle ::
-        Element -> IO (Nullable CSSStyleDeclaration)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.style Mozilla Element.style documentation> 
-getStyle ::
-         (MonadIO m, IsElement self) =>
-           self -> m (Maybe CSSStyleDeclaration)
-getStyle self
-  = liftIO (nullableToMaybe <$> (js_getStyle (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.style Mozilla Element.style documentation> 
-getStyleUnsafe ::
-               (MonadIO m, IsElement self, HasCallStack) =>
-                 self -> m CSSStyleDeclaration
-getStyleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStyle (toElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.style Mozilla Element.style documentation> 
-getStyleUnchecked ::
-                  (MonadIO m, IsElement self) => self -> m CSSStyleDeclaration
-getStyleUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getStyle (toElement self)))
- 
-foreign import javascript unsafe "$1[\"id\"] = $2;" js_setId ::
-        Element -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.id Mozilla Element.id documentation> 
-setId ::
-      (MonadIO m, IsElement self, ToJSString val) => self -> val -> m ()
-setId self val
-  = liftIO (js_setId (toElement self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"id\"]" js_getId ::
-        Element -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.id Mozilla Element.id documentation> 
-getId ::
-      (MonadIO m, IsElement self, FromJSString result) =>
-        self -> m result
-getId self = liftIO (fromJSString <$> (js_getId (toElement self)))
- 
-foreign import javascript unsafe "$1[\"offsetLeft\"]"
-        js_getOffsetLeft :: Element -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetLeft Mozilla Element.offsetLeft documentation> 
-getOffsetLeft :: (MonadIO m, IsElement self) => self -> m Double
-getOffsetLeft self = liftIO (js_getOffsetLeft (toElement self))
- 
-foreign import javascript unsafe "$1[\"offsetTop\"]"
-        js_getOffsetTop :: Element -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetTop Mozilla Element.offsetTop documentation> 
-getOffsetTop :: (MonadIO m, IsElement self) => self -> m Double
-getOffsetTop self = liftIO (js_getOffsetTop (toElement self))
- 
-foreign import javascript unsafe "$1[\"offsetWidth\"]"
-        js_getOffsetWidth :: Element -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetWidth Mozilla Element.offsetWidth documentation> 
-getOffsetWidth :: (MonadIO m, IsElement self) => self -> m Double
-getOffsetWidth self = liftIO (js_getOffsetWidth (toElement self))
- 
-foreign import javascript unsafe "$1[\"offsetHeight\"]"
-        js_getOffsetHeight :: Element -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetHeight Mozilla Element.offsetHeight documentation> 
-getOffsetHeight :: (MonadIO m, IsElement self) => self -> m Double
-getOffsetHeight self = liftIO (js_getOffsetHeight (toElement self))
- 
-foreign import javascript unsafe "$1[\"clientLeft\"]"
-        js_getClientLeft :: Element -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.clientLeft Mozilla Element.clientLeft documentation> 
-getClientLeft :: (MonadIO m, IsElement self) => self -> m Double
-getClientLeft self = liftIO (js_getClientLeft (toElement self))
- 
-foreign import javascript unsafe "$1[\"clientTop\"]"
-        js_getClientTop :: Element -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.clientTop Mozilla Element.clientTop documentation> 
-getClientTop :: (MonadIO m, IsElement self) => self -> m Double
-getClientTop self = liftIO (js_getClientTop (toElement self))
- 
-foreign import javascript unsafe "$1[\"clientWidth\"]"
-        js_getClientWidth :: Element -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.clientWidth Mozilla Element.clientWidth documentation> 
-getClientWidth :: (MonadIO m, IsElement self) => self -> m Double
-getClientWidth self = liftIO (js_getClientWidth (toElement self))
- 
-foreign import javascript unsafe "$1[\"clientHeight\"]"
-        js_getClientHeight :: Element -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.clientHeight Mozilla Element.clientHeight documentation> 
-getClientHeight :: (MonadIO m, IsElement self) => self -> m Double
-getClientHeight self = liftIO (js_getClientHeight (toElement self))
- 
-foreign import javascript unsafe "$1[\"scrollLeft\"] = $2;"
-        js_setScrollLeft :: Element -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollLeft Mozilla Element.scrollLeft documentation> 
-setScrollLeft :: (MonadIO m, IsElement self) => self -> Int -> m ()
-setScrollLeft self val
-  = liftIO (js_setScrollLeft (toElement self) val)
- 
-foreign import javascript unsafe "$1[\"scrollLeft\"]"
-        js_getScrollLeft :: Element -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollLeft Mozilla Element.scrollLeft documentation> 
-getScrollLeft :: (MonadIO m, IsElement self) => self -> m Int
-getScrollLeft self = liftIO (js_getScrollLeft (toElement self))
- 
-foreign import javascript unsafe "$1[\"scrollTop\"] = $2;"
-        js_setScrollTop :: Element -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollTop Mozilla Element.scrollTop documentation> 
-setScrollTop :: (MonadIO m, IsElement self) => self -> Int -> m ()
-setScrollTop self val
-  = liftIO (js_setScrollTop (toElement self) val)
- 
-foreign import javascript unsafe "$1[\"scrollTop\"]"
-        js_getScrollTop :: Element -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollTop Mozilla Element.scrollTop documentation> 
-getScrollTop :: (MonadIO m, IsElement self) => self -> m Int
-getScrollTop self = liftIO (js_getScrollTop (toElement self))
- 
-foreign import javascript unsafe "$1[\"scrollWidth\"]"
-        js_getScrollWidth :: Element -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollWidth Mozilla Element.scrollWidth documentation> 
-getScrollWidth :: (MonadIO m, IsElement self) => self -> m Int
-getScrollWidth self = liftIO (js_getScrollWidth (toElement self))
- 
-foreign import javascript unsafe "$1[\"scrollHeight\"]"
-        js_getScrollHeight :: Element -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollHeight Mozilla Element.scrollHeight documentation> 
-getScrollHeight :: (MonadIO m, IsElement self) => self -> m Int
-getScrollHeight self = liftIO (js_getScrollHeight (toElement self))
- 
-foreign import javascript unsafe "$1[\"offsetParent\"]"
-        js_getOffsetParent :: Element -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetParent Mozilla Element.offsetParent documentation> 
-getOffsetParent ::
-                (MonadIO m, IsElement self) => self -> m (Maybe Element)
-getOffsetParent self
-  = liftIO
-      (nullableToMaybe <$> (js_getOffsetParent (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetParent Mozilla Element.offsetParent documentation> 
-getOffsetParentUnsafe ::
-                      (MonadIO m, IsElement self, HasCallStack) => self -> m Element
-getOffsetParentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOffsetParent (toElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetParent Mozilla Element.offsetParent documentation> 
-getOffsetParentUnchecked ::
-                         (MonadIO m, IsElement self) => self -> m Element
-getOffsetParentUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getOffsetParent (toElement self)))
- 
-foreign import javascript unsafe "$1[\"innerHTML\"] = $2;"
-        js_setInnerHTML :: Element -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML Mozilla Element.innerHTML documentation> 
-setInnerHTML ::
-             (MonadIO m, IsElement self, ToJSString val) =>
-               self -> Maybe val -> m ()
-setInnerHTML self val
-  = liftIO (js_setInnerHTML (toElement self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"innerHTML\"]"
-        js_getInnerHTML :: Element -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML Mozilla Element.innerHTML documentation> 
-getInnerHTML ::
-             (MonadIO m, IsElement self, FromJSString result) =>
-               self -> m (Maybe result)
-getInnerHTML self
-  = liftIO (fromMaybeJSString <$> (js_getInnerHTML (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML Mozilla Element.innerHTML documentation> 
-getInnerHTMLUnsafe ::
-                   (MonadIO m, IsElement self, HasCallStack, FromJSString result) =>
-                     self -> m result
-getInnerHTMLUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getInnerHTML (toElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML Mozilla Element.innerHTML documentation> 
-getInnerHTMLUnchecked ::
-                      (MonadIO m, IsElement self, FromJSString result) =>
-                        self -> m result
-getInnerHTMLUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getInnerHTML (toElement self)))
- 
-foreign import javascript unsafe "$1[\"outerHTML\"] = $2;"
-        js_setOuterHTML :: Element -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.outerHTML Mozilla Element.outerHTML documentation> 
-setOuterHTML ::
-             (MonadIO m, IsElement self, ToJSString val) =>
-               self -> Maybe val -> m ()
-setOuterHTML self val
-  = liftIO (js_setOuterHTML (toElement self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"outerHTML\"]"
-        js_getOuterHTML :: Element -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.outerHTML Mozilla Element.outerHTML documentation> 
-getOuterHTML ::
-             (MonadIO m, IsElement self, FromJSString result) =>
-               self -> m (Maybe result)
-getOuterHTML self
-  = liftIO (fromMaybeJSString <$> (js_getOuterHTML (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.outerHTML Mozilla Element.outerHTML documentation> 
-getOuterHTMLUnsafe ::
-                   (MonadIO m, IsElement self, HasCallStack, FromJSString result) =>
-                     self -> m result
-getOuterHTMLUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getOuterHTML (toElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.outerHTML Mozilla Element.outerHTML documentation> 
-getOuterHTMLUnchecked ::
-                      (MonadIO m, IsElement self, FromJSString result) =>
-                        self -> m result
-getOuterHTMLUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getOuterHTML (toElement self)))
- 
-foreign import javascript unsafe "$1[\"className\"] = $2;"
-        js_setClassName :: Element -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.className Mozilla Element.className documentation> 
-setClassName ::
-             (MonadIO m, IsElement self, ToJSString val) => self -> val -> m ()
-setClassName self val
-  = liftIO (js_setClassName (toElement self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"className\"]"
-        js_getClassName :: Element -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.className Mozilla Element.className documentation> 
-getClassName ::
-             (MonadIO m, IsElement self, FromJSString result) =>
-               self -> m result
-getClassName self
-  = liftIO (fromJSString <$> (js_getClassName (toElement self)))
- 
-foreign import javascript unsafe "$1[\"classList\"]"
-        js_getClassList :: Element -> IO (Nullable DOMTokenList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.classList Mozilla Element.classList documentation> 
-getClassList ::
-             (MonadIO m, IsElement self) => self -> m (Maybe DOMTokenList)
-getClassList self
-  = liftIO (nullableToMaybe <$> (js_getClassList (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.classList Mozilla Element.classList documentation> 
-getClassListUnsafe ::
-                   (MonadIO m, IsElement self, HasCallStack) => self -> m DOMTokenList
-getClassListUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getClassList (toElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.classList Mozilla Element.classList documentation> 
-getClassListUnchecked ::
-                      (MonadIO m, IsElement self) => self -> m DOMTokenList
-getClassListUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getClassList (toElement self)))
- 
-foreign import javascript unsafe "$1[\"dataset\"]" js_getDataset ::
-        Element -> IO (Nullable DOMStringMap)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.dataset Mozilla Element.dataset documentation> 
-getDataset ::
-           (MonadIO m, IsElement self) => self -> m (Maybe DOMStringMap)
-getDataset self
-  = liftIO (nullableToMaybe <$> (js_getDataset (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.dataset Mozilla Element.dataset documentation> 
-getDatasetUnsafe ::
-                 (MonadIO m, IsElement self, HasCallStack) => self -> m DOMStringMap
-getDatasetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDataset (toElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.dataset Mozilla Element.dataset documentation> 
-getDatasetUnchecked ::
-                    (MonadIO m, IsElement self) => self -> m DOMStringMap
-getDatasetUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getDataset (toElement self)))
- 
-foreign import javascript unsafe "$1[\"firstElementChild\"]"
-        js_getFirstElementChild :: Element -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.firstElementChild Mozilla Element.firstElementChild documentation> 
-getFirstElementChild ::
-                     (MonadIO m, IsElement self) => self -> m (Maybe Element)
-getFirstElementChild self
-  = liftIO
-      (nullableToMaybe <$> (js_getFirstElementChild (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.firstElementChild Mozilla Element.firstElementChild documentation> 
-getFirstElementChildUnsafe ::
-                           (MonadIO m, IsElement self, HasCallStack) => self -> m Element
-getFirstElementChildUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFirstElementChild (toElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.firstElementChild Mozilla Element.firstElementChild documentation> 
-getFirstElementChildUnchecked ::
-                              (MonadIO m, IsElement self) => self -> m Element
-getFirstElementChildUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getFirstElementChild (toElement self)))
- 
-foreign import javascript unsafe "$1[\"lastElementChild\"]"
-        js_getLastElementChild :: Element -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.lastElementChild Mozilla Element.lastElementChild documentation> 
-getLastElementChild ::
-                    (MonadIO m, IsElement self) => self -> m (Maybe Element)
-getLastElementChild self
-  = liftIO
-      (nullableToMaybe <$> (js_getLastElementChild (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.lastElementChild Mozilla Element.lastElementChild documentation> 
-getLastElementChildUnsafe ::
-                          (MonadIO m, IsElement self, HasCallStack) => self -> m Element
-getLastElementChildUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLastElementChild (toElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.lastElementChild Mozilla Element.lastElementChild documentation> 
-getLastElementChildUnchecked ::
-                             (MonadIO m, IsElement self) => self -> m Element
-getLastElementChildUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getLastElementChild (toElement self)))
- 
-foreign import javascript unsafe "$1[\"previousElementSibling\"]"
-        js_getPreviousElementSibling :: Element -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.previousElementSibling Mozilla Element.previousElementSibling documentation> 
-getPreviousElementSibling ::
-                          (MonadIO m, IsElement self) => self -> m (Maybe Element)
-getPreviousElementSibling self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getPreviousElementSibling (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.previousElementSibling Mozilla Element.previousElementSibling documentation> 
-getPreviousElementSiblingUnsafe ::
-                                (MonadIO m, IsElement self, HasCallStack) => self -> m Element
-getPreviousElementSiblingUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getPreviousElementSibling (toElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.previousElementSibling Mozilla Element.previousElementSibling documentation> 
-getPreviousElementSiblingUnchecked ::
-                                   (MonadIO m, IsElement self) => self -> m Element
-getPreviousElementSiblingUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getPreviousElementSibling (toElement self)))
- 
-foreign import javascript unsafe "$1[\"nextElementSibling\"]"
-        js_getNextElementSibling :: Element -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.nextElementSibling Mozilla Element.nextElementSibling documentation> 
-getNextElementSibling ::
-                      (MonadIO m, IsElement self) => self -> m (Maybe Element)
-getNextElementSibling self
-  = liftIO
-      (nullableToMaybe <$> (js_getNextElementSibling (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.nextElementSibling Mozilla Element.nextElementSibling documentation> 
-getNextElementSiblingUnsafe ::
-                            (MonadIO m, IsElement self, HasCallStack) => self -> m Element
-getNextElementSiblingUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getNextElementSibling (toElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.nextElementSibling Mozilla Element.nextElementSibling documentation> 
-getNextElementSiblingUnchecked ::
-                               (MonadIO m, IsElement self) => self -> m Element
-getNextElementSiblingUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getNextElementSibling (toElement self)))
- 
-foreign import javascript unsafe "$1[\"childElementCount\"]"
-        js_getChildElementCount :: Element -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.childElementCount Mozilla Element.childElementCount documentation> 
-getChildElementCount ::
-                     (MonadIO m, IsElement self) => self -> m Word
-getChildElementCount self
-  = liftIO (js_getChildElementCount (toElement self))
- 
-foreign import javascript unsafe "$1[\"uiactions\"] = $2;"
-        js_setUiactions :: Element -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.uiactions Mozilla Element.uiactions documentation> 
-setUiactions ::
-             (MonadIO m, IsElement self, ToJSString val) => self -> val -> m ()
-setUiactions self val
-  = liftIO (js_setUiactions (toElement self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"uiactions\"]"
-        js_getUiactions :: Element -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.uiactions Mozilla Element.uiactions documentation> 
-getUiactions ::
-             (MonadIO m, IsElement self, FromJSString result) =>
-               self -> m result
-getUiactions self
-  = liftIO (fromJSString <$> (js_getUiactions (toElement self)))
- 
-foreign import javascript unsafe "$1[\"webkitRegionOverset\"]"
-        js_getWebkitRegionOverset :: Element -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitRegionOverset Mozilla Element.webkitRegionOverset documentation> 
-getWebkitRegionOverset ::
-                       (MonadIO m, IsElement self, FromJSString result) =>
-                         self -> m result
-getWebkitRegionOverset self
-  = liftIO
-      (fromJSString <$> (js_getWebkitRegionOverset (toElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onabort Mozilla Element.onabort documentation> 
-abort ::
-      (IsElement self, IsEventTarget self) => EventName self UIEvent
-abort = unsafeEventName (toJSString "abort")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onblur Mozilla Element.onblur documentation> 
-blurEvent ::
-          (IsElement self, IsEventTarget self) => EventName self FocusEvent
-blurEvent = unsafeEventName (toJSString "blur")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onchange Mozilla Element.onchange documentation> 
-change ::
-       (IsElement self, IsEventTarget self) => EventName self Event
-change = unsafeEventName (toJSString "change")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onclick Mozilla Element.onclick documentation> 
-click ::
-      (IsElement self, IsEventTarget self) => EventName self MouseEvent
-click = unsafeEventName (toJSString "click")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.oncontextmenu Mozilla Element.oncontextmenu documentation> 
-contextMenu ::
-            (IsElement self, IsEventTarget self) => EventName self MouseEvent
-contextMenu = unsafeEventName (toJSString "contextmenu")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ondblclick Mozilla Element.ondblclick documentation> 
-dblClick ::
-         (IsElement self, IsEventTarget self) => EventName self MouseEvent
-dblClick = unsafeEventName (toJSString "dblclick")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ondrag Mozilla Element.ondrag documentation> 
-drag ::
-     (IsElement self, IsEventTarget self) => EventName self MouseEvent
-drag = unsafeEventName (toJSString "drag")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ondragend Mozilla Element.ondragend documentation> 
-dragEnd ::
-        (IsElement self, IsEventTarget self) => EventName self MouseEvent
-dragEnd = unsafeEventName (toJSString "dragend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ondragenter Mozilla Element.ondragenter documentation> 
-dragEnter ::
-          (IsElement self, IsEventTarget self) => EventName self MouseEvent
-dragEnter = unsafeEventName (toJSString "dragenter")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ondragleave Mozilla Element.ondragleave documentation> 
-dragLeave ::
-          (IsElement self, IsEventTarget self) => EventName self MouseEvent
-dragLeave = unsafeEventName (toJSString "dragleave")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ondragover Mozilla Element.ondragover documentation> 
-dragOver ::
-         (IsElement self, IsEventTarget self) => EventName self MouseEvent
-dragOver = unsafeEventName (toJSString "dragover")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ondragstart Mozilla Element.ondragstart documentation> 
-dragStart ::
-          (IsElement self, IsEventTarget self) => EventName self MouseEvent
-dragStart = unsafeEventName (toJSString "dragstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ondrop Mozilla Element.ondrop documentation> 
-drop ::
-     (IsElement self, IsEventTarget self) => EventName self MouseEvent
-drop = unsafeEventName (toJSString "drop")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onerror Mozilla Element.onerror documentation> 
-error ::
-      (IsElement self, IsEventTarget self) => EventName self UIEvent
-error = unsafeEventName (toJSString "error")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onfocus Mozilla Element.onfocus documentation> 
-focusEvent ::
-           (IsElement self, IsEventTarget self) => EventName self FocusEvent
-focusEvent = unsafeEventName (toJSString "focus")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.oninput Mozilla Element.oninput documentation> 
-input ::
-      (IsElement self, IsEventTarget self) => EventName self Event
-input = unsafeEventName (toJSString "input")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.oninvalid Mozilla Element.oninvalid documentation> 
-invalid ::
-        (IsElement self, IsEventTarget self) => EventName self Event
-invalid = unsafeEventName (toJSString "invalid")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onkeydown Mozilla Element.onkeydown documentation> 
-keyDown ::
-        (IsElement self, IsEventTarget self) =>
-          EventName self KeyboardEvent
-keyDown = unsafeEventName (toJSString "keydown")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onkeypress Mozilla Element.onkeypress documentation> 
-keyPress ::
-         (IsElement self, IsEventTarget self) =>
-           EventName self KeyboardEvent
-keyPress = unsafeEventName (toJSString "keypress")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onkeyup Mozilla Element.onkeyup documentation> 
-keyUp ::
-      (IsElement self, IsEventTarget self) =>
-        EventName self KeyboardEvent
-keyUp = unsafeEventName (toJSString "keyup")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onload Mozilla Element.onload documentation> 
-load ::
-     (IsElement self, IsEventTarget self) => EventName self UIEvent
-load = unsafeEventName (toJSString "load")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onmousedown Mozilla Element.onmousedown documentation> 
-mouseDown ::
-          (IsElement self, IsEventTarget self) => EventName self MouseEvent
-mouseDown = unsafeEventName (toJSString "mousedown")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onmouseenter Mozilla Element.onmouseenter documentation> 
-mouseEnter ::
-           (IsElement self, IsEventTarget self) => EventName self MouseEvent
-mouseEnter = unsafeEventName (toJSString "mouseenter")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onmouseleave Mozilla Element.onmouseleave documentation> 
-mouseLeave ::
-           (IsElement self, IsEventTarget self) => EventName self MouseEvent
-mouseLeave = unsafeEventName (toJSString "mouseleave")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onmousemove Mozilla Element.onmousemove documentation> 
-mouseMove ::
-          (IsElement self, IsEventTarget self) => EventName self MouseEvent
-mouseMove = unsafeEventName (toJSString "mousemove")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onmouseout Mozilla Element.onmouseout documentation> 
-mouseOut ::
-         (IsElement self, IsEventTarget self) => EventName self MouseEvent
-mouseOut = unsafeEventName (toJSString "mouseout")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onmouseover Mozilla Element.onmouseover documentation> 
-mouseOver ::
-          (IsElement self, IsEventTarget self) => EventName self MouseEvent
-mouseOver = unsafeEventName (toJSString "mouseover")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onmouseup Mozilla Element.onmouseup documentation> 
-mouseUp ::
-        (IsElement self, IsEventTarget self) => EventName self MouseEvent
-mouseUp = unsafeEventName (toJSString "mouseup")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onmousewheel Mozilla Element.onmousewheel documentation> 
-mouseWheel ::
-           (IsElement self, IsEventTarget self) => EventName self MouseEvent
-mouseWheel = unsafeEventName (toJSString "mousewheel")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onscroll Mozilla Element.onscroll documentation> 
-scroll ::
-       (IsElement self, IsEventTarget self) => EventName self UIEvent
-scroll = unsafeEventName (toJSString "scroll")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onselect Mozilla Element.onselect documentation> 
-select ::
-       (IsElement self, IsEventTarget self) => EventName self UIEvent
-select = unsafeEventName (toJSString "select")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onsubmit Mozilla Element.onsubmit documentation> 
-submit ::
-       (IsElement self, IsEventTarget self) => EventName self Event
-submit = unsafeEventName (toJSString "submit")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwheel Mozilla Element.onwheel documentation> 
-wheel ::
-      (IsElement self, IsEventTarget self) => EventName self WheelEvent
-wheel = unsafeEventName (toJSString "wheel")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onbeforecut Mozilla Element.onbeforecut documentation> 
-beforeCut ::
-          (IsElement self, IsEventTarget self) => EventName self Event
-beforeCut = unsafeEventName (toJSString "beforecut")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.oncut Mozilla Element.oncut documentation> 
-cut :: (IsElement self, IsEventTarget self) => EventName self Event
-cut = unsafeEventName (toJSString "cut")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onbeforecopy Mozilla Element.onbeforecopy documentation> 
-beforeCopy ::
-           (IsElement self, IsEventTarget self) => EventName self Event
-beforeCopy = unsafeEventName (toJSString "beforecopy")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.oncopy Mozilla Element.oncopy documentation> 
-copy ::
-     (IsElement self, IsEventTarget self) => EventName self Event
-copy = unsafeEventName (toJSString "copy")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onbeforepaste Mozilla Element.onbeforepaste documentation> 
-beforePaste ::
-            (IsElement self, IsEventTarget self) => EventName self Event
-beforePaste = unsafeEventName (toJSString "beforepaste")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onpaste Mozilla Element.onpaste documentation> 
-paste ::
-      (IsElement self, IsEventTarget self) => EventName self Event
-paste = unsafeEventName (toJSString "paste")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onreset Mozilla Element.onreset documentation> 
-reset ::
-      (IsElement self, IsEventTarget self) => EventName self Event
-reset = unsafeEventName (toJSString "reset")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onsearch Mozilla Element.onsearch documentation> 
-search ::
-       (IsElement self, IsEventTarget self) => EventName self Event
-search = unsafeEventName (toJSString "search")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onselectstart Mozilla Element.onselectstart documentation> 
-selectStart ::
-            (IsElement self, IsEventTarget self) => EventName self Event
-selectStart = unsafeEventName (toJSString "selectstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ontouchstart Mozilla Element.ontouchstart documentation> 
-touchStart ::
-           (IsElement self, IsEventTarget self) => EventName self TouchEvent
-touchStart = unsafeEventName (toJSString "touchstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ontouchmove Mozilla Element.ontouchmove documentation> 
-touchMove ::
-          (IsElement self, IsEventTarget self) => EventName self TouchEvent
-touchMove = unsafeEventName (toJSString "touchmove")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ontouchend Mozilla Element.ontouchend documentation> 
-touchEnd ::
-         (IsElement self, IsEventTarget self) => EventName self TouchEvent
-touchEnd = unsafeEventName (toJSString "touchend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ontouchcancel Mozilla Element.ontouchcancel documentation> 
-touchCancel ::
-            (IsElement self, IsEventTarget self) => EventName self TouchEvent
-touchCancel = unsafeEventName (toJSString "touchcancel")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitfullscreenchange Mozilla Element.onwebkitfullscreenchange documentation> 
-webKitFullscreenChange ::
-                       (IsElement self, IsEventTarget self) => EventName self Event
-webKitFullscreenChange
-  = unsafeEventName (toJSString "webkitfullscreenchange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitfullscreenerror Mozilla Element.onwebkitfullscreenerror documentation> 
-webKitFullscreenError ::
-                      (IsElement self, IsEventTarget self) => EventName self Event
-webKitFullscreenError
-  = unsafeEventName (toJSString "webkitfullscreenerror")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitwillrevealbottom Mozilla Element.onwebkitwillrevealbottom documentation> 
-webKitWillRevealBottom ::
-                       (IsElement self, IsEventTarget self) => EventName self Event
-webKitWillRevealBottom
-  = unsafeEventName (toJSString "webkitwillrevealbottom")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitwillrevealleft Mozilla Element.onwebkitwillrevealleft documentation> 
-webKitWillRevealLeft ::
-                     (IsElement self, IsEventTarget self) => EventName self Event
-webKitWillRevealLeft
-  = unsafeEventName (toJSString "webkitwillrevealleft")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitwillrevealright Mozilla Element.onwebkitwillrevealright documentation> 
-webKitWillRevealRight ::
-                      (IsElement self, IsEventTarget self) => EventName self Event
-webKitWillRevealRight
-  = unsafeEventName (toJSString "webkitwillrevealright")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitwillrevealtop Mozilla Element.onwebkitwillrevealtop documentation> 
-webKitWillRevealTop ::
-                    (IsElement self, IsEventTarget self) => EventName self Event
-webKitWillRevealTop
-  = unsafeEventName (toJSString "webkitwillrevealtop")
+        removeAttributeNode, removeAttributeNode_, js_getElementsByTagName,
+        getElementsByTagName, getElementsByTagName_, js_hasAttributes,
+        hasAttributes, hasAttributes_, js_getAttributeNS, getAttributeNS,
+        getAttributeNS_, getAttributeNSUnsafe, getAttributeNSUnchecked,
+        js_setAttributeNS, setAttributeNS, js_removeAttributeNS,
+        removeAttributeNS, js_getElementsByTagNameNS,
+        getElementsByTagNameNS, getElementsByTagNameNS_,
+        js_getAttributeNodeNS, getAttributeNodeNS, getAttributeNodeNS_,
+        getAttributeNodeNSUnsafe, getAttributeNodeNSUnchecked,
+        js_setAttributeNodeNS, setAttributeNodeNS, setAttributeNodeNS_,
+        setAttributeNodeNSUnsafe, setAttributeNodeNSUnchecked,
+        js_hasAttribute, hasAttribute, hasAttribute_, js_hasAttributeNS,
+        hasAttributeNS, hasAttributeNS_, js_scrollIntoView, scrollIntoView,
+        js_scrollIntoViewIfNeeded, scrollIntoViewIfNeeded, js_scrollOpt,
+        scrollOpt, js_scroll, scroll, js_scrollToOpt, scrollToOpt,
+        js_scrollTo, scrollTo, js_scrollByOpt, scrollByOpt, js_scrollBy,
+        scrollBy, js_scrollByLines, scrollByLines, js_scrollByPages,
+        scrollByPages, js_getAttributeNames, getAttributeNames,
+        getAttributeNames_, js_getElementsByClassName,
+        getElementsByClassName, getElementsByClassName_, js_matches,
+        matches, matches_, js_closest, closest, closest_, closestUnsafe,
+        closestUnchecked, js_webkitMatchesSelector, webkitMatchesSelector,
+        webkitMatchesSelector_, js_getClientRects, getClientRects,
+        getClientRects_, js_getBoundingClientRect, getBoundingClientRect,
+        getBoundingClientRect_, js_webkitRequestFullScreen,
+        webkitRequestFullScreen, js_webkitRequestFullscreen,
+        webkitRequestFullscreen, js_insertAdjacentElement,
+        insertAdjacentElement, insertAdjacentElement_,
+        insertAdjacentElementUnsafe, insertAdjacentElementUnchecked,
+        js_insertAdjacentHTML, insertAdjacentHTML, js_insertAdjacentText,
+        insertAdjacentText, js_requestPointerLock, requestPointerLock,
+        js_webkitGetRegionFlowRanges, webkitGetRegionFlowRanges,
+        webkitGetRegionFlowRanges_, js_attachShadow, attachShadow,
+        attachShadow_, js_getTagName, getTagName, getTagNameUnsafe,
+        getTagNameUnchecked, js_getAttributes, getAttributes, js_getStyle,
+        getStyle, js_setId, setId, js_getId, getId, js_getNamespaceURI,
+        getNamespaceURI, getNamespaceURIUnsafe, getNamespaceURIUnchecked,
+        js_getPrefix, getPrefix, getPrefixUnsafe, getPrefixUnchecked,
+        js_getLocalName, getLocalName, js_getOffsetLeft, getOffsetLeft,
+        js_getOffsetTop, getOffsetTop, js_getOffsetWidth, getOffsetWidth,
+        js_getOffsetHeight, getOffsetHeight, js_getClientLeft,
+        getClientLeft, js_getClientTop, getClientTop, js_getClientWidth,
+        getClientWidth, js_getClientHeight, getClientHeight,
+        js_setScrollLeft, setScrollLeft, js_getScrollLeft, getScrollLeft,
+        js_setScrollTop, setScrollTop, js_getScrollTop, getScrollTop,
+        js_getScrollWidth, getScrollWidth, js_getScrollHeight,
+        getScrollHeight, js_getOffsetParent, getOffsetParent,
+        js_setInnerHTML, setInnerHTML, js_getInnerHTML, getInnerHTML,
+        getInnerHTMLUnsafe, getInnerHTMLUnchecked, js_setOuterHTML,
+        setOuterHTML, js_getOuterHTML, getOuterHTML, getOuterHTMLUnsafe,
+        getOuterHTMLUnchecked, js_setClassName, setClassName,
+        js_getClassName, getClassName, js_getClassList, getClassList,
+        js_getWebkitRegionOverset, getWebkitRegionOverset,
+        js_getShadowRoot, getShadowRoot, js_setSlot, setSlot, js_getSlot,
+        getSlot, beforeCopy, beforeCut, beforeinput, beforePaste, copy,
+        cut, paste, selectStart, webKitFullscreenChange,
+        webKitFullscreenError, animationEnd, animationIteration,
+        animationStart, transitionEnd, webKitAnimationEnd,
+        webKitAnimationIteration, webKitAnimationStart,
+        webKitTransitionEnd, gestureChange, gestureEnd, gestureStart,
+        focusin, focusout, beforeload, webKitNeedKey,
+        webKitPresentationModeChanged,
+        webKitCurrentPlaybackTargetIsWirelessChanged,
+        webKitPlaybackTargetAvailabilityChanged, Element(..), gTypeElement,
+        IsElement, toElement)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"getAttribute\"]($2)"
+        js_getAttribute :: Element -> JSString -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttribute Mozilla Element.getAttribute documentation> 
+getAttribute ::
+             (MonadIO m, IsElement self, ToJSString name,
+              FromJSString result) =>
+               self -> name -> m (Maybe result)
+getAttribute self name
+  = liftIO
+      (fromMaybeJSString <$>
+         (js_getAttribute (toElement self) (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttribute Mozilla Element.getAttribute documentation> 
+getAttribute_ ::
+              (MonadIO m, IsElement self, ToJSString name) =>
+                self -> name -> m ()
+getAttribute_ self name
+  = liftIO
+      (void (js_getAttribute (toElement self) (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttribute Mozilla Element.getAttribute documentation> 
+getAttributeUnsafe ::
+                   (MonadIO m, IsElement self, ToJSString name, HasCallStack,
+                    FromJSString result) =>
+                     self -> name -> m result
+getAttributeUnsafe self name
+  = liftIO
+      ((fromMaybeJSString <$>
+          (js_getAttribute (toElement self) (toJSString name)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttribute Mozilla Element.getAttribute documentation> 
+getAttributeUnchecked ::
+                      (MonadIO m, IsElement self, ToJSString name,
+                       FromJSString result) =>
+                        self -> name -> m result
+getAttributeUnchecked self name
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getAttribute (toElement self) (toJSString name)))
+ 
+foreign import javascript unsafe "$1[\"setAttribute\"]($2, $3)"
+        js_setAttribute :: Element -> JSString -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttribute Mozilla Element.setAttribute documentation> 
+setAttribute ::
+             (MonadIO m, IsElement self, ToJSString name, ToJSString value) =>
+               self -> name -> value -> m ()
+setAttribute self name value
+  = liftIO
+      (js_setAttribute (toElement self) (toJSString name)
+         (toJSString value))
+ 
+foreign import javascript unsafe "$1[\"removeAttribute\"]($2)"
+        js_removeAttribute :: Element -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.removeAttribute Mozilla Element.removeAttribute documentation> 
+removeAttribute ::
+                (MonadIO m, IsElement self, ToJSString name) =>
+                  self -> name -> m ()
+removeAttribute self name
+  = liftIO (js_removeAttribute (toElement self) (toJSString name))
+ 
+foreign import javascript unsafe "$1[\"getAttributeNode\"]($2)"
+        js_getAttributeNode :: Element -> JSString -> IO (Nullable Attr)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNode Mozilla Element.getAttributeNode documentation> 
+getAttributeNode ::
+                 (MonadIO m, IsElement self, ToJSString name) =>
+                   self -> name -> m (Maybe Attr)
+getAttributeNode self name
+  = liftIO
+      (nullableToMaybe <$>
+         (js_getAttributeNode (toElement self) (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNode Mozilla Element.getAttributeNode documentation> 
+getAttributeNode_ ::
+                  (MonadIO m, IsElement self, ToJSString name) =>
+                    self -> name -> m ()
+getAttributeNode_ self name
+  = liftIO
+      (void (js_getAttributeNode (toElement self) (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNode Mozilla Element.getAttributeNode documentation> 
+getAttributeNodeUnsafe ::
+                       (MonadIO m, IsElement self, ToJSString name, HasCallStack) =>
+                         self -> name -> m Attr
+getAttributeNodeUnsafe self name
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_getAttributeNode (toElement self) (toJSString name)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNode Mozilla Element.getAttributeNode documentation> 
+getAttributeNodeUnchecked ::
+                          (MonadIO m, IsElement self, ToJSString name) =>
+                            self -> name -> m Attr
+getAttributeNodeUnchecked self name
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getAttributeNode (toElement self) (toJSString name)))
+ 
+foreign import javascript unsafe "$1[\"setAttributeNode\"]($2)"
+        js_setAttributeNode :: Element -> Attr -> IO (Nullable Attr)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNode Mozilla Element.setAttributeNode documentation> 
+setAttributeNode ::
+                 (MonadIO m, IsElement self) => self -> Attr -> m (Maybe Attr)
+setAttributeNode self newAttr
+  = liftIO
+      (nullableToMaybe <$>
+         (js_setAttributeNode (toElement self) newAttr))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNode Mozilla Element.setAttributeNode documentation> 
+setAttributeNode_ ::
+                  (MonadIO m, IsElement self) => self -> Attr -> m ()
+setAttributeNode_ self newAttr
+  = liftIO (void (js_setAttributeNode (toElement self) newAttr))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNode Mozilla Element.setAttributeNode documentation> 
+setAttributeNodeUnsafe ::
+                       (MonadIO m, IsElement self, HasCallStack) => self -> Attr -> m Attr
+setAttributeNodeUnsafe self newAttr
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_setAttributeNode (toElement self) newAttr))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNode Mozilla Element.setAttributeNode documentation> 
+setAttributeNodeUnchecked ::
+                          (MonadIO m, IsElement self) => self -> Attr -> m Attr
+setAttributeNodeUnchecked self newAttr
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_setAttributeNode (toElement self) newAttr))
+ 
+foreign import javascript unsafe "$1[\"removeAttributeNode\"]($2)"
+        js_removeAttributeNode :: Element -> Attr -> IO Attr
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.removeAttributeNode Mozilla Element.removeAttributeNode documentation> 
+removeAttributeNode ::
+                    (MonadIO m, IsElement self) => self -> Attr -> m Attr
+removeAttributeNode self oldAttr
+  = liftIO (js_removeAttributeNode (toElement self) oldAttr)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.removeAttributeNode Mozilla Element.removeAttributeNode documentation> 
+removeAttributeNode_ ::
+                     (MonadIO m, IsElement self) => self -> Attr -> m ()
+removeAttributeNode_ self oldAttr
+  = liftIO (void (js_removeAttributeNode (toElement self) oldAttr))
+ 
+foreign import javascript unsafe "$1[\"getElementsByTagName\"]($2)"
+        js_getElementsByTagName :: Element -> JSString -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagName Mozilla Element.getElementsByTagName documentation> 
+getElementsByTagName ::
+                     (MonadIO m, IsElement self, ToJSString name) =>
+                       self -> name -> m HTMLCollection
+getElementsByTagName self name
+  = liftIO
+      (js_getElementsByTagName (toElement self) (toJSString name))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagName Mozilla Element.getElementsByTagName documentation> 
+getElementsByTagName_ ::
+                      (MonadIO m, IsElement self, ToJSString name) =>
+                        self -> name -> m ()
+getElementsByTagName_ self name
+  = liftIO
+      (void (js_getElementsByTagName (toElement self) (toJSString name)))
+ 
+foreign import javascript unsafe
+        "($1[\"hasAttributes\"]() ? 1 : 0)" js_hasAttributes ::
+        Element -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttributes Mozilla Element.hasAttributes documentation> 
+hasAttributes :: (MonadIO m, IsElement self) => self -> m Bool
+hasAttributes self = liftIO (js_hasAttributes (toElement self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttributes Mozilla Element.hasAttributes documentation> 
+hasAttributes_ :: (MonadIO m, IsElement self) => self -> m ()
+hasAttributes_ self
+  = liftIO (void (js_hasAttributes (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"getAttributeNS\"]($2, $3)"
+        js_getAttributeNS ::
+        Element -> Optional JSString -> JSString -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNS Mozilla Element.getAttributeNS documentation> 
+getAttributeNS ::
+               (MonadIO m, IsElement self, ToJSString namespaceURI,
+                ToJSString localName, FromJSString result) =>
+                 self -> Maybe namespaceURI -> localName -> m (Maybe result)
+getAttributeNS self namespaceURI localName
+  = liftIO
+      (fromMaybeJSString <$>
+         (js_getAttributeNS (toElement self)
+            (toOptionalJSString namespaceURI)
+            (toJSString localName)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNS Mozilla Element.getAttributeNS documentation> 
+getAttributeNS_ ::
+                (MonadIO m, IsElement self, ToJSString namespaceURI,
+                 ToJSString localName) =>
+                  self -> Maybe namespaceURI -> localName -> m ()
+getAttributeNS_ self namespaceURI localName
+  = liftIO
+      (void
+         (js_getAttributeNS (toElement self)
+            (toOptionalJSString namespaceURI)
+            (toJSString localName)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNS Mozilla Element.getAttributeNS documentation> 
+getAttributeNSUnsafe ::
+                     (MonadIO m, IsElement self, ToJSString namespaceURI,
+                      ToJSString localName, HasCallStack, FromJSString result) =>
+                       self -> Maybe namespaceURI -> localName -> m result
+getAttributeNSUnsafe self namespaceURI localName
+  = liftIO
+      ((fromMaybeJSString <$>
+          (js_getAttributeNS (toElement self)
+             (toOptionalJSString namespaceURI)
+             (toJSString localName)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNS Mozilla Element.getAttributeNS documentation> 
+getAttributeNSUnchecked ::
+                        (MonadIO m, IsElement self, ToJSString namespaceURI,
+                         ToJSString localName, FromJSString result) =>
+                          self -> Maybe namespaceURI -> localName -> m result
+getAttributeNSUnchecked self namespaceURI localName
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getAttributeNS (toElement self)
+            (toOptionalJSString namespaceURI)
+            (toJSString localName)))
+ 
+foreign import javascript unsafe
+        "$1[\"setAttributeNS\"]($2, $3, $4)" js_setAttributeNS ::
+        Element -> Optional JSString -> JSString -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNS Mozilla Element.setAttributeNS documentation> 
+setAttributeNS ::
+               (MonadIO m, IsElement self, ToJSString namespaceURI,
+                ToJSString qualifiedName, ToJSString value) =>
+                 self -> Maybe namespaceURI -> qualifiedName -> value -> m ()
+setAttributeNS self namespaceURI qualifiedName value
+  = liftIO
+      (js_setAttributeNS (toElement self)
+         (toOptionalJSString namespaceURI)
+         (toJSString qualifiedName)
+         (toJSString value))
+ 
+foreign import javascript unsafe
+        "$1[\"removeAttributeNS\"]($2, $3)" js_removeAttributeNS ::
+        Element -> Optional JSString -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.removeAttributeNS Mozilla Element.removeAttributeNS documentation> 
+removeAttributeNS ::
+                  (MonadIO m, IsElement self, ToJSString namespaceURI,
+                   ToJSString localName) =>
+                    self -> Maybe namespaceURI -> localName -> m ()
+removeAttributeNS self namespaceURI localName
+  = liftIO
+      (js_removeAttributeNS (toElement self)
+         (toOptionalJSString namespaceURI)
+         (toJSString localName))
+ 
+foreign import javascript unsafe
+        "$1[\"getElementsByTagNameNS\"]($2,\n$3)" js_getElementsByTagNameNS
+        :: Element -> Optional JSString -> JSString -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagNameNS Mozilla Element.getElementsByTagNameNS documentation> 
+getElementsByTagNameNS ::
+                       (MonadIO m, IsElement self, ToJSString namespaceURI,
+                        ToJSString localName) =>
+                         self -> Maybe namespaceURI -> localName -> m HTMLCollection
+getElementsByTagNameNS self namespaceURI localName
+  = liftIO
+      (js_getElementsByTagNameNS (toElement self)
+         (toOptionalJSString namespaceURI)
+         (toJSString localName))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByTagNameNS Mozilla Element.getElementsByTagNameNS documentation> 
+getElementsByTagNameNS_ ::
+                        (MonadIO m, IsElement self, ToJSString namespaceURI,
+                         ToJSString localName) =>
+                          self -> Maybe namespaceURI -> localName -> m ()
+getElementsByTagNameNS_ self namespaceURI localName
+  = liftIO
+      (void
+         (js_getElementsByTagNameNS (toElement self)
+            (toOptionalJSString namespaceURI)
+            (toJSString localName)))
+ 
+foreign import javascript unsafe
+        "$1[\"getAttributeNodeNS\"]($2, $3)" js_getAttributeNodeNS ::
+        Element -> Optional JSString -> JSString -> IO (Nullable Attr)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNodeNS Mozilla Element.getAttributeNodeNS documentation> 
+getAttributeNodeNS ::
+                   (MonadIO m, IsElement self, ToJSString namespaceURI,
+                    ToJSString localName) =>
+                     self -> Maybe namespaceURI -> localName -> m (Maybe Attr)
+getAttributeNodeNS self namespaceURI localName
+  = liftIO
+      (nullableToMaybe <$>
+         (js_getAttributeNodeNS (toElement self)
+            (toOptionalJSString namespaceURI)
+            (toJSString localName)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNodeNS Mozilla Element.getAttributeNodeNS documentation> 
+getAttributeNodeNS_ ::
+                    (MonadIO m, IsElement self, ToJSString namespaceURI,
+                     ToJSString localName) =>
+                      self -> Maybe namespaceURI -> localName -> m ()
+getAttributeNodeNS_ self namespaceURI localName
+  = liftIO
+      (void
+         (js_getAttributeNodeNS (toElement self)
+            (toOptionalJSString namespaceURI)
+            (toJSString localName)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNodeNS Mozilla Element.getAttributeNodeNS documentation> 
+getAttributeNodeNSUnsafe ::
+                         (MonadIO m, IsElement self, ToJSString namespaceURI,
+                          ToJSString localName, HasCallStack) =>
+                           self -> Maybe namespaceURI -> localName -> m Attr
+getAttributeNodeNSUnsafe self namespaceURI localName
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_getAttributeNodeNS (toElement self)
+             (toOptionalJSString namespaceURI)
+             (toJSString localName)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNodeNS Mozilla Element.getAttributeNodeNS documentation> 
+getAttributeNodeNSUnchecked ::
+                            (MonadIO m, IsElement self, ToJSString namespaceURI,
+                             ToJSString localName) =>
+                              self -> Maybe namespaceURI -> localName -> m Attr
+getAttributeNodeNSUnchecked self namespaceURI localName
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getAttributeNodeNS (toElement self)
+            (toOptionalJSString namespaceURI)
+            (toJSString localName)))
+ 
+foreign import javascript unsafe "$1[\"setAttributeNodeNS\"]($2)"
+        js_setAttributeNodeNS :: Element -> Attr -> IO (Nullable Attr)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNodeNS Mozilla Element.setAttributeNodeNS documentation> 
+setAttributeNodeNS ::
+                   (MonadIO m, IsElement self) => self -> Attr -> m (Maybe Attr)
+setAttributeNodeNS self newAttr
+  = liftIO
+      (nullableToMaybe <$>
+         (js_setAttributeNodeNS (toElement self) newAttr))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNodeNS Mozilla Element.setAttributeNodeNS documentation> 
+setAttributeNodeNS_ ::
+                    (MonadIO m, IsElement self) => self -> Attr -> m ()
+setAttributeNodeNS_ self newAttr
+  = liftIO (void (js_setAttributeNodeNS (toElement self) newAttr))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNodeNS Mozilla Element.setAttributeNodeNS documentation> 
+setAttributeNodeNSUnsafe ::
+                         (MonadIO m, IsElement self, HasCallStack) => self -> Attr -> m Attr
+setAttributeNodeNSUnsafe self newAttr
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_setAttributeNodeNS (toElement self) newAttr))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttributeNodeNS Mozilla Element.setAttributeNodeNS documentation> 
+setAttributeNodeNSUnchecked ::
+                            (MonadIO m, IsElement self) => self -> Attr -> m Attr
+setAttributeNodeNSUnchecked self newAttr
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_setAttributeNodeNS (toElement self) newAttr))
+ 
+foreign import javascript unsafe
+        "($1[\"hasAttribute\"]($2) ? 1 : 0)" js_hasAttribute ::
+        Element -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttribute Mozilla Element.hasAttribute documentation> 
+hasAttribute ::
+             (MonadIO m, IsElement self, ToJSString name) =>
+               self -> name -> m Bool
+hasAttribute self name
+  = liftIO (js_hasAttribute (toElement self) (toJSString name))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttribute Mozilla Element.hasAttribute documentation> 
+hasAttribute_ ::
+              (MonadIO m, IsElement self, ToJSString name) =>
+                self -> name -> m ()
+hasAttribute_ self name
+  = liftIO
+      (void (js_hasAttribute (toElement self) (toJSString name)))
+ 
+foreign import javascript unsafe
+        "($1[\"hasAttributeNS\"]($2,\n$3) ? 1 : 0)" js_hasAttributeNS ::
+        Element -> Optional JSString -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttributeNS Mozilla Element.hasAttributeNS documentation> 
+hasAttributeNS ::
+               (MonadIO m, IsElement self, ToJSString namespaceURI,
+                ToJSString localName) =>
+                 self -> Maybe namespaceURI -> localName -> m Bool
+hasAttributeNS self namespaceURI localName
+  = liftIO
+      (js_hasAttributeNS (toElement self)
+         (toOptionalJSString namespaceURI)
+         (toJSString localName))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.hasAttributeNS Mozilla Element.hasAttributeNS documentation> 
+hasAttributeNS_ ::
+                (MonadIO m, IsElement self, ToJSString namespaceURI,
+                 ToJSString localName) =>
+                  self -> Maybe namespaceURI -> localName -> m ()
+hasAttributeNS_ self namespaceURI localName
+  = liftIO
+      (void
+         (js_hasAttributeNS (toElement self)
+            (toOptionalJSString namespaceURI)
+            (toJSString localName)))
+ 
+foreign import javascript unsafe "$1[\"scrollIntoView\"]($2)"
+        js_scrollIntoView :: Element -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollIntoView Mozilla Element.scrollIntoView documentation> 
+scrollIntoView ::
+               (MonadIO m, IsElement self) => self -> Bool -> m ()
+scrollIntoView self alignWithTop
+  = liftIO (js_scrollIntoView (toElement self) alignWithTop)
+ 
+foreign import javascript unsafe
+        "$1[\"scrollIntoViewIfNeeded\"]($2)" js_scrollIntoViewIfNeeded ::
+        Element -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollIntoViewIfNeeded Mozilla Element.scrollIntoViewIfNeeded documentation> 
+scrollIntoViewIfNeeded ::
+                       (MonadIO m, IsElement self) => self -> Bool -> m ()
+scrollIntoViewIfNeeded self centerIfNeeded
+  = liftIO
+      (js_scrollIntoViewIfNeeded (toElement self) centerIfNeeded)
+ 
+foreign import javascript unsafe "$1[\"scroll\"]($2)" js_scrollOpt
+        :: Element -> Optional ScrollToOptions -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scroll Mozilla Element.scroll documentation> 
+scrollOpt ::
+          (MonadIO m, IsElement self) =>
+            self -> Maybe ScrollToOptions -> m ()
+scrollOpt self options
+  = liftIO (js_scrollOpt (toElement self) (maybeToOptional options))
+ 
+foreign import javascript unsafe "$1[\"scroll\"]($2, $3)" js_scroll
+        :: Element -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scroll Mozilla Element.scroll documentation> 
+scroll ::
+       (MonadIO m, IsElement self) => self -> Double -> Double -> m ()
+scroll self x y = liftIO (js_scroll (toElement self) x y)
+ 
+foreign import javascript unsafe "$1[\"scrollTo\"]($2)"
+        js_scrollToOpt :: Element -> Optional ScrollToOptions -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollTo Mozilla Element.scrollTo documentation> 
+scrollToOpt ::
+            (MonadIO m, IsElement self) =>
+              self -> Maybe ScrollToOptions -> m ()
+scrollToOpt self options
+  = liftIO
+      (js_scrollToOpt (toElement self) (maybeToOptional options))
+ 
+foreign import javascript unsafe "$1[\"scrollTo\"]($2, $3)"
+        js_scrollTo :: Element -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollTo Mozilla Element.scrollTo documentation> 
+scrollTo ::
+         (MonadIO m, IsElement self) => self -> Double -> Double -> m ()
+scrollTo self x y = liftIO (js_scrollTo (toElement self) x y)
+ 
+foreign import javascript unsafe "$1[\"scrollBy\"]($2)"
+        js_scrollByOpt :: Element -> Optional ScrollToOptions -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollBy Mozilla Element.scrollBy documentation> 
+scrollByOpt ::
+            (MonadIO m, IsElement self) =>
+              self -> Maybe ScrollToOptions -> m ()
+scrollByOpt self option
+  = liftIO (js_scrollByOpt (toElement self) (maybeToOptional option))
+ 
+foreign import javascript unsafe "$1[\"scrollBy\"]($2, $3)"
+        js_scrollBy :: Element -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollBy Mozilla Element.scrollBy documentation> 
+scrollBy ::
+         (MonadIO m, IsElement self) => self -> Double -> Double -> m ()
+scrollBy self x y = liftIO (js_scrollBy (toElement self) x y)
+ 
+foreign import javascript unsafe "$1[\"scrollByLines\"]($2)"
+        js_scrollByLines :: Element -> Optional Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollByLines Mozilla Element.scrollByLines documentation> 
+scrollByLines ::
+              (MonadIO m, IsElement self) => self -> Maybe Int -> m ()
+scrollByLines self lines
+  = liftIO
+      (js_scrollByLines (toElement self) (maybeToOptional lines))
+ 
+foreign import javascript unsafe "$1[\"scrollByPages\"]($2)"
+        js_scrollByPages :: Element -> Optional Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollByPages Mozilla Element.scrollByPages documentation> 
+scrollByPages ::
+              (MonadIO m, IsElement self) => self -> Maybe Int -> m ()
+scrollByPages self pages
+  = liftIO
+      (js_scrollByPages (toElement self) (maybeToOptional pages))
+ 
+foreign import javascript unsafe "$1[\"getAttributeNames\"]()"
+        js_getAttributeNames :: Element -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNames Mozilla Element.getAttributeNames documentation> 
+getAttributeNames ::
+                  (MonadIO m, IsElement self, FromJSString result) =>
+                    self -> m [result]
+getAttributeNames self
+  = liftIO
+      ((js_getAttributeNames (toElement self)) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getAttributeNames Mozilla Element.getAttributeNames documentation> 
+getAttributeNames_ :: (MonadIO m, IsElement self) => self -> m ()
+getAttributeNames_ self
+  = liftIO (void (js_getAttributeNames (toElement self)))
+ 
+foreign import javascript unsafe
+        "$1[\"getElementsByClassName\"]($2)" js_getElementsByClassName ::
+        Element -> JSString -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByClassName Mozilla Element.getElementsByClassName documentation> 
+getElementsByClassName ::
+                       (MonadIO m, IsElement self, ToJSString name) =>
+                         self -> name -> m HTMLCollection
+getElementsByClassName self name
+  = liftIO
+      (js_getElementsByClassName (toElement self) (toJSString name))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getElementsByClassName Mozilla Element.getElementsByClassName documentation> 
+getElementsByClassName_ ::
+                        (MonadIO m, IsElement self, ToJSString name) =>
+                          self -> name -> m ()
+getElementsByClassName_ self name
+  = liftIO
+      (void
+         (js_getElementsByClassName (toElement self) (toJSString name)))
+ 
+foreign import javascript unsafe "($1[\"matches\"]($2) ? 1 : 0)"
+        js_matches :: Element -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.matches Mozilla Element.matches documentation> 
+matches ::
+        (MonadIO m, IsElement self, ToJSString selectors) =>
+          self -> selectors -> m Bool
+matches self selectors
+  = liftIO (js_matches (toElement self) (toJSString selectors))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.matches Mozilla Element.matches documentation> 
+matches_ ::
+         (MonadIO m, IsElement self, ToJSString selectors) =>
+           self -> selectors -> m ()
+matches_ self selectors
+  = liftIO
+      (void (js_matches (toElement self) (toJSString selectors)))
+ 
+foreign import javascript unsafe "$1[\"closest\"]($2)" js_closest
+        :: Element -> JSString -> IO (Nullable Element)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.closest Mozilla Element.closest documentation> 
+closest ::
+        (MonadIO m, IsElement self, ToJSString selectors) =>
+          self -> selectors -> m (Maybe Element)
+closest self selectors
+  = liftIO
+      (nullableToMaybe <$>
+         (js_closest (toElement self) (toJSString selectors)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.closest Mozilla Element.closest documentation> 
+closest_ ::
+         (MonadIO m, IsElement self, ToJSString selectors) =>
+           self -> selectors -> m ()
+closest_ self selectors
+  = liftIO
+      (void (js_closest (toElement self) (toJSString selectors)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.closest Mozilla Element.closest documentation> 
+closestUnsafe ::
+              (MonadIO m, IsElement self, ToJSString selectors, HasCallStack) =>
+                self -> selectors -> m Element
+closestUnsafe self selectors
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_closest (toElement self) (toJSString selectors)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.closest Mozilla Element.closest documentation> 
+closestUnchecked ::
+                 (MonadIO m, IsElement self, ToJSString selectors) =>
+                   self -> selectors -> m Element
+closestUnchecked self selectors
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_closest (toElement self) (toJSString selectors)))
+ 
+foreign import javascript unsafe
+        "($1[\"webkitMatchesSelector\"]($2) ? 1 : 0)"
+        js_webkitMatchesSelector :: Element -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitMatchesSelector Mozilla Element.webkitMatchesSelector documentation> 
+webkitMatchesSelector ::
+                      (MonadIO m, IsElement self, ToJSString selectors) =>
+                        self -> selectors -> m Bool
+webkitMatchesSelector self selectors
+  = liftIO
+      (js_webkitMatchesSelector (toElement self) (toJSString selectors))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitMatchesSelector Mozilla Element.webkitMatchesSelector documentation> 
+webkitMatchesSelector_ ::
+                       (MonadIO m, IsElement self, ToJSString selectors) =>
+                         self -> selectors -> m ()
+webkitMatchesSelector_ self selectors
+  = liftIO
+      (void
+         (js_webkitMatchesSelector (toElement self) (toJSString selectors)))
+ 
+foreign import javascript unsafe "$1[\"getClientRects\"]()"
+        js_getClientRects :: Element -> IO ClientRectList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getClientRects Mozilla Element.getClientRects documentation> 
+getClientRects ::
+               (MonadIO m, IsElement self) => self -> m ClientRectList
+getClientRects self = liftIO (js_getClientRects (toElement self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getClientRects Mozilla Element.getClientRects documentation> 
+getClientRects_ :: (MonadIO m, IsElement self) => self -> m ()
+getClientRects_ self
+  = liftIO (void (js_getClientRects (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"getBoundingClientRect\"]()"
+        js_getBoundingClientRect :: Element -> IO ClientRect
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect Mozilla Element.getBoundingClientRect documentation> 
+getBoundingClientRect ::
+                      (MonadIO m, IsElement self) => self -> m ClientRect
+getBoundingClientRect self
+  = liftIO (js_getBoundingClientRect (toElement self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect Mozilla Element.getBoundingClientRect documentation> 
+getBoundingClientRect_ ::
+                       (MonadIO m, IsElement self) => self -> m ()
+getBoundingClientRect_ self
+  = liftIO (void (js_getBoundingClientRect (toElement self)))
+ 
+foreign import javascript unsafe
+        "$1[\"webkitRequestFullScreen\"]()" js_webkitRequestFullScreen ::
+        Element -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitRequestFullScreen Mozilla Element.webkitRequestFullScreen documentation> 
+webkitRequestFullScreen ::
+                        (MonadIO m, IsElement self) => self -> m ()
+webkitRequestFullScreen self
+  = liftIO (js_webkitRequestFullScreen (toElement self))
+ 
+foreign import javascript unsafe
+        "$1[\"webkitRequestFullscreen\"]()" js_webkitRequestFullscreen ::
+        Element -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitRequestFullscreen Mozilla Element.webkitRequestFullscreen documentation> 
+webkitRequestFullscreen ::
+                        (MonadIO m, IsElement self) => self -> m ()
+webkitRequestFullscreen self
+  = liftIO (js_webkitRequestFullscreen (toElement self))
+ 
+foreign import javascript unsafe
+        "$1[\"insertAdjacentElement\"]($2,\n$3)" js_insertAdjacentElement
+        :: Element -> JSString -> Element -> IO (Nullable Element)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.insertAdjacentElement Mozilla Element.insertAdjacentElement documentation> 
+insertAdjacentElement ::
+                      (MonadIO m, IsElement self, ToJSString where',
+                       IsElement element) =>
+                        self -> where' -> element -> m (Maybe Element)
+insertAdjacentElement self where' element
+  = liftIO
+      (nullableToMaybe <$>
+         (js_insertAdjacentElement (toElement self) (toJSString where')
+            (toElement element)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.insertAdjacentElement Mozilla Element.insertAdjacentElement documentation> 
+insertAdjacentElement_ ::
+                       (MonadIO m, IsElement self, ToJSString where',
+                        IsElement element) =>
+                         self -> where' -> element -> m ()
+insertAdjacentElement_ self where' element
+  = liftIO
+      (void
+         (js_insertAdjacentElement (toElement self) (toJSString where')
+            (toElement element)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.insertAdjacentElement Mozilla Element.insertAdjacentElement documentation> 
+insertAdjacentElementUnsafe ::
+                            (MonadIO m, IsElement self, ToJSString where', IsElement element,
+                             HasCallStack) =>
+                              self -> where' -> element -> m Element
+insertAdjacentElementUnsafe self where' element
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_insertAdjacentElement (toElement self) (toJSString where')
+             (toElement element)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.insertAdjacentElement Mozilla Element.insertAdjacentElement documentation> 
+insertAdjacentElementUnchecked ::
+                               (MonadIO m, IsElement self, ToJSString where',
+                                IsElement element) =>
+                                 self -> where' -> element -> m Element
+insertAdjacentElementUnchecked self where' element
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_insertAdjacentElement (toElement self) (toJSString where')
+            (toElement element)))
+ 
+foreign import javascript unsafe
+        "$1[\"insertAdjacentHTML\"]($2, $3)" js_insertAdjacentHTML ::
+        Element -> JSString -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.insertAdjacentHTML Mozilla Element.insertAdjacentHTML documentation> 
+insertAdjacentHTML ::
+                   (MonadIO m, IsElement self, ToJSString where', ToJSString html) =>
+                     self -> where' -> html -> m ()
+insertAdjacentHTML self where' html
+  = liftIO
+      (js_insertAdjacentHTML (toElement self) (toJSString where')
+         (toJSString html))
+ 
+foreign import javascript unsafe
+        "$1[\"insertAdjacentText\"]($2, $3)" js_insertAdjacentText ::
+        Element -> JSString -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.insertAdjacentText Mozilla Element.insertAdjacentText documentation> 
+insertAdjacentText ::
+                   (MonadIO m, IsElement self, ToJSString where', ToJSString text) =>
+                     self -> where' -> text -> m ()
+insertAdjacentText self where' text
+  = liftIO
+      (js_insertAdjacentText (toElement self) (toJSString where')
+         (toJSString text))
+ 
+foreign import javascript unsafe "$1[\"requestPointerLock\"]()"
+        js_requestPointerLock :: Element -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.requestPointerLock Mozilla Element.requestPointerLock documentation> 
+requestPointerLock :: (MonadIO m, IsElement self) => self -> m ()
+requestPointerLock self
+  = liftIO (js_requestPointerLock (toElement self))
+ 
+foreign import javascript unsafe
+        "$1[\"webkitGetRegionFlowRanges\"]()" js_webkitGetRegionFlowRanges
+        :: Element -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitGetRegionFlowRanges Mozilla Element.webkitGetRegionFlowRanges documentation> 
+webkitGetRegionFlowRanges ::
+                          (MonadIO m, IsElement self) => self -> m [Range]
+webkitGetRegionFlowRanges self
+  = liftIO
+      ((js_webkitGetRegionFlowRanges (toElement self)) >>=
+         fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitGetRegionFlowRanges Mozilla Element.webkitGetRegionFlowRanges documentation> 
+webkitGetRegionFlowRanges_ ::
+                           (MonadIO m, IsElement self) => self -> m ()
+webkitGetRegionFlowRanges_ self
+  = liftIO (void (js_webkitGetRegionFlowRanges (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"attachShadow\"]($2)"
+        js_attachShadow :: Element -> ShadowRootInit -> IO ShadowRoot
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.attachShadow Mozilla Element.attachShadow documentation> 
+attachShadow ::
+             (MonadIO m, IsElement self) =>
+               self -> ShadowRootInit -> m ShadowRoot
+attachShadow self init
+  = liftIO (js_attachShadow (toElement self) init)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.attachShadow Mozilla Element.attachShadow documentation> 
+attachShadow_ ::
+              (MonadIO m, IsElement self) => self -> ShadowRootInit -> m ()
+attachShadow_ self init
+  = liftIO (void (js_attachShadow (toElement self) init))
+ 
+foreign import javascript unsafe "$1[\"tagName\"]" js_getTagName ::
+        Element -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.tagName Mozilla Element.tagName documentation> 
+getTagName ::
+           (MonadIO m, IsElement self, FromJSString result) =>
+             self -> m (Maybe result)
+getTagName self
+  = liftIO (fromMaybeJSString <$> (js_getTagName (toElement self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.tagName Mozilla Element.tagName documentation> 
+getTagNameUnsafe ::
+                 (MonadIO m, IsElement self, HasCallStack, FromJSString result) =>
+                   self -> m result
+getTagNameUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getTagName (toElement self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.tagName Mozilla Element.tagName documentation> 
+getTagNameUnchecked ::
+                    (MonadIO m, IsElement self, FromJSString result) =>
+                      self -> m result
+getTagNameUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_getTagName (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"attributes\"]"
+        js_getAttributes :: Element -> IO NamedNodeMap
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.attributes Mozilla Element.attributes documentation> 
+getAttributes ::
+              (MonadIO m, IsElement self) => self -> m NamedNodeMap
+getAttributes self = liftIO (js_getAttributes (toElement self))
+ 
+foreign import javascript unsafe "$1[\"style\"]" js_getStyle ::
+        Element -> IO CSSStyleDeclaration
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.style Mozilla Element.style documentation> 
+getStyle ::
+         (MonadIO m, IsElement self) => self -> m CSSStyleDeclaration
+getStyle self = liftIO (js_getStyle (toElement self))
+ 
+foreign import javascript unsafe "$1[\"id\"] = $2;" js_setId ::
+        Element -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.id Mozilla Element.id documentation> 
+setId ::
+      (MonadIO m, IsElement self, ToJSString val) => self -> val -> m ()
+setId self val
+  = liftIO (js_setId (toElement self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"id\"]" js_getId ::
+        Element -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.id Mozilla Element.id documentation> 
+getId ::
+      (MonadIO m, IsElement self, FromJSString result) =>
+        self -> m result
+getId self = liftIO (fromJSString <$> (js_getId (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"namespaceURI\"]"
+        js_getNamespaceURI :: Element -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.namespaceURI Mozilla Element.namespaceURI documentation> 
+getNamespaceURI ::
+                (MonadIO m, IsElement self, FromJSString result) =>
+                  self -> m (Maybe result)
+getNamespaceURI self
+  = liftIO
+      (fromMaybeJSString <$> (js_getNamespaceURI (toElement self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.namespaceURI Mozilla Element.namespaceURI documentation> 
+getNamespaceURIUnsafe ::
+                      (MonadIO m, IsElement self, HasCallStack, FromJSString result) =>
+                        self -> m result
+getNamespaceURIUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getNamespaceURI (toElement self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.namespaceURI Mozilla Element.namespaceURI documentation> 
+getNamespaceURIUnchecked ::
+                         (MonadIO m, IsElement self, FromJSString result) =>
+                           self -> m result
+getNamespaceURIUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getNamespaceURI (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"prefix\"]" js_getPrefix ::
+        Element -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.prefix Mozilla Element.prefix documentation> 
+getPrefix ::
+          (MonadIO m, IsElement self, FromJSString result) =>
+            self -> m (Maybe result)
+getPrefix self
+  = liftIO (fromMaybeJSString <$> (js_getPrefix (toElement self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.prefix Mozilla Element.prefix documentation> 
+getPrefixUnsafe ::
+                (MonadIO m, IsElement self, HasCallStack, FromJSString result) =>
+                  self -> m result
+getPrefixUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getPrefix (toElement self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.prefix Mozilla Element.prefix documentation> 
+getPrefixUnchecked ::
+                   (MonadIO m, IsElement self, FromJSString result) =>
+                     self -> m result
+getPrefixUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_getPrefix (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"localName\"]"
+        js_getLocalName :: Element -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.localName Mozilla Element.localName documentation> 
+getLocalName ::
+             (MonadIO m, IsElement self, FromJSString result) =>
+               self -> m result
+getLocalName self
+  = liftIO (fromJSString <$> (js_getLocalName (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"offsetLeft\"]"
+        js_getOffsetLeft :: Element -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetLeft Mozilla Element.offsetLeft documentation> 
+getOffsetLeft :: (MonadIO m, IsElement self) => self -> m Double
+getOffsetLeft self = liftIO (js_getOffsetLeft (toElement self))
+ 
+foreign import javascript unsafe "$1[\"offsetTop\"]"
+        js_getOffsetTop :: Element -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetTop Mozilla Element.offsetTop documentation> 
+getOffsetTop :: (MonadIO m, IsElement self) => self -> m Double
+getOffsetTop self = liftIO (js_getOffsetTop (toElement self))
+ 
+foreign import javascript unsafe "$1[\"offsetWidth\"]"
+        js_getOffsetWidth :: Element -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetWidth Mozilla Element.offsetWidth documentation> 
+getOffsetWidth :: (MonadIO m, IsElement self) => self -> m Double
+getOffsetWidth self = liftIO (js_getOffsetWidth (toElement self))
+ 
+foreign import javascript unsafe "$1[\"offsetHeight\"]"
+        js_getOffsetHeight :: Element -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetHeight Mozilla Element.offsetHeight documentation> 
+getOffsetHeight :: (MonadIO m, IsElement self) => self -> m Double
+getOffsetHeight self = liftIO (js_getOffsetHeight (toElement self))
+ 
+foreign import javascript unsafe "$1[\"clientLeft\"]"
+        js_getClientLeft :: Element -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.clientLeft Mozilla Element.clientLeft documentation> 
+getClientLeft :: (MonadIO m, IsElement self) => self -> m Double
+getClientLeft self = liftIO (js_getClientLeft (toElement self))
+ 
+foreign import javascript unsafe "$1[\"clientTop\"]"
+        js_getClientTop :: Element -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.clientTop Mozilla Element.clientTop documentation> 
+getClientTop :: (MonadIO m, IsElement self) => self -> m Double
+getClientTop self = liftIO (js_getClientTop (toElement self))
+ 
+foreign import javascript unsafe "$1[\"clientWidth\"]"
+        js_getClientWidth :: Element -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.clientWidth Mozilla Element.clientWidth documentation> 
+getClientWidth :: (MonadIO m, IsElement self) => self -> m Double
+getClientWidth self = liftIO (js_getClientWidth (toElement self))
+ 
+foreign import javascript unsafe "$1[\"clientHeight\"]"
+        js_getClientHeight :: Element -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.clientHeight Mozilla Element.clientHeight documentation> 
+getClientHeight :: (MonadIO m, IsElement self) => self -> m Double
+getClientHeight self = liftIO (js_getClientHeight (toElement self))
+ 
+foreign import javascript unsafe "$1[\"scrollLeft\"] = $2;"
+        js_setScrollLeft :: Element -> Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollLeft Mozilla Element.scrollLeft documentation> 
+setScrollLeft :: (MonadIO m, IsElement self) => self -> Int -> m ()
+setScrollLeft self val
+  = liftIO (js_setScrollLeft (toElement self) val)
+ 
+foreign import javascript unsafe "$1[\"scrollLeft\"]"
+        js_getScrollLeft :: Element -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollLeft Mozilla Element.scrollLeft documentation> 
+getScrollLeft :: (MonadIO m, IsElement self) => self -> m Int
+getScrollLeft self = liftIO (js_getScrollLeft (toElement self))
+ 
+foreign import javascript unsafe "$1[\"scrollTop\"] = $2;"
+        js_setScrollTop :: Element -> Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollTop Mozilla Element.scrollTop documentation> 
+setScrollTop :: (MonadIO m, IsElement self) => self -> Int -> m ()
+setScrollTop self val
+  = liftIO (js_setScrollTop (toElement self) val)
+ 
+foreign import javascript unsafe "$1[\"scrollTop\"]"
+        js_getScrollTop :: Element -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollTop Mozilla Element.scrollTop documentation> 
+getScrollTop :: (MonadIO m, IsElement self) => self -> m Int
+getScrollTop self = liftIO (js_getScrollTop (toElement self))
+ 
+foreign import javascript unsafe "$1[\"scrollWidth\"]"
+        js_getScrollWidth :: Element -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollWidth Mozilla Element.scrollWidth documentation> 
+getScrollWidth :: (MonadIO m, IsElement self) => self -> m Int
+getScrollWidth self = liftIO (js_getScrollWidth (toElement self))
+ 
+foreign import javascript unsafe "$1[\"scrollHeight\"]"
+        js_getScrollHeight :: Element -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollHeight Mozilla Element.scrollHeight documentation> 
+getScrollHeight :: (MonadIO m, IsElement self) => self -> m Int
+getScrollHeight self = liftIO (js_getScrollHeight (toElement self))
+ 
+foreign import javascript unsafe "$1[\"offsetParent\"]"
+        js_getOffsetParent :: Element -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.offsetParent Mozilla Element.offsetParent documentation> 
+getOffsetParent :: (MonadIO m, IsElement self) => self -> m Element
+getOffsetParent self = liftIO (js_getOffsetParent (toElement self))
+ 
+foreign import javascript unsafe "$1[\"innerHTML\"] = $2;"
+        js_setInnerHTML :: Element -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML Mozilla Element.innerHTML documentation> 
+setInnerHTML ::
+             (MonadIO m, IsElement self, ToJSString val) =>
+               self -> Maybe val -> m ()
+setInnerHTML self val
+  = liftIO
+      (js_setInnerHTML (toElement self) (toOptionalJSString val))
+ 
+foreign import javascript unsafe "$1[\"innerHTML\"]"
+        js_getInnerHTML :: Element -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML Mozilla Element.innerHTML documentation> 
+getInnerHTML ::
+             (MonadIO m, IsElement self, FromJSString result) =>
+               self -> m (Maybe result)
+getInnerHTML self
+  = liftIO (fromMaybeJSString <$> (js_getInnerHTML (toElement self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML Mozilla Element.innerHTML documentation> 
+getInnerHTMLUnsafe ::
+                   (MonadIO m, IsElement self, HasCallStack, FromJSString result) =>
+                     self -> m result
+getInnerHTMLUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getInnerHTML (toElement self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML Mozilla Element.innerHTML documentation> 
+getInnerHTMLUnchecked ::
+                      (MonadIO m, IsElement self, FromJSString result) =>
+                        self -> m result
+getInnerHTMLUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getInnerHTML (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"outerHTML\"] = $2;"
+        js_setOuterHTML :: Element -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.outerHTML Mozilla Element.outerHTML documentation> 
+setOuterHTML ::
+             (MonadIO m, IsElement self, ToJSString val) =>
+               self -> Maybe val -> m ()
+setOuterHTML self val
+  = liftIO
+      (js_setOuterHTML (toElement self) (toOptionalJSString val))
+ 
+foreign import javascript unsafe "$1[\"outerHTML\"]"
+        js_getOuterHTML :: Element -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.outerHTML Mozilla Element.outerHTML documentation> 
+getOuterHTML ::
+             (MonadIO m, IsElement self, FromJSString result) =>
+               self -> m (Maybe result)
+getOuterHTML self
+  = liftIO (fromMaybeJSString <$> (js_getOuterHTML (toElement self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.outerHTML Mozilla Element.outerHTML documentation> 
+getOuterHTMLUnsafe ::
+                   (MonadIO m, IsElement self, HasCallStack, FromJSString result) =>
+                     self -> m result
+getOuterHTMLUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getOuterHTML (toElement self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.outerHTML Mozilla Element.outerHTML documentation> 
+getOuterHTMLUnchecked ::
+                      (MonadIO m, IsElement self, FromJSString result) =>
+                        self -> m result
+getOuterHTMLUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getOuterHTML (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"className\"] = $2;"
+        js_setClassName :: Element -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.className Mozilla Element.className documentation> 
+setClassName ::
+             (MonadIO m, IsElement self, ToJSString val) => self -> val -> m ()
+setClassName self val
+  = liftIO (js_setClassName (toElement self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"className\"]"
+        js_getClassName :: Element -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.className Mozilla Element.className documentation> 
+getClassName ::
+             (MonadIO m, IsElement self, FromJSString result) =>
+               self -> m result
+getClassName self
+  = liftIO (fromJSString <$> (js_getClassName (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"classList\"]"
+        js_getClassList :: Element -> IO DOMTokenList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.classList Mozilla Element.classList documentation> 
+getClassList ::
+             (MonadIO m, IsElement self) => self -> m DOMTokenList
+getClassList self = liftIO (js_getClassList (toElement self))
+ 
+foreign import javascript unsafe "$1[\"webkitRegionOverset\"]"
+        js_getWebkitRegionOverset :: Element -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.webkitRegionOverset Mozilla Element.webkitRegionOverset documentation> 
+getWebkitRegionOverset ::
+                       (MonadIO m, IsElement self, FromJSString result) =>
+                         self -> m result
+getWebkitRegionOverset self
+  = liftIO
+      (fromJSString <$> (js_getWebkitRegionOverset (toElement self)))
+ 
+foreign import javascript unsafe "$1[\"shadowRoot\"]"
+        js_getShadowRoot :: Element -> IO ShadowRoot
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.shadowRoot Mozilla Element.shadowRoot documentation> 
+getShadowRoot ::
+              (MonadIO m, IsElement self) => self -> m ShadowRoot
+getShadowRoot self = liftIO (js_getShadowRoot (toElement self))
+ 
+foreign import javascript unsafe "$1[\"slot\"] = $2;" js_setSlot ::
+        Element -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.slot Mozilla Element.slot documentation> 
+setSlot ::
+        (MonadIO m, IsElement self, ToJSString val) => self -> val -> m ()
+setSlot self val
+  = liftIO (js_setSlot (toElement self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"slot\"]" js_getSlot ::
+        Element -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.slot Mozilla Element.slot documentation> 
+getSlot ::
+        (MonadIO m, IsElement self, FromJSString result) =>
+          self -> m result
+getSlot self
+  = liftIO (fromJSString <$> (js_getSlot (toElement self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onbeforecopy Mozilla Element.onbeforecopy documentation> 
+beforeCopy ::
+           (IsElement self, IsEventTarget self) =>
+             EventName self ClipboardEvent
+beforeCopy = unsafeEventName (toJSString "beforecopy")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onbeforecut Mozilla Element.onbeforecut documentation> 
+beforeCut ::
+          (IsElement self, IsEventTarget self) =>
+            EventName self ClipboardEvent
+beforeCut = unsafeEventName (toJSString "beforecut")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onbeforeinput Mozilla Element.onbeforeinput documentation> 
+beforeinput ::
+            (IsElement self, IsEventTarget self) =>
+              EventName self onbeforeinput
+beforeinput = unsafeEventName (toJSString "beforeinput")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onbeforepaste Mozilla Element.onbeforepaste documentation> 
+beforePaste ::
+            (IsElement self, IsEventTarget self) =>
+              EventName self ClipboardEvent
+beforePaste = unsafeEventName (toJSString "beforepaste")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.oncopy Mozilla Element.oncopy documentation> 
+copy ::
+     (IsElement self, IsEventTarget self) =>
+       EventName self ClipboardEvent
+copy = unsafeEventName (toJSString "copy")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.oncut Mozilla Element.oncut documentation> 
+cut ::
+    (IsElement self, IsEventTarget self) =>
+      EventName self ClipboardEvent
+cut = unsafeEventName (toJSString "cut")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onpaste Mozilla Element.onpaste documentation> 
+paste ::
+      (IsElement self, IsEventTarget self) =>
+        EventName self ClipboardEvent
+paste = unsafeEventName (toJSString "paste")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onselectstart Mozilla Element.onselectstart documentation> 
+selectStart ::
+            (IsElement self, IsEventTarget self) => EventName self Event
+selectStart = unsafeEventName (toJSString "selectstart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitfullscreenchange Mozilla Element.onwebkitfullscreenchange documentation> 
+webKitFullscreenChange ::
+                       (IsElement self, IsEventTarget self) => EventName self Event
+webKitFullscreenChange
+  = unsafeEventName (toJSString "webkitfullscreenchange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitfullscreenerror Mozilla Element.onwebkitfullscreenerror documentation> 
+webKitFullscreenError ::
+                      (IsElement self, IsEventTarget self) => EventName self Event
+webKitFullscreenError
+  = unsafeEventName (toJSString "webkitfullscreenerror")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onanimationend Mozilla Element.onanimationend documentation> 
+animationEnd ::
+             (IsElement self, IsEventTarget self) =>
+               EventName self AnimationEvent
+animationEnd = unsafeEventName (toJSString "animationend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onanimationiteration Mozilla Element.onanimationiteration documentation> 
+animationIteration ::
+                   (IsElement self, IsEventTarget self) =>
+                     EventName self AnimationEvent
+animationIteration
+  = unsafeEventName (toJSString "animationiteration")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onanimationstart Mozilla Element.onanimationstart documentation> 
+animationStart ::
+               (IsElement self, IsEventTarget self) =>
+                 EventName self AnimationEvent
+animationStart = unsafeEventName (toJSString "animationstart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ontransitionend Mozilla Element.ontransitionend documentation> 
+transitionEnd ::
+              (IsElement self, IsEventTarget self) =>
+                EventName self TransitionEvent
+transitionEnd = unsafeEventName (toJSString "transitionend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitanimationend Mozilla Element.onwebkitanimationend documentation> 
+webKitAnimationEnd ::
+                   (IsElement self, IsEventTarget self) =>
+                     EventName self AnimationEvent
+webKitAnimationEnd
+  = unsafeEventName (toJSString "webkitanimationend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitanimationiteration Mozilla Element.onwebkitanimationiteration documentation> 
+webKitAnimationIteration ::
+                         (IsElement self, IsEventTarget self) =>
+                           EventName self AnimationEvent
+webKitAnimationIteration
+  = unsafeEventName (toJSString "webkitanimationiteration")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitanimationstart Mozilla Element.onwebkitanimationstart documentation> 
+webKitAnimationStart ::
+                     (IsElement self, IsEventTarget self) =>
+                       EventName self AnimationEvent
+webKitAnimationStart
+  = unsafeEventName (toJSString "webkitanimationstart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkittransitionend Mozilla Element.onwebkittransitionend documentation> 
+webKitTransitionEnd ::
+                    (IsElement self, IsEventTarget self) =>
+                      EventName self TransitionEvent
+webKitTransitionEnd
+  = unsafeEventName (toJSString "webkittransitionend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ongesturechange Mozilla Element.ongesturechange documentation> 
+gestureChange ::
+              (IsElement self, IsEventTarget self) => EventName self UIEvent
+gestureChange = unsafeEventName (toJSString "gesturechange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ongestureend Mozilla Element.ongestureend documentation> 
+gestureEnd ::
+           (IsElement self, IsEventTarget self) => EventName self UIEvent
+gestureEnd = unsafeEventName (toJSString "gestureend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.ongesturestart Mozilla Element.ongesturestart documentation> 
+gestureStart ::
+             (IsElement self, IsEventTarget self) => EventName self UIEvent
+gestureStart = unsafeEventName (toJSString "gesturestart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onfocusin Mozilla Element.onfocusin documentation> 
+focusin ::
+        (IsElement self, IsEventTarget self) => EventName self onfocusin
+focusin = unsafeEventName (toJSString "focusin")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onfocusout Mozilla Element.onfocusout documentation> 
+focusout ::
+         (IsElement self, IsEventTarget self) => EventName self onfocusout
+focusout = unsafeEventName (toJSString "focusout")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onbeforeload Mozilla Element.onbeforeload documentation> 
+beforeload ::
+           (IsElement self, IsEventTarget self) => EventName self onbeforeload
+beforeload = unsafeEventName (toJSString "beforeload")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitneedkey Mozilla Element.onwebkitneedkey documentation> 
+webKitNeedKey ::
+              (IsElement self, IsEventTarget self) => EventName self Event
+webKitNeedKey = unsafeEventName (toJSString "webkitneedkey")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitpresentationmodechanged Mozilla Element.onwebkitpresentationmodechanged documentation> 
+webKitPresentationModeChanged ::
+                              (IsElement self, IsEventTarget self) => EventName self Event
+webKitPresentationModeChanged
+  = unsafeEventName (toJSString "webkitpresentationmodechanged")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitcurrentplaybacktargetiswirelesschanged Mozilla Element.onwebkitcurrentplaybacktargetiswirelesschanged documentation> 
+webKitCurrentPlaybackTargetIsWirelessChanged ::
+                                             (IsElement self, IsEventTarget self) =>
+                                               EventName self Event
+webKitCurrentPlaybackTargetIsWirelessChanged
+  = unsafeEventName
+      (toJSString "webkitcurrentplaybacktargetiswirelesschanged")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Element.onwebkitplaybacktargetavailabilitychanged Mozilla Element.onwebkitplaybacktargetavailabilitychanged documentation> 
+webKitPlaybackTargetAvailabilityChanged ::
+                                        (IsElement self, IsEventTarget self) => EventName self Event
+webKitPlaybackTargetAvailabilityChanged
+  = unsafeEventName
+      (toJSString "webkitplaybacktargetavailabilitychanged")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Entity.hs b/src/GHCJS/DOM/JSFFI/Generated/Entity.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/Entity.hs
+++ /dev/null
@@ -1,102 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.Entity
-       (js_getPublicId, getPublicId, getPublicIdUnsafe,
-        getPublicIdUnchecked, js_getSystemId, getSystemId,
-        getSystemIdUnsafe, getSystemIdUnchecked, js_getNotationName,
-        getNotationName, getNotationNameUnsafe, getNotationNameUnchecked,
-        Entity(..), gTypeEntity)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"publicId\"]" js_getPublicId
-        :: Entity -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Entity.publicId Mozilla Entity.publicId documentation> 
-getPublicId ::
-            (MonadIO m, FromJSString result) => Entity -> m (Maybe result)
-getPublicId self
-  = liftIO (fromMaybeJSString <$> (js_getPublicId (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Entity.publicId Mozilla Entity.publicId documentation> 
-getPublicIdUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    Entity -> m result
-getPublicIdUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getPublicId (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Entity.publicId Mozilla Entity.publicId documentation> 
-getPublicIdUnchecked ::
-                     (MonadIO m, FromJSString result) => Entity -> m result
-getPublicIdUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getPublicId (self)))
- 
-foreign import javascript unsafe "$1[\"systemId\"]" js_getSystemId
-        :: Entity -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Entity.systemId Mozilla Entity.systemId documentation> 
-getSystemId ::
-            (MonadIO m, FromJSString result) => Entity -> m (Maybe result)
-getSystemId self
-  = liftIO (fromMaybeJSString <$> (js_getSystemId (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Entity.systemId Mozilla Entity.systemId documentation> 
-getSystemIdUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    Entity -> m result
-getSystemIdUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getSystemId (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Entity.systemId Mozilla Entity.systemId documentation> 
-getSystemIdUnchecked ::
-                     (MonadIO m, FromJSString result) => Entity -> m result
-getSystemIdUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getSystemId (self)))
- 
-foreign import javascript unsafe "$1[\"notationName\"]"
-        js_getNotationName :: Entity -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Entity.notationName Mozilla Entity.notationName documentation> 
-getNotationName ::
-                (MonadIO m, FromJSString result) => Entity -> m (Maybe result)
-getNotationName self
-  = liftIO (fromMaybeJSString <$> (js_getNotationName (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Entity.notationName Mozilla Entity.notationName documentation> 
-getNotationNameUnsafe ::
-                      (MonadIO m, HasCallStack, FromJSString result) =>
-                        Entity -> m result
-getNotationNameUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getNotationName (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Entity.notationName Mozilla Entity.notationName documentation> 
-getNotationNameUnchecked ::
-                         (MonadIO m, FromJSString result) => Entity -> m result
-getNotationNameUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getNotationName (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Enums.hs b/src/GHCJS/DOM/JSFFI/Generated/Enums.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Enums.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Enums.hs
@@ -5,711 +5,2322 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Enums
        (KeyType(..), PToJSVal, ToJSVal, PFromJSVal, FromJSVal,
-        js_KeyTypeSecret, js_KeyTypePublic, js_KeyTypePrivate,
-        KeyUsage(..), js_KeyUsageEncrypt, js_KeyUsageDecrypt,
-        js_KeyUsageSign, js_KeyUsageVerify, js_KeyUsageDeriveKey,
-        js_KeyUsageDeriveBits, js_KeyUsageWrapKey, js_KeyUsageUnwrapKey,
-        CanvasWindingRule(..), js_CanvasWindingRuleNonzero,
-        js_CanvasWindingRuleEvenodd, VideoPresentationMode(..),
-        js_VideoPresentationModeFullscreen,
-        js_VideoPresentationModeOptimized, js_VideoPresentationModeInline,
-        TextTrackMode(..), js_TextTrackModeDisabled,
-        js_TextTrackModeHidden, js_TextTrackModeShowing, TextTrackKind(..),
-        js_TextTrackKindSubtitles, js_TextTrackKindCaptions,
-        js_TextTrackKindDescriptions, js_TextTrackKindChapters,
-        js_TextTrackKindMetadata, DeviceType(..), js_DeviceTypeNone,
-        js_DeviceTypeAirplay, js_DeviceTypeTvout, MediaUIPartID(..),
-        js_MediaUIPartIDOptimizedFullscreenButton,
-        js_MediaUIPartIDOptimizedFullscreenPlaceholder,
-        EndOfStreamError(..), js_EndOfStreamErrorNetwork,
-        js_EndOfStreamErrorDecode, AppendMode(..), js_AppendModeSegments,
-        js_AppendModeSequence, SourceTypeEnum(..), js_SourceTypeEnumNone,
-        js_SourceTypeEnumCamera, js_SourceTypeEnumMicrophone,
-        VideoFacingModeEnum(..), js_VideoFacingModeEnumUser,
-        js_VideoFacingModeEnumEnvironment, js_VideoFacingModeEnumLeft,
-        js_VideoFacingModeEnumRight, MediaStreamTrackState(..),
-        js_MediaStreamTrackStateNew, js_MediaStreamTrackStateLive,
-        js_MediaStreamTrackStateEnded, RTCIceTransportsEnum(..),
-        js_RTCIceTransportsEnumNone, js_RTCIceTransportsEnumRelay,
-        js_RTCIceTransportsEnumAll, RTCIdentityOptionEnum(..),
-        js_RTCIdentityOptionEnumYes, js_RTCIdentityOptionEnumNo,
-        js_RTCIdentityOptionEnumIfconfigured, ReadableStreamStateType(..),
-        js_ReadableStreamStateTypeReadable,
-        js_ReadableStreamStateTypeWaiting,
-        js_ReadableStreamStateTypeClosed,
-        js_ReadableStreamStateTypeErrored, OverSampleType(..),
-        js_OverSampleTypeNone, js_OverSampleType2x, js_OverSampleType4x,
-        PageOverlayType(..), js_PageOverlayTypeView,
-        js_PageOverlayTypeDocument, XMLHttpRequestResponseType(..),
-        js_XMLHttpRequestResponseType,
-        js_XMLHttpRequestResponseTypeArraybuffer,
-        js_XMLHttpRequestResponseTypeBlob,
-        js_XMLHttpRequestResponseTypeDocument,
-        js_XMLHttpRequestResponseTypeJson,
-        js_XMLHttpRequestResponseTypeText)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
- 
-data KeyType = KeyTypeSecret
-             | KeyTypePublic
-             | KeyTypePrivate
-             deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal KeyType where
-        pToJSVal KeyTypeSecret = js_KeyTypeSecret
-        pToJSVal KeyTypePublic = js_KeyTypePublic
-        pToJSVal KeyTypePrivate = js_KeyTypePrivate
- 
-instance ToJSVal KeyType where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal KeyType where
-        pFromJSVal x | x `js_eq` js_KeyTypeSecret = KeyTypeSecret
-        pFromJSVal x | x `js_eq` js_KeyTypePublic = KeyTypePublic
-        pFromJSVal x | x `js_eq` js_KeyTypePrivate = KeyTypePrivate
- 
-instance FromJSVal KeyType where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"secret\"" js_KeyTypeSecret ::
-        JSVal
- 
-foreign import javascript unsafe "\"public\"" js_KeyTypePublic ::
-        JSVal
- 
-foreign import javascript unsafe "\"private\"" js_KeyTypePrivate ::
-        JSVal
- 
-data KeyUsage = KeyUsageEncrypt
-              | KeyUsageDecrypt
-              | KeyUsageSign
-              | KeyUsageVerify
-              | KeyUsageDeriveKey
-              | KeyUsageDeriveBits
-              | KeyUsageWrapKey
-              | KeyUsageUnwrapKey
-              deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal KeyUsage where
-        pToJSVal KeyUsageEncrypt = js_KeyUsageEncrypt
-        pToJSVal KeyUsageDecrypt = js_KeyUsageDecrypt
-        pToJSVal KeyUsageSign = js_KeyUsageSign
-        pToJSVal KeyUsageVerify = js_KeyUsageVerify
-        pToJSVal KeyUsageDeriveKey = js_KeyUsageDeriveKey
-        pToJSVal KeyUsageDeriveBits = js_KeyUsageDeriveBits
-        pToJSVal KeyUsageWrapKey = js_KeyUsageWrapKey
-        pToJSVal KeyUsageUnwrapKey = js_KeyUsageUnwrapKey
- 
-instance ToJSVal KeyUsage where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal KeyUsage where
-        pFromJSVal x | x `js_eq` js_KeyUsageEncrypt = KeyUsageEncrypt
-        pFromJSVal x | x `js_eq` js_KeyUsageDecrypt = KeyUsageDecrypt
-        pFromJSVal x | x `js_eq` js_KeyUsageSign = KeyUsageSign
-        pFromJSVal x | x `js_eq` js_KeyUsageVerify = KeyUsageVerify
-        pFromJSVal x | x `js_eq` js_KeyUsageDeriveKey = KeyUsageDeriveKey
-        pFromJSVal x | x `js_eq` js_KeyUsageDeriveBits = KeyUsageDeriveBits
-        pFromJSVal x | x `js_eq` js_KeyUsageWrapKey = KeyUsageWrapKey
-        pFromJSVal x | x `js_eq` js_KeyUsageUnwrapKey = KeyUsageUnwrapKey
- 
-instance FromJSVal KeyUsage where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"encrypt\"" js_KeyUsageEncrypt
-        :: JSVal
- 
-foreign import javascript unsafe "\"decrypt\"" js_KeyUsageDecrypt
-        :: JSVal
- 
-foreign import javascript unsafe "\"sign\"" js_KeyUsageSign ::
-        JSVal
- 
-foreign import javascript unsafe "\"verify\"" js_KeyUsageVerify ::
-        JSVal
- 
-foreign import javascript unsafe "\"deriveKey\""
-        js_KeyUsageDeriveKey :: JSVal
- 
-foreign import javascript unsafe "\"deriveBits\""
-        js_KeyUsageDeriveBits :: JSVal
- 
-foreign import javascript unsafe "\"wrapKey\"" js_KeyUsageWrapKey
-        :: JSVal
- 
-foreign import javascript unsafe "\"unwrapKey\""
-        js_KeyUsageUnwrapKey :: JSVal
- 
-data CanvasWindingRule = CanvasWindingRuleNonzero
-                       | CanvasWindingRuleEvenodd
-                       deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal CanvasWindingRule where
-        pToJSVal CanvasWindingRuleNonzero = js_CanvasWindingRuleNonzero
-        pToJSVal CanvasWindingRuleEvenodd = js_CanvasWindingRuleEvenodd
- 
-instance ToJSVal CanvasWindingRule where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal CanvasWindingRule where
-        pFromJSVal x
-          | x `js_eq` js_CanvasWindingRuleNonzero = CanvasWindingRuleNonzero
-        pFromJSVal x
-          | x `js_eq` js_CanvasWindingRuleEvenodd = CanvasWindingRuleEvenodd
- 
-instance FromJSVal CanvasWindingRule where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"nonzero\""
-        js_CanvasWindingRuleNonzero :: JSVal
- 
-foreign import javascript unsafe "\"evenodd\""
-        js_CanvasWindingRuleEvenodd :: JSVal
- 
-data VideoPresentationMode = VideoPresentationModeFullscreen
-                           | VideoPresentationModeOptimized
-                           | VideoPresentationModeInline
-                           deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal VideoPresentationMode where
-        pToJSVal VideoPresentationModeFullscreen
-          = js_VideoPresentationModeFullscreen
-        pToJSVal VideoPresentationModeOptimized
-          = js_VideoPresentationModeOptimized
-        pToJSVal VideoPresentationModeInline
-          = js_VideoPresentationModeInline
- 
-instance ToJSVal VideoPresentationMode where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal VideoPresentationMode where
-        pFromJSVal x
-          | x `js_eq` js_VideoPresentationModeFullscreen =
-            VideoPresentationModeFullscreen
-        pFromJSVal x
-          | x `js_eq` js_VideoPresentationModeOptimized =
-            VideoPresentationModeOptimized
-        pFromJSVal x
-          | x `js_eq` js_VideoPresentationModeInline =
-            VideoPresentationModeInline
- 
-instance FromJSVal VideoPresentationMode where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"fullscreen\""
-        js_VideoPresentationModeFullscreen :: JSVal
- 
-foreign import javascript unsafe "\"optimized\""
-        js_VideoPresentationModeOptimized :: JSVal
- 
-foreign import javascript unsafe "\"inline\""
-        js_VideoPresentationModeInline :: JSVal
- 
-data TextTrackMode = TextTrackModeDisabled
-                   | TextTrackModeHidden
-                   | TextTrackModeShowing
-                   deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal TextTrackMode where
-        pToJSVal TextTrackModeDisabled = js_TextTrackModeDisabled
-        pToJSVal TextTrackModeHidden = js_TextTrackModeHidden
-        pToJSVal TextTrackModeShowing = js_TextTrackModeShowing
- 
-instance ToJSVal TextTrackMode where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal TextTrackMode where
-        pFromJSVal x
-          | x `js_eq` js_TextTrackModeDisabled = TextTrackModeDisabled
-        pFromJSVal x
-          | x `js_eq` js_TextTrackModeHidden = TextTrackModeHidden
-        pFromJSVal x
-          | x `js_eq` js_TextTrackModeShowing = TextTrackModeShowing
- 
-instance FromJSVal TextTrackMode where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"disabled\""
-        js_TextTrackModeDisabled :: JSVal
- 
-foreign import javascript unsafe "\"hidden\""
-        js_TextTrackModeHidden :: JSVal
- 
-foreign import javascript unsafe "\"showing\""
-        js_TextTrackModeShowing :: JSVal
- 
-data TextTrackKind = TextTrackKindSubtitles
-                   | TextTrackKindCaptions
-                   | TextTrackKindDescriptions
-                   | TextTrackKindChapters
-                   | TextTrackKindMetadata
-                   deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal TextTrackKind where
-        pToJSVal TextTrackKindSubtitles = js_TextTrackKindSubtitles
-        pToJSVal TextTrackKindCaptions = js_TextTrackKindCaptions
-        pToJSVal TextTrackKindDescriptions = js_TextTrackKindDescriptions
-        pToJSVal TextTrackKindChapters = js_TextTrackKindChapters
-        pToJSVal TextTrackKindMetadata = js_TextTrackKindMetadata
- 
-instance ToJSVal TextTrackKind where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal TextTrackKind where
-        pFromJSVal x
-          | x `js_eq` js_TextTrackKindSubtitles = TextTrackKindSubtitles
-        pFromJSVal x
-          | x `js_eq` js_TextTrackKindCaptions = TextTrackKindCaptions
-        pFromJSVal x
-          | x `js_eq` js_TextTrackKindDescriptions =
-            TextTrackKindDescriptions
-        pFromJSVal x
-          | x `js_eq` js_TextTrackKindChapters = TextTrackKindChapters
-        pFromJSVal x
-          | x `js_eq` js_TextTrackKindMetadata = TextTrackKindMetadata
- 
-instance FromJSVal TextTrackKind where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"subtitles\""
-        js_TextTrackKindSubtitles :: JSVal
- 
-foreign import javascript unsafe "\"captions\""
-        js_TextTrackKindCaptions :: JSVal
- 
-foreign import javascript unsafe "\"descriptions\""
-        js_TextTrackKindDescriptions :: JSVal
- 
-foreign import javascript unsafe "\"chapters\""
-        js_TextTrackKindChapters :: JSVal
- 
-foreign import javascript unsafe "\"metadata\""
-        js_TextTrackKindMetadata :: JSVal
- 
-data DeviceType = DeviceTypeNone
-                | DeviceTypeAirplay
-                | DeviceTypeTvout
-                deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal DeviceType where
-        pToJSVal DeviceTypeNone = js_DeviceTypeNone
-        pToJSVal DeviceTypeAirplay = js_DeviceTypeAirplay
-        pToJSVal DeviceTypeTvout = js_DeviceTypeTvout
- 
-instance ToJSVal DeviceType where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal DeviceType where
-        pFromJSVal x | x `js_eq` js_DeviceTypeNone = DeviceTypeNone
-        pFromJSVal x | x `js_eq` js_DeviceTypeAirplay = DeviceTypeAirplay
-        pFromJSVal x | x `js_eq` js_DeviceTypeTvout = DeviceTypeTvout
- 
-instance FromJSVal DeviceType where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"none\"" js_DeviceTypeNone ::
-        JSVal
- 
-foreign import javascript unsafe "\"airplay\"" js_DeviceTypeAirplay
-        :: JSVal
- 
-foreign import javascript unsafe "\"tvout\"" js_DeviceTypeTvout ::
-        JSVal
- 
-data MediaUIPartID = MediaUIPartIDOptimizedFullscreenButton
-                   | MediaUIPartIDOptimizedFullscreenPlaceholder
-                   deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal MediaUIPartID where
-        pToJSVal MediaUIPartIDOptimizedFullscreenButton
-          = js_MediaUIPartIDOptimizedFullscreenButton
-        pToJSVal MediaUIPartIDOptimizedFullscreenPlaceholder
-          = js_MediaUIPartIDOptimizedFullscreenPlaceholder
- 
-instance ToJSVal MediaUIPartID where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal MediaUIPartID where
-        pFromJSVal x
-          | x `js_eq` js_MediaUIPartIDOptimizedFullscreenButton =
-            MediaUIPartIDOptimizedFullscreenButton
-        pFromJSVal x
-          | x `js_eq` js_MediaUIPartIDOptimizedFullscreenPlaceholder =
-            MediaUIPartIDOptimizedFullscreenPlaceholder
- 
-instance FromJSVal MediaUIPartID where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"optimized-fullscreen-button\""
-        js_MediaUIPartIDOptimizedFullscreenButton :: JSVal
- 
-foreign import javascript unsafe
-        "\"optimized-fullscreen-placeholder\""
-        js_MediaUIPartIDOptimizedFullscreenPlaceholder :: JSVal
- 
-data EndOfStreamError = EndOfStreamErrorNetwork
-                      | EndOfStreamErrorDecode
-                      deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal EndOfStreamError where
-        pToJSVal EndOfStreamErrorNetwork = js_EndOfStreamErrorNetwork
-        pToJSVal EndOfStreamErrorDecode = js_EndOfStreamErrorDecode
- 
-instance ToJSVal EndOfStreamError where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal EndOfStreamError where
-        pFromJSVal x
-          | x `js_eq` js_EndOfStreamErrorNetwork = EndOfStreamErrorNetwork
-        pFromJSVal x
-          | x `js_eq` js_EndOfStreamErrorDecode = EndOfStreamErrorDecode
- 
-instance FromJSVal EndOfStreamError where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"network\""
-        js_EndOfStreamErrorNetwork :: JSVal
- 
-foreign import javascript unsafe "\"decode\""
-        js_EndOfStreamErrorDecode :: JSVal
- 
-data AppendMode = AppendModeSegments
-                | AppendModeSequence
-                deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal AppendMode where
-        pToJSVal AppendModeSegments = js_AppendModeSegments
-        pToJSVal AppendModeSequence = js_AppendModeSequence
- 
-instance ToJSVal AppendMode where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal AppendMode where
-        pFromJSVal x | x `js_eq` js_AppendModeSegments = AppendModeSegments
-        pFromJSVal x | x `js_eq` js_AppendModeSequence = AppendModeSequence
- 
-instance FromJSVal AppendMode where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"segments\""
-        js_AppendModeSegments :: JSVal
- 
-foreign import javascript unsafe "\"sequence\""
-        js_AppendModeSequence :: JSVal
- 
-data SourceTypeEnum = SourceTypeEnumNone
-                    | SourceTypeEnumCamera
-                    | SourceTypeEnumMicrophone
-                    deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal SourceTypeEnum where
-        pToJSVal SourceTypeEnumNone = js_SourceTypeEnumNone
-        pToJSVal SourceTypeEnumCamera = js_SourceTypeEnumCamera
-        pToJSVal SourceTypeEnumMicrophone = js_SourceTypeEnumMicrophone
- 
-instance ToJSVal SourceTypeEnum where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal SourceTypeEnum where
-        pFromJSVal x | x `js_eq` js_SourceTypeEnumNone = SourceTypeEnumNone
-        pFromJSVal x
-          | x `js_eq` js_SourceTypeEnumCamera = SourceTypeEnumCamera
-        pFromJSVal x
-          | x `js_eq` js_SourceTypeEnumMicrophone = SourceTypeEnumMicrophone
- 
-instance FromJSVal SourceTypeEnum where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"none\"" js_SourceTypeEnumNone
-        :: JSVal
- 
-foreign import javascript unsafe "\"camera\""
-        js_SourceTypeEnumCamera :: JSVal
- 
-foreign import javascript unsafe "\"microphone\""
-        js_SourceTypeEnumMicrophone :: JSVal
- 
-data VideoFacingModeEnum = VideoFacingModeEnumUser
-                         | VideoFacingModeEnumEnvironment
-                         | VideoFacingModeEnumLeft
-                         | VideoFacingModeEnumRight
-                         deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal VideoFacingModeEnum where
-        pToJSVal VideoFacingModeEnumUser = js_VideoFacingModeEnumUser
-        pToJSVal VideoFacingModeEnumEnvironment
-          = js_VideoFacingModeEnumEnvironment
-        pToJSVal VideoFacingModeEnumLeft = js_VideoFacingModeEnumLeft
-        pToJSVal VideoFacingModeEnumRight = js_VideoFacingModeEnumRight
- 
-instance ToJSVal VideoFacingModeEnum where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal VideoFacingModeEnum where
-        pFromJSVal x
-          | x `js_eq` js_VideoFacingModeEnumUser = VideoFacingModeEnumUser
-        pFromJSVal x
-          | x `js_eq` js_VideoFacingModeEnumEnvironment =
-            VideoFacingModeEnumEnvironment
-        pFromJSVal x
-          | x `js_eq` js_VideoFacingModeEnumLeft = VideoFacingModeEnumLeft
-        pFromJSVal x
-          | x `js_eq` js_VideoFacingModeEnumRight = VideoFacingModeEnumRight
- 
-instance FromJSVal VideoFacingModeEnum where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"user\""
-        js_VideoFacingModeEnumUser :: JSVal
- 
-foreign import javascript unsafe "\"environment\""
-        js_VideoFacingModeEnumEnvironment :: JSVal
- 
-foreign import javascript unsafe "\"left\""
-        js_VideoFacingModeEnumLeft :: JSVal
- 
-foreign import javascript unsafe "\"right\""
-        js_VideoFacingModeEnumRight :: JSVal
- 
-data MediaStreamTrackState = MediaStreamTrackStateNew
-                           | MediaStreamTrackStateLive
-                           | MediaStreamTrackStateEnded
-                           deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal MediaStreamTrackState where
-        pToJSVal MediaStreamTrackStateNew = js_MediaStreamTrackStateNew
-        pToJSVal MediaStreamTrackStateLive = js_MediaStreamTrackStateLive
-        pToJSVal MediaStreamTrackStateEnded = js_MediaStreamTrackStateEnded
- 
-instance ToJSVal MediaStreamTrackState where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal MediaStreamTrackState where
-        pFromJSVal x
-          | x `js_eq` js_MediaStreamTrackStateNew = MediaStreamTrackStateNew
-        pFromJSVal x
-          | x `js_eq` js_MediaStreamTrackStateLive =
-            MediaStreamTrackStateLive
-        pFromJSVal x
-          | x `js_eq` js_MediaStreamTrackStateEnded =
-            MediaStreamTrackStateEnded
- 
-instance FromJSVal MediaStreamTrackState where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"new\""
-        js_MediaStreamTrackStateNew :: JSVal
- 
-foreign import javascript unsafe "\"live\""
-        js_MediaStreamTrackStateLive :: JSVal
- 
-foreign import javascript unsafe "\"ended\""
-        js_MediaStreamTrackStateEnded :: JSVal
- 
-data RTCIceTransportsEnum = RTCIceTransportsEnumNone
-                          | RTCIceTransportsEnumRelay
-                          | RTCIceTransportsEnumAll
-                          deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal RTCIceTransportsEnum where
-        pToJSVal RTCIceTransportsEnumNone = js_RTCIceTransportsEnumNone
-        pToJSVal RTCIceTransportsEnumRelay = js_RTCIceTransportsEnumRelay
-        pToJSVal RTCIceTransportsEnumAll = js_RTCIceTransportsEnumAll
- 
-instance ToJSVal RTCIceTransportsEnum where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal RTCIceTransportsEnum where
-        pFromJSVal x
-          | x `js_eq` js_RTCIceTransportsEnumNone = RTCIceTransportsEnumNone
-        pFromJSVal x
-          | x `js_eq` js_RTCIceTransportsEnumRelay =
-            RTCIceTransportsEnumRelay
-        pFromJSVal x
-          | x `js_eq` js_RTCIceTransportsEnumAll = RTCIceTransportsEnumAll
- 
-instance FromJSVal RTCIceTransportsEnum where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"none\""
-        js_RTCIceTransportsEnumNone :: JSVal
- 
-foreign import javascript unsafe "\"relay\""
-        js_RTCIceTransportsEnumRelay :: JSVal
- 
-foreign import javascript unsafe "\"all\""
-        js_RTCIceTransportsEnumAll :: JSVal
- 
-data RTCIdentityOptionEnum = RTCIdentityOptionEnumYes
-                           | RTCIdentityOptionEnumNo
-                           | RTCIdentityOptionEnumIfconfigured
-                           deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal RTCIdentityOptionEnum where
-        pToJSVal RTCIdentityOptionEnumYes = js_RTCIdentityOptionEnumYes
-        pToJSVal RTCIdentityOptionEnumNo = js_RTCIdentityOptionEnumNo
-        pToJSVal RTCIdentityOptionEnumIfconfigured
-          = js_RTCIdentityOptionEnumIfconfigured
- 
-instance ToJSVal RTCIdentityOptionEnum where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal RTCIdentityOptionEnum where
-        pFromJSVal x
-          | x `js_eq` js_RTCIdentityOptionEnumYes = RTCIdentityOptionEnumYes
-        pFromJSVal x
-          | x `js_eq` js_RTCIdentityOptionEnumNo = RTCIdentityOptionEnumNo
-        pFromJSVal x
-          | x `js_eq` js_RTCIdentityOptionEnumIfconfigured =
-            RTCIdentityOptionEnumIfconfigured
- 
-instance FromJSVal RTCIdentityOptionEnum where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"yes\""
-        js_RTCIdentityOptionEnumYes :: JSVal
- 
-foreign import javascript unsafe "\"no\""
-        js_RTCIdentityOptionEnumNo :: JSVal
- 
-foreign import javascript unsafe "\"ifconfigured\""
-        js_RTCIdentityOptionEnumIfconfigured :: JSVal
- 
-data ReadableStreamStateType = ReadableStreamStateTypeReadable
-                             | ReadableStreamStateTypeWaiting
-                             | ReadableStreamStateTypeClosed
-                             | ReadableStreamStateTypeErrored
-                             deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal ReadableStreamStateType where
-        pToJSVal ReadableStreamStateTypeReadable
-          = js_ReadableStreamStateTypeReadable
-        pToJSVal ReadableStreamStateTypeWaiting
-          = js_ReadableStreamStateTypeWaiting
-        pToJSVal ReadableStreamStateTypeClosed
-          = js_ReadableStreamStateTypeClosed
-        pToJSVal ReadableStreamStateTypeErrored
-          = js_ReadableStreamStateTypeErrored
- 
-instance ToJSVal ReadableStreamStateType where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal ReadableStreamStateType where
-        pFromJSVal x
-          | x `js_eq` js_ReadableStreamStateTypeReadable =
-            ReadableStreamStateTypeReadable
-        pFromJSVal x
-          | x `js_eq` js_ReadableStreamStateTypeWaiting =
-            ReadableStreamStateTypeWaiting
-        pFromJSVal x
-          | x `js_eq` js_ReadableStreamStateTypeClosed =
-            ReadableStreamStateTypeClosed
-        pFromJSVal x
-          | x `js_eq` js_ReadableStreamStateTypeErrored =
-            ReadableStreamStateTypeErrored
- 
-instance FromJSVal ReadableStreamStateType where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"readable\""
-        js_ReadableStreamStateTypeReadable :: JSVal
- 
-foreign import javascript unsafe "\"waiting\""
-        js_ReadableStreamStateTypeWaiting :: JSVal
- 
-foreign import javascript unsafe "\"closed\""
-        js_ReadableStreamStateTypeClosed :: JSVal
- 
-foreign import javascript unsafe "\"errored\""
-        js_ReadableStreamStateTypeErrored :: JSVal
- 
-data OverSampleType = OverSampleTypeNone
-                    | OverSampleType2x
-                    | OverSampleType4x
-                    deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal OverSampleType where
-        pToJSVal OverSampleTypeNone = js_OverSampleTypeNone
-        pToJSVal OverSampleType2x = js_OverSampleType2x
-        pToJSVal OverSampleType4x = js_OverSampleType4x
- 
-instance ToJSVal OverSampleType where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal OverSampleType where
-        pFromJSVal x | x `js_eq` js_OverSampleTypeNone = OverSampleTypeNone
-        pFromJSVal x | x `js_eq` js_OverSampleType2x = OverSampleType2x
-        pFromJSVal x | x `js_eq` js_OverSampleType4x = OverSampleType4x
- 
-instance FromJSVal OverSampleType where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"none\"" js_OverSampleTypeNone
-        :: JSVal
- 
-foreign import javascript unsafe "\"2x\"" js_OverSampleType2x ::
-        JSVal
- 
-foreign import javascript unsafe "\"4x\"" js_OverSampleType4x ::
-        JSVal
- 
-data PageOverlayType = PageOverlayTypeView
-                     | PageOverlayTypeDocument
-                     deriving (Show, Read, Eq, Ord, Typeable)
- 
-instance PToJSVal PageOverlayType where
-        pToJSVal PageOverlayTypeView = js_PageOverlayTypeView
-        pToJSVal PageOverlayTypeDocument = js_PageOverlayTypeDocument
- 
-instance ToJSVal PageOverlayType where
-        toJSVal = return . pToJSVal
- 
-instance PFromJSVal PageOverlayType where
-        pFromJSVal x
-          | x `js_eq` js_PageOverlayTypeView = PageOverlayTypeView
-        pFromJSVal x
-          | x `js_eq` js_PageOverlayTypeDocument = PageOverlayTypeDocument
- 
-instance FromJSVal PageOverlayType where
-        fromJSValUnchecked = return . pFromJSVal
-        fromJSVal = return . pFromJSVal
- 
-foreign import javascript unsafe "\"view\"" js_PageOverlayTypeView
-        :: JSVal
- 
-foreign import javascript unsafe "\"document\""
-        js_PageOverlayTypeDocument :: JSVal
+        js_KeyTypePublic, js_KeyTypePrivate, js_KeyTypeSecret,
+        CryptoKeyUsage(..), js_CryptoKeyUsageEncrypt,
+        js_CryptoKeyUsageDecrypt, js_CryptoKeyUsageSign,
+        js_CryptoKeyUsageVerify, js_CryptoKeyUsageDeriveKey,
+        js_CryptoKeyUsageDeriveBits, js_CryptoKeyUsageWrapKey,
+        js_CryptoKeyUsageUnwrapKey, KeyFormat(..), js_KeyFormatRaw,
+        js_KeyFormatSpki, js_KeyFormatPkcs8, js_KeyFormatJwk,
+        FontFaceLoadStatus(..), js_FontFaceLoadStatusUnloaded,
+        js_FontFaceLoadStatusLoading, js_FontFaceLoadStatusLoaded,
+        js_FontFaceLoadStatusError, FontFaceSetLoadStatus(..),
+        js_FontFaceSetLoadStatusLoading, js_FontFaceSetLoadStatusLoaded,
+        VisibilityState(..), js_VisibilityStateHidden,
+        js_VisibilityStateVisible, js_VisibilityStatePrerender,
+        ShadowRootMode(..), js_ShadowRootModeUserAgent,
+        js_ShadowRootModeClosed, js_ShadowRootModeOpen,
+        BlobLineEndings(..), js_BlobLineEndingsTransparent,
+        js_BlobLineEndingsNative, ImageSmoothingQuality(..),
+        js_ImageSmoothingQualityLow, js_ImageSmoothingQualityMedium,
+        js_ImageSmoothingQualityHigh, CanvasWindingRule(..),
+        js_CanvasWindingRuleNonzero, js_CanvasWindingRuleEvenodd,
+        WebGLPowerPreference(..), js_WebGLPowerPreferenceDefault,
+        js_WebGLPowerPreferenceLowPower,
+        js_WebGLPowerPreferenceHighPerformance, VideoPresentationMode(..),
+        js_VideoPresentationModeFullscreen,
+        js_VideoPresentationModePictureInPicture,
+        js_VideoPresentationModeInline, TextTrackMode(..),
+        js_TextTrackModeDisabled, js_TextTrackModeHidden,
+        js_TextTrackModeShowing, TextTrackKind(..),
+        js_TextTrackKindSubtitles, js_TextTrackKindCaptions,
+        js_TextTrackKindDescriptions, js_TextTrackKindChapters,
+        js_TextTrackKindMetadata, js_TextTrackKindForced,
+        ApplePayLineItemType(..), js_ApplePayLineItemTypePending,
+        js_ApplePayLineItemTypeFinal, ApplePayPaymentMethodType(..),
+        js_ApplePayPaymentMethodTypeDebit,
+        js_ApplePayPaymentMethodTypeCredit,
+        js_ApplePayPaymentMethodTypePrepaid,
+        js_ApplePayPaymentMethodTypeStore,
+        ApplePayPaymentPassActivationState(..),
+        js_ApplePayPaymentPassActivationStateActivated,
+        js_ApplePayPaymentPassActivationStateRequiresActivation,
+        js_ApplePayPaymentPassActivationStateActivating,
+        js_ApplePayPaymentPassActivationStateSuspended,
+        js_ApplePayPaymentPassActivationStateDeactivated,
+        ApplePayMerchantCapability(..),
+        js_ApplePayMerchantCapabilitySupports3DS,
+        js_ApplePayMerchantCapabilitySupportsEMV,
+        js_ApplePayMerchantCapabilitySupportsCredit,
+        js_ApplePayMerchantCapabilitySupportsDebit,
+        ApplePayContactField(..), js_ApplePayContactFieldEmail,
+        js_ApplePayContactFieldName, js_ApplePayContactFieldPhone,
+        js_ApplePayContactFieldPostalAddress, ApplePayShippingType(..),
+        js_ApplePayShippingTypeShipping, js_ApplePayShippingTypeDelivery,
+        js_ApplePayShippingTypeStorePickup,
+        js_ApplePayShippingTypeServicePickup, MediaKeyMessageType(..),
+        js_MediaKeyMessageTypeLicenseRequest,
+        js_MediaKeyMessageTypeLicenseRenewal,
+        js_MediaKeyMessageTypeLicenseRelease,
+        js_MediaKeyMessageTypeIndividualizationRequest,
+        MediaKeySessionType(..), js_MediaKeySessionTypeTemporary,
+        js_MediaKeySessionTypePersistentUsageRecord,
+        js_MediaKeySessionTypePersistentLicense, MediaKeysRequirement(..),
+        js_MediaKeysRequirementRequired, js_MediaKeysRequirementOptional,
+        js_MediaKeysRequirementNotAllowed, MediaKeyStatus(..),
+        js_MediaKeyStatusUsable, js_MediaKeyStatusExpired,
+        js_MediaKeyStatusReleased, js_MediaKeyStatusOutputRestricted,
+        js_MediaKeyStatusOutputDownscaled, js_MediaKeyStatusStatusPending,
+        js_MediaKeyStatusInternalError, RequestType(..), js_RequestType,
+        js_RequestTypeAudio, js_RequestTypeFont, js_RequestTypeImage,
+        js_RequestTypeScript, js_RequestTypeStyle, js_RequestTypeTrack,
+        js_RequestTypeVideo, RequestDestination(..), js_RequestDestination,
+        js_RequestDestinationDocument, js_RequestDestinationSharedworker,
+        js_RequestDestinationSubresource, js_RequestDestinationUnknown,
+        js_RequestDestinationWorker, RequestMode(..),
+        js_RequestModeNavigate, js_RequestModeSameOrigin,
+        js_RequestModeNoCors, js_RequestModeCors, RequestCredentials(..),
+        js_RequestCredentialsOmit, js_RequestCredentialsSameOrigin,
+        js_RequestCredentialsInclude, RequestCache(..),
+        js_RequestCacheDefault, js_RequestCacheNoStore,
+        js_RequestCacheReload, js_RequestCacheNoCache,
+        js_RequestCacheForceCache, js_RequestCacheOnlyIfCached,
+        RequestRedirect(..), js_RequestRedirectFollow,
+        js_RequestRedirectError, js_RequestRedirectManual,
+        ReferrerPolicy(..), js_ReferrerPolicy, js_ReferrerPolicyNoReferrer,
+        js_ReferrerPolicyNoReferrerWhenDowngrade, js_ReferrerPolicyOrigin,
+        js_ReferrerPolicyOriginWhenCrossOrigin, js_ReferrerPolicyUnsafeUrl,
+        ResponseType(..), js_ResponseTypeBasic, js_ResponseTypeCors,
+        js_ResponseTypeDefault, js_ResponseTypeError,
+        js_ResponseTypeOpaque, js_ResponseTypeOpaqueredirect,
+        IDBCursorDirection(..), js_IDBCursorDirectionNext,
+        js_IDBCursorDirectionNextunique, js_IDBCursorDirectionPrev,
+        js_IDBCursorDirectionPrevunique, IDBRequestReadyState(..),
+        js_IDBRequestReadyStatePending, js_IDBRequestReadyStateDone,
+        IDBTransactionMode(..), js_IDBTransactionModeReadonly,
+        js_IDBTransactionModeReadwrite, js_IDBTransactionModeVersionchange,
+        DeviceType(..), js_DeviceTypeNone, js_DeviceTypeAirplay,
+        js_DeviceTypeTvout, MediaSessionKind(..),
+        js_MediaSessionKindContent, js_MediaSessionKindTransient,
+        js_MediaSessionKindTransientSolo, js_MediaSessionKindAmbient,
+        EndOfStreamError(..), js_EndOfStreamErrorNetwork,
+        js_EndOfStreamErrorDecode, AppendMode(..), js_AppendModeSegments,
+        js_AppendModeSequence, MediaDeviceKind(..),
+        js_MediaDeviceKindAudioinput, js_MediaDeviceKindAudiooutput,
+        js_MediaDeviceKindVideoinput, MediaStreamTrackState(..),
+        js_MediaStreamTrackStateNew, js_MediaStreamTrackStateLive,
+        js_MediaStreamTrackStateEnded, RTCIceTransportPolicy(..),
+        js_RTCIceTransportPolicyRelay, js_RTCIceTransportPolicyAll,
+        RTCBundlePolicy(..), js_RTCBundlePolicyBalanced,
+        js_RTCBundlePolicyMaxCompat, js_RTCBundlePolicyMaxBundle,
+        RTCRtpTransceiverDirection(..),
+        js_RTCRtpTransceiverDirectionSendrecv,
+        js_RTCRtpTransceiverDirectionSendonly,
+        js_RTCRtpTransceiverDirectionRecvonly,
+        js_RTCRtpTransceiverDirectionInactive, RTCSdpType(..),
+        js_RTCSdpTypeOffer, js_RTCSdpTypePranswer, js_RTCSdpTypeAnswer,
+        js_RTCSdpTypeRollback, NotificationDirection(..),
+        js_NotificationDirectionAuto, js_NotificationDirectionLtr,
+        js_NotificationDirectionRtl, AudioContextState(..),
+        js_AudioContextStateSuspended, js_AudioContextStateRunning,
+        js_AudioContextStateInterrupted, js_AudioContextStateClosed,
+        BiquadFilterType(..), js_BiquadFilterTypeLowpass,
+        js_BiquadFilterTypeHighpass, js_BiquadFilterTypeBandpass,
+        js_BiquadFilterTypeLowshelf, js_BiquadFilterTypeHighshelf,
+        js_BiquadFilterTypePeaking, js_BiquadFilterTypeNotch,
+        js_BiquadFilterTypeAllpass, OscillatorType(..),
+        js_OscillatorTypeSine, js_OscillatorTypeSquare,
+        js_OscillatorTypeSawtooth, js_OscillatorTypeTriangle,
+        js_OscillatorTypeCustom, PanningModelType(..),
+        js_PanningModelTypeEqualpower, js_PanningModelTypeHRTF,
+        DistanceModelType(..), js_DistanceModelTypeLinear,
+        js_DistanceModelTypeInverse, js_DistanceModelTypeExponential,
+        OverSampleType(..), js_OverSampleTypeNone, js_OverSampleType2x,
+        js_OverSampleType4x, XMLHttpRequestResponseType(..),
+        js_XMLHttpRequestResponseType,
+        js_XMLHttpRequestResponseTypeArraybuffer,
+        js_XMLHttpRequestResponseTypeBlob,
+        js_XMLHttpRequestResponseTypeDocument,
+        js_XMLHttpRequestResponseTypeJson,
+        js_XMLHttpRequestResponseTypeText)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+ 
+data KeyType = KeyTypePublic
+             | KeyTypePrivate
+             | KeyTypeSecret
+             deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal KeyType where
+        pToJSVal KeyTypePublic = js_KeyTypePublic
+        pToJSVal KeyTypePrivate = js_KeyTypePrivate
+        pToJSVal KeyTypeSecret = js_KeyTypeSecret
+ 
+instance ToJSVal KeyType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal KeyType where
+        pFromJSVal x | x `js_eq` js_KeyTypePublic = KeyTypePublic
+        pFromJSVal x | x `js_eq` js_KeyTypePrivate = KeyTypePrivate
+        pFromJSVal x | x `js_eq` js_KeyTypeSecret = KeyTypeSecret
+ 
+instance FromJSVal KeyType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"public\"" js_KeyTypePublic ::
+        JSVal
+ 
+foreign import javascript unsafe "\"private\"" js_KeyTypePrivate ::
+        JSVal
+ 
+foreign import javascript unsafe "\"secret\"" js_KeyTypeSecret ::
+        JSVal
+ 
+data CryptoKeyUsage = CryptoKeyUsageEncrypt
+                    | CryptoKeyUsageDecrypt
+                    | CryptoKeyUsageSign
+                    | CryptoKeyUsageVerify
+                    | CryptoKeyUsageDeriveKey
+                    | CryptoKeyUsageDeriveBits
+                    | CryptoKeyUsageWrapKey
+                    | CryptoKeyUsageUnwrapKey
+                    deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal CryptoKeyUsage where
+        pToJSVal CryptoKeyUsageEncrypt = js_CryptoKeyUsageEncrypt
+        pToJSVal CryptoKeyUsageDecrypt = js_CryptoKeyUsageDecrypt
+        pToJSVal CryptoKeyUsageSign = js_CryptoKeyUsageSign
+        pToJSVal CryptoKeyUsageVerify = js_CryptoKeyUsageVerify
+        pToJSVal CryptoKeyUsageDeriveKey = js_CryptoKeyUsageDeriveKey
+        pToJSVal CryptoKeyUsageDeriveBits = js_CryptoKeyUsageDeriveBits
+        pToJSVal CryptoKeyUsageWrapKey = js_CryptoKeyUsageWrapKey
+        pToJSVal CryptoKeyUsageUnwrapKey = js_CryptoKeyUsageUnwrapKey
+ 
+instance ToJSVal CryptoKeyUsage where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal CryptoKeyUsage where
+        pFromJSVal x
+          | x `js_eq` js_CryptoKeyUsageEncrypt = CryptoKeyUsageEncrypt
+        pFromJSVal x
+          | x `js_eq` js_CryptoKeyUsageDecrypt = CryptoKeyUsageDecrypt
+        pFromJSVal x | x `js_eq` js_CryptoKeyUsageSign = CryptoKeyUsageSign
+        pFromJSVal x
+          | x `js_eq` js_CryptoKeyUsageVerify = CryptoKeyUsageVerify
+        pFromJSVal x
+          | x `js_eq` js_CryptoKeyUsageDeriveKey = CryptoKeyUsageDeriveKey
+        pFromJSVal x
+          | x `js_eq` js_CryptoKeyUsageDeriveBits = CryptoKeyUsageDeriveBits
+        pFromJSVal x
+          | x `js_eq` js_CryptoKeyUsageWrapKey = CryptoKeyUsageWrapKey
+        pFromJSVal x
+          | x `js_eq` js_CryptoKeyUsageUnwrapKey = CryptoKeyUsageUnwrapKey
+ 
+instance FromJSVal CryptoKeyUsage where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"encrypt\""
+        js_CryptoKeyUsageEncrypt :: JSVal
+ 
+foreign import javascript unsafe "\"decrypt\""
+        js_CryptoKeyUsageDecrypt :: JSVal
+ 
+foreign import javascript unsafe "\"sign\"" js_CryptoKeyUsageSign
+        :: JSVal
+ 
+foreign import javascript unsafe "\"verify\""
+        js_CryptoKeyUsageVerify :: JSVal
+ 
+foreign import javascript unsafe "\"deriveKey\""
+        js_CryptoKeyUsageDeriveKey :: JSVal
+ 
+foreign import javascript unsafe "\"deriveBits\""
+        js_CryptoKeyUsageDeriveBits :: JSVal
+ 
+foreign import javascript unsafe "\"wrapKey\""
+        js_CryptoKeyUsageWrapKey :: JSVal
+ 
+foreign import javascript unsafe "\"unwrapKey\""
+        js_CryptoKeyUsageUnwrapKey :: JSVal
+ 
+data KeyFormat = KeyFormatRaw
+               | KeyFormatSpki
+               | KeyFormatPkcs8
+               | KeyFormatJwk
+               deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal KeyFormat where
+        pToJSVal KeyFormatRaw = js_KeyFormatRaw
+        pToJSVal KeyFormatSpki = js_KeyFormatSpki
+        pToJSVal KeyFormatPkcs8 = js_KeyFormatPkcs8
+        pToJSVal KeyFormatJwk = js_KeyFormatJwk
+ 
+instance ToJSVal KeyFormat where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal KeyFormat where
+        pFromJSVal x | x `js_eq` js_KeyFormatRaw = KeyFormatRaw
+        pFromJSVal x | x `js_eq` js_KeyFormatSpki = KeyFormatSpki
+        pFromJSVal x | x `js_eq` js_KeyFormatPkcs8 = KeyFormatPkcs8
+        pFromJSVal x | x `js_eq` js_KeyFormatJwk = KeyFormatJwk
+ 
+instance FromJSVal KeyFormat where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"raw\"" js_KeyFormatRaw :: JSVal
+ 
+foreign import javascript unsafe "\"spki\"" js_KeyFormatSpki ::
+        JSVal
+ 
+foreign import javascript unsafe "\"pkcs8\"" js_KeyFormatPkcs8 ::
+        JSVal
+ 
+foreign import javascript unsafe "\"jwk\"" js_KeyFormatJwk :: JSVal
+ 
+data FontFaceLoadStatus = FontFaceLoadStatusUnloaded
+                        | FontFaceLoadStatusLoading
+                        | FontFaceLoadStatusLoaded
+                        | FontFaceLoadStatusError
+                        deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal FontFaceLoadStatus where
+        pToJSVal FontFaceLoadStatusUnloaded = js_FontFaceLoadStatusUnloaded
+        pToJSVal FontFaceLoadStatusLoading = js_FontFaceLoadStatusLoading
+        pToJSVal FontFaceLoadStatusLoaded = js_FontFaceLoadStatusLoaded
+        pToJSVal FontFaceLoadStatusError = js_FontFaceLoadStatusError
+ 
+instance ToJSVal FontFaceLoadStatus where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal FontFaceLoadStatus where
+        pFromJSVal x
+          | x `js_eq` js_FontFaceLoadStatusUnloaded =
+            FontFaceLoadStatusUnloaded
+        pFromJSVal x
+          | x `js_eq` js_FontFaceLoadStatusLoading =
+            FontFaceLoadStatusLoading
+        pFromJSVal x
+          | x `js_eq` js_FontFaceLoadStatusLoaded = FontFaceLoadStatusLoaded
+        pFromJSVal x
+          | x `js_eq` js_FontFaceLoadStatusError = FontFaceLoadStatusError
+ 
+instance FromJSVal FontFaceLoadStatus where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"unloaded\""
+        js_FontFaceLoadStatusUnloaded :: JSVal
+ 
+foreign import javascript unsafe "\"loading\""
+        js_FontFaceLoadStatusLoading :: JSVal
+ 
+foreign import javascript unsafe "\"loaded\""
+        js_FontFaceLoadStatusLoaded :: JSVal
+ 
+foreign import javascript unsafe "\"error\""
+        js_FontFaceLoadStatusError :: JSVal
+ 
+data FontFaceSetLoadStatus = FontFaceSetLoadStatusLoading
+                           | FontFaceSetLoadStatusLoaded
+                           deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal FontFaceSetLoadStatus where
+        pToJSVal FontFaceSetLoadStatusLoading
+          = js_FontFaceSetLoadStatusLoading
+        pToJSVal FontFaceSetLoadStatusLoaded
+          = js_FontFaceSetLoadStatusLoaded
+ 
+instance ToJSVal FontFaceSetLoadStatus where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal FontFaceSetLoadStatus where
+        pFromJSVal x
+          | x `js_eq` js_FontFaceSetLoadStatusLoading =
+            FontFaceSetLoadStatusLoading
+        pFromJSVal x
+          | x `js_eq` js_FontFaceSetLoadStatusLoaded =
+            FontFaceSetLoadStatusLoaded
+ 
+instance FromJSVal FontFaceSetLoadStatus where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"loading\""
+        js_FontFaceSetLoadStatusLoading :: JSVal
+ 
+foreign import javascript unsafe "\"loaded\""
+        js_FontFaceSetLoadStatusLoaded :: JSVal
+ 
+data VisibilityState = VisibilityStateHidden
+                     | VisibilityStateVisible
+                     | VisibilityStatePrerender
+                     deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal VisibilityState where
+        pToJSVal VisibilityStateHidden = js_VisibilityStateHidden
+        pToJSVal VisibilityStateVisible = js_VisibilityStateVisible
+        pToJSVal VisibilityStatePrerender = js_VisibilityStatePrerender
+ 
+instance ToJSVal VisibilityState where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal VisibilityState where
+        pFromJSVal x
+          | x `js_eq` js_VisibilityStateHidden = VisibilityStateHidden
+        pFromJSVal x
+          | x `js_eq` js_VisibilityStateVisible = VisibilityStateVisible
+        pFromJSVal x
+          | x `js_eq` js_VisibilityStatePrerender = VisibilityStatePrerender
+ 
+instance FromJSVal VisibilityState where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"hidden\""
+        js_VisibilityStateHidden :: JSVal
+ 
+foreign import javascript unsafe "\"visible\""
+        js_VisibilityStateVisible :: JSVal
+ 
+foreign import javascript unsafe "\"prerender\""
+        js_VisibilityStatePrerender :: JSVal
+ 
+data ShadowRootMode = ShadowRootModeUserAgent
+                    | ShadowRootModeClosed
+                    | ShadowRootModeOpen
+                    deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal ShadowRootMode where
+        pToJSVal ShadowRootModeUserAgent = js_ShadowRootModeUserAgent
+        pToJSVal ShadowRootModeClosed = js_ShadowRootModeClosed
+        pToJSVal ShadowRootModeOpen = js_ShadowRootModeOpen
+ 
+instance ToJSVal ShadowRootMode where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal ShadowRootMode where
+        pFromJSVal x
+          | x `js_eq` js_ShadowRootModeUserAgent = ShadowRootModeUserAgent
+        pFromJSVal x
+          | x `js_eq` js_ShadowRootModeClosed = ShadowRootModeClosed
+        pFromJSVal x | x `js_eq` js_ShadowRootModeOpen = ShadowRootModeOpen
+ 
+instance FromJSVal ShadowRootMode where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"user-agent\""
+        js_ShadowRootModeUserAgent :: JSVal
+ 
+foreign import javascript unsafe "\"closed\""
+        js_ShadowRootModeClosed :: JSVal
+ 
+foreign import javascript unsafe "\"open\"" js_ShadowRootModeOpen
+        :: JSVal
+ 
+data BlobLineEndings = BlobLineEndingsTransparent
+                     | BlobLineEndingsNative
+                     deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal BlobLineEndings where
+        pToJSVal BlobLineEndingsTransparent = js_BlobLineEndingsTransparent
+        pToJSVal BlobLineEndingsNative = js_BlobLineEndingsNative
+ 
+instance ToJSVal BlobLineEndings where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal BlobLineEndings where
+        pFromJSVal x
+          | x `js_eq` js_BlobLineEndingsTransparent =
+            BlobLineEndingsTransparent
+        pFromJSVal x
+          | x `js_eq` js_BlobLineEndingsNative = BlobLineEndingsNative
+ 
+instance FromJSVal BlobLineEndings where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"transparent\""
+        js_BlobLineEndingsTransparent :: JSVal
+ 
+foreign import javascript unsafe "\"native\""
+        js_BlobLineEndingsNative :: JSVal
+ 
+data ImageSmoothingQuality = ImageSmoothingQualityLow
+                           | ImageSmoothingQualityMedium
+                           | ImageSmoothingQualityHigh
+                           deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal ImageSmoothingQuality where
+        pToJSVal ImageSmoothingQualityLow = js_ImageSmoothingQualityLow
+        pToJSVal ImageSmoothingQualityMedium
+          = js_ImageSmoothingQualityMedium
+        pToJSVal ImageSmoothingQualityHigh = js_ImageSmoothingQualityHigh
+ 
+instance ToJSVal ImageSmoothingQuality where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal ImageSmoothingQuality where
+        pFromJSVal x
+          | x `js_eq` js_ImageSmoothingQualityLow = ImageSmoothingQualityLow
+        pFromJSVal x
+          | x `js_eq` js_ImageSmoothingQualityMedium =
+            ImageSmoothingQualityMedium
+        pFromJSVal x
+          | x `js_eq` js_ImageSmoothingQualityHigh =
+            ImageSmoothingQualityHigh
+ 
+instance FromJSVal ImageSmoothingQuality where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"low\""
+        js_ImageSmoothingQualityLow :: JSVal
+ 
+foreign import javascript unsafe "\"medium\""
+        js_ImageSmoothingQualityMedium :: JSVal
+ 
+foreign import javascript unsafe "\"high\""
+        js_ImageSmoothingQualityHigh :: JSVal
+ 
+data CanvasWindingRule = CanvasWindingRuleNonzero
+                       | CanvasWindingRuleEvenodd
+                       deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal CanvasWindingRule where
+        pToJSVal CanvasWindingRuleNonzero = js_CanvasWindingRuleNonzero
+        pToJSVal CanvasWindingRuleEvenodd = js_CanvasWindingRuleEvenodd
+ 
+instance ToJSVal CanvasWindingRule where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal CanvasWindingRule where
+        pFromJSVal x
+          | x `js_eq` js_CanvasWindingRuleNonzero = CanvasWindingRuleNonzero
+        pFromJSVal x
+          | x `js_eq` js_CanvasWindingRuleEvenodd = CanvasWindingRuleEvenodd
+ 
+instance FromJSVal CanvasWindingRule where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"nonzero\""
+        js_CanvasWindingRuleNonzero :: JSVal
+ 
+foreign import javascript unsafe "\"evenodd\""
+        js_CanvasWindingRuleEvenodd :: JSVal
+ 
+data WebGLPowerPreference = WebGLPowerPreferenceDefault
+                          | WebGLPowerPreferenceLowPower
+                          | WebGLPowerPreferenceHighPerformance
+                          deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal WebGLPowerPreference where
+        pToJSVal WebGLPowerPreferenceDefault
+          = js_WebGLPowerPreferenceDefault
+        pToJSVal WebGLPowerPreferenceLowPower
+          = js_WebGLPowerPreferenceLowPower
+        pToJSVal WebGLPowerPreferenceHighPerformance
+          = js_WebGLPowerPreferenceHighPerformance
+ 
+instance ToJSVal WebGLPowerPreference where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal WebGLPowerPreference where
+        pFromJSVal x
+          | x `js_eq` js_WebGLPowerPreferenceDefault =
+            WebGLPowerPreferenceDefault
+        pFromJSVal x
+          | x `js_eq` js_WebGLPowerPreferenceLowPower =
+            WebGLPowerPreferenceLowPower
+        pFromJSVal x
+          | x `js_eq` js_WebGLPowerPreferenceHighPerformance =
+            WebGLPowerPreferenceHighPerformance
+ 
+instance FromJSVal WebGLPowerPreference where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"default\""
+        js_WebGLPowerPreferenceDefault :: JSVal
+ 
+foreign import javascript unsafe "\"low-power\""
+        js_WebGLPowerPreferenceLowPower :: JSVal
+ 
+foreign import javascript unsafe "\"high-performance\""
+        js_WebGLPowerPreferenceHighPerformance :: JSVal
+ 
+data VideoPresentationMode = VideoPresentationModeFullscreen
+                           | VideoPresentationModePictureInPicture
+                           | VideoPresentationModeInline
+                           deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal VideoPresentationMode where
+        pToJSVal VideoPresentationModeFullscreen
+          = js_VideoPresentationModeFullscreen
+        pToJSVal VideoPresentationModePictureInPicture
+          = js_VideoPresentationModePictureInPicture
+        pToJSVal VideoPresentationModeInline
+          = js_VideoPresentationModeInline
+ 
+instance ToJSVal VideoPresentationMode where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal VideoPresentationMode where
+        pFromJSVal x
+          | x `js_eq` js_VideoPresentationModeFullscreen =
+            VideoPresentationModeFullscreen
+        pFromJSVal x
+          | x `js_eq` js_VideoPresentationModePictureInPicture =
+            VideoPresentationModePictureInPicture
+        pFromJSVal x
+          | x `js_eq` js_VideoPresentationModeInline =
+            VideoPresentationModeInline
+ 
+instance FromJSVal VideoPresentationMode where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"fullscreen\""
+        js_VideoPresentationModeFullscreen :: JSVal
+ 
+foreign import javascript unsafe "\"picture-in-picture\""
+        js_VideoPresentationModePictureInPicture :: JSVal
+ 
+foreign import javascript unsafe "\"inline\""
+        js_VideoPresentationModeInline :: JSVal
+ 
+data TextTrackMode = TextTrackModeDisabled
+                   | TextTrackModeHidden
+                   | TextTrackModeShowing
+                   deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal TextTrackMode where
+        pToJSVal TextTrackModeDisabled = js_TextTrackModeDisabled
+        pToJSVal TextTrackModeHidden = js_TextTrackModeHidden
+        pToJSVal TextTrackModeShowing = js_TextTrackModeShowing
+ 
+instance ToJSVal TextTrackMode where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal TextTrackMode where
+        pFromJSVal x
+          | x `js_eq` js_TextTrackModeDisabled = TextTrackModeDisabled
+        pFromJSVal x
+          | x `js_eq` js_TextTrackModeHidden = TextTrackModeHidden
+        pFromJSVal x
+          | x `js_eq` js_TextTrackModeShowing = TextTrackModeShowing
+ 
+instance FromJSVal TextTrackMode where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"disabled\""
+        js_TextTrackModeDisabled :: JSVal
+ 
+foreign import javascript unsafe "\"hidden\""
+        js_TextTrackModeHidden :: JSVal
+ 
+foreign import javascript unsafe "\"showing\""
+        js_TextTrackModeShowing :: JSVal
+ 
+data TextTrackKind = TextTrackKindSubtitles
+                   | TextTrackKindCaptions
+                   | TextTrackKindDescriptions
+                   | TextTrackKindChapters
+                   | TextTrackKindMetadata
+                   | TextTrackKindForced
+                   deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal TextTrackKind where
+        pToJSVal TextTrackKindSubtitles = js_TextTrackKindSubtitles
+        pToJSVal TextTrackKindCaptions = js_TextTrackKindCaptions
+        pToJSVal TextTrackKindDescriptions = js_TextTrackKindDescriptions
+        pToJSVal TextTrackKindChapters = js_TextTrackKindChapters
+        pToJSVal TextTrackKindMetadata = js_TextTrackKindMetadata
+        pToJSVal TextTrackKindForced = js_TextTrackKindForced
+ 
+instance ToJSVal TextTrackKind where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal TextTrackKind where
+        pFromJSVal x
+          | x `js_eq` js_TextTrackKindSubtitles = TextTrackKindSubtitles
+        pFromJSVal x
+          | x `js_eq` js_TextTrackKindCaptions = TextTrackKindCaptions
+        pFromJSVal x
+          | x `js_eq` js_TextTrackKindDescriptions =
+            TextTrackKindDescriptions
+        pFromJSVal x
+          | x `js_eq` js_TextTrackKindChapters = TextTrackKindChapters
+        pFromJSVal x
+          | x `js_eq` js_TextTrackKindMetadata = TextTrackKindMetadata
+        pFromJSVal x
+          | x `js_eq` js_TextTrackKindForced = TextTrackKindForced
+ 
+instance FromJSVal TextTrackKind where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"subtitles\""
+        js_TextTrackKindSubtitles :: JSVal
+ 
+foreign import javascript unsafe "\"captions\""
+        js_TextTrackKindCaptions :: JSVal
+ 
+foreign import javascript unsafe "\"descriptions\""
+        js_TextTrackKindDescriptions :: JSVal
+ 
+foreign import javascript unsafe "\"chapters\""
+        js_TextTrackKindChapters :: JSVal
+ 
+foreign import javascript unsafe "\"metadata\""
+        js_TextTrackKindMetadata :: JSVal
+ 
+foreign import javascript unsafe "\"forced\""
+        js_TextTrackKindForced :: JSVal
+ 
+data ApplePayLineItemType = ApplePayLineItemTypePending
+                          | ApplePayLineItemTypeFinal
+                          deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal ApplePayLineItemType where
+        pToJSVal ApplePayLineItemTypePending
+          = js_ApplePayLineItemTypePending
+        pToJSVal ApplePayLineItemTypeFinal = js_ApplePayLineItemTypeFinal
+ 
+instance ToJSVal ApplePayLineItemType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal ApplePayLineItemType where
+        pFromJSVal x
+          | x `js_eq` js_ApplePayLineItemTypePending =
+            ApplePayLineItemTypePending
+        pFromJSVal x
+          | x `js_eq` js_ApplePayLineItemTypeFinal =
+            ApplePayLineItemTypeFinal
+ 
+instance FromJSVal ApplePayLineItemType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"pending\""
+        js_ApplePayLineItemTypePending :: JSVal
+ 
+foreign import javascript unsafe "\"final\""
+        js_ApplePayLineItemTypeFinal :: JSVal
+ 
+data ApplePayPaymentMethodType = ApplePayPaymentMethodTypeDebit
+                               | ApplePayPaymentMethodTypeCredit
+                               | ApplePayPaymentMethodTypePrepaid
+                               | ApplePayPaymentMethodTypeStore
+                               deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal ApplePayPaymentMethodType where
+        pToJSVal ApplePayPaymentMethodTypeDebit
+          = js_ApplePayPaymentMethodTypeDebit
+        pToJSVal ApplePayPaymentMethodTypeCredit
+          = js_ApplePayPaymentMethodTypeCredit
+        pToJSVal ApplePayPaymentMethodTypePrepaid
+          = js_ApplePayPaymentMethodTypePrepaid
+        pToJSVal ApplePayPaymentMethodTypeStore
+          = js_ApplePayPaymentMethodTypeStore
+ 
+instance ToJSVal ApplePayPaymentMethodType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal ApplePayPaymentMethodType where
+        pFromJSVal x
+          | x `js_eq` js_ApplePayPaymentMethodTypeDebit =
+            ApplePayPaymentMethodTypeDebit
+        pFromJSVal x
+          | x `js_eq` js_ApplePayPaymentMethodTypeCredit =
+            ApplePayPaymentMethodTypeCredit
+        pFromJSVal x
+          | x `js_eq` js_ApplePayPaymentMethodTypePrepaid =
+            ApplePayPaymentMethodTypePrepaid
+        pFromJSVal x
+          | x `js_eq` js_ApplePayPaymentMethodTypeStore =
+            ApplePayPaymentMethodTypeStore
+ 
+instance FromJSVal ApplePayPaymentMethodType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"debit\""
+        js_ApplePayPaymentMethodTypeDebit :: JSVal
+ 
+foreign import javascript unsafe "\"credit\""
+        js_ApplePayPaymentMethodTypeCredit :: JSVal
+ 
+foreign import javascript unsafe "\"prepaid\""
+        js_ApplePayPaymentMethodTypePrepaid :: JSVal
+ 
+foreign import javascript unsafe "\"store\""
+        js_ApplePayPaymentMethodTypeStore :: JSVal
+ 
+data ApplePayPaymentPassActivationState = ApplePayPaymentPassActivationStateActivated
+                                        | ApplePayPaymentPassActivationStateRequiresActivation
+                                        | ApplePayPaymentPassActivationStateActivating
+                                        | ApplePayPaymentPassActivationStateSuspended
+                                        | ApplePayPaymentPassActivationStateDeactivated
+                                        deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal ApplePayPaymentPassActivationState where
+        pToJSVal ApplePayPaymentPassActivationStateActivated
+          = js_ApplePayPaymentPassActivationStateActivated
+        pToJSVal ApplePayPaymentPassActivationStateRequiresActivation
+          = js_ApplePayPaymentPassActivationStateRequiresActivation
+        pToJSVal ApplePayPaymentPassActivationStateActivating
+          = js_ApplePayPaymentPassActivationStateActivating
+        pToJSVal ApplePayPaymentPassActivationStateSuspended
+          = js_ApplePayPaymentPassActivationStateSuspended
+        pToJSVal ApplePayPaymentPassActivationStateDeactivated
+          = js_ApplePayPaymentPassActivationStateDeactivated
+ 
+instance ToJSVal ApplePayPaymentPassActivationState where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal ApplePayPaymentPassActivationState where
+        pFromJSVal x
+          | x `js_eq` js_ApplePayPaymentPassActivationStateActivated =
+            ApplePayPaymentPassActivationStateActivated
+        pFromJSVal x
+          | x `js_eq` js_ApplePayPaymentPassActivationStateRequiresActivation
+            = ApplePayPaymentPassActivationStateRequiresActivation
+        pFromJSVal x
+          | x `js_eq` js_ApplePayPaymentPassActivationStateActivating =
+            ApplePayPaymentPassActivationStateActivating
+        pFromJSVal x
+          | x `js_eq` js_ApplePayPaymentPassActivationStateSuspended =
+            ApplePayPaymentPassActivationStateSuspended
+        pFromJSVal x
+          | x `js_eq` js_ApplePayPaymentPassActivationStateDeactivated =
+            ApplePayPaymentPassActivationStateDeactivated
+ 
+instance FromJSVal ApplePayPaymentPassActivationState where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"activated\""
+        js_ApplePayPaymentPassActivationStateActivated :: JSVal
+ 
+foreign import javascript unsafe "\"requiresActivation\""
+        js_ApplePayPaymentPassActivationStateRequiresActivation :: JSVal
+ 
+foreign import javascript unsafe "\"activating\""
+        js_ApplePayPaymentPassActivationStateActivating :: JSVal
+ 
+foreign import javascript unsafe "\"suspended\""
+        js_ApplePayPaymentPassActivationStateSuspended :: JSVal
+ 
+foreign import javascript unsafe "\"deactivated\""
+        js_ApplePayPaymentPassActivationStateDeactivated :: JSVal
+ 
+data ApplePayMerchantCapability = ApplePayMerchantCapabilitySupports3DS
+                                | ApplePayMerchantCapabilitySupportsEMV
+                                | ApplePayMerchantCapabilitySupportsCredit
+                                | ApplePayMerchantCapabilitySupportsDebit
+                                deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal ApplePayMerchantCapability where
+        pToJSVal ApplePayMerchantCapabilitySupports3DS
+          = js_ApplePayMerchantCapabilitySupports3DS
+        pToJSVal ApplePayMerchantCapabilitySupportsEMV
+          = js_ApplePayMerchantCapabilitySupportsEMV
+        pToJSVal ApplePayMerchantCapabilitySupportsCredit
+          = js_ApplePayMerchantCapabilitySupportsCredit
+        pToJSVal ApplePayMerchantCapabilitySupportsDebit
+          = js_ApplePayMerchantCapabilitySupportsDebit
+ 
+instance ToJSVal ApplePayMerchantCapability where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal ApplePayMerchantCapability where
+        pFromJSVal x
+          | x `js_eq` js_ApplePayMerchantCapabilitySupports3DS =
+            ApplePayMerchantCapabilitySupports3DS
+        pFromJSVal x
+          | x `js_eq` js_ApplePayMerchantCapabilitySupportsEMV =
+            ApplePayMerchantCapabilitySupportsEMV
+        pFromJSVal x
+          | x `js_eq` js_ApplePayMerchantCapabilitySupportsCredit =
+            ApplePayMerchantCapabilitySupportsCredit
+        pFromJSVal x
+          | x `js_eq` js_ApplePayMerchantCapabilitySupportsDebit =
+            ApplePayMerchantCapabilitySupportsDebit
+ 
+instance FromJSVal ApplePayMerchantCapability where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"supports3DS\""
+        js_ApplePayMerchantCapabilitySupports3DS :: JSVal
+ 
+foreign import javascript unsafe "\"supportsEMV\""
+        js_ApplePayMerchantCapabilitySupportsEMV :: JSVal
+ 
+foreign import javascript unsafe "\"supportsCredit\""
+        js_ApplePayMerchantCapabilitySupportsCredit :: JSVal
+ 
+foreign import javascript unsafe "\"supportsDebit\""
+        js_ApplePayMerchantCapabilitySupportsDebit :: JSVal
+ 
+data ApplePayContactField = ApplePayContactFieldEmail
+                          | ApplePayContactFieldName
+                          | ApplePayContactFieldPhone
+                          | ApplePayContactFieldPostalAddress
+                          deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal ApplePayContactField where
+        pToJSVal ApplePayContactFieldEmail = js_ApplePayContactFieldEmail
+        pToJSVal ApplePayContactFieldName = js_ApplePayContactFieldName
+        pToJSVal ApplePayContactFieldPhone = js_ApplePayContactFieldPhone
+        pToJSVal ApplePayContactFieldPostalAddress
+          = js_ApplePayContactFieldPostalAddress
+ 
+instance ToJSVal ApplePayContactField where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal ApplePayContactField where
+        pFromJSVal x
+          | x `js_eq` js_ApplePayContactFieldEmail =
+            ApplePayContactFieldEmail
+        pFromJSVal x
+          | x `js_eq` js_ApplePayContactFieldName = ApplePayContactFieldName
+        pFromJSVal x
+          | x `js_eq` js_ApplePayContactFieldPhone =
+            ApplePayContactFieldPhone
+        pFromJSVal x
+          | x `js_eq` js_ApplePayContactFieldPostalAddress =
+            ApplePayContactFieldPostalAddress
+ 
+instance FromJSVal ApplePayContactField where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"email\""
+        js_ApplePayContactFieldEmail :: JSVal
+ 
+foreign import javascript unsafe "\"name\""
+        js_ApplePayContactFieldName :: JSVal
+ 
+foreign import javascript unsafe "\"phone\""
+        js_ApplePayContactFieldPhone :: JSVal
+ 
+foreign import javascript unsafe "\"postalAddress\""
+        js_ApplePayContactFieldPostalAddress :: JSVal
+ 
+data ApplePayShippingType = ApplePayShippingTypeShipping
+                          | ApplePayShippingTypeDelivery
+                          | ApplePayShippingTypeStorePickup
+                          | ApplePayShippingTypeServicePickup
+                          deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal ApplePayShippingType where
+        pToJSVal ApplePayShippingTypeShipping
+          = js_ApplePayShippingTypeShipping
+        pToJSVal ApplePayShippingTypeDelivery
+          = js_ApplePayShippingTypeDelivery
+        pToJSVal ApplePayShippingTypeStorePickup
+          = js_ApplePayShippingTypeStorePickup
+        pToJSVal ApplePayShippingTypeServicePickup
+          = js_ApplePayShippingTypeServicePickup
+ 
+instance ToJSVal ApplePayShippingType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal ApplePayShippingType where
+        pFromJSVal x
+          | x `js_eq` js_ApplePayShippingTypeShipping =
+            ApplePayShippingTypeShipping
+        pFromJSVal x
+          | x `js_eq` js_ApplePayShippingTypeDelivery =
+            ApplePayShippingTypeDelivery
+        pFromJSVal x
+          | x `js_eq` js_ApplePayShippingTypeStorePickup =
+            ApplePayShippingTypeStorePickup
+        pFromJSVal x
+          | x `js_eq` js_ApplePayShippingTypeServicePickup =
+            ApplePayShippingTypeServicePickup
+ 
+instance FromJSVal ApplePayShippingType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"shipping\""
+        js_ApplePayShippingTypeShipping :: JSVal
+ 
+foreign import javascript unsafe "\"delivery\""
+        js_ApplePayShippingTypeDelivery :: JSVal
+ 
+foreign import javascript unsafe "\"storePickup\""
+        js_ApplePayShippingTypeStorePickup :: JSVal
+ 
+foreign import javascript unsafe "\"servicePickup\""
+        js_ApplePayShippingTypeServicePickup :: JSVal
+ 
+data MediaKeyMessageType = MediaKeyMessageTypeLicenseRequest
+                         | MediaKeyMessageTypeLicenseRenewal
+                         | MediaKeyMessageTypeLicenseRelease
+                         | MediaKeyMessageTypeIndividualizationRequest
+                         deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal MediaKeyMessageType where
+        pToJSVal MediaKeyMessageTypeLicenseRequest
+          = js_MediaKeyMessageTypeLicenseRequest
+        pToJSVal MediaKeyMessageTypeLicenseRenewal
+          = js_MediaKeyMessageTypeLicenseRenewal
+        pToJSVal MediaKeyMessageTypeLicenseRelease
+          = js_MediaKeyMessageTypeLicenseRelease
+        pToJSVal MediaKeyMessageTypeIndividualizationRequest
+          = js_MediaKeyMessageTypeIndividualizationRequest
+ 
+instance ToJSVal MediaKeyMessageType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal MediaKeyMessageType where
+        pFromJSVal x
+          | x `js_eq` js_MediaKeyMessageTypeLicenseRequest =
+            MediaKeyMessageTypeLicenseRequest
+        pFromJSVal x
+          | x `js_eq` js_MediaKeyMessageTypeLicenseRenewal =
+            MediaKeyMessageTypeLicenseRenewal
+        pFromJSVal x
+          | x `js_eq` js_MediaKeyMessageTypeLicenseRelease =
+            MediaKeyMessageTypeLicenseRelease
+        pFromJSVal x
+          | x `js_eq` js_MediaKeyMessageTypeIndividualizationRequest =
+            MediaKeyMessageTypeIndividualizationRequest
+ 
+instance FromJSVal MediaKeyMessageType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"license-request\""
+        js_MediaKeyMessageTypeLicenseRequest :: JSVal
+ 
+foreign import javascript unsafe "\"license-renewal\""
+        js_MediaKeyMessageTypeLicenseRenewal :: JSVal
+ 
+foreign import javascript unsafe "\"license-release\""
+        js_MediaKeyMessageTypeLicenseRelease :: JSVal
+ 
+foreign import javascript unsafe "\"individualization-request\""
+        js_MediaKeyMessageTypeIndividualizationRequest :: JSVal
+ 
+data MediaKeySessionType = MediaKeySessionTypeTemporary
+                         | MediaKeySessionTypePersistentUsageRecord
+                         | MediaKeySessionTypePersistentLicense
+                         deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal MediaKeySessionType where
+        pToJSVal MediaKeySessionTypeTemporary
+          = js_MediaKeySessionTypeTemporary
+        pToJSVal MediaKeySessionTypePersistentUsageRecord
+          = js_MediaKeySessionTypePersistentUsageRecord
+        pToJSVal MediaKeySessionTypePersistentLicense
+          = js_MediaKeySessionTypePersistentLicense
+ 
+instance ToJSVal MediaKeySessionType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal MediaKeySessionType where
+        pFromJSVal x
+          | x `js_eq` js_MediaKeySessionTypeTemporary =
+            MediaKeySessionTypeTemporary
+        pFromJSVal x
+          | x `js_eq` js_MediaKeySessionTypePersistentUsageRecord =
+            MediaKeySessionTypePersistentUsageRecord
+        pFromJSVal x
+          | x `js_eq` js_MediaKeySessionTypePersistentLicense =
+            MediaKeySessionTypePersistentLicense
+ 
+instance FromJSVal MediaKeySessionType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"temporary\""
+        js_MediaKeySessionTypeTemporary :: JSVal
+ 
+foreign import javascript unsafe "\"persistent-usage-record\""
+        js_MediaKeySessionTypePersistentUsageRecord :: JSVal
+ 
+foreign import javascript unsafe "\"persistent-license\""
+        js_MediaKeySessionTypePersistentLicense :: JSVal
+ 
+data MediaKeysRequirement = MediaKeysRequirementRequired
+                          | MediaKeysRequirementOptional
+                          | MediaKeysRequirementNotAllowed
+                          deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal MediaKeysRequirement where
+        pToJSVal MediaKeysRequirementRequired
+          = js_MediaKeysRequirementRequired
+        pToJSVal MediaKeysRequirementOptional
+          = js_MediaKeysRequirementOptional
+        pToJSVal MediaKeysRequirementNotAllowed
+          = js_MediaKeysRequirementNotAllowed
+ 
+instance ToJSVal MediaKeysRequirement where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal MediaKeysRequirement where
+        pFromJSVal x
+          | x `js_eq` js_MediaKeysRequirementRequired =
+            MediaKeysRequirementRequired
+        pFromJSVal x
+          | x `js_eq` js_MediaKeysRequirementOptional =
+            MediaKeysRequirementOptional
+        pFromJSVal x
+          | x `js_eq` js_MediaKeysRequirementNotAllowed =
+            MediaKeysRequirementNotAllowed
+ 
+instance FromJSVal MediaKeysRequirement where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"required\""
+        js_MediaKeysRequirementRequired :: JSVal
+ 
+foreign import javascript unsafe "\"optional\""
+        js_MediaKeysRequirementOptional :: JSVal
+ 
+foreign import javascript unsafe "\"not-allowed\""
+        js_MediaKeysRequirementNotAllowed :: JSVal
+ 
+data MediaKeyStatus = MediaKeyStatusUsable
+                    | MediaKeyStatusExpired
+                    | MediaKeyStatusReleased
+                    | MediaKeyStatusOutputRestricted
+                    | MediaKeyStatusOutputDownscaled
+                    | MediaKeyStatusStatusPending
+                    | MediaKeyStatusInternalError
+                    deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal MediaKeyStatus where
+        pToJSVal MediaKeyStatusUsable = js_MediaKeyStatusUsable
+        pToJSVal MediaKeyStatusExpired = js_MediaKeyStatusExpired
+        pToJSVal MediaKeyStatusReleased = js_MediaKeyStatusReleased
+        pToJSVal MediaKeyStatusOutputRestricted
+          = js_MediaKeyStatusOutputRestricted
+        pToJSVal MediaKeyStatusOutputDownscaled
+          = js_MediaKeyStatusOutputDownscaled
+        pToJSVal MediaKeyStatusStatusPending
+          = js_MediaKeyStatusStatusPending
+        pToJSVal MediaKeyStatusInternalError
+          = js_MediaKeyStatusInternalError
+ 
+instance ToJSVal MediaKeyStatus where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal MediaKeyStatus where
+        pFromJSVal x
+          | x `js_eq` js_MediaKeyStatusUsable = MediaKeyStatusUsable
+        pFromJSVal x
+          | x `js_eq` js_MediaKeyStatusExpired = MediaKeyStatusExpired
+        pFromJSVal x
+          | x `js_eq` js_MediaKeyStatusReleased = MediaKeyStatusReleased
+        pFromJSVal x
+          | x `js_eq` js_MediaKeyStatusOutputRestricted =
+            MediaKeyStatusOutputRestricted
+        pFromJSVal x
+          | x `js_eq` js_MediaKeyStatusOutputDownscaled =
+            MediaKeyStatusOutputDownscaled
+        pFromJSVal x
+          | x `js_eq` js_MediaKeyStatusStatusPending =
+            MediaKeyStatusStatusPending
+        pFromJSVal x
+          | x `js_eq` js_MediaKeyStatusInternalError =
+            MediaKeyStatusInternalError
+ 
+instance FromJSVal MediaKeyStatus where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"usable\""
+        js_MediaKeyStatusUsable :: JSVal
+ 
+foreign import javascript unsafe "\"expired\""
+        js_MediaKeyStatusExpired :: JSVal
+ 
+foreign import javascript unsafe "\"released\""
+        js_MediaKeyStatusReleased :: JSVal
+ 
+foreign import javascript unsafe "\"output-restricted\""
+        js_MediaKeyStatusOutputRestricted :: JSVal
+ 
+foreign import javascript unsafe "\"output-downscaled\""
+        js_MediaKeyStatusOutputDownscaled :: JSVal
+ 
+foreign import javascript unsafe "\"status-pending\""
+        js_MediaKeyStatusStatusPending :: JSVal
+ 
+foreign import javascript unsafe "\"internal-error\""
+        js_MediaKeyStatusInternalError :: JSVal
+ 
+data RequestType = RequestType
+                 | RequestTypeAudio
+                 | RequestTypeFont
+                 | RequestTypeImage
+                 | RequestTypeScript
+                 | RequestTypeStyle
+                 | RequestTypeTrack
+                 | RequestTypeVideo
+                 deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal RequestType where
+        pToJSVal RequestType = js_RequestType
+        pToJSVal RequestTypeAudio = js_RequestTypeAudio
+        pToJSVal RequestTypeFont = js_RequestTypeFont
+        pToJSVal RequestTypeImage = js_RequestTypeImage
+        pToJSVal RequestTypeScript = js_RequestTypeScript
+        pToJSVal RequestTypeStyle = js_RequestTypeStyle
+        pToJSVal RequestTypeTrack = js_RequestTypeTrack
+        pToJSVal RequestTypeVideo = js_RequestTypeVideo
+ 
+instance ToJSVal RequestType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal RequestType where
+        pFromJSVal x | x `js_eq` js_RequestType = RequestType
+        pFromJSVal x | x `js_eq` js_RequestTypeAudio = RequestTypeAudio
+        pFromJSVal x | x `js_eq` js_RequestTypeFont = RequestTypeFont
+        pFromJSVal x | x `js_eq` js_RequestTypeImage = RequestTypeImage
+        pFromJSVal x | x `js_eq` js_RequestTypeScript = RequestTypeScript
+        pFromJSVal x | x `js_eq` js_RequestTypeStyle = RequestTypeStyle
+        pFromJSVal x | x `js_eq` js_RequestTypeTrack = RequestTypeTrack
+        pFromJSVal x | x `js_eq` js_RequestTypeVideo = RequestTypeVideo
+ 
+instance FromJSVal RequestType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"\"" js_RequestType :: JSVal
+ 
+foreign import javascript unsafe "\"audio\"" js_RequestTypeAudio ::
+        JSVal
+ 
+foreign import javascript unsafe "\"font\"" js_RequestTypeFont ::
+        JSVal
+ 
+foreign import javascript unsafe "\"image\"" js_RequestTypeImage ::
+        JSVal
+ 
+foreign import javascript unsafe "\"script\"" js_RequestTypeScript
+        :: JSVal
+ 
+foreign import javascript unsafe "\"style\"" js_RequestTypeStyle ::
+        JSVal
+ 
+foreign import javascript unsafe "\"track\"" js_RequestTypeTrack ::
+        JSVal
+ 
+foreign import javascript unsafe "\"video\"" js_RequestTypeVideo ::
+        JSVal
+ 
+data RequestDestination = RequestDestination
+                        | RequestDestinationDocument
+                        | RequestDestinationSharedworker
+                        | RequestDestinationSubresource
+                        | RequestDestinationUnknown
+                        | RequestDestinationWorker
+                        deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal RequestDestination where
+        pToJSVal RequestDestination = js_RequestDestination
+        pToJSVal RequestDestinationDocument = js_RequestDestinationDocument
+        pToJSVal RequestDestinationSharedworker
+          = js_RequestDestinationSharedworker
+        pToJSVal RequestDestinationSubresource
+          = js_RequestDestinationSubresource
+        pToJSVal RequestDestinationUnknown = js_RequestDestinationUnknown
+        pToJSVal RequestDestinationWorker = js_RequestDestinationWorker
+ 
+instance ToJSVal RequestDestination where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal RequestDestination where
+        pFromJSVal x | x `js_eq` js_RequestDestination = RequestDestination
+        pFromJSVal x
+          | x `js_eq` js_RequestDestinationDocument =
+            RequestDestinationDocument
+        pFromJSVal x
+          | x `js_eq` js_RequestDestinationSharedworker =
+            RequestDestinationSharedworker
+        pFromJSVal x
+          | x `js_eq` js_RequestDestinationSubresource =
+            RequestDestinationSubresource
+        pFromJSVal x
+          | x `js_eq` js_RequestDestinationUnknown =
+            RequestDestinationUnknown
+        pFromJSVal x
+          | x `js_eq` js_RequestDestinationWorker = RequestDestinationWorker
+ 
+instance FromJSVal RequestDestination where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"\"" js_RequestDestination ::
+        JSVal
+ 
+foreign import javascript unsafe "\"document\""
+        js_RequestDestinationDocument :: JSVal
+ 
+foreign import javascript unsafe "\"sharedworker\""
+        js_RequestDestinationSharedworker :: JSVal
+ 
+foreign import javascript unsafe "\"subresource\""
+        js_RequestDestinationSubresource :: JSVal
+ 
+foreign import javascript unsafe "\"unknown\""
+        js_RequestDestinationUnknown :: JSVal
+ 
+foreign import javascript unsafe "\"worker\""
+        js_RequestDestinationWorker :: JSVal
+ 
+data RequestMode = RequestModeNavigate
+                 | RequestModeSameOrigin
+                 | RequestModeNoCors
+                 | RequestModeCors
+                 deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal RequestMode where
+        pToJSVal RequestModeNavigate = js_RequestModeNavigate
+        pToJSVal RequestModeSameOrigin = js_RequestModeSameOrigin
+        pToJSVal RequestModeNoCors = js_RequestModeNoCors
+        pToJSVal RequestModeCors = js_RequestModeCors
+ 
+instance ToJSVal RequestMode where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal RequestMode where
+        pFromJSVal x
+          | x `js_eq` js_RequestModeNavigate = RequestModeNavigate
+        pFromJSVal x
+          | x `js_eq` js_RequestModeSameOrigin = RequestModeSameOrigin
+        pFromJSVal x | x `js_eq` js_RequestModeNoCors = RequestModeNoCors
+        pFromJSVal x | x `js_eq` js_RequestModeCors = RequestModeCors
+ 
+instance FromJSVal RequestMode where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"navigate\""
+        js_RequestModeNavigate :: JSVal
+ 
+foreign import javascript unsafe "\"same-origin\""
+        js_RequestModeSameOrigin :: JSVal
+ 
+foreign import javascript unsafe "\"no-cors\"" js_RequestModeNoCors
+        :: JSVal
+ 
+foreign import javascript unsafe "\"cors\"" js_RequestModeCors ::
+        JSVal
+ 
+data RequestCredentials = RequestCredentialsOmit
+                        | RequestCredentialsSameOrigin
+                        | RequestCredentialsInclude
+                        deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal RequestCredentials where
+        pToJSVal RequestCredentialsOmit = js_RequestCredentialsOmit
+        pToJSVal RequestCredentialsSameOrigin
+          = js_RequestCredentialsSameOrigin
+        pToJSVal RequestCredentialsInclude = js_RequestCredentialsInclude
+ 
+instance ToJSVal RequestCredentials where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal RequestCredentials where
+        pFromJSVal x
+          | x `js_eq` js_RequestCredentialsOmit = RequestCredentialsOmit
+        pFromJSVal x
+          | x `js_eq` js_RequestCredentialsSameOrigin =
+            RequestCredentialsSameOrigin
+        pFromJSVal x
+          | x `js_eq` js_RequestCredentialsInclude =
+            RequestCredentialsInclude
+ 
+instance FromJSVal RequestCredentials where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"omit\""
+        js_RequestCredentialsOmit :: JSVal
+ 
+foreign import javascript unsafe "\"same-origin\""
+        js_RequestCredentialsSameOrigin :: JSVal
+ 
+foreign import javascript unsafe "\"include\""
+        js_RequestCredentialsInclude :: JSVal
+ 
+data RequestCache = RequestCacheDefault
+                  | RequestCacheNoStore
+                  | RequestCacheReload
+                  | RequestCacheNoCache
+                  | RequestCacheForceCache
+                  | RequestCacheOnlyIfCached
+                  deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal RequestCache where
+        pToJSVal RequestCacheDefault = js_RequestCacheDefault
+        pToJSVal RequestCacheNoStore = js_RequestCacheNoStore
+        pToJSVal RequestCacheReload = js_RequestCacheReload
+        pToJSVal RequestCacheNoCache = js_RequestCacheNoCache
+        pToJSVal RequestCacheForceCache = js_RequestCacheForceCache
+        pToJSVal RequestCacheOnlyIfCached = js_RequestCacheOnlyIfCached
+ 
+instance ToJSVal RequestCache where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal RequestCache where
+        pFromJSVal x
+          | x `js_eq` js_RequestCacheDefault = RequestCacheDefault
+        pFromJSVal x
+          | x `js_eq` js_RequestCacheNoStore = RequestCacheNoStore
+        pFromJSVal x | x `js_eq` js_RequestCacheReload = RequestCacheReload
+        pFromJSVal x
+          | x `js_eq` js_RequestCacheNoCache = RequestCacheNoCache
+        pFromJSVal x
+          | x `js_eq` js_RequestCacheForceCache = RequestCacheForceCache
+        pFromJSVal x
+          | x `js_eq` js_RequestCacheOnlyIfCached = RequestCacheOnlyIfCached
+ 
+instance FromJSVal RequestCache where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"default\""
+        js_RequestCacheDefault :: JSVal
+ 
+foreign import javascript unsafe "\"no-store\""
+        js_RequestCacheNoStore :: JSVal
+ 
+foreign import javascript unsafe "\"reload\"" js_RequestCacheReload
+        :: JSVal
+ 
+foreign import javascript unsafe "\"no-cache\""
+        js_RequestCacheNoCache :: JSVal
+ 
+foreign import javascript unsafe "\"force-cache\""
+        js_RequestCacheForceCache :: JSVal
+ 
+foreign import javascript unsafe "\"only-if-cached\""
+        js_RequestCacheOnlyIfCached :: JSVal
+ 
+data RequestRedirect = RequestRedirectFollow
+                     | RequestRedirectError
+                     | RequestRedirectManual
+                     deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal RequestRedirect where
+        pToJSVal RequestRedirectFollow = js_RequestRedirectFollow
+        pToJSVal RequestRedirectError = js_RequestRedirectError
+        pToJSVal RequestRedirectManual = js_RequestRedirectManual
+ 
+instance ToJSVal RequestRedirect where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal RequestRedirect where
+        pFromJSVal x
+          | x `js_eq` js_RequestRedirectFollow = RequestRedirectFollow
+        pFromJSVal x
+          | x `js_eq` js_RequestRedirectError = RequestRedirectError
+        pFromJSVal x
+          | x `js_eq` js_RequestRedirectManual = RequestRedirectManual
+ 
+instance FromJSVal RequestRedirect where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"follow\""
+        js_RequestRedirectFollow :: JSVal
+ 
+foreign import javascript unsafe "\"error\""
+        js_RequestRedirectError :: JSVal
+ 
+foreign import javascript unsafe "\"manual\""
+        js_RequestRedirectManual :: JSVal
+ 
+data ReferrerPolicy = ReferrerPolicy
+                    | ReferrerPolicyNoReferrer
+                    | ReferrerPolicyNoReferrerWhenDowngrade
+                    | ReferrerPolicyOrigin
+                    | ReferrerPolicyOriginWhenCrossOrigin
+                    | ReferrerPolicyUnsafeUrl
+                    deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal ReferrerPolicy where
+        pToJSVal ReferrerPolicy = js_ReferrerPolicy
+        pToJSVal ReferrerPolicyNoReferrer = js_ReferrerPolicyNoReferrer
+        pToJSVal ReferrerPolicyNoReferrerWhenDowngrade
+          = js_ReferrerPolicyNoReferrerWhenDowngrade
+        pToJSVal ReferrerPolicyOrigin = js_ReferrerPolicyOrigin
+        pToJSVal ReferrerPolicyOriginWhenCrossOrigin
+          = js_ReferrerPolicyOriginWhenCrossOrigin
+        pToJSVal ReferrerPolicyUnsafeUrl = js_ReferrerPolicyUnsafeUrl
+ 
+instance ToJSVal ReferrerPolicy where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal ReferrerPolicy where
+        pFromJSVal x | x `js_eq` js_ReferrerPolicy = ReferrerPolicy
+        pFromJSVal x
+          | x `js_eq` js_ReferrerPolicyNoReferrer = ReferrerPolicyNoReferrer
+        pFromJSVal x
+          | x `js_eq` js_ReferrerPolicyNoReferrerWhenDowngrade =
+            ReferrerPolicyNoReferrerWhenDowngrade
+        pFromJSVal x
+          | x `js_eq` js_ReferrerPolicyOrigin = ReferrerPolicyOrigin
+        pFromJSVal x
+          | x `js_eq` js_ReferrerPolicyOriginWhenCrossOrigin =
+            ReferrerPolicyOriginWhenCrossOrigin
+        pFromJSVal x
+          | x `js_eq` js_ReferrerPolicyUnsafeUrl = ReferrerPolicyUnsafeUrl
+ 
+instance FromJSVal ReferrerPolicy where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"\"" js_ReferrerPolicy :: JSVal
+ 
+foreign import javascript unsafe "\"no-referrer\""
+        js_ReferrerPolicyNoReferrer :: JSVal
+ 
+foreign import javascript unsafe "\"no-referrer-when-downgrade\""
+        js_ReferrerPolicyNoReferrerWhenDowngrade :: JSVal
+ 
+foreign import javascript unsafe "\"origin\""
+        js_ReferrerPolicyOrigin :: JSVal
+ 
+foreign import javascript unsafe "\"origin-when-cross-origin\""
+        js_ReferrerPolicyOriginWhenCrossOrigin :: JSVal
+ 
+foreign import javascript unsafe "\"unsafe-url\""
+        js_ReferrerPolicyUnsafeUrl :: JSVal
+ 
+data ResponseType = ResponseTypeBasic
+                  | ResponseTypeCors
+                  | ResponseTypeDefault
+                  | ResponseTypeError
+                  | ResponseTypeOpaque
+                  | ResponseTypeOpaqueredirect
+                  deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal ResponseType where
+        pToJSVal ResponseTypeBasic = js_ResponseTypeBasic
+        pToJSVal ResponseTypeCors = js_ResponseTypeCors
+        pToJSVal ResponseTypeDefault = js_ResponseTypeDefault
+        pToJSVal ResponseTypeError = js_ResponseTypeError
+        pToJSVal ResponseTypeOpaque = js_ResponseTypeOpaque
+        pToJSVal ResponseTypeOpaqueredirect = js_ResponseTypeOpaqueredirect
+ 
+instance ToJSVal ResponseType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal ResponseType where
+        pFromJSVal x | x `js_eq` js_ResponseTypeBasic = ResponseTypeBasic
+        pFromJSVal x | x `js_eq` js_ResponseTypeCors = ResponseTypeCors
+        pFromJSVal x
+          | x `js_eq` js_ResponseTypeDefault = ResponseTypeDefault
+        pFromJSVal x | x `js_eq` js_ResponseTypeError = ResponseTypeError
+        pFromJSVal x | x `js_eq` js_ResponseTypeOpaque = ResponseTypeOpaque
+        pFromJSVal x
+          | x `js_eq` js_ResponseTypeOpaqueredirect =
+            ResponseTypeOpaqueredirect
+ 
+instance FromJSVal ResponseType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"basic\"" js_ResponseTypeBasic
+        :: JSVal
+ 
+foreign import javascript unsafe "\"cors\"" js_ResponseTypeCors ::
+        JSVal
+ 
+foreign import javascript unsafe "\"default\""
+        js_ResponseTypeDefault :: JSVal
+ 
+foreign import javascript unsafe "\"error\"" js_ResponseTypeError
+        :: JSVal
+ 
+foreign import javascript unsafe "\"opaque\"" js_ResponseTypeOpaque
+        :: JSVal
+ 
+foreign import javascript unsafe "\"opaqueredirect\""
+        js_ResponseTypeOpaqueredirect :: JSVal
+ 
+data IDBCursorDirection = IDBCursorDirectionNext
+                        | IDBCursorDirectionNextunique
+                        | IDBCursorDirectionPrev
+                        | IDBCursorDirectionPrevunique
+                        deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal IDBCursorDirection where
+        pToJSVal IDBCursorDirectionNext = js_IDBCursorDirectionNext
+        pToJSVal IDBCursorDirectionNextunique
+          = js_IDBCursorDirectionNextunique
+        pToJSVal IDBCursorDirectionPrev = js_IDBCursorDirectionPrev
+        pToJSVal IDBCursorDirectionPrevunique
+          = js_IDBCursorDirectionPrevunique
+ 
+instance ToJSVal IDBCursorDirection where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal IDBCursorDirection where
+        pFromJSVal x
+          | x `js_eq` js_IDBCursorDirectionNext = IDBCursorDirectionNext
+        pFromJSVal x
+          | x `js_eq` js_IDBCursorDirectionNextunique =
+            IDBCursorDirectionNextunique
+        pFromJSVal x
+          | x `js_eq` js_IDBCursorDirectionPrev = IDBCursorDirectionPrev
+        pFromJSVal x
+          | x `js_eq` js_IDBCursorDirectionPrevunique =
+            IDBCursorDirectionPrevunique
+ 
+instance FromJSVal IDBCursorDirection where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"next\""
+        js_IDBCursorDirectionNext :: JSVal
+ 
+foreign import javascript unsafe "\"nextunique\""
+        js_IDBCursorDirectionNextunique :: JSVal
+ 
+foreign import javascript unsafe "\"prev\""
+        js_IDBCursorDirectionPrev :: JSVal
+ 
+foreign import javascript unsafe "\"prevunique\""
+        js_IDBCursorDirectionPrevunique :: JSVal
+ 
+data IDBRequestReadyState = IDBRequestReadyStatePending
+                          | IDBRequestReadyStateDone
+                          deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal IDBRequestReadyState where
+        pToJSVal IDBRequestReadyStatePending
+          = js_IDBRequestReadyStatePending
+        pToJSVal IDBRequestReadyStateDone = js_IDBRequestReadyStateDone
+ 
+instance ToJSVal IDBRequestReadyState where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal IDBRequestReadyState where
+        pFromJSVal x
+          | x `js_eq` js_IDBRequestReadyStatePending =
+            IDBRequestReadyStatePending
+        pFromJSVal x
+          | x `js_eq` js_IDBRequestReadyStateDone = IDBRequestReadyStateDone
+ 
+instance FromJSVal IDBRequestReadyState where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"pending\""
+        js_IDBRequestReadyStatePending :: JSVal
+ 
+foreign import javascript unsafe "\"done\""
+        js_IDBRequestReadyStateDone :: JSVal
+ 
+data IDBTransactionMode = IDBTransactionModeReadonly
+                        | IDBTransactionModeReadwrite
+                        | IDBTransactionModeVersionchange
+                        deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal IDBTransactionMode where
+        pToJSVal IDBTransactionModeReadonly = js_IDBTransactionModeReadonly
+        pToJSVal IDBTransactionModeReadwrite
+          = js_IDBTransactionModeReadwrite
+        pToJSVal IDBTransactionModeVersionchange
+          = js_IDBTransactionModeVersionchange
+ 
+instance ToJSVal IDBTransactionMode where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal IDBTransactionMode where
+        pFromJSVal x
+          | x `js_eq` js_IDBTransactionModeReadonly =
+            IDBTransactionModeReadonly
+        pFromJSVal x
+          | x `js_eq` js_IDBTransactionModeReadwrite =
+            IDBTransactionModeReadwrite
+        pFromJSVal x
+          | x `js_eq` js_IDBTransactionModeVersionchange =
+            IDBTransactionModeVersionchange
+ 
+instance FromJSVal IDBTransactionMode where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"readonly\""
+        js_IDBTransactionModeReadonly :: JSVal
+ 
+foreign import javascript unsafe "\"readwrite\""
+        js_IDBTransactionModeReadwrite :: JSVal
+ 
+foreign import javascript unsafe "\"versionchange\""
+        js_IDBTransactionModeVersionchange :: JSVal
+ 
+data DeviceType = DeviceTypeNone
+                | DeviceTypeAirplay
+                | DeviceTypeTvout
+                deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal DeviceType where
+        pToJSVal DeviceTypeNone = js_DeviceTypeNone
+        pToJSVal DeviceTypeAirplay = js_DeviceTypeAirplay
+        pToJSVal DeviceTypeTvout = js_DeviceTypeTvout
+ 
+instance ToJSVal DeviceType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal DeviceType where
+        pFromJSVal x | x `js_eq` js_DeviceTypeNone = DeviceTypeNone
+        pFromJSVal x | x `js_eq` js_DeviceTypeAirplay = DeviceTypeAirplay
+        pFromJSVal x | x `js_eq` js_DeviceTypeTvout = DeviceTypeTvout
+ 
+instance FromJSVal DeviceType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"none\"" js_DeviceTypeNone ::
+        JSVal
+ 
+foreign import javascript unsafe "\"airplay\"" js_DeviceTypeAirplay
+        :: JSVal
+ 
+foreign import javascript unsafe "\"tvout\"" js_DeviceTypeTvout ::
+        JSVal
+ 
+data MediaSessionKind = MediaSessionKindContent
+                      | MediaSessionKindTransient
+                      | MediaSessionKindTransientSolo
+                      | MediaSessionKindAmbient
+                      deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal MediaSessionKind where
+        pToJSVal MediaSessionKindContent = js_MediaSessionKindContent
+        pToJSVal MediaSessionKindTransient = js_MediaSessionKindTransient
+        pToJSVal MediaSessionKindTransientSolo
+          = js_MediaSessionKindTransientSolo
+        pToJSVal MediaSessionKindAmbient = js_MediaSessionKindAmbient
+ 
+instance ToJSVal MediaSessionKind where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal MediaSessionKind where
+        pFromJSVal x
+          | x `js_eq` js_MediaSessionKindContent = MediaSessionKindContent
+        pFromJSVal x
+          | x `js_eq` js_MediaSessionKindTransient =
+            MediaSessionKindTransient
+        pFromJSVal x
+          | x `js_eq` js_MediaSessionKindTransientSolo =
+            MediaSessionKindTransientSolo
+        pFromJSVal x
+          | x `js_eq` js_MediaSessionKindAmbient = MediaSessionKindAmbient
+ 
+instance FromJSVal MediaSessionKind where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"content\""
+        js_MediaSessionKindContent :: JSVal
+ 
+foreign import javascript unsafe "\"transient\""
+        js_MediaSessionKindTransient :: JSVal
+ 
+foreign import javascript unsafe "\"transient-solo\""
+        js_MediaSessionKindTransientSolo :: JSVal
+ 
+foreign import javascript unsafe "\"ambient\""
+        js_MediaSessionKindAmbient :: JSVal
+ 
+data EndOfStreamError = EndOfStreamErrorNetwork
+                      | EndOfStreamErrorDecode
+                      deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal EndOfStreamError where
+        pToJSVal EndOfStreamErrorNetwork = js_EndOfStreamErrorNetwork
+        pToJSVal EndOfStreamErrorDecode = js_EndOfStreamErrorDecode
+ 
+instance ToJSVal EndOfStreamError where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal EndOfStreamError where
+        pFromJSVal x
+          | x `js_eq` js_EndOfStreamErrorNetwork = EndOfStreamErrorNetwork
+        pFromJSVal x
+          | x `js_eq` js_EndOfStreamErrorDecode = EndOfStreamErrorDecode
+ 
+instance FromJSVal EndOfStreamError where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"network\""
+        js_EndOfStreamErrorNetwork :: JSVal
+ 
+foreign import javascript unsafe "\"decode\""
+        js_EndOfStreamErrorDecode :: JSVal
+ 
+data AppendMode = AppendModeSegments
+                | AppendModeSequence
+                deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal AppendMode where
+        pToJSVal AppendModeSegments = js_AppendModeSegments
+        pToJSVal AppendModeSequence = js_AppendModeSequence
+ 
+instance ToJSVal AppendMode where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal AppendMode where
+        pFromJSVal x | x `js_eq` js_AppendModeSegments = AppendModeSegments
+        pFromJSVal x | x `js_eq` js_AppendModeSequence = AppendModeSequence
+ 
+instance FromJSVal AppendMode where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"segments\""
+        js_AppendModeSegments :: JSVal
+ 
+foreign import javascript unsafe "\"sequence\""
+        js_AppendModeSequence :: JSVal
+ 
+data MediaDeviceKind = MediaDeviceKindAudioinput
+                     | MediaDeviceKindAudiooutput
+                     | MediaDeviceKindVideoinput
+                     deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal MediaDeviceKind where
+        pToJSVal MediaDeviceKindAudioinput = js_MediaDeviceKindAudioinput
+        pToJSVal MediaDeviceKindAudiooutput = js_MediaDeviceKindAudiooutput
+        pToJSVal MediaDeviceKindVideoinput = js_MediaDeviceKindVideoinput
+ 
+instance ToJSVal MediaDeviceKind where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal MediaDeviceKind where
+        pFromJSVal x
+          | x `js_eq` js_MediaDeviceKindAudioinput =
+            MediaDeviceKindAudioinput
+        pFromJSVal x
+          | x `js_eq` js_MediaDeviceKindAudiooutput =
+            MediaDeviceKindAudiooutput
+        pFromJSVal x
+          | x `js_eq` js_MediaDeviceKindVideoinput =
+            MediaDeviceKindVideoinput
+ 
+instance FromJSVal MediaDeviceKind where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"audioinput\""
+        js_MediaDeviceKindAudioinput :: JSVal
+ 
+foreign import javascript unsafe "\"audiooutput\""
+        js_MediaDeviceKindAudiooutput :: JSVal
+ 
+foreign import javascript unsafe "\"videoinput\""
+        js_MediaDeviceKindVideoinput :: JSVal
+ 
+data MediaStreamTrackState = MediaStreamTrackStateNew
+                           | MediaStreamTrackStateLive
+                           | MediaStreamTrackStateEnded
+                           deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal MediaStreamTrackState where
+        pToJSVal MediaStreamTrackStateNew = js_MediaStreamTrackStateNew
+        pToJSVal MediaStreamTrackStateLive = js_MediaStreamTrackStateLive
+        pToJSVal MediaStreamTrackStateEnded = js_MediaStreamTrackStateEnded
+ 
+instance ToJSVal MediaStreamTrackState where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal MediaStreamTrackState where
+        pFromJSVal x
+          | x `js_eq` js_MediaStreamTrackStateNew = MediaStreamTrackStateNew
+        pFromJSVal x
+          | x `js_eq` js_MediaStreamTrackStateLive =
+            MediaStreamTrackStateLive
+        pFromJSVal x
+          | x `js_eq` js_MediaStreamTrackStateEnded =
+            MediaStreamTrackStateEnded
+ 
+instance FromJSVal MediaStreamTrackState where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"new\""
+        js_MediaStreamTrackStateNew :: JSVal
+ 
+foreign import javascript unsafe "\"live\""
+        js_MediaStreamTrackStateLive :: JSVal
+ 
+foreign import javascript unsafe "\"ended\""
+        js_MediaStreamTrackStateEnded :: JSVal
+ 
+data RTCIceTransportPolicy = RTCIceTransportPolicyRelay
+                           | RTCIceTransportPolicyAll
+                           deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal RTCIceTransportPolicy where
+        pToJSVal RTCIceTransportPolicyRelay = js_RTCIceTransportPolicyRelay
+        pToJSVal RTCIceTransportPolicyAll = js_RTCIceTransportPolicyAll
+ 
+instance ToJSVal RTCIceTransportPolicy where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal RTCIceTransportPolicy where
+        pFromJSVal x
+          | x `js_eq` js_RTCIceTransportPolicyRelay =
+            RTCIceTransportPolicyRelay
+        pFromJSVal x
+          | x `js_eq` js_RTCIceTransportPolicyAll = RTCIceTransportPolicyAll
+ 
+instance FromJSVal RTCIceTransportPolicy where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"relay\""
+        js_RTCIceTransportPolicyRelay :: JSVal
+ 
+foreign import javascript unsafe "\"all\""
+        js_RTCIceTransportPolicyAll :: JSVal
+ 
+data RTCBundlePolicy = RTCBundlePolicyBalanced
+                     | RTCBundlePolicyMaxCompat
+                     | RTCBundlePolicyMaxBundle
+                     deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal RTCBundlePolicy where
+        pToJSVal RTCBundlePolicyBalanced = js_RTCBundlePolicyBalanced
+        pToJSVal RTCBundlePolicyMaxCompat = js_RTCBundlePolicyMaxCompat
+        pToJSVal RTCBundlePolicyMaxBundle = js_RTCBundlePolicyMaxBundle
+ 
+instance ToJSVal RTCBundlePolicy where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal RTCBundlePolicy where
+        pFromJSVal x
+          | x `js_eq` js_RTCBundlePolicyBalanced = RTCBundlePolicyBalanced
+        pFromJSVal x
+          | x `js_eq` js_RTCBundlePolicyMaxCompat = RTCBundlePolicyMaxCompat
+        pFromJSVal x
+          | x `js_eq` js_RTCBundlePolicyMaxBundle = RTCBundlePolicyMaxBundle
+ 
+instance FromJSVal RTCBundlePolicy where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"balanced\""
+        js_RTCBundlePolicyBalanced :: JSVal
+ 
+foreign import javascript unsafe "\"max-compat\""
+        js_RTCBundlePolicyMaxCompat :: JSVal
+ 
+foreign import javascript unsafe "\"max-bundle\""
+        js_RTCBundlePolicyMaxBundle :: JSVal
+ 
+data RTCRtpTransceiverDirection = RTCRtpTransceiverDirectionSendrecv
+                                | RTCRtpTransceiverDirectionSendonly
+                                | RTCRtpTransceiverDirectionRecvonly
+                                | RTCRtpTransceiverDirectionInactive
+                                deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal RTCRtpTransceiverDirection where
+        pToJSVal RTCRtpTransceiverDirectionSendrecv
+          = js_RTCRtpTransceiverDirectionSendrecv
+        pToJSVal RTCRtpTransceiverDirectionSendonly
+          = js_RTCRtpTransceiverDirectionSendonly
+        pToJSVal RTCRtpTransceiverDirectionRecvonly
+          = js_RTCRtpTransceiverDirectionRecvonly
+        pToJSVal RTCRtpTransceiverDirectionInactive
+          = js_RTCRtpTransceiverDirectionInactive
+ 
+instance ToJSVal RTCRtpTransceiverDirection where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal RTCRtpTransceiverDirection where
+        pFromJSVal x
+          | x `js_eq` js_RTCRtpTransceiverDirectionSendrecv =
+            RTCRtpTransceiverDirectionSendrecv
+        pFromJSVal x
+          | x `js_eq` js_RTCRtpTransceiverDirectionSendonly =
+            RTCRtpTransceiverDirectionSendonly
+        pFromJSVal x
+          | x `js_eq` js_RTCRtpTransceiverDirectionRecvonly =
+            RTCRtpTransceiverDirectionRecvonly
+        pFromJSVal x
+          | x `js_eq` js_RTCRtpTransceiverDirectionInactive =
+            RTCRtpTransceiverDirectionInactive
+ 
+instance FromJSVal RTCRtpTransceiverDirection where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"sendrecv\""
+        js_RTCRtpTransceiverDirectionSendrecv :: JSVal
+ 
+foreign import javascript unsafe "\"sendonly\""
+        js_RTCRtpTransceiverDirectionSendonly :: JSVal
+ 
+foreign import javascript unsafe "\"recvonly\""
+        js_RTCRtpTransceiverDirectionRecvonly :: JSVal
+ 
+foreign import javascript unsafe "\"inactive\""
+        js_RTCRtpTransceiverDirectionInactive :: JSVal
+ 
+data RTCSdpType = RTCSdpTypeOffer
+                | RTCSdpTypePranswer
+                | RTCSdpTypeAnswer
+                | RTCSdpTypeRollback
+                deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal RTCSdpType where
+        pToJSVal RTCSdpTypeOffer = js_RTCSdpTypeOffer
+        pToJSVal RTCSdpTypePranswer = js_RTCSdpTypePranswer
+        pToJSVal RTCSdpTypeAnswer = js_RTCSdpTypeAnswer
+        pToJSVal RTCSdpTypeRollback = js_RTCSdpTypeRollback
+ 
+instance ToJSVal RTCSdpType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal RTCSdpType where
+        pFromJSVal x | x `js_eq` js_RTCSdpTypeOffer = RTCSdpTypeOffer
+        pFromJSVal x | x `js_eq` js_RTCSdpTypePranswer = RTCSdpTypePranswer
+        pFromJSVal x | x `js_eq` js_RTCSdpTypeAnswer = RTCSdpTypeAnswer
+        pFromJSVal x | x `js_eq` js_RTCSdpTypeRollback = RTCSdpTypeRollback
+ 
+instance FromJSVal RTCSdpType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"offer\"" js_RTCSdpTypeOffer ::
+        JSVal
+ 
+foreign import javascript unsafe "\"pranswer\""
+        js_RTCSdpTypePranswer :: JSVal
+ 
+foreign import javascript unsafe "\"answer\"" js_RTCSdpTypeAnswer
+        :: JSVal
+ 
+foreign import javascript unsafe "\"rollback\""
+        js_RTCSdpTypeRollback :: JSVal
+ 
+data NotificationDirection = NotificationDirectionAuto
+                           | NotificationDirectionLtr
+                           | NotificationDirectionRtl
+                           deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal NotificationDirection where
+        pToJSVal NotificationDirectionAuto = js_NotificationDirectionAuto
+        pToJSVal NotificationDirectionLtr = js_NotificationDirectionLtr
+        pToJSVal NotificationDirectionRtl = js_NotificationDirectionRtl
+ 
+instance ToJSVal NotificationDirection where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal NotificationDirection where
+        pFromJSVal x
+          | x `js_eq` js_NotificationDirectionAuto =
+            NotificationDirectionAuto
+        pFromJSVal x
+          | x `js_eq` js_NotificationDirectionLtr = NotificationDirectionLtr
+        pFromJSVal x
+          | x `js_eq` js_NotificationDirectionRtl = NotificationDirectionRtl
+ 
+instance FromJSVal NotificationDirection where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"auto\""
+        js_NotificationDirectionAuto :: JSVal
+ 
+foreign import javascript unsafe "\"ltr\""
+        js_NotificationDirectionLtr :: JSVal
+ 
+foreign import javascript unsafe "\"rtl\""
+        js_NotificationDirectionRtl :: JSVal
+ 
+data AudioContextState = AudioContextStateSuspended
+                       | AudioContextStateRunning
+                       | AudioContextStateInterrupted
+                       | AudioContextStateClosed
+                       deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal AudioContextState where
+        pToJSVal AudioContextStateSuspended = js_AudioContextStateSuspended
+        pToJSVal AudioContextStateRunning = js_AudioContextStateRunning
+        pToJSVal AudioContextStateInterrupted
+          = js_AudioContextStateInterrupted
+        pToJSVal AudioContextStateClosed = js_AudioContextStateClosed
+ 
+instance ToJSVal AudioContextState where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal AudioContextState where
+        pFromJSVal x
+          | x `js_eq` js_AudioContextStateSuspended =
+            AudioContextStateSuspended
+        pFromJSVal x
+          | x `js_eq` js_AudioContextStateRunning = AudioContextStateRunning
+        pFromJSVal x
+          | x `js_eq` js_AudioContextStateInterrupted =
+            AudioContextStateInterrupted
+        pFromJSVal x
+          | x `js_eq` js_AudioContextStateClosed = AudioContextStateClosed
+ 
+instance FromJSVal AudioContextState where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"suspended\""
+        js_AudioContextStateSuspended :: JSVal
+ 
+foreign import javascript unsafe "\"running\""
+        js_AudioContextStateRunning :: JSVal
+ 
+foreign import javascript unsafe "\"interrupted\""
+        js_AudioContextStateInterrupted :: JSVal
+ 
+foreign import javascript unsafe "\"closed\""
+        js_AudioContextStateClosed :: JSVal
+ 
+data BiquadFilterType = BiquadFilterTypeLowpass
+                      | BiquadFilterTypeHighpass
+                      | BiquadFilterTypeBandpass
+                      | BiquadFilterTypeLowshelf
+                      | BiquadFilterTypeHighshelf
+                      | BiquadFilterTypePeaking
+                      | BiquadFilterTypeNotch
+                      | BiquadFilterTypeAllpass
+                      deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal BiquadFilterType where
+        pToJSVal BiquadFilterTypeLowpass = js_BiquadFilterTypeLowpass
+        pToJSVal BiquadFilterTypeHighpass = js_BiquadFilterTypeHighpass
+        pToJSVal BiquadFilterTypeBandpass = js_BiquadFilterTypeBandpass
+        pToJSVal BiquadFilterTypeLowshelf = js_BiquadFilterTypeLowshelf
+        pToJSVal BiquadFilterTypeHighshelf = js_BiquadFilterTypeHighshelf
+        pToJSVal BiquadFilterTypePeaking = js_BiquadFilterTypePeaking
+        pToJSVal BiquadFilterTypeNotch = js_BiquadFilterTypeNotch
+        pToJSVal BiquadFilterTypeAllpass = js_BiquadFilterTypeAllpass
+ 
+instance ToJSVal BiquadFilterType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal BiquadFilterType where
+        pFromJSVal x
+          | x `js_eq` js_BiquadFilterTypeLowpass = BiquadFilterTypeLowpass
+        pFromJSVal x
+          | x `js_eq` js_BiquadFilterTypeHighpass = BiquadFilterTypeHighpass
+        pFromJSVal x
+          | x `js_eq` js_BiquadFilterTypeBandpass = BiquadFilterTypeBandpass
+        pFromJSVal x
+          | x `js_eq` js_BiquadFilterTypeLowshelf = BiquadFilterTypeLowshelf
+        pFromJSVal x
+          | x `js_eq` js_BiquadFilterTypeHighshelf =
+            BiquadFilterTypeHighshelf
+        pFromJSVal x
+          | x `js_eq` js_BiquadFilterTypePeaking = BiquadFilterTypePeaking
+        pFromJSVal x
+          | x `js_eq` js_BiquadFilterTypeNotch = BiquadFilterTypeNotch
+        pFromJSVal x
+          | x `js_eq` js_BiquadFilterTypeAllpass = BiquadFilterTypeAllpass
+ 
+instance FromJSVal BiquadFilterType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"lowpass\""
+        js_BiquadFilterTypeLowpass :: JSVal
+ 
+foreign import javascript unsafe "\"highpass\""
+        js_BiquadFilterTypeHighpass :: JSVal
+ 
+foreign import javascript unsafe "\"bandpass\""
+        js_BiquadFilterTypeBandpass :: JSVal
+ 
+foreign import javascript unsafe "\"lowshelf\""
+        js_BiquadFilterTypeLowshelf :: JSVal
+ 
+foreign import javascript unsafe "\"highshelf\""
+        js_BiquadFilterTypeHighshelf :: JSVal
+ 
+foreign import javascript unsafe "\"peaking\""
+        js_BiquadFilterTypePeaking :: JSVal
+ 
+foreign import javascript unsafe "\"notch\""
+        js_BiquadFilterTypeNotch :: JSVal
+ 
+foreign import javascript unsafe "\"allpass\""
+        js_BiquadFilterTypeAllpass :: JSVal
+ 
+data OscillatorType = OscillatorTypeSine
+                    | OscillatorTypeSquare
+                    | OscillatorTypeSawtooth
+                    | OscillatorTypeTriangle
+                    | OscillatorTypeCustom
+                    deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal OscillatorType where
+        pToJSVal OscillatorTypeSine = js_OscillatorTypeSine
+        pToJSVal OscillatorTypeSquare = js_OscillatorTypeSquare
+        pToJSVal OscillatorTypeSawtooth = js_OscillatorTypeSawtooth
+        pToJSVal OscillatorTypeTriangle = js_OscillatorTypeTriangle
+        pToJSVal OscillatorTypeCustom = js_OscillatorTypeCustom
+ 
+instance ToJSVal OscillatorType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal OscillatorType where
+        pFromJSVal x | x `js_eq` js_OscillatorTypeSine = OscillatorTypeSine
+        pFromJSVal x
+          | x `js_eq` js_OscillatorTypeSquare = OscillatorTypeSquare
+        pFromJSVal x
+          | x `js_eq` js_OscillatorTypeSawtooth = OscillatorTypeSawtooth
+        pFromJSVal x
+          | x `js_eq` js_OscillatorTypeTriangle = OscillatorTypeTriangle
+        pFromJSVal x
+          | x `js_eq` js_OscillatorTypeCustom = OscillatorTypeCustom
+ 
+instance FromJSVal OscillatorType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"sine\"" js_OscillatorTypeSine
+        :: JSVal
+ 
+foreign import javascript unsafe "\"square\""
+        js_OscillatorTypeSquare :: JSVal
+ 
+foreign import javascript unsafe "\"sawtooth\""
+        js_OscillatorTypeSawtooth :: JSVal
+ 
+foreign import javascript unsafe "\"triangle\""
+        js_OscillatorTypeTriangle :: JSVal
+ 
+foreign import javascript unsafe "\"custom\""
+        js_OscillatorTypeCustom :: JSVal
+ 
+data PanningModelType = PanningModelTypeEqualpower
+                      | PanningModelTypeHRTF
+                      deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal PanningModelType where
+        pToJSVal PanningModelTypeEqualpower = js_PanningModelTypeEqualpower
+        pToJSVal PanningModelTypeHRTF = js_PanningModelTypeHRTF
+ 
+instance ToJSVal PanningModelType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal PanningModelType where
+        pFromJSVal x
+          | x `js_eq` js_PanningModelTypeEqualpower =
+            PanningModelTypeEqualpower
+        pFromJSVal x
+          | x `js_eq` js_PanningModelTypeHRTF = PanningModelTypeHRTF
+ 
+instance FromJSVal PanningModelType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"equalpower\""
+        js_PanningModelTypeEqualpower :: JSVal
+ 
+foreign import javascript unsafe "\"HRTF\"" js_PanningModelTypeHRTF
+        :: JSVal
+ 
+data DistanceModelType = DistanceModelTypeLinear
+                       | DistanceModelTypeInverse
+                       | DistanceModelTypeExponential
+                       deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal DistanceModelType where
+        pToJSVal DistanceModelTypeLinear = js_DistanceModelTypeLinear
+        pToJSVal DistanceModelTypeInverse = js_DistanceModelTypeInverse
+        pToJSVal DistanceModelTypeExponential
+          = js_DistanceModelTypeExponential
+ 
+instance ToJSVal DistanceModelType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal DistanceModelType where
+        pFromJSVal x
+          | x `js_eq` js_DistanceModelTypeLinear = DistanceModelTypeLinear
+        pFromJSVal x
+          | x `js_eq` js_DistanceModelTypeInverse = DistanceModelTypeInverse
+        pFromJSVal x
+          | x `js_eq` js_DistanceModelTypeExponential =
+            DistanceModelTypeExponential
+ 
+instance FromJSVal DistanceModelType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"linear\""
+        js_DistanceModelTypeLinear :: JSVal
+ 
+foreign import javascript unsafe "\"inverse\""
+        js_DistanceModelTypeInverse :: JSVal
+ 
+foreign import javascript unsafe "\"exponential\""
+        js_DistanceModelTypeExponential :: JSVal
+ 
+data OverSampleType = OverSampleTypeNone
+                    | OverSampleType2x
+                    | OverSampleType4x
+                    deriving (Show, Read, Eq, Ord, Typeable)
+ 
+instance PToJSVal OverSampleType where
+        pToJSVal OverSampleTypeNone = js_OverSampleTypeNone
+        pToJSVal OverSampleType2x = js_OverSampleType2x
+        pToJSVal OverSampleType4x = js_OverSampleType4x
+ 
+instance ToJSVal OverSampleType where
+        toJSVal = return . pToJSVal
+ 
+instance PFromJSVal OverSampleType where
+        pFromJSVal x | x `js_eq` js_OverSampleTypeNone = OverSampleTypeNone
+        pFromJSVal x | x `js_eq` js_OverSampleType2x = OverSampleType2x
+        pFromJSVal x | x `js_eq` js_OverSampleType4x = OverSampleType4x
+ 
+instance FromJSVal OverSampleType where
+        fromJSValUnchecked = return . pFromJSVal
+        fromJSVal = return . pFromJSVal
+ 
+foreign import javascript unsafe "\"none\"" js_OverSampleTypeNone
+        :: JSVal
+ 
+foreign import javascript unsafe "\"2x\"" js_OverSampleType2x ::
+        JSVal
+ 
+foreign import javascript unsafe "\"4x\"" js_OverSampleType4x ::
+        JSVal
  
 data XMLHttpRequestResponseType = XMLHttpRequestResponseType
                                 | XMLHttpRequestResponseTypeArraybuffer
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ErrorEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/ErrorEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ErrorEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ErrorEvent.hs
@@ -4,15 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.ErrorEvent
-       (js_getMessage, getMessage, js_getFilename, getFilename,
-        js_getLineno, getLineno, js_getColno, getColno, ErrorEvent(..),
-        gTypeErrorEvent)
+       (js_newErrorEvent, newErrorEvent, js_getMessage, getMessage,
+        js_getFilename, getFilename, js_getLineno, getLineno, js_getColno,
+        getColno, js_getError, getError, ErrorEvent(..), gTypeErrorEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,18 +21,32 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"ErrorEvent\"]($1, $2)" js_newErrorEvent ::
+        JSString -> Optional ErrorEventInit -> IO ErrorEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent Mozilla ErrorEvent documentation> 
+newErrorEvent ::
+              (MonadIO m, ToJSString type') =>
+                type' -> Maybe ErrorEventInit -> m ErrorEvent
+newErrorEvent type' eventInitDict
+  = liftIO
+      (js_newErrorEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
         ErrorEvent -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent.message Mozilla ErrorEvent.message documentation> 
 getMessage ::
            (MonadIO m, FromJSString result) => ErrorEvent -> m result
-getMessage self = liftIO (fromJSString <$> (js_getMessage (self)))
+getMessage self = liftIO (fromJSString <$> (js_getMessage self))
  
 foreign import javascript unsafe "$1[\"filename\"]" js_getFilename
         :: ErrorEvent -> IO JSString
@@ -40,19 +54,25 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent.filename Mozilla ErrorEvent.filename documentation> 
 getFilename ::
             (MonadIO m, FromJSString result) => ErrorEvent -> m result
-getFilename self
-  = liftIO (fromJSString <$> (js_getFilename (self)))
+getFilename self = liftIO (fromJSString <$> (js_getFilename self))
  
 foreign import javascript unsafe "$1[\"lineno\"]" js_getLineno ::
         ErrorEvent -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent.lineno Mozilla ErrorEvent.lineno documentation> 
 getLineno :: (MonadIO m) => ErrorEvent -> m Word
-getLineno self = liftIO (js_getLineno (self))
+getLineno self = liftIO (js_getLineno self)
  
 foreign import javascript unsafe "$1[\"colno\"]" js_getColno ::
         ErrorEvent -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent.colno Mozilla ErrorEvent.colno documentation> 
 getColno :: (MonadIO m) => ErrorEvent -> m Word
-getColno self = liftIO (js_getColno (self))
+getColno self = liftIO (js_getColno self)
+ 
+foreign import javascript unsafe "$1[\"error\"]" js_getError ::
+        ErrorEvent -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent.error Mozilla ErrorEvent.error documentation> 
+getError :: (MonadIO m) => ErrorEvent -> m JSVal
+getError self = liftIO (js_getError self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Event.hs b/src/GHCJS/DOM/JSFFI/Generated/Event.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Event.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Event.hs
@@ -4,33 +4,27 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Event
-       (js_stopPropagation, stopPropagation, js_preventDefault,
-        preventDefault, js_initEvent, initEvent,
+       (js_newEvent, newEvent, js_composedPath, composedPath,
+        composedPath_, js_stopPropagation, stopPropagation,
+        js_preventDefault, preventDefault, js_initEvent, initEvent,
         js_stopImmediatePropagation, stopImmediatePropagation,
         pattern NONE, pattern CAPTURING_PHASE, pattern AT_TARGET,
-        pattern BUBBLING_PHASE, pattern MOUSEDOWN, pattern MOUSEUP,
-        pattern MOUSEOVER, pattern MOUSEOUT, pattern MOUSEMOVE,
-        pattern MOUSEDRAG, pattern CLICK, pattern DBLCLICK,
-        pattern KEYDOWN, pattern KEYUP, pattern KEYPRESS, pattern DRAGDROP,
-        pattern FOCUS, pattern BLUR, pattern SELECT, pattern CHANGE,
-        js_getType, getType, js_getTarget, getTarget, getTargetUnsafe,
-        getTargetUnchecked, js_getCurrentTarget, getCurrentTarget,
-        getCurrentTargetUnsafe, getCurrentTargetUnchecked,
-        js_getEventPhase, getEventPhase, js_getBubbles, getBubbles,
-        js_getCancelable, getCancelable, js_getTimeStamp, getTimeStamp,
-        js_getDefaultPrevented, getDefaultPrevented, js_getSrcElement,
-        getSrcElement, getSrcElementUnsafe, getSrcElementUnchecked,
+        pattern BUBBLING_PHASE, js_getType, getType, js_getTarget,
+        getTarget, js_getCurrentTarget, getCurrentTarget, js_getEventPhase,
+        getEventPhase, js_getBubbles, getBubbles, js_getCancelable,
+        getCancelable, js_getComposed, getComposed, js_getTimeStamp,
+        getTimeStamp, js_getDefaultPrevented, getDefaultPrevented,
+        js_getIsTrusted, getIsTrusted, js_getSrcElement, getSrcElement,
         js_setReturnValue, setReturnValue, js_getReturnValue,
         getReturnValue, js_setCancelBubble, setCancelBubble,
-        js_getCancelBubble, getCancelBubble, js_getClipboardData,
-        getClipboardData, getClipboardDataUnsafe,
-        getClipboardDataUnchecked, Event(..), gTypeEvent, IsEvent, toEvent)
+        js_getCancelBubble, getCancelBubble, Event(..), gTypeEvent,
+        IsEvent, toEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -39,10 +33,35 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe "new window[\"Event\"]($1, $2)"
+        js_newEvent :: JSString -> Optional EventInit -> IO Event
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Event Mozilla Event documentation> 
+newEvent ::
+         (MonadIO m, ToJSString type', IsEventInit eventInitDict) =>
+           type' -> Maybe eventInitDict -> m Event
+newEvent type' eventInitDict
+  = liftIO
+      (js_newEvent (toJSString type')
+         (maybeToOptional (fmap toEventInit eventInitDict)))
+ 
+foreign import javascript unsafe "$1[\"composedPath\"]()"
+        js_composedPath :: Event -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.composedPath Mozilla Event.composedPath documentation> 
+composedPath :: (MonadIO m, IsEvent self) => self -> m [Node]
+composedPath self
+  = liftIO ((js_composedPath (toEvent self)) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.composedPath Mozilla Event.composedPath documentation> 
+composedPath_ :: (MonadIO m, IsEvent self) => self -> m ()
+composedPath_ self = liftIO (void (js_composedPath (toEvent self)))
+ 
 foreign import javascript unsafe "$1[\"stopPropagation\"]()"
         js_stopPropagation :: Event -> IO ()
 
@@ -62,12 +81,11 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.initEvent Mozilla Event.initEvent documentation> 
 initEvent ::
-          (MonadIO m, IsEvent self, ToJSString eventTypeArg) =>
-            self -> eventTypeArg -> Bool -> Bool -> m ()
-initEvent self eventTypeArg canBubbleArg cancelableArg
+          (MonadIO m, IsEvent self, ToJSString type') =>
+            self -> type' -> Bool -> Bool -> m ()
+initEvent self type' bubbles cancelable
   = liftIO
-      (js_initEvent (toEvent self) (toJSString eventTypeArg) canBubbleArg
-         cancelableArg)
+      (js_initEvent (toEvent self) (toJSString type') bubbles cancelable)
  
 foreign import javascript unsafe
         "$1[\"stopImmediatePropagation\"]()" js_stopImmediatePropagation ::
@@ -82,22 +100,6 @@
 pattern CAPTURING_PHASE = 1
 pattern AT_TARGET = 2
 pattern BUBBLING_PHASE = 3
-pattern MOUSEDOWN = 1
-pattern MOUSEUP = 2
-pattern MOUSEOVER = 4
-pattern MOUSEOUT = 8
-pattern MOUSEMOVE = 16
-pattern MOUSEDRAG = 32
-pattern CLICK = 64
-pattern DBLCLICK = 128
-pattern KEYDOWN = 256
-pattern KEYUP = 512
-pattern KEYPRESS = 1024
-pattern DRAGDROP = 2048
-pattern FOCUS = 4096
-pattern BLUR = 8192
-pattern SELECT = 16384
-pattern CHANGE = 32768
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         Event -> IO JSString
@@ -109,53 +111,19 @@
   = liftIO (fromJSString <$> (js_getType (toEvent self)))
  
 foreign import javascript unsafe "$1[\"target\"]" js_getTarget ::
-        Event -> IO (Nullable EventTarget)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.target Mozilla Event.target documentation> 
-getTarget ::
-          (MonadIO m, IsEvent self) => self -> m (Maybe EventTarget)
-getTarget self
-  = liftIO (nullableToMaybe <$> (js_getTarget (toEvent self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.target Mozilla Event.target documentation> 
-getTargetUnsafe ::
-                (MonadIO m, IsEvent self, HasCallStack) => self -> m EventTarget
-getTargetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTarget (toEvent self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        Event -> IO EventTarget
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.target Mozilla Event.target documentation> 
-getTargetUnchecked ::
-                   (MonadIO m, IsEvent self) => self -> m EventTarget
-getTargetUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getTarget (toEvent self)))
+getTarget :: (MonadIO m, IsEvent self) => self -> m EventTarget
+getTarget self = liftIO (js_getTarget (toEvent self))
  
 foreign import javascript unsafe "$1[\"currentTarget\"]"
-        js_getCurrentTarget :: Event -> IO (Nullable EventTarget)
+        js_getCurrentTarget :: Event -> IO EventTarget
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.currentTarget Mozilla Event.currentTarget documentation> 
 getCurrentTarget ::
-                 (MonadIO m, IsEvent self) => self -> m (Maybe EventTarget)
-getCurrentTarget self
-  = liftIO (nullableToMaybe <$> (js_getCurrentTarget (toEvent self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.currentTarget Mozilla Event.currentTarget documentation> 
-getCurrentTargetUnsafe ::
-                       (MonadIO m, IsEvent self, HasCallStack) => self -> m EventTarget
-getCurrentTargetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCurrentTarget (toEvent self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.currentTarget Mozilla Event.currentTarget documentation> 
-getCurrentTargetUnchecked ::
-                          (MonadIO m, IsEvent self) => self -> m EventTarget
-getCurrentTargetUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getCurrentTarget (toEvent self)))
+                 (MonadIO m, IsEvent self) => self -> m EventTarget
+getCurrentTarget self = liftIO (js_getCurrentTarget (toEvent self))
  
 foreign import javascript unsafe "$1[\"eventPhase\"]"
         js_getEventPhase :: Event -> IO Word
@@ -178,6 +146,13 @@
 getCancelable :: (MonadIO m, IsEvent self) => self -> m Bool
 getCancelable self = liftIO (js_getCancelable (toEvent self))
  
+foreign import javascript unsafe "($1[\"composed\"] ? 1 : 0)"
+        js_getComposed :: Event -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.composed Mozilla Event.composed documentation> 
+getComposed :: (MonadIO m, IsEvent self) => self -> m Bool
+getComposed self = liftIO (js_getComposed (toEvent self))
+ 
 foreign import javascript unsafe "$1[\"timeStamp\"]"
         js_getTimeStamp :: Event -> IO Word
 
@@ -194,29 +169,19 @@
 getDefaultPrevented self
   = liftIO (js_getDefaultPrevented (toEvent self))
  
-foreign import javascript unsafe "$1[\"srcElement\"]"
-        js_getSrcElement :: Event -> IO (Nullable EventTarget)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.srcElement Mozilla Event.srcElement documentation> 
-getSrcElement ::
-              (MonadIO m, IsEvent self) => self -> m (Maybe EventTarget)
-getSrcElement self
-  = liftIO (nullableToMaybe <$> (js_getSrcElement (toEvent self)))
+foreign import javascript unsafe "($1[\"isTrusted\"] ? 1 : 0)"
+        js_getIsTrusted :: Event -> IO Bool
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.srcElement Mozilla Event.srcElement documentation> 
-getSrcElementUnsafe ::
-                    (MonadIO m, IsEvent self, HasCallStack) => self -> m EventTarget
-getSrcElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSrcElement (toEvent self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.isTrusted Mozilla Event.isTrusted documentation> 
+getIsTrusted :: (MonadIO m, IsEvent self) => self -> m Bool
+getIsTrusted self = liftIO (js_getIsTrusted (toEvent self))
+ 
+foreign import javascript unsafe "$1[\"srcElement\"]"
+        js_getSrcElement :: Event -> IO EventTarget
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.srcElement Mozilla Event.srcElement documentation> 
-getSrcElementUnchecked ::
-                       (MonadIO m, IsEvent self) => self -> m EventTarget
-getSrcElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSrcElement (toEvent self)))
+getSrcElement :: (MonadIO m, IsEvent self) => self -> m EventTarget
+getSrcElement self = liftIO (js_getSrcElement (toEvent self))
  
 foreign import javascript unsafe "$1[\"returnValue\"] = $2;"
         js_setReturnValue :: Event -> Bool -> IO ()
@@ -248,28 +213,3 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.cancelBubble Mozilla Event.cancelBubble documentation> 
 getCancelBubble :: (MonadIO m, IsEvent self) => self -> m Bool
 getCancelBubble self = liftIO (js_getCancelBubble (toEvent self))
- 
-foreign import javascript unsafe "$1[\"clipboardData\"]"
-        js_getClipboardData :: Event -> IO (Nullable DataTransfer)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.clipboardData Mozilla Event.clipboardData documentation> 
-getClipboardData ::
-                 (MonadIO m, IsEvent self) => self -> m (Maybe DataTransfer)
-getClipboardData self
-  = liftIO (nullableToMaybe <$> (js_getClipboardData (toEvent self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.clipboardData Mozilla Event.clipboardData documentation> 
-getClipboardDataUnsafe ::
-                       (MonadIO m, IsEvent self, HasCallStack) => self -> m DataTransfer
-getClipboardDataUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getClipboardData (toEvent self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Event.clipboardData Mozilla Event.clipboardData documentation> 
-getClipboardDataUnchecked ::
-                          (MonadIO m, IsEvent self) => self -> m DataTransfer
-getClipboardDataUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getClipboardData (toEvent self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/EventListener.hs b/src/GHCJS/DOM/JSFFI/Generated/EventListener.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/EventListener.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/EventListener.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,17 +20,17 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"handleEvent\"]($2)"
-        js_handleEvent :: EventListener -> Nullable Event -> IO ()
+        js_handleEvent :: EventListener -> Event -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/EventListener.handleEvent Mozilla EventListener.handleEvent documentation> 
 handleEvent ::
-            (MonadIO m, IsEvent evt) => EventListener -> Maybe evt -> m ()
-handleEvent self evt
-  = liftIO
-      (js_handleEvent (self) (maybeToNullable (fmap toEvent evt)))
+            (MonadIO m, IsEvent event) => EventListener -> event -> m ()
+handleEvent self event
+  = liftIO (js_handleEvent self (toEvent event))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/EventSource.hs b/src/GHCJS/DOM/JSFFI/Generated/EventSource.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/EventSource.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/EventSource.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,23 +31,23 @@
  
 foreign import javascript unsafe
         "new window[\"EventSource\"]($1,\n$2)" js_newEventSource ::
-        JSString -> Nullable Dictionary -> IO EventSource
+        JSString -> Optional EventSourceInit -> IO EventSource
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/EventSource Mozilla EventSource documentation> 
 newEventSource ::
-               (MonadIO m, ToJSString url, IsDictionary eventSourceInit) =>
-                 url -> Maybe eventSourceInit -> m EventSource
-newEventSource url eventSourceInit
+               (MonadIO m, ToJSString url) =>
+                 url -> Maybe EventSourceInit -> m EventSource
+newEventSource url eventSourceInitDict
   = liftIO
       (js_newEventSource (toJSString url)
-         (maybeToNullable (fmap toDictionary eventSourceInit)))
+         (maybeToOptional eventSourceInitDict))
  
 foreign import javascript unsafe "$1[\"close\"]()" js_close ::
         EventSource -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/EventSource.close Mozilla EventSource.close documentation> 
 close :: (MonadIO m) => EventSource -> m ()
-close self = liftIO (js_close (self))
+close self = liftIO (js_close self)
 pattern CONNECTING = 0
 pattern OPEN = 1
 pattern CLOSED = 2
@@ -57,7 +58,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/EventSource.url Mozilla EventSource.url documentation> 
 getUrl ::
        (MonadIO m, FromJSString result) => EventSource -> m result
-getUrl self = liftIO (fromJSString <$> (js_getUrl (self)))
+getUrl self = liftIO (fromJSString <$> (js_getUrl self))
  
 foreign import javascript unsafe
         "($1[\"withCredentials\"] ? 1 : 0)" js_getWithCredentials ::
@@ -65,14 +66,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/EventSource.withCredentials Mozilla EventSource.withCredentials documentation> 
 getWithCredentials :: (MonadIO m) => EventSource -> m Bool
-getWithCredentials self = liftIO (js_getWithCredentials (self))
+getWithCredentials self = liftIO (js_getWithCredentials self)
  
 foreign import javascript unsafe "$1[\"readyState\"]"
         js_getReadyState :: EventSource -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/EventSource.readyState Mozilla EventSource.readyState documentation> 
 getReadyState :: (MonadIO m) => EventSource -> m Word
-getReadyState self = liftIO (js_getReadyState (self))
+getReadyState self = liftIO (js_getReadyState self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/EventSource.onopen Mozilla EventSource.onopen documentation> 
 open :: EventName EventSource Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/EventTarget.hs b/src/GHCJS/DOM/JSFFI/Generated/EventTarget.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/EventTarget.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/EventTarget.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,58 +22,65 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
         "$1[\"addEventListener\"]($2, $3,\n$4)" js_addEventListener ::
-        EventTarget -> JSString -> Nullable EventListener -> Bool -> IO ()
+        EventTarget ->
+          JSString ->
+            Optional EventListener -> AddEventListenerOptionsOrBool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener Mozilla EventTarget.addEventListener documentation> 
 addEventListener ::
-                 (MonadIO m, IsEventTarget self, ToJSString type') =>
-                   self -> type' -> Maybe EventListener -> Bool -> m ()
-addEventListener self type' listener useCapture
+                 (MonadIO m, IsEventTarget self, ToJSString type',
+                  IsAddEventListenerOptionsOrBool options) =>
+                   self -> type' -> Maybe EventListener -> options -> m ()
+addEventListener self type' callback options
   = liftIO
-      (js_addEventListener (toEventTarget self) (toJSString type')
-         (maybeToNullable listener)
-         useCapture)
+      (toJSVal options >>=
+         \ options' ->
+           js_addEventListener (toEventTarget self) (toJSString type')
+             (maybeToOptional callback)
+             (AddEventListenerOptionsOrBool options'))
  
 foreign import javascript unsafe
         "$1[\"removeEventListener\"]($2,\n$3, $4)" js_removeEventListener
         ::
-        EventTarget -> JSString -> Nullable EventListener -> Bool -> IO ()
+        EventTarget ->
+          JSString ->
+            Optional EventListener -> EventListenerOptionsOrBool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.removeEventListener Mozilla EventTarget.removeEventListener documentation> 
 removeEventListener ::
-                    (MonadIO m, IsEventTarget self, ToJSString type') =>
-                      self -> type' -> Maybe EventListener -> Bool -> m ()
-removeEventListener self type' listener useCapture
+                    (MonadIO m, IsEventTarget self, ToJSString type',
+                     IsEventListenerOptionsOrBool options) =>
+                      self -> type' -> Maybe EventListener -> options -> m ()
+removeEventListener self type' callback options
   = liftIO
-      (js_removeEventListener (toEventTarget self) (toJSString type')
-         (maybeToNullable listener)
-         useCapture)
+      (toJSVal options >>=
+         \ options' ->
+           js_removeEventListener (toEventTarget self) (toJSString type')
+             (maybeToOptional callback)
+             (EventListenerOptionsOrBool options'))
  
 foreign import javascript unsafe
         "($1[\"dispatchEvent\"]($2) ? 1 : 0)" js_dispatchEvent ::
-        EventTarget -> Nullable Event -> IO Bool
+        EventTarget -> Event -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.dispatchEvent Mozilla EventTarget.dispatchEvent documentation> 
 dispatchEvent ::
               (MonadIO m, IsEventTarget self, IsEvent event) =>
-                self -> Maybe event -> m Bool
+                self -> event -> m Bool
 dispatchEvent self event
-  = liftIO
-      (js_dispatchEvent (toEventTarget self)
-         (maybeToNullable (fmap toEvent event)))
+  = liftIO (js_dispatchEvent (toEventTarget self) (toEvent event))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.dispatchEvent Mozilla EventTarget.dispatchEvent documentation> 
 dispatchEvent_ ::
                (MonadIO m, IsEventTarget self, IsEvent event) =>
-                 self -> Maybe event -> m ()
+                 self -> event -> m ()
 dispatchEvent_ self event
   = liftIO
-      (void
-         (js_dispatchEvent (toEventTarget self)
-            (maybeToNullable (fmap toEvent event))))
+      (void (js_dispatchEvent (toEventTarget self) (toEvent event)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/File.hs b/src/GHCJS/DOM/JSFFI/Generated/File.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/File.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/File.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.File
-       (js_getName, getName, js_getLastModifiedDate, getLastModifiedDate,
-        getLastModifiedDateUnsafe, getLastModifiedDateUnchecked, File(..),
-        gTypeFile)
+       (js_newFile, newFile, js_getName, getName, js_getLastModified,
+        getLastModified, File(..), gTypeFile)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,36 +20,36 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe "new window[\"File\"]($1, $2, $3)"
+        js_newFile ::
+        JSVal -> JSString -> Optional FilePropertyBag -> IO File
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/File Mozilla File documentation> 
+newFile ::
+        (MonadIO m, IsBlobPart fileBits, ToJSString fileName) =>
+          [fileBits] -> fileName -> Maybe FilePropertyBag -> m File
+newFile fileBits fileName options
+  = liftIO
+      (toJSVal fileBits >>= \ fileBits' -> js_newFile fileBits'
+         (toJSString fileName)
+         (maybeToOptional options))
+ 
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         File -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/File.name Mozilla File.name documentation> 
 getName :: (MonadIO m, FromJSString result) => File -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
-foreign import javascript unsafe "$1[\"lastModifiedDate\"]"
-        js_getLastModifiedDate :: File -> IO (Nullable Date)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/File.lastModifiedDate Mozilla File.lastModifiedDate documentation> 
-getLastModifiedDate :: (MonadIO m) => File -> m (Maybe Date)
-getLastModifiedDate self
-  = liftIO (nullableToMaybe <$> (js_getLastModifiedDate (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/File.lastModifiedDate Mozilla File.lastModifiedDate documentation> 
-getLastModifiedDateUnsafe ::
-                          (MonadIO m, HasCallStack) => File -> m Date
-getLastModifiedDateUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLastModifiedDate (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+foreign import javascript unsafe "$1[\"lastModified\"]"
+        js_getLastModified :: File -> IO Double
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/File.lastModifiedDate Mozilla File.lastModifiedDate documentation> 
-getLastModifiedDateUnchecked :: (MonadIO m) => File -> m Date
-getLastModifiedDateUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getLastModifiedDate (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/File.lastModified Mozilla File.lastModified documentation> 
+getLastModified :: (MonadIO m) => File -> m Int64
+getLastModified self = liftIO (round <$> (js_getLastModified self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/FileError.hs b/src/GHCJS/DOM/JSFFI/Generated/FileError.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/FileError.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/FileError.hs
@@ -16,7 +16,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,6 +25,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -47,4 +48,4 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileError.code Mozilla FileError.code documentation> 
 getCode :: (MonadIO m) => FileError -> m Word
-getCode self = liftIO (js_getCode (self))
+getCode self = liftIO (js_getCode self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/FileException.hs b/src/GHCJS/DOM/JSFFI/Generated/FileException.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/FileException.hs
@@ -0,0 +1,80 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.FileException
+       (js_toString, toString, toString_, pattern NOT_FOUND_ERR,
+        pattern SECURITY_ERR, pattern ABORT_ERR, pattern NOT_READABLE_ERR,
+        pattern ENCODING_ERR, pattern NO_MODIFICATION_ALLOWED_ERR,
+        pattern INVALID_STATE_ERR, pattern SYNTAX_ERR,
+        pattern INVALID_MODIFICATION_ERR, pattern QUOTA_EXCEEDED_ERR,
+        pattern TYPE_MISMATCH_ERR, pattern PATH_EXISTS_ERR, js_getCode,
+        getCode, js_getName, getName, js_getMessage, getMessage,
+        FileException(..), gTypeFileException)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"toString\"]()" js_toString
+        :: FileException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileException.toString Mozilla FileException.toString documentation> 
+toString ::
+         (MonadIO m, FromJSString result) => FileException -> m result
+toString self = liftIO (fromJSString <$> (js_toString self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileException.toString Mozilla FileException.toString documentation> 
+toString_ :: (MonadIO m) => FileException -> m ()
+toString_ self = liftIO (void (js_toString self))
+pattern NOT_FOUND_ERR = 1
+pattern SECURITY_ERR = 2
+pattern ABORT_ERR = 3
+pattern NOT_READABLE_ERR = 4
+pattern ENCODING_ERR = 5
+pattern NO_MODIFICATION_ALLOWED_ERR = 6
+pattern INVALID_STATE_ERR = 7
+pattern SYNTAX_ERR = 8
+pattern INVALID_MODIFICATION_ERR = 9
+pattern QUOTA_EXCEEDED_ERR = 10
+pattern TYPE_MISMATCH_ERR = 11
+pattern PATH_EXISTS_ERR = 12
+ 
+foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
+        FileException -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileException.code Mozilla FileException.code documentation> 
+getCode :: (MonadIO m) => FileException -> m Word
+getCode self = liftIO (js_getCode self)
+ 
+foreign import javascript unsafe "$1[\"name\"]" js_getName ::
+        FileException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileException.name Mozilla FileException.name documentation> 
+getName ::
+        (MonadIO m, FromJSString result) => FileException -> m result
+getName self = liftIO (fromJSString <$> (js_getName self))
+ 
+foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
+        FileException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileException.message Mozilla FileException.message documentation> 
+getMessage ::
+           (MonadIO m, FromJSString result) => FileException -> m result
+getMessage self = liftIO (fromJSString <$> (js_getMessage self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/FileList.hs b/src/GHCJS/DOM/JSFFI/Generated/FileList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/FileList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/FileList.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,39 +20,39 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
+foreign import javascript unsafe "$1[$2]" js_item ::
         FileList -> Word -> IO (Nullable File)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileList.item Mozilla FileList.item documentation> 
 item :: (MonadIO m) => FileList -> Word -> m (Maybe File)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item self index = liftIO (nullableToMaybe <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileList.item Mozilla FileList.item documentation> 
 item_ :: (MonadIO m) => FileList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileList.item Mozilla FileList.item documentation> 
 itemUnsafe ::
            (MonadIO m, HasCallStack) => FileList -> Word -> m File
 itemUnsafe self index
   = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
+      ((nullableToMaybe <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileList.item Mozilla FileList.item documentation> 
 itemUnchecked :: (MonadIO m) => FileList -> Word -> m File
 itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+  = liftIO (fromJust . nullableToMaybe <$> (js_item self index))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         FileList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileList.length Mozilla FileList.length documentation> 
 getLength :: (MonadIO m) => FileList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/FileReader.hs b/src/GHCJS/DOM/JSFFI/Generated/FileReader.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/FileReader.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/FileReader.hs
@@ -9,7 +9,7 @@
         js_readAsText, readAsText, js_readAsDataURL, readAsDataURL,
         js_abort, abort, pattern EMPTY, pattern LOADING, pattern DONE,
         js_getReadyState, getReadyState, js_getResult, getResult,
-        js_getError, getError, getErrorUnsafe, getErrorUnchecked,
+        getResultUnsafe, getResultUnchecked, js_getError, getError,
         loadStart, progress, load, abortEvent, error, loadEnd,
         FileReader(..), gTypeFileReader)
        where
@@ -17,7 +17,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,6 +26,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -39,53 +40,54 @@
 newFileReader = liftIO (js_newFileReader)
  
 foreign import javascript unsafe "$1[\"readAsArrayBuffer\"]($2)"
-        js_readAsArrayBuffer :: FileReader -> Nullable Blob -> IO ()
+        js_readAsArrayBuffer :: FileReader -> Optional Blob -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.readAsArrayBuffer Mozilla FileReader.readAsArrayBuffer documentation> 
 readAsArrayBuffer ::
                   (MonadIO m, IsBlob blob) => FileReader -> Maybe blob -> m ()
 readAsArrayBuffer self blob
   = liftIO
-      (js_readAsArrayBuffer (self) (maybeToNullable (fmap toBlob blob)))
+      (js_readAsArrayBuffer self (maybeToOptional (fmap toBlob blob)))
  
 foreign import javascript unsafe "$1[\"readAsBinaryString\"]($2)"
-        js_readAsBinaryString :: FileReader -> Nullable Blob -> IO ()
+        js_readAsBinaryString :: FileReader -> Optional Blob -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.readAsBinaryString Mozilla FileReader.readAsBinaryString documentation> 
 readAsBinaryString ::
                    (MonadIO m, IsBlob blob) => FileReader -> Maybe blob -> m ()
 readAsBinaryString self blob
   = liftIO
-      (js_readAsBinaryString (self) (maybeToNullable (fmap toBlob blob)))
+      (js_readAsBinaryString self (maybeToOptional (fmap toBlob blob)))
  
 foreign import javascript unsafe "$1[\"readAsText\"]($2, $3)"
-        js_readAsText :: FileReader -> Nullable Blob -> JSString -> IO ()
+        js_readAsText ::
+        FileReader -> Optional Blob -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.readAsText Mozilla FileReader.readAsText documentation> 
 readAsText ::
            (MonadIO m, IsBlob blob, ToJSString encoding) =>
-             FileReader -> Maybe blob -> encoding -> m ()
+             FileReader -> Maybe blob -> Maybe encoding -> m ()
 readAsText self blob encoding
   = liftIO
-      (js_readAsText (self) (maybeToNullable (fmap toBlob blob))
-         (toJSString encoding))
+      (js_readAsText self (maybeToOptional (fmap toBlob blob))
+         (toOptionalJSString encoding))
  
 foreign import javascript unsafe "$1[\"readAsDataURL\"]($2)"
-        js_readAsDataURL :: FileReader -> Nullable Blob -> IO ()
+        js_readAsDataURL :: FileReader -> Optional Blob -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.readAsDataURL Mozilla FileReader.readAsDataURL documentation> 
 readAsDataURL ::
               (MonadIO m, IsBlob blob) => FileReader -> Maybe blob -> m ()
 readAsDataURL self blob
   = liftIO
-      (js_readAsDataURL (self) (maybeToNullable (fmap toBlob blob)))
+      (js_readAsDataURL self (maybeToOptional (fmap toBlob blob)))
  
 foreign import javascript unsafe "$1[\"abort\"]()" js_abort ::
         FileReader -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.abort Mozilla FileReader.abort documentation> 
 abort :: (MonadIO m) => FileReader -> m ()
-abort self = liftIO (js_abort (self))
+abort self = liftIO (js_abort self)
 pattern EMPTY = 0
 pattern LOADING = 1
 pattern DONE = 2
@@ -95,34 +97,36 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.readyState Mozilla FileReader.readyState documentation> 
 getReadyState :: (MonadIO m) => FileReader -> m Word
-getReadyState self = liftIO (js_getReadyState (self))
+getReadyState self = liftIO (js_getReadyState self)
  
 foreign import javascript unsafe "$1[\"result\"]" js_getResult ::
-        FileReader -> IO JSVal
+        FileReader -> IO (Nullable StringOrArrayBuffer)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.result Mozilla FileReader.result documentation> 
-getResult :: (MonadIO m) => FileReader -> m JSVal
-getResult self = liftIO (js_getResult (self))
- 
-foreign import javascript unsafe "$1[\"error\"]" js_getError ::
-        FileReader -> IO (Nullable FileError)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.error Mozilla FileReader.error documentation> 
-getError :: (MonadIO m) => FileReader -> m (Maybe FileError)
-getError self = liftIO (nullableToMaybe <$> (js_getError (self)))
+getResult ::
+          (MonadIO m) => FileReader -> m (Maybe StringOrArrayBuffer)
+getResult self = liftIO (nullableToMaybe <$> (js_getResult self))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.error Mozilla FileReader.error documentation> 
-getErrorUnsafe ::
-               (MonadIO m, HasCallStack) => FileReader -> m FileError
-getErrorUnsafe self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.result Mozilla FileReader.result documentation> 
+getResultUnsafe ::
+                (MonadIO m, HasCallStack) => FileReader -> m StringOrArrayBuffer
+getResultUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getError (self))) >>=
+      ((nullableToMaybe <$> (js_getResult self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.result Mozilla FileReader.result documentation> 
+getResultUnchecked ::
+                   (MonadIO m) => FileReader -> m StringOrArrayBuffer
+getResultUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getResult self))
+ 
+foreign import javascript unsafe "$1[\"error\"]" js_getError ::
+        FileReader -> IO FileError
+
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.error Mozilla FileReader.error documentation> 
-getErrorUnchecked :: (MonadIO m) => FileReader -> m FileError
-getErrorUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getError (self)))
+getError :: (MonadIO m) => FileReader -> m FileError
+getError self = liftIO (js_getError self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReader.onloadstart Mozilla FileReader.onloadstart documentation> 
 loadStart :: EventName FileReader ProgressEvent
diff --git a/src/GHCJS/DOM/JSFFI/Generated/FileReaderSync.hs b/src/GHCJS/DOM/JSFFI/Generated/FileReaderSync.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/FileReaderSync.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/FileReaderSync.hs
@@ -5,8 +5,7 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.FileReaderSync
        (js_newFileReaderSync, newFileReaderSync, js_readAsArrayBuffer,
-        readAsArrayBuffer, readAsArrayBuffer_, readAsArrayBufferUnsafe,
-        readAsArrayBufferUnchecked, js_readAsBinaryString,
+        readAsArrayBuffer, readAsArrayBuffer_, js_readAsBinaryString,
         readAsBinaryString, readAsBinaryString_, js_readAsText, readAsText,
         readAsText_, js_readAsDataURL, readAsDataURL, readAsDataURL_,
         FileReaderSync(..), gTypeFileReaderSync)
@@ -15,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -37,109 +37,72 @@
 newFileReaderSync = liftIO (js_newFileReaderSync)
  
 foreign import javascript unsafe "$1[\"readAsArrayBuffer\"]($2)"
-        js_readAsArrayBuffer ::
-        FileReaderSync -> Nullable Blob -> IO (Nullable ArrayBuffer)
+        js_readAsArrayBuffer :: FileReaderSync -> Blob -> IO ArrayBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsArrayBuffer Mozilla FileReaderSync.readAsArrayBuffer documentation> 
 readAsArrayBuffer ::
-                  (MonadIO m, IsBlob blob) =>
-                    FileReaderSync -> Maybe blob -> m (Maybe ArrayBuffer)
+                  (MonadIO m, IsBlob blob) => FileReaderSync -> blob -> m ArrayBuffer
 readAsArrayBuffer self blob
-  = liftIO
-      (nullableToMaybe <$>
-         (js_readAsArrayBuffer (self) (maybeToNullable (fmap toBlob blob))))
+  = liftIO (js_readAsArrayBuffer self (toBlob blob))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsArrayBuffer Mozilla FileReaderSync.readAsArrayBuffer documentation> 
 readAsArrayBuffer_ ::
-                   (MonadIO m, IsBlob blob) => FileReaderSync -> Maybe blob -> m ()
+                   (MonadIO m, IsBlob blob) => FileReaderSync -> blob -> m ()
 readAsArrayBuffer_ self blob
-  = liftIO
-      (void
-         (js_readAsArrayBuffer (self) (maybeToNullable (fmap toBlob blob))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsArrayBuffer Mozilla FileReaderSync.readAsArrayBuffer documentation> 
-readAsArrayBufferUnsafe ::
-                        (MonadIO m, IsBlob blob, HasCallStack) =>
-                          FileReaderSync -> Maybe blob -> m ArrayBuffer
-readAsArrayBufferUnsafe self blob
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_readAsArrayBuffer (self) (maybeToNullable (fmap toBlob blob))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsArrayBuffer Mozilla FileReaderSync.readAsArrayBuffer documentation> 
-readAsArrayBufferUnchecked ::
-                           (MonadIO m, IsBlob blob) =>
-                             FileReaderSync -> Maybe blob -> m ArrayBuffer
-readAsArrayBufferUnchecked self blob
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_readAsArrayBuffer (self) (maybeToNullable (fmap toBlob blob))))
+  = liftIO (void (js_readAsArrayBuffer self (toBlob blob)))
  
 foreign import javascript unsafe "$1[\"readAsBinaryString\"]($2)"
-        js_readAsBinaryString ::
-        FileReaderSync -> Nullable Blob -> IO JSString
+        js_readAsBinaryString :: FileReaderSync -> Blob -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsBinaryString Mozilla FileReaderSync.readAsBinaryString documentation> 
 readAsBinaryString ::
                    (MonadIO m, IsBlob blob, FromJSString result) =>
-                     FileReaderSync -> Maybe blob -> m result
+                     FileReaderSync -> blob -> m result
 readAsBinaryString self blob
   = liftIO
-      (fromJSString <$>
-         (js_readAsBinaryString (self)
-            (maybeToNullable (fmap toBlob blob))))
+      (fromJSString <$> (js_readAsBinaryString self (toBlob blob)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsBinaryString Mozilla FileReaderSync.readAsBinaryString documentation> 
 readAsBinaryString_ ::
-                    (MonadIO m, IsBlob blob) => FileReaderSync -> Maybe blob -> m ()
+                    (MonadIO m, IsBlob blob) => FileReaderSync -> blob -> m ()
 readAsBinaryString_ self blob
-  = liftIO
-      (void
-         (js_readAsBinaryString (self)
-            (maybeToNullable (fmap toBlob blob))))
+  = liftIO (void (js_readAsBinaryString self (toBlob blob)))
  
 foreign import javascript unsafe "$1[\"readAsText\"]($2, $3)"
         js_readAsText ::
-        FileReaderSync -> Nullable Blob -> JSString -> IO JSString
+        FileReaderSync -> Blob -> Optional JSString -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsText Mozilla FileReaderSync.readAsText documentation> 
 readAsText ::
            (MonadIO m, IsBlob blob, ToJSString encoding,
             FromJSString result) =>
-             FileReaderSync -> Maybe blob -> encoding -> m result
+             FileReaderSync -> blob -> Maybe encoding -> m result
 readAsText self blob encoding
   = liftIO
       (fromJSString <$>
-         (js_readAsText (self) (maybeToNullable (fmap toBlob blob))
-            (toJSString encoding)))
+         (js_readAsText self (toBlob blob) (toOptionalJSString encoding)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsText Mozilla FileReaderSync.readAsText documentation> 
 readAsText_ ::
             (MonadIO m, IsBlob blob, ToJSString encoding) =>
-              FileReaderSync -> Maybe blob -> encoding -> m ()
+              FileReaderSync -> blob -> Maybe encoding -> m ()
 readAsText_ self blob encoding
   = liftIO
       (void
-         (js_readAsText (self) (maybeToNullable (fmap toBlob blob))
-            (toJSString encoding)))
+         (js_readAsText self (toBlob blob) (toOptionalJSString encoding)))
  
 foreign import javascript unsafe "$1[\"readAsDataURL\"]($2)"
-        js_readAsDataURL :: FileReaderSync -> Nullable Blob -> IO JSString
+        js_readAsDataURL :: FileReaderSync -> Blob -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsDataURL Mozilla FileReaderSync.readAsDataURL documentation> 
 readAsDataURL ::
               (MonadIO m, IsBlob blob, FromJSString result) =>
-                FileReaderSync -> Maybe blob -> m result
+                FileReaderSync -> blob -> m result
 readAsDataURL self blob
-  = liftIO
-      (fromJSString <$>
-         (js_readAsDataURL (self) (maybeToNullable (fmap toBlob blob))))
+  = liftIO (fromJSString <$> (js_readAsDataURL self (toBlob blob)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsDataURL Mozilla FileReaderSync.readAsDataURL documentation> 
 readAsDataURL_ ::
-               (MonadIO m, IsBlob blob) => FileReaderSync -> Maybe blob -> m ()
+               (MonadIO m, IsBlob blob) => FileReaderSync -> blob -> m ()
 readAsDataURL_ self blob
-  = liftIO
-      (void
-         (js_readAsDataURL (self) (maybeToNullable (fmap toBlob blob))))
+  = liftIO (void (js_readAsDataURL self (toBlob blob)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/FocusEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/FocusEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/FocusEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/FocusEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.FocusEvent
-       (js_getRelatedTarget, getRelatedTarget, getRelatedTargetUnsafe,
+       (js_newFocusEvent, newFocusEvent, js_getRelatedTarget,
+        getRelatedTarget, getRelatedTargetUnsafe,
         getRelatedTargetUnchecked, FocusEvent(..), gTypeFocusEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,11 +21,25 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"FocusEvent\"]($1, $2)" js_newFocusEvent ::
+        JSString -> Optional FocusEventInit -> IO FocusEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent Mozilla FocusEvent documentation> 
+newFocusEvent ::
+              (MonadIO m, ToJSString type') =>
+                type' -> Maybe FocusEventInit -> m FocusEvent
+newFocusEvent type' eventInitDict
+  = liftIO
+      (js_newFocusEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"relatedTarget\"]"
         js_getRelatedTarget :: FocusEvent -> IO (Nullable EventTarget)
 
@@ -32,14 +47,14 @@
 getRelatedTarget ::
                  (MonadIO m) => FocusEvent -> m (Maybe EventTarget)
 getRelatedTarget self
-  = liftIO (nullableToMaybe <$> (js_getRelatedTarget (self)))
+  = liftIO (nullableToMaybe <$> (js_getRelatedTarget self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent.relatedTarget Mozilla FocusEvent.relatedTarget documentation> 
 getRelatedTargetUnsafe ::
                        (MonadIO m, HasCallStack) => FocusEvent -> m EventTarget
 getRelatedTargetUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getRelatedTarget (self))) >>=
+      ((nullableToMaybe <$> (js_getRelatedTarget self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent.relatedTarget Mozilla FocusEvent.relatedTarget documentation> 
@@ -47,4 +62,4 @@
                           (MonadIO m) => FocusEvent -> m EventTarget
 getRelatedTargetUnchecked self
   = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRelatedTarget (self)))
+      (fromJust . nullableToMaybe <$> (js_getRelatedTarget self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/FontFace.hs b/src/GHCJS/DOM/JSFFI/Generated/FontFace.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/FontFace.hs
@@ -0,0 +1,189 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.FontFace
+       (js_newFontFace, newFontFace, js_load, load, load_, js_setFamily,
+        setFamily, js_getFamily, getFamily, js_setStyle, setStyle,
+        js_getStyle, getStyle, js_setWeight, setWeight, js_getWeight,
+        getWeight, js_setStretch, setStretch, js_getStretch, getStretch,
+        js_setUnicodeRange, setUnicodeRange, js_getUnicodeRange,
+        getUnicodeRange, js_setVariant, setVariant, js_getVariant,
+        getVariant, js_setFeatureSettings, setFeatureSettings,
+        js_getFeatureSettings, getFeatureSettings, js_getStatus, getStatus,
+        js_getLoaded, getLoaded, FontFace(..), gTypeFontFace)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"FontFace\"]($1, $2,\n$3)" js_newFontFace ::
+        JSString ->
+          StringOrBinaryData -> Optional FontFaceDescriptors -> IO FontFace
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace Mozilla FontFace documentation> 
+newFontFace ::
+            (MonadIO m, ToJSString family', IsStringOrBinaryData source) =>
+              family' -> source -> Maybe FontFaceDescriptors -> m FontFace
+newFontFace family' source descriptors
+  = liftIO
+      (toJSVal source >>=
+         \ source' ->
+           js_newFontFace (toJSString family') (StringOrBinaryData source')
+         (maybeToOptional descriptors))
+ 
+foreign import javascript interruptible
+        "$1[\"load\"]().then($c);" js_load :: FontFace -> IO FontFace
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.load Mozilla FontFace.load documentation> 
+load :: (MonadIO m) => FontFace -> m FontFace
+load self = liftIO (js_load self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.load Mozilla FontFace.load documentation> 
+load_ :: (MonadIO m) => FontFace -> m ()
+load_ self = liftIO (void (js_load self))
+ 
+foreign import javascript unsafe "$1[\"family\"] = $2;"
+        js_setFamily :: FontFace -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.family Mozilla FontFace.family documentation> 
+setFamily :: (MonadIO m, ToJSString val) => FontFace -> val -> m ()
+setFamily self val = liftIO (js_setFamily self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"family\"]" js_getFamily ::
+        FontFace -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.family Mozilla FontFace.family documentation> 
+getFamily ::
+          (MonadIO m, FromJSString result) => FontFace -> m result
+getFamily self = liftIO (fromJSString <$> (js_getFamily self))
+ 
+foreign import javascript unsafe "$1[\"style\"] = $2;" js_setStyle
+        :: FontFace -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.style Mozilla FontFace.style documentation> 
+setStyle :: (MonadIO m, ToJSString val) => FontFace -> val -> m ()
+setStyle self val = liftIO (js_setStyle self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"style\"]" js_getStyle ::
+        FontFace -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.style Mozilla FontFace.style documentation> 
+getStyle ::
+         (MonadIO m, FromJSString result) => FontFace -> m result
+getStyle self = liftIO (fromJSString <$> (js_getStyle self))
+ 
+foreign import javascript unsafe "$1[\"weight\"] = $2;"
+        js_setWeight :: FontFace -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.weight Mozilla FontFace.weight documentation> 
+setWeight :: (MonadIO m, ToJSString val) => FontFace -> val -> m ()
+setWeight self val = liftIO (js_setWeight self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"weight\"]" js_getWeight ::
+        FontFace -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.weight Mozilla FontFace.weight documentation> 
+getWeight ::
+          (MonadIO m, FromJSString result) => FontFace -> m result
+getWeight self = liftIO (fromJSString <$> (js_getWeight self))
+ 
+foreign import javascript unsafe "$1[\"stretch\"] = $2;"
+        js_setStretch :: FontFace -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.stretch Mozilla FontFace.stretch documentation> 
+setStretch ::
+           (MonadIO m, ToJSString val) => FontFace -> val -> m ()
+setStretch self val = liftIO (js_setStretch self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"stretch\"]" js_getStretch ::
+        FontFace -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.stretch Mozilla FontFace.stretch documentation> 
+getStretch ::
+           (MonadIO m, FromJSString result) => FontFace -> m result
+getStretch self = liftIO (fromJSString <$> (js_getStretch self))
+ 
+foreign import javascript unsafe "$1[\"unicodeRange\"] = $2;"
+        js_setUnicodeRange :: FontFace -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.unicodeRange Mozilla FontFace.unicodeRange documentation> 
+setUnicodeRange ::
+                (MonadIO m, ToJSString val) => FontFace -> val -> m ()
+setUnicodeRange self val
+  = liftIO (js_setUnicodeRange self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"unicodeRange\"]"
+        js_getUnicodeRange :: FontFace -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.unicodeRange Mozilla FontFace.unicodeRange documentation> 
+getUnicodeRange ::
+                (MonadIO m, FromJSString result) => FontFace -> m result
+getUnicodeRange self
+  = liftIO (fromJSString <$> (js_getUnicodeRange self))
+ 
+foreign import javascript unsafe "$1[\"variant\"] = $2;"
+        js_setVariant :: FontFace -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.variant Mozilla FontFace.variant documentation> 
+setVariant ::
+           (MonadIO m, ToJSString val) => FontFace -> val -> m ()
+setVariant self val = liftIO (js_setVariant self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"variant\"]" js_getVariant ::
+        FontFace -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.variant Mozilla FontFace.variant documentation> 
+getVariant ::
+           (MonadIO m, FromJSString result) => FontFace -> m result
+getVariant self = liftIO (fromJSString <$> (js_getVariant self))
+ 
+foreign import javascript unsafe "$1[\"featureSettings\"] = $2;"
+        js_setFeatureSettings :: FontFace -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.featureSettings Mozilla FontFace.featureSettings documentation> 
+setFeatureSettings ::
+                   (MonadIO m, ToJSString val) => FontFace -> val -> m ()
+setFeatureSettings self val
+  = liftIO (js_setFeatureSettings self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"featureSettings\"]"
+        js_getFeatureSettings :: FontFace -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.featureSettings Mozilla FontFace.featureSettings documentation> 
+getFeatureSettings ::
+                   (MonadIO m, FromJSString result) => FontFace -> m result
+getFeatureSettings self
+  = liftIO (fromJSString <$> (js_getFeatureSettings self))
+ 
+foreign import javascript unsafe "$1[\"status\"]" js_getStatus ::
+        FontFace -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.status Mozilla FontFace.status documentation> 
+getStatus :: (MonadIO m) => FontFace -> m FontFaceLoadStatus
+getStatus self
+  = liftIO ((js_getStatus self) >>= fromJSValUnchecked)
+ 
+foreign import javascript interruptible
+        "$1[\"loaded\"].then($c);" js_getLoaded :: FontFace -> IO FontFace
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFace.loaded Mozilla FontFace.loaded documentation> 
+getLoaded :: (MonadIO m) => FontFace -> m FontFace
+getLoaded self = liftIO (js_getLoaded self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/FontFaceSet.hs b/src/GHCJS/DOM/JSFFI/Generated/FontFaceSet.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/FontFaceSet.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.FontFaceSet
+       (js_newFontFaceSet, newFontFaceSet, js_has, has, has_, js_add, add,
+        add_, js_delete, delete, delete_, js_clear, clear, js_load, load,
+        load_, js_check, check, check_, js_getSize, getSize, loading,
+        loadingDone, loadingerror, js_getReady, getReady, js_getStatus,
+        getStatus, FontFaceSet(..), gTypeFontFaceSet)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "new window[\"FontFaceSet\"]($1)"
+        js_newFontFaceSet :: JSVal -> IO FontFaceSet
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet Mozilla FontFaceSet documentation> 
+newFontFaceSet :: (MonadIO m) => [FontFace] -> m FontFaceSet
+newFontFaceSet initialFaces
+  = liftIO
+      (toJSVal initialFaces >>=
+         \ initialFaces' -> js_newFontFaceSet initialFaces')
+ 
+foreign import javascript unsafe "($1[\"has\"]($2) ? 1 : 0)" js_has
+        :: FontFaceSet -> FontFace -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.has Mozilla FontFaceSet.has documentation> 
+has :: (MonadIO m) => FontFaceSet -> FontFace -> m Bool
+has self font = liftIO (js_has self font)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.has Mozilla FontFaceSet.has documentation> 
+has_ :: (MonadIO m) => FontFaceSet -> FontFace -> m ()
+has_ self font = liftIO (void (js_has self font))
+ 
+foreign import javascript unsafe "$1[\"add\"]($2)" js_add ::
+        FontFaceSet -> FontFace -> IO FontFaceSet
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.add Mozilla FontFaceSet.add documentation> 
+add :: (MonadIO m) => FontFaceSet -> FontFace -> m FontFaceSet
+add self font = liftIO (js_add self font)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.add Mozilla FontFaceSet.add documentation> 
+add_ :: (MonadIO m) => FontFaceSet -> FontFace -> m ()
+add_ self font = liftIO (void (js_add self font))
+ 
+foreign import javascript unsafe "($1[\"delete\"]($2) ? 1 : 0)"
+        js_delete :: FontFaceSet -> FontFace -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.delete Mozilla FontFaceSet.delete documentation> 
+delete :: (MonadIO m) => FontFaceSet -> FontFace -> m Bool
+delete self font = liftIO (js_delete self font)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.delete Mozilla FontFaceSet.delete documentation> 
+delete_ :: (MonadIO m) => FontFaceSet -> FontFace -> m ()
+delete_ self font = liftIO (void (js_delete self font))
+ 
+foreign import javascript unsafe "$1[\"clear\"]()" js_clear ::
+        FontFaceSet -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.clear Mozilla FontFaceSet.clear documentation> 
+clear :: (MonadIO m) => FontFaceSet -> m ()
+clear self = liftIO (js_clear self)
+ 
+foreign import javascript interruptible
+        "$1[\"load\"]($2, $3).then($c);" js_load ::
+        FontFaceSet -> JSString -> Optional JSString -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.load Mozilla FontFaceSet.load documentation> 
+load ::
+     (MonadIO m, ToJSString font, ToJSString text) =>
+       FontFaceSet -> font -> Maybe text -> m [FontFace]
+load self font text
+  = liftIO
+      ((js_load self (toJSString font) (toOptionalJSString text)) >>=
+         fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.load Mozilla FontFaceSet.load documentation> 
+load_ ::
+      (MonadIO m, ToJSString font, ToJSString text) =>
+        FontFaceSet -> font -> Maybe text -> m ()
+load_ self font text
+  = liftIO
+      (void (js_load self (toJSString font) (toOptionalJSString text)))
+ 
+foreign import javascript unsafe "($1[\"check\"]($2, $3) ? 1 : 0)"
+        js_check :: FontFaceSet -> JSString -> Optional JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.check Mozilla FontFaceSet.check documentation> 
+check ::
+      (MonadIO m, ToJSString font, ToJSString text) =>
+        FontFaceSet -> font -> Maybe text -> m Bool
+check self font text
+  = liftIO
+      (js_check self (toJSString font) (toOptionalJSString text))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.check Mozilla FontFaceSet.check documentation> 
+check_ ::
+       (MonadIO m, ToJSString font, ToJSString text) =>
+         FontFaceSet -> font -> Maybe text -> m ()
+check_ self font text
+  = liftIO
+      (void (js_check self (toJSString font) (toOptionalJSString text)))
+ 
+foreign import javascript unsafe "$1[\"size\"]" js_getSize ::
+        FontFaceSet -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.size Mozilla FontFaceSet.size documentation> 
+getSize :: (MonadIO m) => FontFaceSet -> m Int
+getSize self = liftIO (js_getSize self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.onloading Mozilla FontFaceSet.onloading documentation> 
+loading :: EventName FontFaceSet Event
+loading = unsafeEventName (toJSString "loading")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.onloadingdone Mozilla FontFaceSet.onloadingdone documentation> 
+loadingDone :: EventName FontFaceSet Event
+loadingDone = unsafeEventName (toJSString "loadingdone")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.onloadingerror Mozilla FontFaceSet.onloadingerror documentation> 
+loadingerror :: EventName FontFaceSet onloadingerror
+loadingerror = unsafeEventName (toJSString "loadingerror")
+ 
+foreign import javascript interruptible
+        "$1[\"ready\"].then($c);" js_getReady ::
+        FontFaceSet -> IO FontFaceSet
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.ready Mozilla FontFaceSet.ready documentation> 
+getReady :: (MonadIO m) => FontFaceSet -> m FontFaceSet
+getReady self = liftIO (js_getReady self)
+ 
+foreign import javascript unsafe "$1[\"status\"]" js_getStatus ::
+        FontFaceSet -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet.status Mozilla FontFaceSet.status documentation> 
+getStatus :: (MonadIO m) => FontFaceSet -> m FontFaceSetLoadStatus
+getStatus self
+  = liftIO ((js_getStatus self) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/FontLoader.hs b/src/GHCJS/DOM/JSFFI/Generated/FontLoader.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/FontLoader.hs
+++ /dev/null
@@ -1,96 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.FontLoader
-       (js_checkFont, checkFont, checkFont_, js_loadFont, loadFont,
-        js_notifyWhenFontsReady, notifyWhenFontsReady, loading,
-        loadingDone, loadStart, load, error, js_getLoading, getLoading,
-        FontLoader(..), gTypeFontLoader)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe
-        "($1[\"checkFont\"]($2,\n$3) ? 1 : 0)" js_checkFont ::
-        FontLoader -> JSString -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader.checkFont Mozilla FontLoader.checkFont documentation> 
-checkFont ::
-          (MonadIO m, ToJSString font, ToJSString text) =>
-            FontLoader -> font -> text -> m Bool
-checkFont self font text
-  = liftIO (js_checkFont (self) (toJSString font) (toJSString text))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader.checkFont Mozilla FontLoader.checkFont documentation> 
-checkFont_ ::
-           (MonadIO m, ToJSString font, ToJSString text) =>
-             FontLoader -> font -> text -> m ()
-checkFont_ self font text
-  = liftIO
-      (void (js_checkFont (self) (toJSString font) (toJSString text)))
- 
-foreign import javascript unsafe "$1[\"loadFont\"]($2)" js_loadFont
-        :: FontLoader -> Nullable Dictionary -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader.loadFont Mozilla FontLoader.loadFont documentation> 
-loadFont ::
-         (MonadIO m, IsDictionary params) =>
-           FontLoader -> Maybe params -> m ()
-loadFont self params
-  = liftIO
-      (js_loadFont (self) (maybeToNullable (fmap toDictionary params)))
- 
-foreign import javascript unsafe "$1[\"notifyWhenFontsReady\"]($2)"
-        js_notifyWhenFontsReady ::
-        FontLoader -> Nullable VoidCallback -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader.notifyWhenFontsReady Mozilla FontLoader.notifyWhenFontsReady documentation> 
-notifyWhenFontsReady ::
-                     (MonadIO m) => FontLoader -> Maybe VoidCallback -> m ()
-notifyWhenFontsReady self callback
-  = liftIO
-      (js_notifyWhenFontsReady (self) (maybeToNullable callback))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader.onloading Mozilla FontLoader.onloading documentation> 
-loading :: EventName FontLoader Event
-loading = unsafeEventName (toJSString "loading")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader.onloadingdone Mozilla FontLoader.onloadingdone documentation> 
-loadingDone :: EventName FontLoader Event
-loadingDone = unsafeEventName (toJSString "loadingdone")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader.onloadstart Mozilla FontLoader.onloadstart documentation> 
-loadStart :: EventName FontLoader ProgressEvent
-loadStart = unsafeEventName (toJSString "loadstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader.onload Mozilla FontLoader.onload documentation> 
-load :: EventName FontLoader UIEvent
-load = unsafeEventName (toJSString "load")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader.onerror Mozilla FontLoader.onerror documentation> 
-error :: EventName FontLoader UIEvent
-error = unsafeEventName (toJSString "error")
- 
-foreign import javascript unsafe "($1[\"loading\"] ? 1 : 0)"
-        js_getLoading :: FontLoader -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader.loading Mozilla FontLoader.loading documentation> 
-getLoading :: (MonadIO m) => FontLoader -> m Bool
-getLoading self = liftIO (js_getLoading (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/FormData.hs b/src/GHCJS/DOM/JSFFI/Generated/FormData.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/FormData.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/FormData.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.FormData
-       (js_newFormData, newFormData, js_append, append, FormData(..),
-        gTypeFormData)
+       (js_newFormData, newFormData, js_append, append, js_appendBlob,
+        appendBlob, FormData(..), gTypeFormData)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,27 +20,38 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "new window[\"FormData\"]($1)"
-        js_newFormData :: Nullable HTMLFormElement -> IO FormData
+        js_newFormData :: Optional HTMLFormElement -> IO FormData
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FormData Mozilla FormData documentation> 
 newFormData :: (MonadIO m) => Maybe HTMLFormElement -> m FormData
-newFormData form = liftIO (js_newFormData (maybeToNullable form))
+newFormData form = liftIO (js_newFormData (maybeToOptional form))
  
-foreign import javascript unsafe "$1[\"append\"]($2, $3, $4)"
-        js_append :: FormData -> JSString -> JSString -> JSString -> IO ()
+foreign import javascript unsafe "$1[\"append\"]($2, $3)" js_append
+        :: FormData -> JSString -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/FormData.append Mozilla FormData.append documentation> 
 append ::
-       (MonadIO m, ToJSString name, ToJSString value,
-        ToJSString filename) =>
-         FormData -> name -> value -> filename -> m ()
-append self name value filename
+       (MonadIO m, ToJSString name, ToJSString value) =>
+         FormData -> name -> value -> m ()
+append self name value
+  = liftIO (js_append self (toJSString name) (toJSString value))
+ 
+foreign import javascript unsafe "$1[\"append\"]($2, $3, $4)"
+        js_appendBlob ::
+        FormData -> JSString -> Blob -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/FormData.append Mozilla FormData.append documentation> 
+appendBlob ::
+           (MonadIO m, ToJSString name, IsBlob value, ToJSString filename) =>
+             FormData -> name -> value -> Maybe filename -> m ()
+appendBlob self name value filename
   = liftIO
-      (js_append (self) (toJSString name) (toJSString value)
-         (toJSString filename))
+      (js_appendBlob self (toJSString name) (toBlob value)
+         (toOptionalJSString filename))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/GainNode.hs b/src/GHCJS/DOM/JSFFI/Generated/GainNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/GainNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/GainNode.hs
@@ -4,14 +4,12 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.GainNode
-       (js_getGain, getGain, getGainUnsafe, getGainUnchecked,
-        GainNode(..), gTypeGainNode)
-       where
+       (js_getGain, getGain, GainNode(..), gTypeGainNode) where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,27 +18,15 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"gain\"]" js_getGain ::
-        GainNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/GainNode.gain Mozilla GainNode.gain documentation> 
-getGain :: (MonadIO m) => GainNode -> m (Maybe AudioParam)
-getGain self = liftIO (nullableToMaybe <$> (js_getGain (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/GainNode.gain Mozilla GainNode.gain documentation> 
-getGainUnsafe ::
-              (MonadIO m, HasCallStack) => GainNode -> m AudioParam
-getGainUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getGain (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        GainNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/GainNode.gain Mozilla GainNode.gain documentation> 
-getGainUnchecked :: (MonadIO m) => GainNode -> m AudioParam
-getGainUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getGain (self)))
+getGain :: (MonadIO m) => GainNode -> m AudioParam
+getGain self = liftIO (js_getGain self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Gamepad.hs b/src/GHCJS/DOM/JSFFI/Generated/Gamepad.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Gamepad.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Gamepad.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,28 +33,28 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Gamepad.id Mozilla Gamepad.id documentation> 
 getId :: (MonadIO m, FromJSString result) => Gamepad -> m result
-getId self = liftIO (fromJSString <$> (js_getId (self)))
+getId self = liftIO (fromJSString <$> (js_getId self))
  
 foreign import javascript unsafe "$1[\"index\"]" js_getIndex ::
         Gamepad -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Gamepad.index Mozilla Gamepad.index documentation> 
 getIndex :: (MonadIO m) => Gamepad -> m Word
-getIndex self = liftIO (js_getIndex (self))
+getIndex self = liftIO (js_getIndex self)
  
 foreign import javascript unsafe "($1[\"connected\"] ? 1 : 0)"
         js_getConnected :: Gamepad -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Gamepad.connected Mozilla Gamepad.connected documentation> 
 getConnected :: (MonadIO m) => Gamepad -> m Bool
-getConnected self = liftIO (js_getConnected (self))
+getConnected self = liftIO (js_getConnected self)
  
 foreign import javascript unsafe "$1[\"timestamp\"]"
         js_getTimestamp :: Gamepad -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Gamepad.timestamp Mozilla Gamepad.timestamp documentation> 
 getTimestamp :: (MonadIO m) => Gamepad -> m Double
-getTimestamp self = liftIO (js_getTimestamp (self))
+getTimestamp self = liftIO (js_getTimestamp self)
  
 foreign import javascript unsafe "$1[\"mapping\"]" js_getMapping ::
         Gamepad -> IO JSString
@@ -61,19 +62,19 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Gamepad.mapping Mozilla Gamepad.mapping documentation> 
 getMapping ::
            (MonadIO m, FromJSString result) => Gamepad -> m result
-getMapping self = liftIO (fromJSString <$> (js_getMapping (self)))
+getMapping self = liftIO (fromJSString <$> (js_getMapping self))
  
 foreign import javascript unsafe "$1[\"axes\"]" js_getAxes ::
         Gamepad -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Gamepad.axes Mozilla Gamepad.axes documentation> 
 getAxes :: (MonadIO m) => Gamepad -> m [Double]
-getAxes self = liftIO ((js_getAxes (self)) >>= fromJSValUnchecked)
+getAxes self = liftIO ((js_getAxes self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "$1[\"buttons\"]" js_getButtons ::
         Gamepad -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Gamepad.buttons Mozilla Gamepad.buttons documentation> 
-getButtons :: (MonadIO m) => Gamepad -> m [Maybe GamepadButton]
+getButtons :: (MonadIO m) => Gamepad -> m [GamepadButton]
 getButtons self
-  = liftIO ((js_getButtons (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_getButtons self) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/GamepadButton.hs b/src/GHCJS/DOM/JSFFI/Generated/GamepadButton.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/GamepadButton.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/GamepadButton.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,11 +31,11 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton.pressed Mozilla GamepadButton.pressed documentation> 
 getPressed :: (MonadIO m) => GamepadButton -> m Bool
-getPressed self = liftIO (js_getPressed (self))
+getPressed self = liftIO (js_getPressed self)
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         GamepadButton -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton.value Mozilla GamepadButton.value documentation> 
 getValue :: (MonadIO m) => GamepadButton -> m Double
-getValue self = liftIO (js_getValue (self))
+getValue self = liftIO (js_getValue self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/GamepadEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/GamepadEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/GamepadEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/GamepadEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.GamepadEvent
-       (js_getGamepad, getGamepad, getGamepadUnsafe, getGamepadUnchecked,
-        GamepadEvent(..), gTypeGamepadEvent)
+       (js_newGamepadEvent, newGamepadEvent, js_getGamepad, getGamepad,
+        getGamepadUnsafe, getGamepadUnchecked, GamepadEvent(..),
+        gTypeGamepadEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,28 +21,39 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"GamepadEvent\"]($1,\n$2)" js_newGamepadEvent ::
+        JSString -> GamepadEventInit -> IO GamepadEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent Mozilla GamepadEvent documentation> 
+newGamepadEvent ::
+                (MonadIO m, ToJSString type') =>
+                  type' -> GamepadEventInit -> m GamepadEvent
+newGamepadEvent type' eventInitDict
+  = liftIO (js_newGamepadEvent (toJSString type') eventInitDict)
+ 
 foreign import javascript unsafe "$1[\"gamepad\"]" js_getGamepad ::
         GamepadEvent -> IO (Nullable Gamepad)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent.gamepad Mozilla GamepadEvent.gamepad documentation> 
 getGamepad :: (MonadIO m) => GamepadEvent -> m (Maybe Gamepad)
-getGamepad self
-  = liftIO (nullableToMaybe <$> (js_getGamepad (self)))
+getGamepad self = liftIO (nullableToMaybe <$> (js_getGamepad self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent.gamepad Mozilla GamepadEvent.gamepad documentation> 
 getGamepadUnsafe ::
                  (MonadIO m, HasCallStack) => GamepadEvent -> m Gamepad
 getGamepadUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getGamepad (self))) >>=
+      ((nullableToMaybe <$> (js_getGamepad self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent.gamepad Mozilla GamepadEvent.gamepad documentation> 
 getGamepadUnchecked :: (MonadIO m) => GamepadEvent -> m Gamepad
 getGamepadUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getGamepad (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getGamepad self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Geolocation.hs b/src/GHCJS/DOM/JSFFI/Generated/Geolocation.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Geolocation.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Geolocation.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -29,56 +30,56 @@
 foreign import javascript unsafe
         "$1[\"getCurrentPosition\"]($2, $3,\n$4)" js_getCurrentPosition ::
         Geolocation ->
-          Nullable PositionCallback ->
-            Nullable PositionErrorCallback -> Nullable PositionOptions -> IO ()
+          PositionCallback ->
+            Optional PositionErrorCallback -> Optional PositionOptions -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Geolocation.getCurrentPosition Mozilla Geolocation.getCurrentPosition documentation> 
 getCurrentPosition ::
-                   (MonadIO m, IsPositionOptions options) =>
+                   (MonadIO m) =>
                      Geolocation ->
-                       Maybe PositionCallback ->
-                         Maybe PositionErrorCallback -> Maybe options -> m ()
+                       PositionCallback ->
+                         Maybe PositionErrorCallback -> Maybe PositionOptions -> m ()
 getCurrentPosition self successCallback errorCallback options
   = liftIO
-      (js_getCurrentPosition (self) (maybeToNullable successCallback)
-         (maybeToNullable errorCallback)
-         (maybeToNullable (fmap toPositionOptions options)))
+      (js_getCurrentPosition self successCallback
+         (maybeToOptional errorCallback)
+         (maybeToOptional options))
  
 foreign import javascript unsafe
         "$1[\"watchPosition\"]($2, $3, $4)" js_watchPosition ::
         Geolocation ->
-          Nullable PositionCallback ->
-            Nullable PositionErrorCallback ->
-              Nullable PositionOptions -> IO Int
+          PositionCallback ->
+            Optional PositionErrorCallback ->
+              Optional PositionOptions -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Geolocation.watchPosition Mozilla Geolocation.watchPosition documentation> 
 watchPosition ::
-              (MonadIO m, IsPositionOptions options) =>
+              (MonadIO m) =>
                 Geolocation ->
-                  Maybe PositionCallback ->
-                    Maybe PositionErrorCallback -> Maybe options -> m Int
+                  PositionCallback ->
+                    Maybe PositionErrorCallback -> Maybe PositionOptions -> m Int
 watchPosition self successCallback errorCallback options
   = liftIO
-      (js_watchPosition (self) (maybeToNullable successCallback)
-         (maybeToNullable errorCallback)
-         (maybeToNullable (fmap toPositionOptions options)))
+      (js_watchPosition self successCallback
+         (maybeToOptional errorCallback)
+         (maybeToOptional options))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Geolocation.watchPosition Mozilla Geolocation.watchPosition documentation> 
 watchPosition_ ::
-               (MonadIO m, IsPositionOptions options) =>
+               (MonadIO m) =>
                  Geolocation ->
-                   Maybe PositionCallback ->
-                     Maybe PositionErrorCallback -> Maybe options -> m ()
+                   PositionCallback ->
+                     Maybe PositionErrorCallback -> Maybe PositionOptions -> m ()
 watchPosition_ self successCallback errorCallback options
   = liftIO
       (void
-         (js_watchPosition (self) (maybeToNullable successCallback)
-            (maybeToNullable errorCallback)
-            (maybeToNullable (fmap toPositionOptions options))))
+         (js_watchPosition self successCallback
+            (maybeToOptional errorCallback)
+            (maybeToOptional options)))
  
 foreign import javascript unsafe "$1[\"clearWatch\"]($2)"
         js_clearWatch :: Geolocation -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Geolocation.clearWatch Mozilla Geolocation.clearWatch documentation> 
 clearWatch :: (MonadIO m) => Geolocation -> Int -> m ()
-clearWatch self watchID = liftIO (js_clearWatch (self) watchID)
+clearWatch self watchId = liftIO (js_clearWatch self watchId)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Geoposition.hs b/src/GHCJS/DOM/JSFFI/Generated/Geoposition.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Geoposition.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Geoposition.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Geoposition
-       (js_getCoords, getCoords, getCoordsUnsafe, getCoordsUnchecked,
-        js_getTimestamp, getTimestamp, Geoposition(..), gTypeGeoposition)
+       (js_getCoords, getCoords, js_getTimestamp, getTimestamp,
+        Geoposition(..), gTypeGeoposition)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,34 +20,22 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"coords\"]" js_getCoords ::
-        Geoposition -> IO (Nullable Coordinates)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Geoposition.coords Mozilla Geoposition.coords documentation> 
-getCoords :: (MonadIO m) => Geoposition -> m (Maybe Coordinates)
-getCoords self = liftIO (nullableToMaybe <$> (js_getCoords (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Geoposition.coords Mozilla Geoposition.coords documentation> 
-getCoordsUnsafe ::
-                (MonadIO m, HasCallStack) => Geoposition -> m Coordinates
-getCoordsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCoords (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        Geoposition -> IO Coordinates
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Geoposition.coords Mozilla Geoposition.coords documentation> 
-getCoordsUnchecked :: (MonadIO m) => Geoposition -> m Coordinates
-getCoordsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCoords (self)))
+getCoords :: (MonadIO m) => Geoposition -> m Coordinates
+getCoords self = liftIO (js_getCoords self)
  
 foreign import javascript unsafe "$1[\"timestamp\"]"
         js_getTimestamp :: Geoposition -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Geoposition.timestamp Mozilla Geoposition.timestamp documentation> 
 getTimestamp :: (MonadIO m) => Geoposition -> m Word
-getTimestamp self = liftIO (js_getTimestamp (self))
+getTimestamp self = liftIO (js_getTimestamp self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/GlobalCrypto.hs b/src/GHCJS/DOM/JSFFI/Generated/GlobalCrypto.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/GlobalCrypto.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.GlobalCrypto
+       (js_getCrypto, getCrypto, GlobalCrypto(..), gTypeGlobalCrypto,
+        IsGlobalCrypto, toGlobalCrypto)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"crypto\"]" js_getCrypto ::
+        GlobalCrypto -> IO Crypto
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalCrypto.crypto Mozilla GlobalCrypto.crypto documentation> 
+getCrypto :: (MonadIO m, IsGlobalCrypto self) => self -> m Crypto
+getCrypto self = liftIO (js_getCrypto (toGlobalCrypto self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/GlobalEventHandlers.hs b/src/GHCJS/DOM/JSFFI/Generated/GlobalEventHandlers.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/GlobalEventHandlers.hs
@@ -0,0 +1,488 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.GlobalEventHandlers
+       (abort, autocomplete, autocompleteerror, blur, canPlay,
+        canPlayThrough, change, click, contextMenu, cueChange, dblClick,
+        drag, dragEnd, dragEnter, dragLeave, dragOver, dragStart, drop,
+        durationChange, emptied, ended, error, focus, input, invalid,
+        keyDown, keyPress, keyUp, load, loadedData, loadedMetadata,
+        loadStart, mouseDown, mouseEnter, mouseLeave, mouseMove, mouseOut,
+        mouseOver, mouseUp, mouseWheel, pause, play, playing, progress,
+        rateChange, reset, resize, scroll, seeked, seeking, select,
+        stalled, submit, suspend, timeUpdate, toggle, volumeChange,
+        waiting, search, wheel, touchCancel, touchEnd, touchMove,
+        touchStart, touchForcechange, webKitMouseForcechanged,
+        webKitMouseForcedown, webKitMouseForcewillbegin,
+        webKitMouseForceup, webKitWillRevealBottom, webKitWillRevealLeft,
+        webKitWillRevealRight, webKitWillRevealTop,
+        GlobalEventHandlers(..), gTypeGlobalEventHandlers,
+        IsGlobalEventHandlers, toGlobalEventHandlers)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onabort Mozilla GlobalEventHandlers.onabort documentation> 
+abort ::
+      (IsGlobalEventHandlers self, IsEventTarget self) =>
+        EventName self UIEvent
+abort = unsafeEventName (toJSString "abort")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onautocomplete Mozilla GlobalEventHandlers.onautocomplete documentation> 
+autocomplete ::
+             (IsGlobalEventHandlers self, IsEventTarget self) =>
+               EventName self onautocomplete
+autocomplete = unsafeEventName (toJSString "autocomplete")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onautocompleteerror Mozilla GlobalEventHandlers.onautocompleteerror documentation> 
+autocompleteerror ::
+                  (IsGlobalEventHandlers self, IsEventTarget self) =>
+                    EventName self onautocompleteerror
+autocompleteerror
+  = unsafeEventName (toJSString "autocompleteerror")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onblur Mozilla GlobalEventHandlers.onblur documentation> 
+blur ::
+     (IsGlobalEventHandlers self, IsEventTarget self) =>
+       EventName self FocusEvent
+blur = unsafeEventName (toJSString "blur")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.oncanplay Mozilla GlobalEventHandlers.oncanplay documentation> 
+canPlay ::
+        (IsGlobalEventHandlers self, IsEventTarget self) =>
+          EventName self Event
+canPlay = unsafeEventName (toJSString "canplay")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.oncanplaythrough Mozilla GlobalEventHandlers.oncanplaythrough documentation> 
+canPlayThrough ::
+               (IsGlobalEventHandlers self, IsEventTarget self) =>
+                 EventName self Event
+canPlayThrough = unsafeEventName (toJSString "canplaythrough")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onchange Mozilla GlobalEventHandlers.onchange documentation> 
+change ::
+       (IsGlobalEventHandlers self, IsEventTarget self) =>
+         EventName self Event
+change = unsafeEventName (toJSString "change")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onclick Mozilla GlobalEventHandlers.onclick documentation> 
+click ::
+      (IsGlobalEventHandlers self, IsEventTarget self) =>
+        EventName self MouseEvent
+click = unsafeEventName (toJSString "click")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.oncontextmenu Mozilla GlobalEventHandlers.oncontextmenu documentation> 
+contextMenu ::
+            (IsGlobalEventHandlers self, IsEventTarget self) =>
+              EventName self MouseEvent
+contextMenu = unsafeEventName (toJSString "contextmenu")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.oncuechange Mozilla GlobalEventHandlers.oncuechange documentation> 
+cueChange ::
+          (IsGlobalEventHandlers self, IsEventTarget self) =>
+            EventName self Event
+cueChange = unsafeEventName (toJSString "cuechange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ondblclick Mozilla GlobalEventHandlers.ondblclick documentation> 
+dblClick ::
+         (IsGlobalEventHandlers self, IsEventTarget self) =>
+           EventName self MouseEvent
+dblClick = unsafeEventName (toJSString "dblclick")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ondrag Mozilla GlobalEventHandlers.ondrag documentation> 
+drag ::
+     (IsGlobalEventHandlers self, IsEventTarget self) =>
+       EventName self MouseEvent
+drag = unsafeEventName (toJSString "drag")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ondragend Mozilla GlobalEventHandlers.ondragend documentation> 
+dragEnd ::
+        (IsGlobalEventHandlers self, IsEventTarget self) =>
+          EventName self MouseEvent
+dragEnd = unsafeEventName (toJSString "dragend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ondragenter Mozilla GlobalEventHandlers.ondragenter documentation> 
+dragEnter ::
+          (IsGlobalEventHandlers self, IsEventTarget self) =>
+            EventName self MouseEvent
+dragEnter = unsafeEventName (toJSString "dragenter")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ondragleave Mozilla GlobalEventHandlers.ondragleave documentation> 
+dragLeave ::
+          (IsGlobalEventHandlers self, IsEventTarget self) =>
+            EventName self MouseEvent
+dragLeave = unsafeEventName (toJSString "dragleave")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ondragover Mozilla GlobalEventHandlers.ondragover documentation> 
+dragOver ::
+         (IsGlobalEventHandlers self, IsEventTarget self) =>
+           EventName self MouseEvent
+dragOver = unsafeEventName (toJSString "dragover")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ondragstart Mozilla GlobalEventHandlers.ondragstart documentation> 
+dragStart ::
+          (IsGlobalEventHandlers self, IsEventTarget self) =>
+            EventName self MouseEvent
+dragStart = unsafeEventName (toJSString "dragstart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ondrop Mozilla GlobalEventHandlers.ondrop documentation> 
+drop ::
+     (IsGlobalEventHandlers self, IsEventTarget self) =>
+       EventName self MouseEvent
+drop = unsafeEventName (toJSString "drop")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ondurationchange Mozilla GlobalEventHandlers.ondurationchange documentation> 
+durationChange ::
+               (IsGlobalEventHandlers self, IsEventTarget self) =>
+                 EventName self Event
+durationChange = unsafeEventName (toJSString "durationchange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onemptied Mozilla GlobalEventHandlers.onemptied documentation> 
+emptied ::
+        (IsGlobalEventHandlers self, IsEventTarget self) =>
+          EventName self Event
+emptied = unsafeEventName (toJSString "emptied")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onended Mozilla GlobalEventHandlers.onended documentation> 
+ended ::
+      (IsGlobalEventHandlers self, IsEventTarget self) =>
+        EventName self Event
+ended = unsafeEventName (toJSString "ended")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onerror Mozilla GlobalEventHandlers.onerror documentation> 
+error ::
+      (IsGlobalEventHandlers self, IsEventTarget self) =>
+        EventName self UIEvent
+error = unsafeEventName (toJSString "error")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onfocus Mozilla GlobalEventHandlers.onfocus documentation> 
+focus ::
+      (IsGlobalEventHandlers self, IsEventTarget self) =>
+        EventName self FocusEvent
+focus = unsafeEventName (toJSString "focus")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.oninput Mozilla GlobalEventHandlers.oninput documentation> 
+input ::
+      (IsGlobalEventHandlers self, IsEventTarget self) =>
+        EventName self Event
+input = unsafeEventName (toJSString "input")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.oninvalid Mozilla GlobalEventHandlers.oninvalid documentation> 
+invalid ::
+        (IsGlobalEventHandlers self, IsEventTarget self) =>
+          EventName self Event
+invalid = unsafeEventName (toJSString "invalid")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onkeydown Mozilla GlobalEventHandlers.onkeydown documentation> 
+keyDown ::
+        (IsGlobalEventHandlers self, IsEventTarget self) =>
+          EventName self KeyboardEvent
+keyDown = unsafeEventName (toJSString "keydown")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onkeypress Mozilla GlobalEventHandlers.onkeypress documentation> 
+keyPress ::
+         (IsGlobalEventHandlers self, IsEventTarget self) =>
+           EventName self KeyboardEvent
+keyPress = unsafeEventName (toJSString "keypress")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onkeyup Mozilla GlobalEventHandlers.onkeyup documentation> 
+keyUp ::
+      (IsGlobalEventHandlers self, IsEventTarget self) =>
+        EventName self KeyboardEvent
+keyUp = unsafeEventName (toJSString "keyup")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onload Mozilla GlobalEventHandlers.onload documentation> 
+load ::
+     (IsGlobalEventHandlers self, IsEventTarget self) =>
+       EventName self UIEvent
+load = unsafeEventName (toJSString "load")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onloadeddata Mozilla GlobalEventHandlers.onloadeddata documentation> 
+loadedData ::
+           (IsGlobalEventHandlers self, IsEventTarget self) =>
+             EventName self Event
+loadedData = unsafeEventName (toJSString "loadeddata")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onloadedmetadata Mozilla GlobalEventHandlers.onloadedmetadata documentation> 
+loadedMetadata ::
+               (IsGlobalEventHandlers self, IsEventTarget self) =>
+                 EventName self Event
+loadedMetadata = unsafeEventName (toJSString "loadedmetadata")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onloadstart Mozilla GlobalEventHandlers.onloadstart documentation> 
+loadStart ::
+          (IsGlobalEventHandlers self, IsEventTarget self) =>
+            EventName self ProgressEvent
+loadStart = unsafeEventName (toJSString "loadstart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onmousedown Mozilla GlobalEventHandlers.onmousedown documentation> 
+mouseDown ::
+          (IsGlobalEventHandlers self, IsEventTarget self) =>
+            EventName self MouseEvent
+mouseDown = unsafeEventName (toJSString "mousedown")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onmouseenter Mozilla GlobalEventHandlers.onmouseenter documentation> 
+mouseEnter ::
+           (IsGlobalEventHandlers self, IsEventTarget self) =>
+             EventName self MouseEvent
+mouseEnter = unsafeEventName (toJSString "mouseenter")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onmouseleave Mozilla GlobalEventHandlers.onmouseleave documentation> 
+mouseLeave ::
+           (IsGlobalEventHandlers self, IsEventTarget self) =>
+             EventName self MouseEvent
+mouseLeave = unsafeEventName (toJSString "mouseleave")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onmousemove Mozilla GlobalEventHandlers.onmousemove documentation> 
+mouseMove ::
+          (IsGlobalEventHandlers self, IsEventTarget self) =>
+            EventName self MouseEvent
+mouseMove = unsafeEventName (toJSString "mousemove")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onmouseout Mozilla GlobalEventHandlers.onmouseout documentation> 
+mouseOut ::
+         (IsGlobalEventHandlers self, IsEventTarget self) =>
+           EventName self MouseEvent
+mouseOut = unsafeEventName (toJSString "mouseout")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onmouseover Mozilla GlobalEventHandlers.onmouseover documentation> 
+mouseOver ::
+          (IsGlobalEventHandlers self, IsEventTarget self) =>
+            EventName self MouseEvent
+mouseOver = unsafeEventName (toJSString "mouseover")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onmouseup Mozilla GlobalEventHandlers.onmouseup documentation> 
+mouseUp ::
+        (IsGlobalEventHandlers self, IsEventTarget self) =>
+          EventName self MouseEvent
+mouseUp = unsafeEventName (toJSString "mouseup")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onmousewheel Mozilla GlobalEventHandlers.onmousewheel documentation> 
+mouseWheel ::
+           (IsGlobalEventHandlers self, IsEventTarget self) =>
+             EventName self MouseEvent
+mouseWheel = unsafeEventName (toJSString "mousewheel")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onpause Mozilla GlobalEventHandlers.onpause documentation> 
+pause ::
+      (IsGlobalEventHandlers self, IsEventTarget self) =>
+        EventName self Event
+pause = unsafeEventName (toJSString "pause")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onplay Mozilla GlobalEventHandlers.onplay documentation> 
+play ::
+     (IsGlobalEventHandlers self, IsEventTarget self) =>
+       EventName self Event
+play = unsafeEventName (toJSString "play")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onplaying Mozilla GlobalEventHandlers.onplaying documentation> 
+playing ::
+        (IsGlobalEventHandlers self, IsEventTarget self) =>
+          EventName self Event
+playing = unsafeEventName (toJSString "playing")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onprogress Mozilla GlobalEventHandlers.onprogress documentation> 
+progress ::
+         (IsGlobalEventHandlers self, IsEventTarget self) =>
+           EventName self ProgressEvent
+progress = unsafeEventName (toJSString "progress")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onratechange Mozilla GlobalEventHandlers.onratechange documentation> 
+rateChange ::
+           (IsGlobalEventHandlers self, IsEventTarget self) =>
+             EventName self Event
+rateChange = unsafeEventName (toJSString "ratechange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onreset Mozilla GlobalEventHandlers.onreset documentation> 
+reset ::
+      (IsGlobalEventHandlers self, IsEventTarget self) =>
+        EventName self Event
+reset = unsafeEventName (toJSString "reset")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onresize Mozilla GlobalEventHandlers.onresize documentation> 
+resize ::
+       (IsGlobalEventHandlers self, IsEventTarget self) =>
+         EventName self UIEvent
+resize = unsafeEventName (toJSString "resize")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onscroll Mozilla GlobalEventHandlers.onscroll documentation> 
+scroll ::
+       (IsGlobalEventHandlers self, IsEventTarget self) =>
+         EventName self UIEvent
+scroll = unsafeEventName (toJSString "scroll")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onseeked Mozilla GlobalEventHandlers.onseeked documentation> 
+seeked ::
+       (IsGlobalEventHandlers self, IsEventTarget self) =>
+         EventName self Event
+seeked = unsafeEventName (toJSString "seeked")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onseeking Mozilla GlobalEventHandlers.onseeking documentation> 
+seeking ::
+        (IsGlobalEventHandlers self, IsEventTarget self) =>
+          EventName self Event
+seeking = unsafeEventName (toJSString "seeking")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onselect Mozilla GlobalEventHandlers.onselect documentation> 
+select ::
+       (IsGlobalEventHandlers self, IsEventTarget self) =>
+         EventName self UIEvent
+select = unsafeEventName (toJSString "select")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onstalled Mozilla GlobalEventHandlers.onstalled documentation> 
+stalled ::
+        (IsGlobalEventHandlers self, IsEventTarget self) =>
+          EventName self Event
+stalled = unsafeEventName (toJSString "stalled")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onsubmit Mozilla GlobalEventHandlers.onsubmit documentation> 
+submit ::
+       (IsGlobalEventHandlers self, IsEventTarget self) =>
+         EventName self Event
+submit = unsafeEventName (toJSString "submit")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onsuspend Mozilla GlobalEventHandlers.onsuspend documentation> 
+suspend ::
+        (IsGlobalEventHandlers self, IsEventTarget self) =>
+          EventName self Event
+suspend = unsafeEventName (toJSString "suspend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ontimeupdate Mozilla GlobalEventHandlers.ontimeupdate documentation> 
+timeUpdate ::
+           (IsGlobalEventHandlers self, IsEventTarget self) =>
+             EventName self Event
+timeUpdate = unsafeEventName (toJSString "timeupdate")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ontoggle Mozilla GlobalEventHandlers.ontoggle documentation> 
+toggle ::
+       (IsGlobalEventHandlers self, IsEventTarget self) =>
+         EventName self ontoggle
+toggle = unsafeEventName (toJSString "toggle")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onvolumechange Mozilla GlobalEventHandlers.onvolumechange documentation> 
+volumeChange ::
+             (IsGlobalEventHandlers self, IsEventTarget self) =>
+               EventName self Event
+volumeChange = unsafeEventName (toJSString "volumechange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onwaiting Mozilla GlobalEventHandlers.onwaiting documentation> 
+waiting ::
+        (IsGlobalEventHandlers self, IsEventTarget self) =>
+          EventName self Event
+waiting = unsafeEventName (toJSString "waiting")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onsearch Mozilla GlobalEventHandlers.onsearch documentation> 
+search ::
+       (IsGlobalEventHandlers self, IsEventTarget self) =>
+         EventName self Event
+search = unsafeEventName (toJSString "search")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onwheel Mozilla GlobalEventHandlers.onwheel documentation> 
+wheel ::
+      (IsGlobalEventHandlers self, IsEventTarget self) =>
+        EventName self WheelEvent
+wheel = unsafeEventName (toJSString "wheel")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ontouchcancel Mozilla GlobalEventHandlers.ontouchcancel documentation> 
+touchCancel ::
+            (IsGlobalEventHandlers self, IsEventTarget self) =>
+              EventName self TouchEvent
+touchCancel = unsafeEventName (toJSString "touchcancel")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ontouchend Mozilla GlobalEventHandlers.ontouchend documentation> 
+touchEnd ::
+         (IsGlobalEventHandlers self, IsEventTarget self) =>
+           EventName self TouchEvent
+touchEnd = unsafeEventName (toJSString "touchend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ontouchmove Mozilla GlobalEventHandlers.ontouchmove documentation> 
+touchMove ::
+          (IsGlobalEventHandlers self, IsEventTarget self) =>
+            EventName self TouchEvent
+touchMove = unsafeEventName (toJSString "touchmove")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ontouchstart Mozilla GlobalEventHandlers.ontouchstart documentation> 
+touchStart ::
+           (IsGlobalEventHandlers self, IsEventTarget self) =>
+             EventName self TouchEvent
+touchStart = unsafeEventName (toJSString "touchstart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.ontouchforcechange Mozilla GlobalEventHandlers.ontouchforcechange documentation> 
+touchForcechange ::
+                 (IsGlobalEventHandlers self, IsEventTarget self) =>
+                   EventName self ontouchforcechange
+touchForcechange = unsafeEventName (toJSString "touchforcechange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onwebkitmouseforcechanged Mozilla GlobalEventHandlers.onwebkitmouseforcechanged documentation> 
+webKitMouseForcechanged ::
+                        (IsGlobalEventHandlers self, IsEventTarget self) =>
+                          EventName self onwebkitmouseforcechanged
+webKitMouseForcechanged
+  = unsafeEventName (toJSString "webkitmouseforcechanged")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onwebkitmouseforcedown Mozilla GlobalEventHandlers.onwebkitmouseforcedown documentation> 
+webKitMouseForcedown ::
+                     (IsGlobalEventHandlers self, IsEventTarget self) =>
+                       EventName self onwebkitmouseforcedown
+webKitMouseForcedown
+  = unsafeEventName (toJSString "webkitmouseforcedown")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onwebkitmouseforcewillbegin Mozilla GlobalEventHandlers.onwebkitmouseforcewillbegin documentation> 
+webKitMouseForcewillbegin ::
+                          (IsGlobalEventHandlers self, IsEventTarget self) =>
+                            EventName self onwebkitmouseforcewillbegin
+webKitMouseForcewillbegin
+  = unsafeEventName (toJSString "webkitmouseforcewillbegin")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onwebkitmouseforceup Mozilla GlobalEventHandlers.onwebkitmouseforceup documentation> 
+webKitMouseForceup ::
+                   (IsGlobalEventHandlers self, IsEventTarget self) =>
+                     EventName self onwebkitmouseforceup
+webKitMouseForceup
+  = unsafeEventName (toJSString "webkitmouseforceup")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onwebkitwillrevealbottom Mozilla GlobalEventHandlers.onwebkitwillrevealbottom documentation> 
+webKitWillRevealBottom ::
+                       (IsGlobalEventHandlers self, IsEventTarget self) =>
+                         EventName self Event
+webKitWillRevealBottom
+  = unsafeEventName (toJSString "webkitwillrevealbottom")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onwebkitwillrevealleft Mozilla GlobalEventHandlers.onwebkitwillrevealleft documentation> 
+webKitWillRevealLeft ::
+                     (IsGlobalEventHandlers self, IsEventTarget self) =>
+                       EventName self Event
+webKitWillRevealLeft
+  = unsafeEventName (toJSString "webkitwillrevealleft")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onwebkitwillrevealright Mozilla GlobalEventHandlers.onwebkitwillrevealright documentation> 
+webKitWillRevealRight ::
+                      (IsGlobalEventHandlers self, IsEventTarget self) =>
+                        EventName self Event
+webKitWillRevealRight
+  = unsafeEventName (toJSString "webkitwillrevealright")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onwebkitwillrevealtop Mozilla GlobalEventHandlers.onwebkitwillrevealtop documentation> 
+webKitWillRevealTop ::
+                    (IsGlobalEventHandlers self, IsEventTarget self) =>
+                      EventName self Event
+webKitWillRevealTop
+  = unsafeEventName (toJSString "webkitwillrevealtop")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/GlobalPerformance.hs b/src/GHCJS/DOM/JSFFI/Generated/GlobalPerformance.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/GlobalPerformance.hs
@@ -0,0 +1,36 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.GlobalPerformance
+       (js_getPerformance, getPerformance, GlobalPerformance(..),
+        gTypeGlobalPerformance, IsGlobalPerformance, toGlobalPerformance)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"performance\"]"
+        js_getPerformance :: GlobalPerformance -> IO Performance
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/GlobalPerformance.performance Mozilla GlobalPerformance.performance documentation> 
+getPerformance ::
+               (MonadIO m, IsGlobalPerformance self) => self -> m Performance
+getPerformance self
+  = liftIO (js_getPerformance (toGlobalPerformance self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLAllCollection.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLAllCollection.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLAllCollection.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLAllCollection.hs
@@ -6,14 +6,14 @@
 module GHCJS.DOM.JSFFI.Generated.HTMLAllCollection
        (js_item, item, item_, itemUnsafe, itemUnchecked, js_namedItem,
         namedItem, namedItem_, namedItemUnsafe, namedItemUnchecked,
-        js_tags, tags, tags_, tagsUnsafe, tagsUnchecked, js_getLength,
-        getLength, HTMLAllCollection(..), gTypeHTMLAllCollection)
+        js_tags, tags, tags_, js_getLength, getLength,
+        HTMLAllCollection(..), gTypeHTMLAllCollection)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,105 +22,91 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        HTMLAllCollection -> Word -> IO (Nullable Node)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        HTMLAllCollection -> Word -> IO (Nullable Element)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.item Mozilla HTMLAllCollection.item documentation> 
-item :: (MonadIO m) => HTMLAllCollection -> Word -> m (Maybe Node)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item ::
+     (MonadIO m) => HTMLAllCollection -> Word -> m (Maybe Element)
+item self index = liftIO (nullableToMaybe <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.item Mozilla HTMLAllCollection.item documentation> 
 item_ :: (MonadIO m) => HTMLAllCollection -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.item Mozilla HTMLAllCollection.item documentation> 
 itemUnsafe ::
-           (MonadIO m, HasCallStack) => HTMLAllCollection -> Word -> m Node
+           (MonadIO m, HasCallStack) => HTMLAllCollection -> Word -> m Element
 itemUnsafe self index
   = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
+      ((nullableToMaybe <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.item Mozilla HTMLAllCollection.item documentation> 
-itemUnchecked :: (MonadIO m) => HTMLAllCollection -> Word -> m Node
+itemUnchecked ::
+              (MonadIO m) => HTMLAllCollection -> Word -> m Element
 itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+  = liftIO (fromJust . nullableToMaybe <$> (js_item self index))
  
-foreign import javascript unsafe "$1[\"namedItem\"]($2)"
-        js_namedItem :: HTMLAllCollection -> JSString -> IO (Nullable Node)
+foreign import javascript unsafe "$1[$2]" js_namedItem ::
+        HTMLAllCollection ->
+          JSString -> IO (Nullable HTMLCollectionOrElement)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.namedItem Mozilla HTMLAllCollection.namedItem documentation> 
 namedItem ::
           (MonadIO m, ToJSString name) =>
-            HTMLAllCollection -> name -> m (Maybe Node)
+            HTMLAllCollection -> name -> m (Maybe HTMLCollectionOrElement)
 namedItem self name
   = liftIO
-      (nullableToMaybe <$> (js_namedItem (self) (toJSString name)))
+      (nullableToMaybe <$> (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.namedItem Mozilla HTMLAllCollection.namedItem documentation> 
 namedItem_ ::
            (MonadIO m, ToJSString name) => HTMLAllCollection -> name -> m ()
 namedItem_ self name
-  = liftIO (void (js_namedItem (self) (toJSString name)))
+  = liftIO (void (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.namedItem Mozilla HTMLAllCollection.namedItem documentation> 
 namedItemUnsafe ::
                 (MonadIO m, ToJSString name, HasCallStack) =>
-                  HTMLAllCollection -> name -> m Node
+                  HTMLAllCollection -> name -> m HTMLCollectionOrElement
 namedItemUnsafe self name
   = liftIO
-      ((nullableToMaybe <$> (js_namedItem (self) (toJSString name))) >>=
+      ((nullableToMaybe <$> (js_namedItem self (toJSString name))) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.namedItem Mozilla HTMLAllCollection.namedItem documentation> 
 namedItemUnchecked ::
-                   (MonadIO m, ToJSString name) => HTMLAllCollection -> name -> m Node
+                   (MonadIO m, ToJSString name) =>
+                     HTMLAllCollection -> name -> m HTMLCollectionOrElement
 namedItemUnchecked self name
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_namedItem (self) (toJSString name)))
+         (js_namedItem self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"tags\"]($2)" js_tags ::
-        HTMLAllCollection -> JSString -> IO (Nullable NodeList)
+        HTMLAllCollection -> JSString -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.tags Mozilla HTMLAllCollection.tags documentation> 
 tags ::
      (MonadIO m, ToJSString name) =>
-       HTMLAllCollection -> name -> m (Maybe NodeList)
-tags self name
-  = liftIO (nullableToMaybe <$> (js_tags (self) (toJSString name)))
+       HTMLAllCollection -> name -> m NodeList
+tags self name = liftIO (js_tags self (toJSString name))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.tags Mozilla HTMLAllCollection.tags documentation> 
 tags_ ::
       (MonadIO m, ToJSString name) => HTMLAllCollection -> name -> m ()
-tags_ self name = liftIO (void (js_tags (self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.tags Mozilla HTMLAllCollection.tags documentation> 
-tagsUnsafe ::
-           (MonadIO m, ToJSString name, HasCallStack) =>
-             HTMLAllCollection -> name -> m NodeList
-tagsUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$> (js_tags (self) (toJSString name))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.tags Mozilla HTMLAllCollection.tags documentation> 
-tagsUnchecked ::
-              (MonadIO m, ToJSString name) =>
-                HTMLAllCollection -> name -> m NodeList
-tagsUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_tags (self) (toJSString name)))
+tags_ self name = liftIO (void (js_tags self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         HTMLAllCollection -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection.length Mozilla HTMLAllCollection.length documentation> 
 getLength :: (MonadIO m) => HTMLAllCollection -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLAnchorElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLAnchorElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLAnchorElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLAnchorElement.hs
@@ -4,36 +4,23 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLAnchorElement
-       (js_toString, toString, toString_, js_setCharset, setCharset,
-        js_getCharset, getCharset, js_setCoords, setCoords, js_getCoords,
-        getCoords, js_setDownload, setDownload, js_getDownload,
-        getDownload, js_setHref, setHref, js_getHref, getHref,
-        js_setHreflang, setHreflang, js_getHreflang, getHreflang,
-        js_setName, setName, js_getName, getName, js_setPing, setPing,
-        js_getPing, getPing, js_setRel, setRel, js_getRel, getRel,
-        js_setRev, setRev, js_getRev, getRev, js_setShape, setShape,
-        js_getShape, getShape, js_setTarget, setTarget, js_getTarget,
-        getTarget, js_setType, setType, js_getType, getType, js_setHash,
-        setHash, js_getHash, getHash, getHashUnsafe, getHashUnchecked,
-        js_setHost, setHost, js_getHost, getHost, getHostUnsafe,
-        getHostUnchecked, js_setHostname, setHostname, js_getHostname,
-        getHostname, getHostnameUnsafe, getHostnameUnchecked,
-        js_setPathname, setPathname, js_getPathname, getPathname,
-        getPathnameUnsafe, getPathnameUnchecked, js_setPort, setPort,
-        js_getPort, getPort, getPortUnsafe, getPortUnchecked,
-        js_setProtocol, setProtocol, js_getProtocol, getProtocol,
-        getProtocolUnsafe, getProtocolUnchecked, js_setSearch, setSearch,
-        js_getSearch, getSearch, getSearchUnsafe, getSearchUnchecked,
-        js_getOrigin, getOrigin, getOriginUnsafe, getOriginUnchecked,
-        js_setText, setText, js_getText, getText, js_getRelList,
-        getRelList, getRelListUnsafe, getRelListUnchecked,
-        HTMLAnchorElement(..), gTypeHTMLAnchorElement)
+       (js_setCharset, setCharset, js_getCharset, getCharset,
+        js_setCoords, setCoords, js_getCoords, getCoords, js_setDownload,
+        setDownload, js_getDownload, getDownload, js_setHreflang,
+        setHreflang, js_getHreflang, getHreflang, js_setName, setName,
+        js_getName, getName, js_setPing, setPing, js_getPing, getPing,
+        js_setRel, setRel, js_getRel, getRel, js_setRev, setRev, js_getRev,
+        getRev, js_setShape, setShape, js_getShape, getShape, js_setTarget,
+        setTarget, js_getTarget, getTarget, js_setType, setType,
+        js_getType, getType, js_setText, setText, js_getText, getText,
+        js_getRelList, getRelList, HTMLAnchorElement(..),
+        gTypeHTMLAnchorElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -42,31 +29,19 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"toString\"]()" js_toString
-        :: HTMLAnchorElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.toString Mozilla HTMLAnchorElement.toString documentation> 
-toString ::
-         (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-toString self = liftIO (fromJSString <$> (js_toString (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.toString Mozilla HTMLAnchorElement.toString documentation> 
-toString_ :: (MonadIO m) => HTMLAnchorElement -> m ()
-toString_ self = liftIO (void (js_toString (self)))
- 
 foreign import javascript unsafe "$1[\"charset\"] = $2;"
         js_setCharset :: HTMLAnchorElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.charset Mozilla HTMLAnchorElement.charset documentation> 
 setCharset ::
            (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
-setCharset self val
-  = liftIO (js_setCharset (self) (toJSString val))
+setCharset self val = liftIO (js_setCharset self (toJSString val))
  
 foreign import javascript unsafe "$1[\"charset\"]" js_getCharset ::
         HTMLAnchorElement -> IO JSString
@@ -74,7 +49,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.charset Mozilla HTMLAnchorElement.charset documentation> 
 getCharset ::
            (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getCharset self = liftIO (fromJSString <$> (js_getCharset (self)))
+getCharset self = liftIO (fromJSString <$> (js_getCharset self))
  
 foreign import javascript unsafe "$1[\"coords\"] = $2;"
         js_setCoords :: HTMLAnchorElement -> JSString -> IO ()
@@ -82,7 +57,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.coords Mozilla HTMLAnchorElement.coords documentation> 
 setCoords ::
           (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
-setCoords self val = liftIO (js_setCoords (self) (toJSString val))
+setCoords self val = liftIO (js_setCoords self (toJSString val))
  
 foreign import javascript unsafe "$1[\"coords\"]" js_getCoords ::
         HTMLAnchorElement -> IO JSString
@@ -90,7 +65,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.coords Mozilla HTMLAnchorElement.coords documentation> 
 getCoords ::
           (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getCoords self = liftIO (fromJSString <$> (js_getCoords (self)))
+getCoords self = liftIO (fromJSString <$> (js_getCoords self))
  
 foreign import javascript unsafe "$1[\"download\"] = $2;"
         js_setDownload :: HTMLAnchorElement -> JSString -> IO ()
@@ -99,7 +74,7 @@
 setDownload ::
             (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
 setDownload self val
-  = liftIO (js_setDownload (self) (toJSString val))
+  = liftIO (js_setDownload self (toJSString val))
  
 foreign import javascript unsafe "$1[\"download\"]" js_getDownload
         :: HTMLAnchorElement -> IO JSString
@@ -107,24 +82,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.download Mozilla HTMLAnchorElement.download documentation> 
 getDownload ::
             (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getDownload self
-  = liftIO (fromJSString <$> (js_getDownload (self)))
- 
-foreign import javascript unsafe "$1[\"href\"] = $2;" js_setHref ::
-        HTMLAnchorElement -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.href Mozilla HTMLAnchorElement.href documentation> 
-setHref ::
-        (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
-setHref self val = liftIO (js_setHref (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"href\"]" js_getHref ::
-        HTMLAnchorElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.href Mozilla HTMLAnchorElement.href documentation> 
-getHref ::
-        (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getHref self = liftIO (fromJSString <$> (js_getHref (self)))
+getDownload self = liftIO (fromJSString <$> (js_getDownload self))
  
 foreign import javascript unsafe "$1[\"hreflang\"] = $2;"
         js_setHreflang :: HTMLAnchorElement -> JSString -> IO ()
@@ -133,7 +91,7 @@
 setHreflang ::
             (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
 setHreflang self val
-  = liftIO (js_setHreflang (self) (toJSString val))
+  = liftIO (js_setHreflang self (toJSString val))
  
 foreign import javascript unsafe "$1[\"hreflang\"]" js_getHreflang
         :: HTMLAnchorElement -> IO JSString
@@ -141,8 +99,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.hreflang Mozilla HTMLAnchorElement.hreflang documentation> 
 getHreflang ::
             (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getHreflang self
-  = liftIO (fromJSString <$> (js_getHreflang (self)))
+getHreflang self = liftIO (fromJSString <$> (js_getHreflang self))
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLAnchorElement -> JSString -> IO ()
@@ -150,7 +107,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.name Mozilla HTMLAnchorElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLAnchorElement -> IO JSString
@@ -158,7 +115,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.name Mozilla HTMLAnchorElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"ping\"] = $2;" js_setPing ::
         HTMLAnchorElement -> JSString -> IO ()
@@ -166,7 +123,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.ping Mozilla HTMLAnchorElement.ping documentation> 
 setPing ::
         (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
-setPing self val = liftIO (js_setPing (self) (toJSString val))
+setPing self val = liftIO (js_setPing self (toJSString val))
  
 foreign import javascript unsafe "$1[\"ping\"]" js_getPing ::
         HTMLAnchorElement -> IO JSString
@@ -174,7 +131,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.ping Mozilla HTMLAnchorElement.ping documentation> 
 getPing ::
         (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getPing self = liftIO (fromJSString <$> (js_getPing (self)))
+getPing self = liftIO (fromJSString <$> (js_getPing self))
  
 foreign import javascript unsafe "$1[\"rel\"] = $2;" js_setRel ::
         HTMLAnchorElement -> JSString -> IO ()
@@ -182,7 +139,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.rel Mozilla HTMLAnchorElement.rel documentation> 
 setRel ::
        (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
-setRel self val = liftIO (js_setRel (self) (toJSString val))
+setRel self val = liftIO (js_setRel self (toJSString val))
  
 foreign import javascript unsafe "$1[\"rel\"]" js_getRel ::
         HTMLAnchorElement -> IO JSString
@@ -190,7 +147,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.rel Mozilla HTMLAnchorElement.rel documentation> 
 getRel ::
        (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getRel self = liftIO (fromJSString <$> (js_getRel (self)))
+getRel self = liftIO (fromJSString <$> (js_getRel self))
  
 foreign import javascript unsafe "$1[\"rev\"] = $2;" js_setRev ::
         HTMLAnchorElement -> JSString -> IO ()
@@ -198,7 +155,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.rev Mozilla HTMLAnchorElement.rev documentation> 
 setRev ::
        (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
-setRev self val = liftIO (js_setRev (self) (toJSString val))
+setRev self val = liftIO (js_setRev self (toJSString val))
  
 foreign import javascript unsafe "$1[\"rev\"]" js_getRev ::
         HTMLAnchorElement -> IO JSString
@@ -206,7 +163,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.rev Mozilla HTMLAnchorElement.rev documentation> 
 getRev ::
        (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getRev self = liftIO (fromJSString <$> (js_getRev (self)))
+getRev self = liftIO (fromJSString <$> (js_getRev self))
  
 foreign import javascript unsafe "$1[\"shape\"] = $2;" js_setShape
         :: HTMLAnchorElement -> JSString -> IO ()
@@ -214,7 +171,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.shape Mozilla HTMLAnchorElement.shape documentation> 
 setShape ::
          (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
-setShape self val = liftIO (js_setShape (self) (toJSString val))
+setShape self val = liftIO (js_setShape self (toJSString val))
  
 foreign import javascript unsafe "$1[\"shape\"]" js_getShape ::
         HTMLAnchorElement -> IO JSString
@@ -222,7 +179,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.shape Mozilla HTMLAnchorElement.shape documentation> 
 getShape ::
          (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getShape self = liftIO (fromJSString <$> (js_getShape (self)))
+getShape self = liftIO (fromJSString <$> (js_getShape self))
  
 foreign import javascript unsafe "$1[\"target\"] = $2;"
         js_setTarget :: HTMLAnchorElement -> JSString -> IO ()
@@ -230,7 +187,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.target Mozilla HTMLAnchorElement.target documentation> 
 setTarget ::
           (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
-setTarget self val = liftIO (js_setTarget (self) (toJSString val))
+setTarget self val = liftIO (js_setTarget self (toJSString val))
  
 foreign import javascript unsafe "$1[\"target\"]" js_getTarget ::
         HTMLAnchorElement -> IO JSString
@@ -238,7 +195,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.target Mozilla HTMLAnchorElement.target documentation> 
 getTarget ::
           (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getTarget self = liftIO (fromJSString <$> (js_getTarget (self)))
+getTarget self = liftIO (fromJSString <$> (js_getTarget self))
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         HTMLAnchorElement -> JSString -> IO ()
@@ -246,7 +203,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.type Mozilla HTMLAnchorElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLAnchorElement -> IO JSString
@@ -254,271 +211,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.type Mozilla HTMLAnchorElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
- 
-foreign import javascript unsafe "$1[\"hash\"] = $2;" js_setHash ::
-        HTMLAnchorElement -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.hash Mozilla HTMLAnchorElement.hash documentation> 
-setHash ::
-        (MonadIO m, ToJSString val) =>
-          HTMLAnchorElement -> Maybe val -> m ()
-setHash self val = liftIO (js_setHash (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"hash\"]" js_getHash ::
-        HTMLAnchorElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.hash Mozilla HTMLAnchorElement.hash documentation> 
-getHash ::
-        (MonadIO m, FromJSString result) =>
-          HTMLAnchorElement -> m (Maybe result)
-getHash self = liftIO (fromMaybeJSString <$> (js_getHash (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.hash Mozilla HTMLAnchorElement.hash documentation> 
-getHashUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                HTMLAnchorElement -> m result
-getHashUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getHash (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.hash Mozilla HTMLAnchorElement.hash documentation> 
-getHashUnchecked ::
-                 (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getHashUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getHash (self)))
- 
-foreign import javascript unsafe "$1[\"host\"] = $2;" js_setHost ::
-        HTMLAnchorElement -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.host Mozilla HTMLAnchorElement.host documentation> 
-setHost ::
-        (MonadIO m, ToJSString val) =>
-          HTMLAnchorElement -> Maybe val -> m ()
-setHost self val = liftIO (js_setHost (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"host\"]" js_getHost ::
-        HTMLAnchorElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.host Mozilla HTMLAnchorElement.host documentation> 
-getHost ::
-        (MonadIO m, FromJSString result) =>
-          HTMLAnchorElement -> m (Maybe result)
-getHost self = liftIO (fromMaybeJSString <$> (js_getHost (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.host Mozilla HTMLAnchorElement.host documentation> 
-getHostUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                HTMLAnchorElement -> m result
-getHostUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getHost (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.host Mozilla HTMLAnchorElement.host documentation> 
-getHostUnchecked ::
-                 (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getHostUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getHost (self)))
- 
-foreign import javascript unsafe "$1[\"hostname\"] = $2;"
-        js_setHostname :: HTMLAnchorElement -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.hostname Mozilla HTMLAnchorElement.hostname documentation> 
-setHostname ::
-            (MonadIO m, ToJSString val) =>
-              HTMLAnchorElement -> Maybe val -> m ()
-setHostname self val
-  = liftIO (js_setHostname (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"hostname\"]" js_getHostname
-        :: HTMLAnchorElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.hostname Mozilla HTMLAnchorElement.hostname documentation> 
-getHostname ::
-            (MonadIO m, FromJSString result) =>
-              HTMLAnchorElement -> m (Maybe result)
-getHostname self
-  = liftIO (fromMaybeJSString <$> (js_getHostname (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.hostname Mozilla HTMLAnchorElement.hostname documentation> 
-getHostnameUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    HTMLAnchorElement -> m result
-getHostnameUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getHostname (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.hostname Mozilla HTMLAnchorElement.hostname documentation> 
-getHostnameUnchecked ::
-                     (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getHostnameUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getHostname (self)))
- 
-foreign import javascript unsafe "$1[\"pathname\"] = $2;"
-        js_setPathname :: HTMLAnchorElement -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.pathname Mozilla HTMLAnchorElement.pathname documentation> 
-setPathname ::
-            (MonadIO m, ToJSString val) =>
-              HTMLAnchorElement -> Maybe val -> m ()
-setPathname self val
-  = liftIO (js_setPathname (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"pathname\"]" js_getPathname
-        :: HTMLAnchorElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.pathname Mozilla HTMLAnchorElement.pathname documentation> 
-getPathname ::
-            (MonadIO m, FromJSString result) =>
-              HTMLAnchorElement -> m (Maybe result)
-getPathname self
-  = liftIO (fromMaybeJSString <$> (js_getPathname (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.pathname Mozilla HTMLAnchorElement.pathname documentation> 
-getPathnameUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    HTMLAnchorElement -> m result
-getPathnameUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getPathname (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.pathname Mozilla HTMLAnchorElement.pathname documentation> 
-getPathnameUnchecked ::
-                     (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getPathnameUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getPathname (self)))
- 
-foreign import javascript unsafe "$1[\"port\"] = $2;" js_setPort ::
-        HTMLAnchorElement -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.port Mozilla HTMLAnchorElement.port documentation> 
-setPort ::
-        (MonadIO m, ToJSString val) =>
-          HTMLAnchorElement -> Maybe val -> m ()
-setPort self val = liftIO (js_setPort (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"port\"]" js_getPort ::
-        HTMLAnchorElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.port Mozilla HTMLAnchorElement.port documentation> 
-getPort ::
-        (MonadIO m, FromJSString result) =>
-          HTMLAnchorElement -> m (Maybe result)
-getPort self = liftIO (fromMaybeJSString <$> (js_getPort (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.port Mozilla HTMLAnchorElement.port documentation> 
-getPortUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                HTMLAnchorElement -> m result
-getPortUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getPort (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.port Mozilla HTMLAnchorElement.port documentation> 
-getPortUnchecked ::
-                 (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getPortUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getPort (self)))
- 
-foreign import javascript unsafe "$1[\"protocol\"] = $2;"
-        js_setProtocol :: HTMLAnchorElement -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.protocol Mozilla HTMLAnchorElement.protocol documentation> 
-setProtocol ::
-            (MonadIO m, ToJSString val) =>
-              HTMLAnchorElement -> Maybe val -> m ()
-setProtocol self val
-  = liftIO (js_setProtocol (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"protocol\"]" js_getProtocol
-        :: HTMLAnchorElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.protocol Mozilla HTMLAnchorElement.protocol documentation> 
-getProtocol ::
-            (MonadIO m, FromJSString result) =>
-              HTMLAnchorElement -> m (Maybe result)
-getProtocol self
-  = liftIO (fromMaybeJSString <$> (js_getProtocol (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.protocol Mozilla HTMLAnchorElement.protocol documentation> 
-getProtocolUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    HTMLAnchorElement -> m result
-getProtocolUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getProtocol (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.protocol Mozilla HTMLAnchorElement.protocol documentation> 
-getProtocolUnchecked ::
-                     (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getProtocolUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getProtocol (self)))
- 
-foreign import javascript unsafe "$1[\"search\"] = $2;"
-        js_setSearch :: HTMLAnchorElement -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.search Mozilla HTMLAnchorElement.search documentation> 
-setSearch ::
-          (MonadIO m, ToJSString val) =>
-            HTMLAnchorElement -> Maybe val -> m ()
-setSearch self val
-  = liftIO (js_setSearch (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"search\"]" js_getSearch ::
-        HTMLAnchorElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.search Mozilla HTMLAnchorElement.search documentation> 
-getSearch ::
-          (MonadIO m, FromJSString result) =>
-            HTMLAnchorElement -> m (Maybe result)
-getSearch self
-  = liftIO (fromMaybeJSString <$> (js_getSearch (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.search Mozilla HTMLAnchorElement.search documentation> 
-getSearchUnsafe ::
-                (MonadIO m, HasCallStack, FromJSString result) =>
-                  HTMLAnchorElement -> m result
-getSearchUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getSearch (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.search Mozilla HTMLAnchorElement.search documentation> 
-getSearchUnchecked ::
-                   (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getSearchUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getSearch (self)))
- 
-foreign import javascript unsafe "$1[\"origin\"]" js_getOrigin ::
-        HTMLAnchorElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.origin Mozilla HTMLAnchorElement.origin documentation> 
-getOrigin ::
-          (MonadIO m, FromJSString result) =>
-            HTMLAnchorElement -> m (Maybe result)
-getOrigin self
-  = liftIO (fromMaybeJSString <$> (js_getOrigin (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.origin Mozilla HTMLAnchorElement.origin documentation> 
-getOriginUnsafe ::
-                (MonadIO m, HasCallStack, FromJSString result) =>
-                  HTMLAnchorElement -> m result
-getOriginUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getOrigin (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.origin Mozilla HTMLAnchorElement.origin documentation> 
-getOriginUnchecked ::
-                   (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getOriginUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getOrigin (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"text\"] = $2;" js_setText ::
         HTMLAnchorElement -> JSString -> IO ()
@@ -526,7 +219,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.text Mozilla HTMLAnchorElement.text documentation> 
 setText ::
         (MonadIO m, ToJSString val) => HTMLAnchorElement -> val -> m ()
-setText self val = liftIO (js_setText (self) (toJSString val))
+setText self val = liftIO (js_setText self (toJSString val))
  
 foreign import javascript unsafe "$1[\"text\"]" js_getText ::
         HTMLAnchorElement -> IO JSString
@@ -534,27 +227,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.text Mozilla HTMLAnchorElement.text documentation> 
 getText ::
         (MonadIO m, FromJSString result) => HTMLAnchorElement -> m result
-getText self = liftIO (fromJSString <$> (js_getText (self)))
+getText self = liftIO (fromJSString <$> (js_getText self))
  
 foreign import javascript unsafe "$1[\"relList\"]" js_getRelList ::
-        HTMLAnchorElement -> IO (Nullable DOMTokenList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.relList Mozilla HTMLAnchorElement.relList documentation> 
-getRelList ::
-           (MonadIO m) => HTMLAnchorElement -> m (Maybe DOMTokenList)
-getRelList self
-  = liftIO (nullableToMaybe <$> (js_getRelList (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.relList Mozilla HTMLAnchorElement.relList documentation> 
-getRelListUnsafe ::
-                 (MonadIO m, HasCallStack) => HTMLAnchorElement -> m DOMTokenList
-getRelListUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRelList (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLAnchorElement -> IO DOMTokenList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.relList Mozilla HTMLAnchorElement.relList documentation> 
-getRelListUnchecked ::
-                    (MonadIO m) => HTMLAnchorElement -> m DOMTokenList
-getRelListUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRelList (self)))
+getRelList :: (MonadIO m) => HTMLAnchorElement -> m DOMTokenList
+getRelList self = liftIO (js_getRelList self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLAppletElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLAppletElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLAppletElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLAppletElement.hs
@@ -19,7 +19,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +28,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -39,7 +40,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.align Mozilla HTMLAppletElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLAppletElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLAppletElement -> IO JSString
@@ -47,7 +48,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.align Mozilla HTMLAppletElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLAppletElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"alt\"] = $2;" js_setAlt ::
         HTMLAppletElement -> JSString -> IO ()
@@ -55,7 +56,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.alt Mozilla HTMLAppletElement.alt documentation> 
 setAlt ::
        (MonadIO m, ToJSString val) => HTMLAppletElement -> val -> m ()
-setAlt self val = liftIO (js_setAlt (self) (toJSString val))
+setAlt self val = liftIO (js_setAlt self (toJSString val))
  
 foreign import javascript unsafe "$1[\"alt\"]" js_getAlt ::
         HTMLAppletElement -> IO JSString
@@ -63,7 +64,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.alt Mozilla HTMLAppletElement.alt documentation> 
 getAlt ::
        (MonadIO m, FromJSString result) => HTMLAppletElement -> m result
-getAlt self = liftIO (fromJSString <$> (js_getAlt (self)))
+getAlt self = liftIO (fromJSString <$> (js_getAlt self))
  
 foreign import javascript unsafe "$1[\"archive\"] = $2;"
         js_setArchive :: HTMLAppletElement -> JSString -> IO ()
@@ -71,8 +72,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.archive Mozilla HTMLAppletElement.archive documentation> 
 setArchive ::
            (MonadIO m, ToJSString val) => HTMLAppletElement -> val -> m ()
-setArchive self val
-  = liftIO (js_setArchive (self) (toJSString val))
+setArchive self val = liftIO (js_setArchive self (toJSString val))
  
 foreign import javascript unsafe "$1[\"archive\"]" js_getArchive ::
         HTMLAppletElement -> IO JSString
@@ -80,7 +80,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.archive Mozilla HTMLAppletElement.archive documentation> 
 getArchive ::
            (MonadIO m, FromJSString result) => HTMLAppletElement -> m result
-getArchive self = liftIO (fromJSString <$> (js_getArchive (self)))
+getArchive self = liftIO (fromJSString <$> (js_getArchive self))
  
 foreign import javascript unsafe "$1[\"code\"] = $2;" js_setCode ::
         HTMLAppletElement -> JSString -> IO ()
@@ -88,7 +88,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.code Mozilla HTMLAppletElement.code documentation> 
 setCode ::
         (MonadIO m, ToJSString val) => HTMLAppletElement -> val -> m ()
-setCode self val = liftIO (js_setCode (self) (toJSString val))
+setCode self val = liftIO (js_setCode self (toJSString val))
  
 foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
         HTMLAppletElement -> IO JSString
@@ -96,7 +96,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.code Mozilla HTMLAppletElement.code documentation> 
 getCode ::
         (MonadIO m, FromJSString result) => HTMLAppletElement -> m result
-getCode self = liftIO (fromJSString <$> (js_getCode (self)))
+getCode self = liftIO (fromJSString <$> (js_getCode self))
  
 foreign import javascript unsafe "$1[\"codeBase\"] = $2;"
         js_setCodeBase :: HTMLAppletElement -> JSString -> IO ()
@@ -105,7 +105,7 @@
 setCodeBase ::
             (MonadIO m, ToJSString val) => HTMLAppletElement -> val -> m ()
 setCodeBase self val
-  = liftIO (js_setCodeBase (self) (toJSString val))
+  = liftIO (js_setCodeBase self (toJSString val))
  
 foreign import javascript unsafe "$1[\"codeBase\"]" js_getCodeBase
         :: HTMLAppletElement -> IO JSString
@@ -113,8 +113,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.codeBase Mozilla HTMLAppletElement.codeBase documentation> 
 getCodeBase ::
             (MonadIO m, FromJSString result) => HTMLAppletElement -> m result
-getCodeBase self
-  = liftIO (fromJSString <$> (js_getCodeBase (self)))
+getCodeBase self = liftIO (fromJSString <$> (js_getCodeBase self))
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
         js_setHeight :: HTMLAppletElement -> JSString -> IO ()
@@ -122,7 +121,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.height Mozilla HTMLAppletElement.height documentation> 
 setHeight ::
           (MonadIO m, ToJSString val) => HTMLAppletElement -> val -> m ()
-setHeight self val = liftIO (js_setHeight (self) (toJSString val))
+setHeight self val = liftIO (js_setHeight self (toJSString val))
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
         HTMLAppletElement -> IO JSString
@@ -130,23 +129,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.height Mozilla HTMLAppletElement.height documentation> 
 getHeight ::
           (MonadIO m, FromJSString result) => HTMLAppletElement -> m result
-getHeight self = liftIO (fromJSString <$> (js_getHeight (self)))
+getHeight self = liftIO (fromJSString <$> (js_getHeight self))
  
 foreign import javascript unsafe "$1[\"hspace\"] = $2;"
-        js_setHspace :: HTMLAppletElement -> JSString -> IO ()
+        js_setHspace :: HTMLAppletElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.hspace Mozilla HTMLAppletElement.hspace documentation> 
-setHspace ::
-          (MonadIO m, ToJSString val) => HTMLAppletElement -> val -> m ()
-setHspace self val = liftIO (js_setHspace (self) (toJSString val))
+setHspace :: (MonadIO m) => HTMLAppletElement -> Word -> m ()
+setHspace self val = liftIO (js_setHspace self val)
  
 foreign import javascript unsafe "$1[\"hspace\"]" js_getHspace ::
-        HTMLAppletElement -> IO JSString
+        HTMLAppletElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.hspace Mozilla HTMLAppletElement.hspace documentation> 
-getHspace ::
-          (MonadIO m, FromJSString result) => HTMLAppletElement -> m result
-getHspace self = liftIO (fromJSString <$> (js_getHspace (self)))
+getHspace :: (MonadIO m) => HTMLAppletElement -> m Word
+getHspace self = liftIO (js_getHspace self)
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLAppletElement -> JSString -> IO ()
@@ -154,7 +151,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.name Mozilla HTMLAppletElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLAppletElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLAppletElement -> IO JSString
@@ -162,7 +159,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.name Mozilla HTMLAppletElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLAppletElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"object\"] = $2;"
         js_setObject :: HTMLAppletElement -> JSString -> IO ()
@@ -170,7 +167,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.object Mozilla HTMLAppletElement.object documentation> 
 setObject ::
           (MonadIO m, ToJSString val) => HTMLAppletElement -> val -> m ()
-setObject self val = liftIO (js_setObject (self) (toJSString val))
+setObject self val = liftIO (js_setObject self (toJSString val))
  
 foreign import javascript unsafe "$1[\"object\"]" js_getObject ::
         HTMLAppletElement -> IO JSString
@@ -178,23 +175,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.object Mozilla HTMLAppletElement.object documentation> 
 getObject ::
           (MonadIO m, FromJSString result) => HTMLAppletElement -> m result
-getObject self = liftIO (fromJSString <$> (js_getObject (self)))
+getObject self = liftIO (fromJSString <$> (js_getObject self))
  
 foreign import javascript unsafe "$1[\"vspace\"] = $2;"
-        js_setVspace :: HTMLAppletElement -> JSString -> IO ()
+        js_setVspace :: HTMLAppletElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.vspace Mozilla HTMLAppletElement.vspace documentation> 
-setVspace ::
-          (MonadIO m, ToJSString val) => HTMLAppletElement -> val -> m ()
-setVspace self val = liftIO (js_setVspace (self) (toJSString val))
+setVspace :: (MonadIO m) => HTMLAppletElement -> Word -> m ()
+setVspace self val = liftIO (js_setVspace self val)
  
 foreign import javascript unsafe "$1[\"vspace\"]" js_getVspace ::
-        HTMLAppletElement -> IO JSString
+        HTMLAppletElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.vspace Mozilla HTMLAppletElement.vspace documentation> 
-getVspace ::
-          (MonadIO m, FromJSString result) => HTMLAppletElement -> m result
-getVspace self = liftIO (fromJSString <$> (js_getVspace (self)))
+getVspace :: (MonadIO m) => HTMLAppletElement -> m Word
+getVspace self = liftIO (js_getVspace self)
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: HTMLAppletElement -> JSString -> IO ()
@@ -202,7 +197,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.width Mozilla HTMLAppletElement.width documentation> 
 setWidth ::
          (MonadIO m, ToJSString val) => HTMLAppletElement -> val -> m ()
-setWidth self val = liftIO (js_setWidth (self) (toJSString val))
+setWidth self val = liftIO (js_setWidth self (toJSString val))
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLAppletElement -> IO JSString
@@ -210,4 +205,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement.width Mozilla HTMLAppletElement.width documentation> 
 getWidth ::
          (MonadIO m, FromJSString result) => HTMLAppletElement -> m result
-getWidth self = liftIO (fromJSString <$> (js_getWidth (self)))
+getWidth self = liftIO (fromJSString <$> (js_getWidth self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLAreaElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLAreaElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLAreaElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLAreaElement.hs
@@ -5,22 +5,19 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLAreaElement
        (js_setAlt, setAlt, js_getAlt, getAlt, js_setCoords, setCoords,
-        js_getCoords, getCoords, js_setHref, setHref, js_getHref, getHref,
-        js_setNoHref, setNoHref, js_getNoHref, getNoHref, js_setPing,
-        setPing, js_getPing, getPing, js_setRel, setRel, js_getRel, getRel,
-        js_setShape, setShape, js_getShape, getShape, js_setTarget,
-        setTarget, js_getTarget, getTarget, js_getHash, getHash,
-        js_getHost, getHost, js_getHostname, getHostname, js_getPathname,
-        getPathname, js_getPort, getPort, js_getProtocol, getProtocol,
-        js_getSearch, getSearch, js_getRelList, getRelList,
-        getRelListUnsafe, getRelListUnchecked, HTMLAreaElement(..),
+        js_getCoords, getCoords, js_setNoHref, setNoHref, js_getNoHref,
+        getNoHref, js_setPing, setPing, js_getPing, getPing, js_setRel,
+        setRel, js_getRel, getRel, js_setShape, setShape, js_getShape,
+        getShape, js_setTarget, setTarget, js_getTarget, getTarget,
+        js_setDownload, setDownload, js_getDownload, getDownload,
+        js_getRelList, getRelList, HTMLAreaElement(..),
         gTypeHTMLAreaElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -29,6 +26,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -40,7 +38,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.alt Mozilla HTMLAreaElement.alt documentation> 
 setAlt ::
        (MonadIO m, ToJSString val) => HTMLAreaElement -> val -> m ()
-setAlt self val = liftIO (js_setAlt (self) (toJSString val))
+setAlt self val = liftIO (js_setAlt self (toJSString val))
  
 foreign import javascript unsafe "$1[\"alt\"]" js_getAlt ::
         HTMLAreaElement -> IO JSString
@@ -48,7 +46,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.alt Mozilla HTMLAreaElement.alt documentation> 
 getAlt ::
        (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getAlt self = liftIO (fromJSString <$> (js_getAlt (self)))
+getAlt self = liftIO (fromJSString <$> (js_getAlt self))
  
 foreign import javascript unsafe "$1[\"coords\"] = $2;"
         js_setCoords :: HTMLAreaElement -> JSString -> IO ()
@@ -56,7 +54,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.coords Mozilla HTMLAreaElement.coords documentation> 
 setCoords ::
           (MonadIO m, ToJSString val) => HTMLAreaElement -> val -> m ()
-setCoords self val = liftIO (js_setCoords (self) (toJSString val))
+setCoords self val = liftIO (js_setCoords self (toJSString val))
  
 foreign import javascript unsafe "$1[\"coords\"]" js_getCoords ::
         HTMLAreaElement -> IO JSString
@@ -64,37 +62,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.coords Mozilla HTMLAreaElement.coords documentation> 
 getCoords ::
           (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getCoords self = liftIO (fromJSString <$> (js_getCoords (self)))
- 
-foreign import javascript unsafe "$1[\"href\"] = $2;" js_setHref ::
-        HTMLAreaElement -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.href Mozilla HTMLAreaElement.href documentation> 
-setHref ::
-        (MonadIO m, ToJSString val) => HTMLAreaElement -> val -> m ()
-setHref self val = liftIO (js_setHref (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"href\"]" js_getHref ::
-        HTMLAreaElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.href Mozilla HTMLAreaElement.href documentation> 
-getHref ::
-        (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getHref self = liftIO (fromJSString <$> (js_getHref (self)))
+getCoords self = liftIO (fromJSString <$> (js_getCoords self))
  
 foreign import javascript unsafe "$1[\"noHref\"] = $2;"
         js_setNoHref :: HTMLAreaElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.noHref Mozilla HTMLAreaElement.noHref documentation> 
 setNoHref :: (MonadIO m) => HTMLAreaElement -> Bool -> m ()
-setNoHref self val = liftIO (js_setNoHref (self) val)
+setNoHref self val = liftIO (js_setNoHref self val)
  
 foreign import javascript unsafe "($1[\"noHref\"] ? 1 : 0)"
         js_getNoHref :: HTMLAreaElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.noHref Mozilla HTMLAreaElement.noHref documentation> 
 getNoHref :: (MonadIO m) => HTMLAreaElement -> m Bool
-getNoHref self = liftIO (js_getNoHref (self))
+getNoHref self = liftIO (js_getNoHref self)
  
 foreign import javascript unsafe "$1[\"ping\"] = $2;" js_setPing ::
         HTMLAreaElement -> JSString -> IO ()
@@ -102,7 +84,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.ping Mozilla HTMLAreaElement.ping documentation> 
 setPing ::
         (MonadIO m, ToJSString val) => HTMLAreaElement -> val -> m ()
-setPing self val = liftIO (js_setPing (self) (toJSString val))
+setPing self val = liftIO (js_setPing self (toJSString val))
  
 foreign import javascript unsafe "$1[\"ping\"]" js_getPing ::
         HTMLAreaElement -> IO JSString
@@ -110,7 +92,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.ping Mozilla HTMLAreaElement.ping documentation> 
 getPing ::
         (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getPing self = liftIO (fromJSString <$> (js_getPing (self)))
+getPing self = liftIO (fromJSString <$> (js_getPing self))
  
 foreign import javascript unsafe "$1[\"rel\"] = $2;" js_setRel ::
         HTMLAreaElement -> JSString -> IO ()
@@ -118,7 +100,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.rel Mozilla HTMLAreaElement.rel documentation> 
 setRel ::
        (MonadIO m, ToJSString val) => HTMLAreaElement -> val -> m ()
-setRel self val = liftIO (js_setRel (self) (toJSString val))
+setRel self val = liftIO (js_setRel self (toJSString val))
  
 foreign import javascript unsafe "$1[\"rel\"]" js_getRel ::
         HTMLAreaElement -> IO JSString
@@ -126,7 +108,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.rel Mozilla HTMLAreaElement.rel documentation> 
 getRel ::
        (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getRel self = liftIO (fromJSString <$> (js_getRel (self)))
+getRel self = liftIO (fromJSString <$> (js_getRel self))
  
 foreign import javascript unsafe "$1[\"shape\"] = $2;" js_setShape
         :: HTMLAreaElement -> JSString -> IO ()
@@ -134,7 +116,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.shape Mozilla HTMLAreaElement.shape documentation> 
 setShape ::
          (MonadIO m, ToJSString val) => HTMLAreaElement -> val -> m ()
-setShape self val = liftIO (js_setShape (self) (toJSString val))
+setShape self val = liftIO (js_setShape self (toJSString val))
  
 foreign import javascript unsafe "$1[\"shape\"]" js_getShape ::
         HTMLAreaElement -> IO JSString
@@ -142,7 +124,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.shape Mozilla HTMLAreaElement.shape documentation> 
 getShape ::
          (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getShape self = liftIO (fromJSString <$> (js_getShape (self)))
+getShape self = liftIO (fromJSString <$> (js_getShape self))
  
 foreign import javascript unsafe "$1[\"target\"] = $2;"
         js_setTarget :: HTMLAreaElement -> JSString -> IO ()
@@ -150,7 +132,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.target Mozilla HTMLAreaElement.target documentation> 
 setTarget ::
           (MonadIO m, ToJSString val) => HTMLAreaElement -> val -> m ()
-setTarget self val = liftIO (js_setTarget (self) (toJSString val))
+setTarget self val = liftIO (js_setTarget self (toJSString val))
  
 foreign import javascript unsafe "$1[\"target\"]" js_getTarget ::
         HTMLAreaElement -> IO JSString
@@ -158,86 +140,28 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.target Mozilla HTMLAreaElement.target documentation> 
 getTarget ::
           (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getTarget self = liftIO (fromJSString <$> (js_getTarget (self)))
- 
-foreign import javascript unsafe "$1[\"hash\"]" js_getHash ::
-        HTMLAreaElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.hash Mozilla HTMLAreaElement.hash documentation> 
-getHash ::
-        (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getHash self = liftIO (fromJSString <$> (js_getHash (self)))
- 
-foreign import javascript unsafe "$1[\"host\"]" js_getHost ::
-        HTMLAreaElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.host Mozilla HTMLAreaElement.host documentation> 
-getHost ::
-        (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getHost self = liftIO (fromJSString <$> (js_getHost (self)))
- 
-foreign import javascript unsafe "$1[\"hostname\"]" js_getHostname
-        :: HTMLAreaElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.hostname Mozilla HTMLAreaElement.hostname documentation> 
-getHostname ::
-            (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getHostname self
-  = liftIO (fromJSString <$> (js_getHostname (self)))
- 
-foreign import javascript unsafe "$1[\"pathname\"]" js_getPathname
-        :: HTMLAreaElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.pathname Mozilla HTMLAreaElement.pathname documentation> 
-getPathname ::
-            (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getPathname self
-  = liftIO (fromJSString <$> (js_getPathname (self)))
+getTarget self = liftIO (fromJSString <$> (js_getTarget self))
  
-foreign import javascript unsafe "$1[\"port\"]" js_getPort ::
-        HTMLAreaElement -> IO JSString
+foreign import javascript unsafe "$1[\"download\"] = $2;"
+        js_setDownload :: HTMLAreaElement -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.port Mozilla HTMLAreaElement.port documentation> 
-getPort ::
-        (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getPort self = liftIO (fromJSString <$> (js_getPort (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.download Mozilla HTMLAreaElement.download documentation> 
+setDownload ::
+            (MonadIO m, ToJSString val) => HTMLAreaElement -> val -> m ()
+setDownload self val
+  = liftIO (js_setDownload self (toJSString val))
  
-foreign import javascript unsafe "$1[\"protocol\"]" js_getProtocol
+foreign import javascript unsafe "$1[\"download\"]" js_getDownload
         :: HTMLAreaElement -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.protocol Mozilla HTMLAreaElement.protocol documentation> 
-getProtocol ::
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.download Mozilla HTMLAreaElement.download documentation> 
+getDownload ::
             (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getProtocol self
-  = liftIO (fromJSString <$> (js_getProtocol (self)))
- 
-foreign import javascript unsafe "$1[\"search\"]" js_getSearch ::
-        HTMLAreaElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.search Mozilla HTMLAreaElement.search documentation> 
-getSearch ::
-          (MonadIO m, FromJSString result) => HTMLAreaElement -> m result
-getSearch self = liftIO (fromJSString <$> (js_getSearch (self)))
+getDownload self = liftIO (fromJSString <$> (js_getDownload self))
  
 foreign import javascript unsafe "$1[\"relList\"]" js_getRelList ::
-        HTMLAreaElement -> IO (Nullable DOMTokenList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.relList Mozilla HTMLAreaElement.relList documentation> 
-getRelList ::
-           (MonadIO m) => HTMLAreaElement -> m (Maybe DOMTokenList)
-getRelList self
-  = liftIO (nullableToMaybe <$> (js_getRelList (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.relList Mozilla HTMLAreaElement.relList documentation> 
-getRelListUnsafe ::
-                 (MonadIO m, HasCallStack) => HTMLAreaElement -> m DOMTokenList
-getRelListUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRelList (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLAreaElement -> IO DOMTokenList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement.relList Mozilla HTMLAreaElement.relList documentation> 
-getRelListUnchecked ::
-                    (MonadIO m) => HTMLAreaElement -> m DOMTokenList
-getRelListUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRelList (self)))
+getRelList :: (MonadIO m) => HTMLAreaElement -> m DOMTokenList
+getRelList self = liftIO (js_getRelList self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLAttachmentElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLAttachmentElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLAttachmentElement.hs
@@ -0,0 +1,56 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.HTMLAttachmentElement
+       (js_setFile, setFile, js_getFile, getFile, getFileUnsafe,
+        getFileUnchecked, HTMLAttachmentElement(..),
+        gTypeHTMLAttachmentElement)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"file\"] = $2;" js_setFile ::
+        HTMLAttachmentElement -> Optional File -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAttachmentElement.file Mozilla HTMLAttachmentElement.file documentation> 
+setFile ::
+        (MonadIO m) => HTMLAttachmentElement -> Maybe File -> m ()
+setFile self val = liftIO (js_setFile self (maybeToOptional val))
+ 
+foreign import javascript unsafe "$1[\"file\"]" js_getFile ::
+        HTMLAttachmentElement -> IO (Nullable File)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAttachmentElement.file Mozilla HTMLAttachmentElement.file documentation> 
+getFile :: (MonadIO m) => HTMLAttachmentElement -> m (Maybe File)
+getFile self = liftIO (nullableToMaybe <$> (js_getFile self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAttachmentElement.file Mozilla HTMLAttachmentElement.file documentation> 
+getFileUnsafe ::
+              (MonadIO m, HasCallStack) => HTMLAttachmentElement -> m File
+getFileUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getFile self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAttachmentElement.file Mozilla HTMLAttachmentElement.file documentation> 
+getFileUnchecked :: (MonadIO m) => HTMLAttachmentElement -> m File
+getFileUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getFile self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLBRElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLBRElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLBRElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLBRElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,7 +32,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement.clear Mozilla HTMLBRElement.clear documentation> 
 setClear ::
          (MonadIO m, ToJSString val) => HTMLBRElement -> val -> m ()
-setClear self val = liftIO (js_setClear (self) (toJSString val))
+setClear self val = liftIO (js_setClear self (toJSString val))
  
 foreign import javascript unsafe "$1[\"clear\"]" js_getClear ::
         HTMLBRElement -> IO JSString
@@ -39,4 +40,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement.clear Mozilla HTMLBRElement.clear documentation> 
 getClear ::
          (MonadIO m, FromJSString result) => HTMLBRElement -> m result
-getClear self = liftIO (fromJSString <$> (js_getClear (self)))
+getClear self = liftIO (fromJSString <$> (js_getClear self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLBaseElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLBaseElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLBaseElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLBaseElement.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLBaseElement
-       (js_setHref, setHref, js_getHref, getHref, getHrefUnsafe,
-        getHrefUnchecked, js_setTarget, setTarget, js_getTarget, getTarget,
-        HTMLBaseElement(..), gTypeHTMLBaseElement)
+       (js_setHref, setHref, js_getHref, getHref, js_setTarget, setTarget,
+        js_getTarget, getTarget, HTMLBaseElement(..), gTypeHTMLBaseElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,42 +20,27 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"href\"] = $2;" js_setHref ::
-        HTMLBaseElement -> Nullable JSString -> IO ()
+        HTMLBaseElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement.href Mozilla HTMLBaseElement.href documentation> 
 setHref ::
-        (MonadIO m, ToJSString val) => HTMLBaseElement -> Maybe val -> m ()
-setHref self val = liftIO (js_setHref (self) (toMaybeJSString val))
+        (MonadIO m, ToJSString val) => HTMLBaseElement -> val -> m ()
+setHref self val = liftIO (js_setHref self (toJSString val))
  
 foreign import javascript unsafe "$1[\"href\"]" js_getHref ::
-        HTMLBaseElement -> IO (Nullable JSString)
+        HTMLBaseElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement.href Mozilla HTMLBaseElement.href documentation> 
 getHref ::
-        (MonadIO m, FromJSString result) =>
-          HTMLBaseElement -> m (Maybe result)
-getHref self = liftIO (fromMaybeJSString <$> (js_getHref (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement.href Mozilla HTMLBaseElement.href documentation> 
-getHrefUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                HTMLBaseElement -> m result
-getHrefUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getHref (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement.href Mozilla HTMLBaseElement.href documentation> 
-getHrefUnchecked ::
-                 (MonadIO m, FromJSString result) => HTMLBaseElement -> m result
-getHrefUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getHref (self)))
+        (MonadIO m, FromJSString result) => HTMLBaseElement -> m result
+getHref self = liftIO (fromJSString <$> (js_getHref self))
  
 foreign import javascript unsafe "$1[\"target\"] = $2;"
         js_setTarget :: HTMLBaseElement -> JSString -> IO ()
@@ -64,7 +48,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement.target Mozilla HTMLBaseElement.target documentation> 
 setTarget ::
           (MonadIO m, ToJSString val) => HTMLBaseElement -> val -> m ()
-setTarget self val = liftIO (js_setTarget (self) (toJSString val))
+setTarget self val = liftIO (js_setTarget self (toJSString val))
  
 foreign import javascript unsafe "$1[\"target\"]" js_getTarget ::
         HTMLBaseElement -> IO JSString
@@ -72,4 +56,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement.target Mozilla HTMLBaseElement.target documentation> 
 getTarget ::
           (MonadIO m, FromJSString result) => HTMLBaseElement -> m result
-getTarget self = liftIO (fromJSString <$> (js_getTarget (self)))
+getTarget self = liftIO (fromJSString <$> (js_getTarget self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLBaseFontElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLBaseFontElement.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLBaseFontElement.hs
+++ /dev/null
@@ -1,73 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.HTMLBaseFontElement
-       (js_setColor, setColor, js_getColor, getColor, js_setFace, setFace,
-        js_getFace, getFace, js_setSize, setSize, js_getSize, getSize,
-        HTMLBaseFontElement(..), gTypeHTMLBaseFontElement)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"color\"] = $2;" js_setColor
-        :: HTMLBaseFontElement -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseFontElement.color Mozilla HTMLBaseFontElement.color documentation> 
-setColor ::
-         (MonadIO m, ToJSString val) => HTMLBaseFontElement -> val -> m ()
-setColor self val = liftIO (js_setColor (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"color\"]" js_getColor ::
-        HTMLBaseFontElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseFontElement.color Mozilla HTMLBaseFontElement.color documentation> 
-getColor ::
-         (MonadIO m, FromJSString result) => HTMLBaseFontElement -> m result
-getColor self = liftIO (fromJSString <$> (js_getColor (self)))
- 
-foreign import javascript unsafe "$1[\"face\"] = $2;" js_setFace ::
-        HTMLBaseFontElement -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseFontElement.face Mozilla HTMLBaseFontElement.face documentation> 
-setFace ::
-        (MonadIO m, ToJSString val) => HTMLBaseFontElement -> val -> m ()
-setFace self val = liftIO (js_setFace (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"face\"]" js_getFace ::
-        HTMLBaseFontElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseFontElement.face Mozilla HTMLBaseFontElement.face documentation> 
-getFace ::
-        (MonadIO m, FromJSString result) => HTMLBaseFontElement -> m result
-getFace self = liftIO (fromJSString <$> (js_getFace (self)))
- 
-foreign import javascript unsafe "$1[\"size\"] = $2;" js_setSize ::
-        HTMLBaseFontElement -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseFontElement.size Mozilla HTMLBaseFontElement.size documentation> 
-setSize :: (MonadIO m) => HTMLBaseFontElement -> Int -> m ()
-setSize self val = liftIO (js_setSize (self) val)
- 
-foreign import javascript unsafe "$1[\"size\"]" js_getSize ::
-        HTMLBaseFontElement -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseFontElement.size Mozilla HTMLBaseFontElement.size documentation> 
-getSize :: (MonadIO m) => HTMLBaseFontElement -> m Int
-getSize self = liftIO (js_getSize (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLBodyElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLBodyElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLBodyElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLBodyElement.hs
@@ -4,20 +4,26 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLBodyElement
-       (js_setALink, setALink, js_getALink, getALink, js_setBackground,
-        setBackground, js_getBackground, getBackground, js_setBgColor,
-        setBgColor, js_getBgColor, getBgColor, js_setLink, setLink,
-        js_getLink, getLink, js_setText, setText, js_getText, getText,
-        js_setVLink, setVLink, js_getVLink, getVLink, beforeUnload,
-        hashChange, message, offline, online, popState, resize, storage,
-        unload, orientationChange, blur, error, focus, load,
+       (js_setALink, setALink, js_getALink, getALink, getALinkUnsafe,
+        getALinkUnchecked, js_setBackground, setBackground,
+        js_getBackground, getBackground, js_setBgColor, setBgColor,
+        js_getBgColor, getBgColor, getBgColorUnsafe, getBgColorUnchecked,
+        js_setLink, setLink, js_getLink, getLink, getLinkUnsafe,
+        getLinkUnchecked, js_setText, setText, js_getText, getText,
+        getTextUnsafe, getTextUnchecked, js_setVLink, setVLink,
+        js_getVLink, getVLink, getVLinkUnsafe, getVLinkUnchecked, blur,
+        error, focus, focusin, focusout, load, resize, scroll,
+        webKitMouseForcechanged, webKitMouseForcedown,
+        webKitMouseForcewillbegin, webKitMouseForceup,
+        webKitWillRevealBottom, webKitWillRevealLeft,
+        webKitWillRevealRight, webKitWillRevealTop, selectionchange,
         HTMLBodyElement(..), gTypeHTMLBodyElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,26 +32,44 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"aLink\"] = $2;" js_setALink
-        :: HTMLBodyElement -> JSString -> IO ()
+        :: HTMLBodyElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.aLink Mozilla HTMLBodyElement.aLink documentation> 
 setALink ::
-         (MonadIO m, ToJSString val) => HTMLBodyElement -> val -> m ()
-setALink self val = liftIO (js_setALink (self) (toJSString val))
+         (MonadIO m, ToJSString val) => HTMLBodyElement -> Maybe val -> m ()
+setALink self val
+  = liftIO (js_setALink self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"aLink\"]" js_getALink ::
-        HTMLBodyElement -> IO JSString
+        HTMLBodyElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.aLink Mozilla HTMLBodyElement.aLink documentation> 
 getALink ::
-         (MonadIO m, FromJSString result) => HTMLBodyElement -> m result
-getALink self = liftIO (fromJSString <$> (js_getALink (self)))
+         (MonadIO m, FromJSString result) =>
+           HTMLBodyElement -> m (Maybe result)
+getALink self = liftIO (fromMaybeJSString <$> (js_getALink self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.aLink Mozilla HTMLBodyElement.aLink documentation> 
+getALinkUnsafe ::
+               (MonadIO m, HasCallStack, FromJSString result) =>
+                 HTMLBodyElement -> m result
+getALinkUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getALink self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.aLink Mozilla HTMLBodyElement.aLink documentation> 
+getALinkUnchecked ::
+                  (MonadIO m, FromJSString result) => HTMLBodyElement -> m result
+getALinkUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getALink self))
  
 foreign import javascript unsafe "$1[\"background\"] = $2;"
         js_setBackground :: HTMLBodyElement -> JSString -> IO ()
@@ -54,7 +78,7 @@
 setBackground ::
               (MonadIO m, ToJSString val) => HTMLBodyElement -> val -> m ()
 setBackground self val
-  = liftIO (js_setBackground (self) (toJSString val))
+  = liftIO (js_setBackground self (toJSString val))
  
 foreign import javascript unsafe "$1[\"background\"]"
         js_getBackground :: HTMLBodyElement -> IO JSString
@@ -63,113 +87,140 @@
 getBackground ::
               (MonadIO m, FromJSString result) => HTMLBodyElement -> m result
 getBackground self
-  = liftIO (fromJSString <$> (js_getBackground (self)))
+  = liftIO (fromJSString <$> (js_getBackground self))
  
 foreign import javascript unsafe "$1[\"bgColor\"] = $2;"
-        js_setBgColor :: HTMLBodyElement -> JSString -> IO ()
+        js_setBgColor :: HTMLBodyElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.bgColor Mozilla HTMLBodyElement.bgColor documentation> 
 setBgColor ::
-           (MonadIO m, ToJSString val) => HTMLBodyElement -> val -> m ()
+           (MonadIO m, ToJSString val) => HTMLBodyElement -> Maybe val -> m ()
 setBgColor self val
-  = liftIO (js_setBgColor (self) (toJSString val))
+  = liftIO (js_setBgColor self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"bgColor\"]" js_getBgColor ::
-        HTMLBodyElement -> IO JSString
+        HTMLBodyElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.bgColor Mozilla HTMLBodyElement.bgColor documentation> 
 getBgColor ::
-           (MonadIO m, FromJSString result) => HTMLBodyElement -> m result
-getBgColor self = liftIO (fromJSString <$> (js_getBgColor (self)))
+           (MonadIO m, FromJSString result) =>
+             HTMLBodyElement -> m (Maybe result)
+getBgColor self
+  = liftIO (fromMaybeJSString <$> (js_getBgColor self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.bgColor Mozilla HTMLBodyElement.bgColor documentation> 
+getBgColorUnsafe ::
+                 (MonadIO m, HasCallStack, FromJSString result) =>
+                   HTMLBodyElement -> m result
+getBgColorUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getBgColor self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.bgColor Mozilla HTMLBodyElement.bgColor documentation> 
+getBgColorUnchecked ::
+                    (MonadIO m, FromJSString result) => HTMLBodyElement -> m result
+getBgColorUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getBgColor self))
  
 foreign import javascript unsafe "$1[\"link\"] = $2;" js_setLink ::
-        HTMLBodyElement -> JSString -> IO ()
+        HTMLBodyElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.link Mozilla HTMLBodyElement.link documentation> 
 setLink ::
-        (MonadIO m, ToJSString val) => HTMLBodyElement -> val -> m ()
-setLink self val = liftIO (js_setLink (self) (toJSString val))
+        (MonadIO m, ToJSString val) => HTMLBodyElement -> Maybe val -> m ()
+setLink self val
+  = liftIO (js_setLink self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"link\"]" js_getLink ::
-        HTMLBodyElement -> IO JSString
+        HTMLBodyElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.link Mozilla HTMLBodyElement.link documentation> 
 getLink ::
-        (MonadIO m, FromJSString result) => HTMLBodyElement -> m result
-getLink self = liftIO (fromJSString <$> (js_getLink (self)))
+        (MonadIO m, FromJSString result) =>
+          HTMLBodyElement -> m (Maybe result)
+getLink self = liftIO (fromMaybeJSString <$> (js_getLink self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.link Mozilla HTMLBodyElement.link documentation> 
+getLinkUnsafe ::
+              (MonadIO m, HasCallStack, FromJSString result) =>
+                HTMLBodyElement -> m result
+getLinkUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getLink self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.link Mozilla HTMLBodyElement.link documentation> 
+getLinkUnchecked ::
+                 (MonadIO m, FromJSString result) => HTMLBodyElement -> m result
+getLinkUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getLink self))
  
 foreign import javascript unsafe "$1[\"text\"] = $2;" js_setText ::
-        HTMLBodyElement -> JSString -> IO ()
+        HTMLBodyElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.text Mozilla HTMLBodyElement.text documentation> 
 setText ::
-        (MonadIO m, ToJSString val) => HTMLBodyElement -> val -> m ()
-setText self val = liftIO (js_setText (self) (toJSString val))
+        (MonadIO m, ToJSString val) => HTMLBodyElement -> Maybe val -> m ()
+setText self val
+  = liftIO (js_setText self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"text\"]" js_getText ::
-        HTMLBodyElement -> IO JSString
+        HTMLBodyElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.text Mozilla HTMLBodyElement.text documentation> 
 getText ::
-        (MonadIO m, FromJSString result) => HTMLBodyElement -> m result
-getText self = liftIO (fromJSString <$> (js_getText (self)))
+        (MonadIO m, FromJSString result) =>
+          HTMLBodyElement -> m (Maybe result)
+getText self = liftIO (fromMaybeJSString <$> (js_getText self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.text Mozilla HTMLBodyElement.text documentation> 
+getTextUnsafe ::
+              (MonadIO m, HasCallStack, FromJSString result) =>
+                HTMLBodyElement -> m result
+getTextUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getText self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.text Mozilla HTMLBodyElement.text documentation> 
+getTextUnchecked ::
+                 (MonadIO m, FromJSString result) => HTMLBodyElement -> m result
+getTextUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getText self))
  
 foreign import javascript unsafe "$1[\"vLink\"] = $2;" js_setVLink
-        :: HTMLBodyElement -> JSString -> IO ()
+        :: HTMLBodyElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.vLink Mozilla HTMLBodyElement.vLink documentation> 
 setVLink ::
-         (MonadIO m, ToJSString val) => HTMLBodyElement -> val -> m ()
-setVLink self val = liftIO (js_setVLink (self) (toJSString val))
+         (MonadIO m, ToJSString val) => HTMLBodyElement -> Maybe val -> m ()
+setVLink self val
+  = liftIO (js_setVLink self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"vLink\"]" js_getVLink ::
-        HTMLBodyElement -> IO JSString
+        HTMLBodyElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.vLink Mozilla HTMLBodyElement.vLink documentation> 
 getVLink ::
-         (MonadIO m, FromJSString result) => HTMLBodyElement -> m result
-getVLink self = liftIO (fromJSString <$> (js_getVLink (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onbeforeunload Mozilla HTMLBodyElement.onbeforeunload documentation> 
-beforeUnload :: EventName HTMLBodyElement BeforeUnloadEvent
-beforeUnload = unsafeEventName (toJSString "beforeunload")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onhashchange Mozilla HTMLBodyElement.onhashchange documentation> 
-hashChange :: EventName HTMLBodyElement HashChangeEvent
-hashChange = unsafeEventName (toJSString "hashchange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onmessage Mozilla HTMLBodyElement.onmessage documentation> 
-message :: EventName HTMLBodyElement MessageEvent
-message = unsafeEventName (toJSString "message")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onoffline Mozilla HTMLBodyElement.onoffline documentation> 
-offline :: EventName HTMLBodyElement Event
-offline = unsafeEventName (toJSString "offline")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.ononline Mozilla HTMLBodyElement.ononline documentation> 
-online :: EventName HTMLBodyElement Event
-online = unsafeEventName (toJSString "online")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onpopstate Mozilla HTMLBodyElement.onpopstate documentation> 
-popState :: EventName HTMLBodyElement PopStateEvent
-popState = unsafeEventName (toJSString "popstate")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onresize Mozilla HTMLBodyElement.onresize documentation> 
-resize :: EventName HTMLBodyElement UIEvent
-resize = unsafeEventName (toJSString "resize")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onstorage Mozilla HTMLBodyElement.onstorage documentation> 
-storage :: EventName HTMLBodyElement StorageEvent
-storage = unsafeEventName (toJSString "storage")
+         (MonadIO m, FromJSString result) =>
+           HTMLBodyElement -> m (Maybe result)
+getVLink self = liftIO (fromMaybeJSString <$> (js_getVLink self))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onunload Mozilla HTMLBodyElement.onunload documentation> 
-unload :: EventName HTMLBodyElement UIEvent
-unload = unsafeEventName (toJSString "unload")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.vLink Mozilla HTMLBodyElement.vLink documentation> 
+getVLinkUnsafe ::
+               (MonadIO m, HasCallStack, FromJSString result) =>
+                 HTMLBodyElement -> m result
+getVLinkUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getVLink self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onorientationchange Mozilla HTMLBodyElement.onorientationchange documentation> 
-orientationChange :: EventName HTMLBodyElement Event
-orientationChange
-  = unsafeEventName (toJSString "orientationchange")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.vLink Mozilla HTMLBodyElement.vLink documentation> 
+getVLinkUnchecked ::
+                  (MonadIO m, FromJSString result) => HTMLBodyElement -> m result
+getVLinkUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getVLink self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onblur Mozilla HTMLBodyElement.onblur documentation> 
 blur :: EventName HTMLBodyElement FocusEvent
@@ -183,6 +234,70 @@
 focus :: EventName HTMLBodyElement FocusEvent
 focus = unsafeEventName (toJSString "focus")
 
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onfocusin Mozilla HTMLBodyElement.onfocusin documentation> 
+focusin :: EventName HTMLBodyElement onfocusin
+focusin = unsafeEventName (toJSString "focusin")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onfocusout Mozilla HTMLBodyElement.onfocusout documentation> 
+focusout :: EventName HTMLBodyElement onfocusout
+focusout = unsafeEventName (toJSString "focusout")
+
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onload Mozilla HTMLBodyElement.onload documentation> 
 load :: EventName HTMLBodyElement UIEvent
 load = unsafeEventName (toJSString "load")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onresize Mozilla HTMLBodyElement.onresize documentation> 
+resize :: EventName HTMLBodyElement UIEvent
+resize = unsafeEventName (toJSString "resize")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onscroll Mozilla HTMLBodyElement.onscroll documentation> 
+scroll :: EventName HTMLBodyElement UIEvent
+scroll = unsafeEventName (toJSString "scroll")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onwebkitmouseforcechanged Mozilla HTMLBodyElement.onwebkitmouseforcechanged documentation> 
+webKitMouseForcechanged ::
+                          EventName HTMLBodyElement onwebkitmouseforcechanged
+webKitMouseForcechanged
+  = unsafeEventName (toJSString "webkitmouseforcechanged")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onwebkitmouseforcedown Mozilla HTMLBodyElement.onwebkitmouseforcedown documentation> 
+webKitMouseForcedown ::
+                       EventName HTMLBodyElement onwebkitmouseforcedown
+webKitMouseForcedown
+  = unsafeEventName (toJSString "webkitmouseforcedown")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onwebkitmouseforcewillbegin Mozilla HTMLBodyElement.onwebkitmouseforcewillbegin documentation> 
+webKitMouseForcewillbegin ::
+                            EventName HTMLBodyElement onwebkitmouseforcewillbegin
+webKitMouseForcewillbegin
+  = unsafeEventName (toJSString "webkitmouseforcewillbegin")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onwebkitmouseforceup Mozilla HTMLBodyElement.onwebkitmouseforceup documentation> 
+webKitMouseForceup ::
+                     EventName HTMLBodyElement onwebkitmouseforceup
+webKitMouseForceup
+  = unsafeEventName (toJSString "webkitmouseforceup")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onwebkitwillrevealbottom Mozilla HTMLBodyElement.onwebkitwillrevealbottom documentation> 
+webKitWillRevealBottom :: EventName HTMLBodyElement Event
+webKitWillRevealBottom
+  = unsafeEventName (toJSString "webkitwillrevealbottom")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onwebkitwillrevealleft Mozilla HTMLBodyElement.onwebkitwillrevealleft documentation> 
+webKitWillRevealLeft :: EventName HTMLBodyElement Event
+webKitWillRevealLeft
+  = unsafeEventName (toJSString "webkitwillrevealleft")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onwebkitwillrevealright Mozilla HTMLBodyElement.onwebkitwillrevealright documentation> 
+webKitWillRevealRight :: EventName HTMLBodyElement Event
+webKitWillRevealRight
+  = unsafeEventName (toJSString "webkitwillrevealright")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onwebkitwillrevealtop Mozilla HTMLBodyElement.onwebkitwillrevealtop documentation> 
+webKitWillRevealTop :: EventName HTMLBodyElement Event
+webKitWillRevealTop
+  = unsafeEventName (toJSString "webkitwillrevealtop")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement.onselectionchange Mozilla HTMLBodyElement.onselectionchange documentation> 
+selectionchange :: EventName HTMLBodyElement onselectionchange
+selectionchange = unsafeEventName (toJSString "selectionchange")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLButtonElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLButtonElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLButtonElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLButtonElement.hs
@@ -5,30 +5,27 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLButtonElement
        (js_checkValidity, checkValidity, checkValidity_,
+        js_reportValidity, reportValidity, reportValidity_,
         js_setCustomValidity, setCustomValidity, js_setAutofocus,
         setAutofocus, js_getAutofocus, getAutofocus, js_setDisabled,
         setDisabled, js_getDisabled, getDisabled, js_getForm, getForm,
-        getFormUnsafe, getFormUnchecked, js_setFormAction, setFormAction,
-        js_getFormAction, getFormAction, js_setFormEnctype, setFormEnctype,
-        js_getFormEnctype, getFormEnctype, getFormEnctypeUnsafe,
-        getFormEnctypeUnchecked, js_setFormMethod, setFormMethod,
-        js_getFormMethod, getFormMethod, getFormMethodUnsafe,
-        getFormMethodUnchecked, js_setFormNoValidate, setFormNoValidate,
-        js_getFormNoValidate, getFormNoValidate, js_setFormTarget,
-        setFormTarget, js_getFormTarget, getFormTarget, js_setName,
-        setName, js_getName, getName, js_setType, setType, js_getType,
-        getType, getTypeUnsafe, getTypeUnchecked, js_setValue, setValue,
-        js_getValue, getValue, js_getWillValidate, getWillValidate,
-        js_getValidity, getValidity, getValidityUnsafe,
-        getValidityUnchecked, js_getValidationMessage,
-        getValidationMessage, js_getLabels, getLabels, getLabelsUnsafe,
-        getLabelsUnchecked, HTMLButtonElement(..), gTypeHTMLButtonElement)
+        js_setFormAction, setFormAction, js_getFormAction, getFormAction,
+        js_setFormEnctype, setFormEnctype, js_getFormEnctype,
+        getFormEnctype, js_setFormMethod, setFormMethod, js_getFormMethod,
+        getFormMethod, js_setType, setType, js_getType, getType,
+        js_setFormNoValidate, setFormNoValidate, js_getFormNoValidate,
+        getFormNoValidate, js_setFormTarget, setFormTarget,
+        js_getFormTarget, getFormTarget, js_setName, setName, js_getName,
+        getName, js_setValue, setValue, js_getValue, getValue,
+        js_getWillValidate, getWillValidate, js_getValidity, getValidity,
+        js_getValidationMessage, getValidationMessage, js_getLabels,
+        getLabels, HTMLButtonElement(..), gTypeHTMLButtonElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -37,6 +34,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -48,72 +46,67 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.checkValidity Mozilla HTMLButtonElement.checkValidity documentation> 
 checkValidity :: (MonadIO m) => HTMLButtonElement -> m Bool
-checkValidity self = liftIO (js_checkValidity (self))
+checkValidity self = liftIO (js_checkValidity self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.checkValidity Mozilla HTMLButtonElement.checkValidity documentation> 
 checkValidity_ :: (MonadIO m) => HTMLButtonElement -> m ()
-checkValidity_ self = liftIO (void (js_checkValidity (self)))
+checkValidity_ self = liftIO (void (js_checkValidity self))
  
+foreign import javascript unsafe
+        "($1[\"reportValidity\"]() ? 1 : 0)" js_reportValidity ::
+        HTMLButtonElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.reportValidity Mozilla HTMLButtonElement.reportValidity documentation> 
+reportValidity :: (MonadIO m) => HTMLButtonElement -> m Bool
+reportValidity self = liftIO (js_reportValidity self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.reportValidity Mozilla HTMLButtonElement.reportValidity documentation> 
+reportValidity_ :: (MonadIO m) => HTMLButtonElement -> m ()
+reportValidity_ self = liftIO (void (js_reportValidity self))
+ 
 foreign import javascript unsafe "$1[\"setCustomValidity\"]($2)"
-        js_setCustomValidity ::
-        HTMLButtonElement -> Nullable JSString -> IO ()
+        js_setCustomValidity :: HTMLButtonElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.setCustomValidity Mozilla HTMLButtonElement.setCustomValidity documentation> 
 setCustomValidity ::
-                  (MonadIO m, ToJSString error) =>
-                    HTMLButtonElement -> Maybe error -> m ()
+                  (MonadIO m, ToJSString error) => HTMLButtonElement -> error -> m ()
 setCustomValidity self error
-  = liftIO (js_setCustomValidity (self) (toMaybeJSString error))
+  = liftIO (js_setCustomValidity self (toJSString error))
  
 foreign import javascript unsafe "$1[\"autofocus\"] = $2;"
         js_setAutofocus :: HTMLButtonElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.autofocus Mozilla HTMLButtonElement.autofocus documentation> 
 setAutofocus :: (MonadIO m) => HTMLButtonElement -> Bool -> m ()
-setAutofocus self val = liftIO (js_setAutofocus (self) val)
+setAutofocus self val = liftIO (js_setAutofocus self val)
  
 foreign import javascript unsafe "($1[\"autofocus\"] ? 1 : 0)"
         js_getAutofocus :: HTMLButtonElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.autofocus Mozilla HTMLButtonElement.autofocus documentation> 
 getAutofocus :: (MonadIO m) => HTMLButtonElement -> m Bool
-getAutofocus self = liftIO (js_getAutofocus (self))
+getAutofocus self = liftIO (js_getAutofocus self)
  
 foreign import javascript unsafe "$1[\"disabled\"] = $2;"
         js_setDisabled :: HTMLButtonElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.disabled Mozilla HTMLButtonElement.disabled documentation> 
 setDisabled :: (MonadIO m) => HTMLButtonElement -> Bool -> m ()
-setDisabled self val = liftIO (js_setDisabled (self) val)
+setDisabled self val = liftIO (js_setDisabled self val)
  
 foreign import javascript unsafe "($1[\"disabled\"] ? 1 : 0)"
         js_getDisabled :: HTMLButtonElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.disabled Mozilla HTMLButtonElement.disabled documentation> 
 getDisabled :: (MonadIO m) => HTMLButtonElement -> m Bool
-getDisabled self = liftIO (js_getDisabled (self))
+getDisabled self = liftIO (js_getDisabled self)
  
 foreign import javascript unsafe "$1[\"form\"]" js_getForm ::
-        HTMLButtonElement -> IO (Nullable HTMLFormElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.form Mozilla HTMLButtonElement.form documentation> 
-getForm ::
-        (MonadIO m) => HTMLButtonElement -> m (Maybe HTMLFormElement)
-getForm self = liftIO (nullableToMaybe <$> (js_getForm (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.form Mozilla HTMLButtonElement.form documentation> 
-getFormUnsafe ::
-              (MonadIO m, HasCallStack) => HTMLButtonElement -> m HTMLFormElement
-getFormUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getForm (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLButtonElement -> IO HTMLFormElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.form Mozilla HTMLButtonElement.form documentation> 
-getFormUnchecked ::
-                 (MonadIO m) => HTMLButtonElement -> m HTMLFormElement
-getFormUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getForm (self)))
+getForm :: (MonadIO m) => HTMLButtonElement -> m HTMLFormElement
+getForm self = liftIO (js_getForm self)
  
 foreign import javascript unsafe "$1[\"formAction\"] = $2;"
         js_setFormAction :: HTMLButtonElement -> JSString -> IO ()
@@ -122,7 +115,7 @@
 setFormAction ::
               (MonadIO m, ToJSString val) => HTMLButtonElement -> val -> m ()
 setFormAction self val
-  = liftIO (js_setFormAction (self) (toJSString val))
+  = liftIO (js_setFormAction self (toJSString val))
  
 foreign import javascript unsafe "$1[\"formAction\"]"
         js_getFormAction :: HTMLButtonElement -> IO JSString
@@ -131,80 +124,59 @@
 getFormAction ::
               (MonadIO m, FromJSString result) => HTMLButtonElement -> m result
 getFormAction self
-  = liftIO (fromJSString <$> (js_getFormAction (self)))
+  = liftIO (fromJSString <$> (js_getFormAction self))
  
 foreign import javascript unsafe "$1[\"formEnctype\"] = $2;"
-        js_setFormEnctype ::
-        HTMLButtonElement -> Nullable JSString -> IO ()
+        js_setFormEnctype :: HTMLButtonElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.formEnctype Mozilla HTMLButtonElement.formEnctype documentation> 
 setFormEnctype ::
-               (MonadIO m, ToJSString val) =>
-                 HTMLButtonElement -> Maybe val -> m ()
+               (MonadIO m, ToJSString val) => HTMLButtonElement -> val -> m ()
 setFormEnctype self val
-  = liftIO (js_setFormEnctype (self) (toMaybeJSString val))
+  = liftIO (js_setFormEnctype self (toJSString val))
  
 foreign import javascript unsafe "$1[\"formEnctype\"]"
-        js_getFormEnctype :: HTMLButtonElement -> IO (Nullable JSString)
+        js_getFormEnctype :: HTMLButtonElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.formEnctype Mozilla HTMLButtonElement.formEnctype documentation> 
 getFormEnctype ::
-               (MonadIO m, FromJSString result) =>
-                 HTMLButtonElement -> m (Maybe result)
+               (MonadIO m, FromJSString result) => HTMLButtonElement -> m result
 getFormEnctype self
-  = liftIO (fromMaybeJSString <$> (js_getFormEnctype (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.formEnctype Mozilla HTMLButtonElement.formEnctype documentation> 
-getFormEnctypeUnsafe ::
-                     (MonadIO m, HasCallStack, FromJSString result) =>
-                       HTMLButtonElement -> m result
-getFormEnctypeUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getFormEnctype (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.formEnctype Mozilla HTMLButtonElement.formEnctype documentation> 
-getFormEnctypeUnchecked ::
-                        (MonadIO m, FromJSString result) => HTMLButtonElement -> m result
-getFormEnctypeUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getFormEnctype (self)))
+  = liftIO (fromJSString <$> (js_getFormEnctype self))
  
 foreign import javascript unsafe "$1[\"formMethod\"] = $2;"
-        js_setFormMethod :: HTMLButtonElement -> Nullable JSString -> IO ()
+        js_setFormMethod :: HTMLButtonElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.formMethod Mozilla HTMLButtonElement.formMethod documentation> 
 setFormMethod ::
-              (MonadIO m, ToJSString val) =>
-                HTMLButtonElement -> Maybe val -> m ()
+              (MonadIO m, ToJSString val) => HTMLButtonElement -> val -> m ()
 setFormMethod self val
-  = liftIO (js_setFormMethod (self) (toMaybeJSString val))
+  = liftIO (js_setFormMethod self (toJSString val))
  
 foreign import javascript unsafe "$1[\"formMethod\"]"
-        js_getFormMethod :: HTMLButtonElement -> IO (Nullable JSString)
+        js_getFormMethod :: HTMLButtonElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.formMethod Mozilla HTMLButtonElement.formMethod documentation> 
 getFormMethod ::
-              (MonadIO m, FromJSString result) =>
-                HTMLButtonElement -> m (Maybe result)
+              (MonadIO m, FromJSString result) => HTMLButtonElement -> m result
 getFormMethod self
-  = liftIO (fromMaybeJSString <$> (js_getFormMethod (self)))
+  = liftIO (fromJSString <$> (js_getFormMethod self))
+ 
+foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
+        HTMLButtonElement -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.formMethod Mozilla HTMLButtonElement.formMethod documentation> 
-getFormMethodUnsafe ::
-                    (MonadIO m, HasCallStack, FromJSString result) =>
-                      HTMLButtonElement -> m result
-getFormMethodUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getFormMethod (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.type Mozilla HTMLButtonElement.type documentation> 
+setType ::
+        (MonadIO m, ToJSString val) => HTMLButtonElement -> val -> m ()
+setType self val = liftIO (js_setType self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"type\"]" js_getType ::
+        HTMLButtonElement -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.formMethod Mozilla HTMLButtonElement.formMethod documentation> 
-getFormMethodUnchecked ::
-                       (MonadIO m, FromJSString result) => HTMLButtonElement -> m result
-getFormMethodUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getFormMethod (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.type Mozilla HTMLButtonElement.type documentation> 
+getType ::
+        (MonadIO m, FromJSString result) => HTMLButtonElement -> m result
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"formNoValidate\"] = $2;"
         js_setFormNoValidate :: HTMLButtonElement -> Bool -> IO ()
@@ -212,15 +184,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.formNoValidate Mozilla HTMLButtonElement.formNoValidate documentation> 
 setFormNoValidate ::
                   (MonadIO m) => HTMLButtonElement -> Bool -> m ()
-setFormNoValidate self val
-  = liftIO (js_setFormNoValidate (self) val)
+setFormNoValidate self val = liftIO (js_setFormNoValidate self val)
  
 foreign import javascript unsafe "($1[\"formNoValidate\"] ? 1 : 0)"
         js_getFormNoValidate :: HTMLButtonElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.formNoValidate Mozilla HTMLButtonElement.formNoValidate documentation> 
 getFormNoValidate :: (MonadIO m) => HTMLButtonElement -> m Bool
-getFormNoValidate self = liftIO (js_getFormNoValidate (self))
+getFormNoValidate self = liftIO (js_getFormNoValidate self)
  
 foreign import javascript unsafe "$1[\"formTarget\"] = $2;"
         js_setFormTarget :: HTMLButtonElement -> JSString -> IO ()
@@ -229,7 +200,7 @@
 setFormTarget ::
               (MonadIO m, ToJSString val) => HTMLButtonElement -> val -> m ()
 setFormTarget self val
-  = liftIO (js_setFormTarget (self) (toJSString val))
+  = liftIO (js_setFormTarget self (toJSString val))
  
 foreign import javascript unsafe "$1[\"formTarget\"]"
         js_getFormTarget :: HTMLButtonElement -> IO JSString
@@ -238,7 +209,7 @@
 getFormTarget ::
               (MonadIO m, FromJSString result) => HTMLButtonElement -> m result
 getFormTarget self
-  = liftIO (fromJSString <$> (js_getFormTarget (self)))
+  = liftIO (fromJSString <$> (js_getFormTarget self))
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLButtonElement -> JSString -> IO ()
@@ -246,7 +217,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.name Mozilla HTMLButtonElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLButtonElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLButtonElement -> IO JSString
@@ -254,40 +225,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.name Mozilla HTMLButtonElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLButtonElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
- 
-foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
-        HTMLButtonElement -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.type Mozilla HTMLButtonElement.type documentation> 
-setType ::
-        (MonadIO m, ToJSString val) =>
-          HTMLButtonElement -> Maybe val -> m ()
-setType self val = liftIO (js_setType (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"type\"]" js_getType ::
-        HTMLButtonElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.type Mozilla HTMLButtonElement.type documentation> 
-getType ::
-        (MonadIO m, FromJSString result) =>
-          HTMLButtonElement -> m (Maybe result)
-getType self = liftIO (fromMaybeJSString <$> (js_getType (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.type Mozilla HTMLButtonElement.type documentation> 
-getTypeUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                HTMLButtonElement -> m result
-getTypeUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getType (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.type Mozilla HTMLButtonElement.type documentation> 
-getTypeUnchecked ::
-                 (MonadIO m, FromJSString result) => HTMLButtonElement -> m result
-getTypeUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getType (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
         :: HTMLButtonElement -> JSString -> IO ()
@@ -295,7 +233,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.value Mozilla HTMLButtonElement.value documentation> 
 setValue ::
          (MonadIO m, ToJSString val) => HTMLButtonElement -> val -> m ()
-setValue self val = liftIO (js_setValue (self) (toJSString val))
+setValue self val = liftIO (js_setValue self (toJSString val))
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         HTMLButtonElement -> IO JSString
@@ -303,37 +241,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.value Mozilla HTMLButtonElement.value documentation> 
 getValue ::
          (MonadIO m, FromJSString result) => HTMLButtonElement -> m result
-getValue self = liftIO (fromJSString <$> (js_getValue (self)))
+getValue self = liftIO (fromJSString <$> (js_getValue self))
  
 foreign import javascript unsafe "($1[\"willValidate\"] ? 1 : 0)"
         js_getWillValidate :: HTMLButtonElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.willValidate Mozilla HTMLButtonElement.willValidate documentation> 
 getWillValidate :: (MonadIO m) => HTMLButtonElement -> m Bool
-getWillValidate self = liftIO (js_getWillValidate (self))
+getWillValidate self = liftIO (js_getWillValidate self)
  
 foreign import javascript unsafe "$1[\"validity\"]" js_getValidity
-        :: HTMLButtonElement -> IO (Nullable ValidityState)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.validity Mozilla HTMLButtonElement.validity documentation> 
-getValidity ::
-            (MonadIO m) => HTMLButtonElement -> m (Maybe ValidityState)
-getValidity self
-  = liftIO (nullableToMaybe <$> (js_getValidity (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.validity Mozilla HTMLButtonElement.validity documentation> 
-getValidityUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLButtonElement -> m ValidityState
-getValidityUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getValidity (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: HTMLButtonElement -> IO ValidityState
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.validity Mozilla HTMLButtonElement.validity documentation> 
-getValidityUnchecked ::
-                     (MonadIO m) => HTMLButtonElement -> m ValidityState
-getValidityUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getValidity (self)))
+getValidity :: (MonadIO m) => HTMLButtonElement -> m ValidityState
+getValidity self = liftIO (js_getValidity self)
  
 foreign import javascript unsafe "$1[\"validationMessage\"]"
         js_getValidationMessage :: HTMLButtonElement -> IO JSString
@@ -342,25 +264,11 @@
 getValidationMessage ::
                      (MonadIO m, FromJSString result) => HTMLButtonElement -> m result
 getValidationMessage self
-  = liftIO (fromJSString <$> (js_getValidationMessage (self)))
+  = liftIO (fromJSString <$> (js_getValidationMessage self))
  
 foreign import javascript unsafe "$1[\"labels\"]" js_getLabels ::
-        HTMLButtonElement -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.labels Mozilla HTMLButtonElement.labels documentation> 
-getLabels :: (MonadIO m) => HTMLButtonElement -> m (Maybe NodeList)
-getLabels self = liftIO (nullableToMaybe <$> (js_getLabels (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.labels Mozilla HTMLButtonElement.labels documentation> 
-getLabelsUnsafe ::
-                (MonadIO m, HasCallStack) => HTMLButtonElement -> m NodeList
-getLabelsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLabels (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLButtonElement -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.labels Mozilla HTMLButtonElement.labels documentation> 
-getLabelsUnchecked ::
-                   (MonadIO m) => HTMLButtonElement -> m NodeList
-getLabelsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getLabels (self)))
+getLabels :: (MonadIO m) => HTMLButtonElement -> m NodeList
+getLabels self = liftIO (js_getLabels self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLCanvasElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLCanvasElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLCanvasElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLCanvasElement.hs
@@ -4,17 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLCanvasElement
-       (js_toDataURL, toDataURL, toDataURL_, js_getContext, getContext,
-        getContext_, js_probablySupportsContext, probablySupportsContext,
-        probablySupportsContext_, js_setWidth, setWidth, js_getWidth,
-        getWidth, js_setHeight, setHeight, js_getHeight, getHeight,
-        HTMLCanvasElement(..), gTypeHTMLCanvasElement)
+       (js_getContext, getContext, getContext_, getContextUnsafe,
+        getContextUnchecked, js_toDataURL, toDataURL, toDataURL_,
+        js_setWidth, setWidth, js_getWidth, getWidth, js_setHeight,
+        setHeight, js_getHeight, getHeight, HTMLCanvasElement(..),
+        gTypeHTMLCanvasElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,14 +23,67 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe "$1[\"getContext\"]($2, $3)"
+        js_getContext ::
+        HTMLCanvasElement ->
+          JSString -> JSVal -> IO (Nullable RenderingContext)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.getContext Mozilla HTMLCanvasElement.getContext documentation> 
+getContext ::
+           (MonadIO m, ToJSString contextId, ToJSVal arguments) =>
+             HTMLCanvasElement ->
+               contextId -> [arguments] -> m (Maybe RenderingContext)
+getContext self contextId arguments
+  = liftIO
+      (nullableToMaybe <$>
+         (toJSVal arguments >>=
+            \ arguments' ->
+              js_getContext self (toJSString contextId) arguments'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.getContext Mozilla HTMLCanvasElement.getContext documentation> 
+getContext_ ::
+            (MonadIO m, ToJSString contextId, ToJSVal arguments) =>
+              HTMLCanvasElement -> contextId -> [arguments] -> m ()
+getContext_ self contextId arguments
+  = liftIO
+      (void
+         (toJSVal arguments >>=
+            \ arguments' ->
+              js_getContext self (toJSString contextId) arguments'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.getContext Mozilla HTMLCanvasElement.getContext documentation> 
+getContextUnsafe ::
+                 (MonadIO m, ToJSString contextId, ToJSVal arguments,
+                  HasCallStack) =>
+                   HTMLCanvasElement -> contextId -> [arguments] -> m RenderingContext
+getContextUnsafe self contextId arguments
+  = liftIO
+      ((nullableToMaybe <$>
+          (toJSVal arguments >>=
+             \ arguments' ->
+               js_getContext self (toJSString contextId) arguments'))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.getContext Mozilla HTMLCanvasElement.getContext documentation> 
+getContextUnchecked ::
+                    (MonadIO m, ToJSString contextId, ToJSVal arguments) =>
+                      HTMLCanvasElement -> contextId -> [arguments] -> m RenderingContext
+getContextUnchecked self contextId arguments
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (toJSVal arguments >>=
+            \ arguments' ->
+              js_getContext self (toJSString contextId) arguments'))
+ 
 foreign import javascript unsafe "$1[\"toDataURL\"]($2)"
         js_toDataURL ::
-        HTMLCanvasElement -> Nullable JSString -> IO JSString
+        HTMLCanvasElement -> Optional JSString -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.toDataURL Mozilla HTMLCanvasElement.toDataURL documentation> 
 toDataURL ::
@@ -38,75 +91,39 @@
             HTMLCanvasElement -> Maybe type' -> m result
 toDataURL self type'
   = liftIO
-      (fromJSString <$> (js_toDataURL (self) (toMaybeJSString type')))
+      (fromJSString <$> (js_toDataURL self (toOptionalJSString type')))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.toDataURL Mozilla HTMLCanvasElement.toDataURL documentation> 
 toDataURL_ ::
            (MonadIO m, ToJSString type') =>
              HTMLCanvasElement -> Maybe type' -> m ()
 toDataURL_ self type'
-  = liftIO (void (js_toDataURL (self) (toMaybeJSString type')))
- 
-foreign import javascript unsafe "$1[\"getContext\"]($2)"
-        js_getContext :: HTMLCanvasElement -> JSString -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.getContext Mozilla HTMLCanvasElement.getContext documentation> 
-getContext ::
-           (MonadIO m, ToJSString contextId) =>
-             HTMLCanvasElement -> contextId -> m JSVal
-getContext self contextId
-  = liftIO (js_getContext (self) (toJSString contextId))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.getContext Mozilla HTMLCanvasElement.getContext documentation> 
-getContext_ ::
-            (MonadIO m, ToJSString contextId) =>
-              HTMLCanvasElement -> contextId -> m ()
-getContext_ self contextId
-  = liftIO (void (js_getContext (self) (toJSString contextId)))
- 
-foreign import javascript unsafe
-        "$1[\"probablySupportsContext\"]($2)" js_probablySupportsContext ::
-        HTMLCanvasElement -> JSString -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.probablySupportsContext Mozilla HTMLCanvasElement.probablySupportsContext documentation> 
-probablySupportsContext ::
-                        (MonadIO m, ToJSString contextId) =>
-                          HTMLCanvasElement -> contextId -> m JSVal
-probablySupportsContext self contextId
-  = liftIO (js_probablySupportsContext (self) (toJSString contextId))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.probablySupportsContext Mozilla HTMLCanvasElement.probablySupportsContext documentation> 
-probablySupportsContext_ ::
-                         (MonadIO m, ToJSString contextId) =>
-                           HTMLCanvasElement -> contextId -> m ()
-probablySupportsContext_ self contextId
-  = liftIO
-      (void (js_probablySupportsContext (self) (toJSString contextId)))
+  = liftIO (void (js_toDataURL self (toOptionalJSString type')))
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
-        :: HTMLCanvasElement -> Int -> IO ()
+        :: HTMLCanvasElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.width Mozilla HTMLCanvasElement.width documentation> 
-setWidth :: (MonadIO m) => HTMLCanvasElement -> Int -> m ()
-setWidth self val = liftIO (js_setWidth (self) val)
+setWidth :: (MonadIO m) => HTMLCanvasElement -> Word -> m ()
+setWidth self val = liftIO (js_setWidth self val)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        HTMLCanvasElement -> IO Int
+        HTMLCanvasElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.width Mozilla HTMLCanvasElement.width documentation> 
-getWidth :: (MonadIO m) => HTMLCanvasElement -> m Int
-getWidth self = liftIO (js_getWidth (self))
+getWidth :: (MonadIO m) => HTMLCanvasElement -> m Word
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
-        js_setHeight :: HTMLCanvasElement -> Int -> IO ()
+        js_setHeight :: HTMLCanvasElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.height Mozilla HTMLCanvasElement.height documentation> 
-setHeight :: (MonadIO m) => HTMLCanvasElement -> Int -> m ()
-setHeight self val = liftIO (js_setHeight (self) val)
+setHeight :: (MonadIO m) => HTMLCanvasElement -> Word -> m ()
+setHeight self val = liftIO (js_setHeight self val)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        HTMLCanvasElement -> IO Int
+        HTMLCanvasElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement.height Mozilla HTMLCanvasElement.height documentation> 
-getHeight :: (MonadIO m) => HTMLCanvasElement -> m Int
-getHeight self = liftIO (js_getHeight (self))
+getHeight :: (MonadIO m) => HTMLCanvasElement -> m Word
+getHeight self = liftIO (js_getHeight self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLCollection.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLCollection.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLCollection.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLCollection.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,18 +22,19 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        HTMLCollection -> Word -> IO (Nullable Node)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        HTMLCollection -> Word -> IO (Nullable Element)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection.item Mozilla HTMLCollection.item documentation> 
 item ::
      (MonadIO m, IsHTMLCollection self) =>
-       self -> Word -> m (Maybe Node)
+       self -> Word -> m (Maybe Element)
 item self index
   = liftIO
       (nullableToMaybe <$> (js_item (toHTMLCollection self) index))
@@ -46,7 +47,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection.item Mozilla HTMLCollection.item documentation> 
 itemUnsafe ::
            (MonadIO m, IsHTMLCollection self, HasCallStack) =>
-             self -> Word -> m Node
+             self -> Word -> m Element
 itemUnsafe self index
   = liftIO
       ((nullableToMaybe <$> (js_item (toHTMLCollection self) index)) >>=
@@ -54,19 +55,19 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection.item Mozilla HTMLCollection.item documentation> 
 itemUnchecked ::
-              (MonadIO m, IsHTMLCollection self) => self -> Word -> m Node
+              (MonadIO m, IsHTMLCollection self) => self -> Word -> m Element
 itemUnchecked self index
   = liftIO
       (fromJust . nullableToMaybe <$>
          (js_item (toHTMLCollection self) index))
  
-foreign import javascript unsafe "$1[\"namedItem\"]($2)"
-        js_namedItem :: HTMLCollection -> JSString -> IO (Nullable Node)
+foreign import javascript unsafe "$1[$2]" js_namedItem ::
+        HTMLCollection -> JSString -> IO (Nullable Element)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection.namedItem Mozilla HTMLCollection.namedItem documentation> 
 namedItem ::
           (MonadIO m, IsHTMLCollection self, ToJSString name) =>
-            self -> name -> m (Maybe Node)
+            self -> name -> m (Maybe Element)
 namedItem self name
   = liftIO
       (nullableToMaybe <$>
@@ -84,7 +85,7 @@
 namedItemUnsafe ::
                 (MonadIO m, IsHTMLCollection self, ToJSString name,
                  HasCallStack) =>
-                  self -> name -> m Node
+                  self -> name -> m Element
 namedItemUnsafe self name
   = liftIO
       ((nullableToMaybe <$>
@@ -94,7 +95,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection.namedItem Mozilla HTMLCollection.namedItem documentation> 
 namedItemUnchecked ::
                    (MonadIO m, IsHTMLCollection self, ToJSString name) =>
-                     self -> name -> m Node
+                     self -> name -> m Element
 namedItemUnchecked self name
   = liftIO
       (fromJust . nullableToMaybe <$>
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLDListElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLDListElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLDListElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLDListElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,11 +31,11 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDListElement.compact Mozilla HTMLDListElement.compact documentation> 
 setCompact :: (MonadIO m) => HTMLDListElement -> Bool -> m ()
-setCompact self val = liftIO (js_setCompact (self) val)
+setCompact self val = liftIO (js_setCompact self val)
  
 foreign import javascript unsafe "($1[\"compact\"] ? 1 : 0)"
         js_getCompact :: HTMLDListElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDListElement.compact Mozilla HTMLDListElement.compact documentation> 
 getCompact :: (MonadIO m) => HTMLDListElement -> m Bool
-getCompact self = liftIO (js_getCompact (self))
+getCompact self = liftIO (js_getCompact self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLDataElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLDataElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLDataElement.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.HTMLDataElement
+       (js_setValue, setValue, js_getValue, getValue, HTMLDataElement(..),
+        gTypeHTMLDataElement)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
+        :: HTMLDataElement -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataElement.value Mozilla HTMLDataElement.value documentation> 
+setValue ::
+         (MonadIO m, ToJSString val) => HTMLDataElement -> val -> m ()
+setValue self val = liftIO (js_setValue self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
+        HTMLDataElement -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataElement.value Mozilla HTMLDataElement.value documentation> 
+getValue ::
+         (MonadIO m, FromJSString result) => HTMLDataElement -> m result
+getValue self = liftIO (fromJSString <$> (js_getValue self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLDataListElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLDataListElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLDataListElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLDataListElement.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLDataListElement
-       (js_getOptions, getOptions, getOptionsUnsafe, getOptionsUnchecked,
-        HTMLDataListElement(..), gTypeHTMLDataListElement)
+       (js_getOptions, getOptions, HTMLDataListElement(..),
+        gTypeHTMLDataListElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,31 +20,16 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"options\"]" js_getOptions ::
-        HTMLDataListElement -> IO (Nullable HTMLCollection)
+        HTMLDataListElement -> IO HTMLCollection
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataListElement.options Mozilla HTMLDataListElement.options documentation> 
 getOptions ::
-           (MonadIO m) => HTMLDataListElement -> m (Maybe HTMLCollection)
-getOptions self
-  = liftIO (nullableToMaybe <$> (js_getOptions (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataListElement.options Mozilla HTMLDataListElement.options documentation> 
-getOptionsUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   HTMLDataListElement -> m HTMLCollection
-getOptionsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOptions (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataListElement.options Mozilla HTMLDataListElement.options documentation> 
-getOptionsUnchecked ::
-                    (MonadIO m) => HTMLDataListElement -> m HTMLCollection
-getOptionsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getOptions (self)))
+           (MonadIO m) => HTMLDataListElement -> m HTMLCollection
+getOptions self = liftIO (js_getOptions self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLDetailsElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLDetailsElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLDetailsElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLDetailsElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,11 +31,11 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDetailsElement.open Mozilla HTMLDetailsElement.open documentation> 
 setOpen :: (MonadIO m) => HTMLDetailsElement -> Bool -> m ()
-setOpen self val = liftIO (js_setOpen (self) val)
+setOpen self val = liftIO (js_setOpen self val)
  
 foreign import javascript unsafe "($1[\"open\"] ? 1 : 0)"
         js_getOpen :: HTMLDetailsElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDetailsElement.open Mozilla HTMLDetailsElement.open documentation> 
 getOpen :: (MonadIO m) => HTMLDetailsElement -> m Bool
-getOpen self = liftIO (js_getOpen (self))
+getOpen self = liftIO (js_getOpen self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLDirectoryElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLDirectoryElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLDirectoryElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLDirectoryElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,11 +31,11 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDirectoryElement.compact Mozilla HTMLDirectoryElement.compact documentation> 
 setCompact :: (MonadIO m) => HTMLDirectoryElement -> Bool -> m ()
-setCompact self val = liftIO (js_setCompact (self) val)
+setCompact self val = liftIO (js_setCompact self val)
  
 foreign import javascript unsafe "($1[\"compact\"] ? 1 : 0)"
         js_getCompact :: HTMLDirectoryElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDirectoryElement.compact Mozilla HTMLDirectoryElement.compact documentation> 
 getCompact :: (MonadIO m) => HTMLDirectoryElement -> m Bool
-getCompact self = liftIO (js_getCompact (self))
+getCompact self = liftIO (js_getCompact self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLDivElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLDivElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLDivElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLDivElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,7 +32,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement.align Mozilla HTMLDivElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLDivElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLDivElement -> IO JSString
@@ -39,4 +40,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement.align Mozilla HTMLDivElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLDivElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLDocument.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLDocument.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLDocument.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLDocument.hs
@@ -6,19 +6,11 @@
 module GHCJS.DOM.JSFFI.Generated.HTMLDocument
        (js_open, open, js_close, close, js_write, write, js_writeln,
         writeln, js_clear, clear, js_captureEvents, captureEvents,
-        js_releaseEvents, releaseEvents, js_getEmbeds, getEmbeds,
-        getEmbedsUnsafe, getEmbedsUnchecked, js_getPlugins, getPlugins,
-        getPluginsUnsafe, getPluginsUnchecked, js_getScripts, getScripts,
-        getScriptsUnsafe, getScriptsUnchecked, js_getAll, getAll,
-        getAllUnsafe, getAllUnchecked, js_getWidth, getWidth, js_getHeight,
-        getHeight, js_setDir, setDir, js_getDir, getDir, getDirUnsafe,
-        getDirUnchecked, js_setDesignMode, setDesignMode, js_getDesignMode,
-        getDesignMode, getDesignModeUnsafe, getDesignModeUnchecked,
-        js_getCompatMode, getCompatMode, js_setBgColor, setBgColor,
-        js_getBgColor, getBgColor, getBgColorUnsafe, getBgColorUnchecked,
-        js_setFgColor, setFgColor, js_getFgColor, getFgColor,
-        getFgColorUnsafe, getFgColorUnchecked, js_setAlinkColor,
-        setAlinkColor, js_getAlinkColor, getAlinkColor,
+        js_releaseEvents, releaseEvents, js_getAll, getAll, js_setBgColor,
+        setBgColor, js_getBgColor, getBgColor, getBgColorUnsafe,
+        getBgColorUnchecked, js_setFgColor, setFgColor, js_getFgColor,
+        getFgColor, getFgColorUnsafe, getFgColorUnchecked,
+        js_setAlinkColor, setAlinkColor, js_getAlinkColor, getAlinkColor,
         getAlinkColorUnsafe, getAlinkColorUnchecked, js_setLinkColor,
         setLinkColor, js_getLinkColor, getLinkColor, getLinkColorUnsafe,
         getLinkColorUnchecked, js_setVlinkColor, setVlinkColor,
@@ -29,7 +21,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -38,6 +30,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -48,240 +41,68 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.open Mozilla HTMLDocument.open documentation> 
 open :: (MonadIO m) => HTMLDocument -> m ()
-open self = liftIO (js_open (self))
+open self = liftIO (js_open self)
  
 foreign import javascript unsafe "$1[\"close\"]()" js_close ::
         HTMLDocument -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.close Mozilla HTMLDocument.close documentation> 
 close :: (MonadIO m) => HTMLDocument -> m ()
-close self = liftIO (js_close (self))
+close self = liftIO (js_close self)
  
 foreign import javascript unsafe "$1[\"write\"]($2)" js_write ::
-        HTMLDocument -> JSString -> IO ()
+        HTMLDocument -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.write Mozilla HTMLDocument.write documentation> 
 write ::
-      (MonadIO m, ToJSString text) => HTMLDocument -> text -> m ()
-write self text = liftIO (js_write (self) (toJSString text))
+      (MonadIO m, ToJSString text) => HTMLDocument -> Maybe text -> m ()
+write self text = liftIO (js_write self (toOptionalJSString text))
  
 foreign import javascript unsafe "$1[\"writeln\"]($2)" js_writeln
-        :: HTMLDocument -> JSString -> IO ()
+        :: HTMLDocument -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.writeln Mozilla HTMLDocument.writeln documentation> 
 writeln ::
-        (MonadIO m, ToJSString text) => HTMLDocument -> text -> m ()
-writeln self text = liftIO (js_writeln (self) (toJSString text))
+        (MonadIO m, ToJSString text) => HTMLDocument -> Maybe text -> m ()
+writeln self text
+  = liftIO (js_writeln self (toOptionalJSString text))
  
 foreign import javascript unsafe "$1[\"clear\"]()" js_clear ::
         HTMLDocument -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.clear Mozilla HTMLDocument.clear documentation> 
 clear :: (MonadIO m) => HTMLDocument -> m ()
-clear self = liftIO (js_clear (self))
+clear self = liftIO (js_clear self)
  
 foreign import javascript unsafe "$1[\"captureEvents\"]()"
         js_captureEvents :: HTMLDocument -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.captureEvents Mozilla HTMLDocument.captureEvents documentation> 
 captureEvents :: (MonadIO m) => HTMLDocument -> m ()
-captureEvents self = liftIO (js_captureEvents (self))
+captureEvents self = liftIO (js_captureEvents self)
  
 foreign import javascript unsafe "$1[\"releaseEvents\"]()"
         js_releaseEvents :: HTMLDocument -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.releaseEvents Mozilla HTMLDocument.releaseEvents documentation> 
 releaseEvents :: (MonadIO m) => HTMLDocument -> m ()
-releaseEvents self = liftIO (js_releaseEvents (self))
- 
-foreign import javascript unsafe "$1[\"embeds\"]" js_getEmbeds ::
-        HTMLDocument -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.embeds Mozilla HTMLDocument.embeds documentation> 
-getEmbeds ::
-          (MonadIO m) => HTMLDocument -> m (Maybe HTMLCollection)
-getEmbeds self = liftIO (nullableToMaybe <$> (js_getEmbeds (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.embeds Mozilla HTMLDocument.embeds documentation> 
-getEmbedsUnsafe ::
-                (MonadIO m, HasCallStack) => HTMLDocument -> m HTMLCollection
-getEmbedsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getEmbeds (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.embeds Mozilla HTMLDocument.embeds documentation> 
-getEmbedsUnchecked ::
-                   (MonadIO m) => HTMLDocument -> m HTMLCollection
-getEmbedsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getEmbeds (self)))
- 
-foreign import javascript unsafe "$1[\"plugins\"]" js_getPlugins ::
-        HTMLDocument -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.plugins Mozilla HTMLDocument.plugins documentation> 
-getPlugins ::
-           (MonadIO m) => HTMLDocument -> m (Maybe HTMLCollection)
-getPlugins self
-  = liftIO (nullableToMaybe <$> (js_getPlugins (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.plugins Mozilla HTMLDocument.plugins documentation> 
-getPluginsUnsafe ::
-                 (MonadIO m, HasCallStack) => HTMLDocument -> m HTMLCollection
-getPluginsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPlugins (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.plugins Mozilla HTMLDocument.plugins documentation> 
-getPluginsUnchecked ::
-                    (MonadIO m) => HTMLDocument -> m HTMLCollection
-getPluginsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPlugins (self)))
- 
-foreign import javascript unsafe "$1[\"scripts\"]" js_getScripts ::
-        HTMLDocument -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.scripts Mozilla HTMLDocument.scripts documentation> 
-getScripts ::
-           (MonadIO m) => HTMLDocument -> m (Maybe HTMLCollection)
-getScripts self
-  = liftIO (nullableToMaybe <$> (js_getScripts (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.scripts Mozilla HTMLDocument.scripts documentation> 
-getScriptsUnsafe ::
-                 (MonadIO m, HasCallStack) => HTMLDocument -> m HTMLCollection
-getScriptsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getScripts (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.scripts Mozilla HTMLDocument.scripts documentation> 
-getScriptsUnchecked ::
-                    (MonadIO m) => HTMLDocument -> m HTMLCollection
-getScriptsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getScripts (self)))
+releaseEvents self = liftIO (js_releaseEvents self)
  
 foreign import javascript unsafe "$1[\"all\"]" js_getAll ::
-        HTMLDocument -> IO (Nullable HTMLAllCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.all Mozilla HTMLDocument.all documentation> 
-getAll ::
-       (MonadIO m) => HTMLDocument -> m (Maybe HTMLAllCollection)
-getAll self = liftIO (nullableToMaybe <$> (js_getAll (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.all Mozilla HTMLDocument.all documentation> 
-getAllUnsafe ::
-             (MonadIO m, HasCallStack) => HTMLDocument -> m HTMLAllCollection
-getAllUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAll (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLDocument -> IO HTMLAllCollection
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.all Mozilla HTMLDocument.all documentation> 
-getAllUnchecked ::
-                (MonadIO m) => HTMLDocument -> m HTMLAllCollection
-getAllUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAll (self)))
- 
-foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        HTMLDocument -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.width Mozilla HTMLDocument.width documentation> 
-getWidth :: (MonadIO m) => HTMLDocument -> m Int
-getWidth self = liftIO (js_getWidth (self))
- 
-foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        HTMLDocument -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.height Mozilla HTMLDocument.height documentation> 
-getHeight :: (MonadIO m) => HTMLDocument -> m Int
-getHeight self = liftIO (js_getHeight (self))
- 
-foreign import javascript unsafe "$1[\"dir\"] = $2;" js_setDir ::
-        HTMLDocument -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.dir Mozilla HTMLDocument.dir documentation> 
-setDir ::
-       (MonadIO m, ToJSString val) => HTMLDocument -> Maybe val -> m ()
-setDir self val = liftIO (js_setDir (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"dir\"]" js_getDir ::
-        HTMLDocument -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.dir Mozilla HTMLDocument.dir documentation> 
-getDir ::
-       (MonadIO m, FromJSString result) =>
-         HTMLDocument -> m (Maybe result)
-getDir self = liftIO (fromMaybeJSString <$> (js_getDir (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.dir Mozilla HTMLDocument.dir documentation> 
-getDirUnsafe ::
-             (MonadIO m, HasCallStack, FromJSString result) =>
-               HTMLDocument -> m result
-getDirUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getDir (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.dir Mozilla HTMLDocument.dir documentation> 
-getDirUnchecked ::
-                (MonadIO m, FromJSString result) => HTMLDocument -> m result
-getDirUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getDir (self)))
- 
-foreign import javascript unsafe "$1[\"designMode\"] = $2;"
-        js_setDesignMode :: HTMLDocument -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.designMode Mozilla HTMLDocument.designMode documentation> 
-setDesignMode ::
-              (MonadIO m, ToJSString val) => HTMLDocument -> Maybe val -> m ()
-setDesignMode self val
-  = liftIO (js_setDesignMode (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"designMode\"]"
-        js_getDesignMode :: HTMLDocument -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.designMode Mozilla HTMLDocument.designMode documentation> 
-getDesignMode ::
-              (MonadIO m, FromJSString result) =>
-                HTMLDocument -> m (Maybe result)
-getDesignMode self
-  = liftIO (fromMaybeJSString <$> (js_getDesignMode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.designMode Mozilla HTMLDocument.designMode documentation> 
-getDesignModeUnsafe ::
-                    (MonadIO m, HasCallStack, FromJSString result) =>
-                      HTMLDocument -> m result
-getDesignModeUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getDesignMode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.designMode Mozilla HTMLDocument.designMode documentation> 
-getDesignModeUnchecked ::
-                       (MonadIO m, FromJSString result) => HTMLDocument -> m result
-getDesignModeUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getDesignMode (self)))
- 
-foreign import javascript unsafe "$1[\"compatMode\"]"
-        js_getCompatMode :: HTMLDocument -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.compatMode Mozilla HTMLDocument.compatMode documentation> 
-getCompatMode ::
-              (MonadIO m, FromJSString result) => HTMLDocument -> m result
-getCompatMode self
-  = liftIO (fromJSString <$> (js_getCompatMode (self)))
+getAll :: (MonadIO m) => HTMLDocument -> m HTMLAllCollection
+getAll self = liftIO (js_getAll self)
  
 foreign import javascript unsafe "$1[\"bgColor\"] = $2;"
-        js_setBgColor :: HTMLDocument -> Nullable JSString -> IO ()
+        js_setBgColor :: HTMLDocument -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.bgColor Mozilla HTMLDocument.bgColor documentation> 
 setBgColor ::
            (MonadIO m, ToJSString val) => HTMLDocument -> Maybe val -> m ()
 setBgColor self val
-  = liftIO (js_setBgColor (self) (toMaybeJSString val))
+  = liftIO (js_setBgColor self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"bgColor\"]" js_getBgColor ::
         HTMLDocument -> IO (Nullable JSString)
@@ -291,7 +112,7 @@
            (MonadIO m, FromJSString result) =>
              HTMLDocument -> m (Maybe result)
 getBgColor self
-  = liftIO (fromMaybeJSString <$> (js_getBgColor (self)))
+  = liftIO (fromMaybeJSString <$> (js_getBgColor self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.bgColor Mozilla HTMLDocument.bgColor documentation> 
 getBgColorUnsafe ::
@@ -299,23 +120,23 @@
                    HTMLDocument -> m result
 getBgColorUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getBgColor (self))) >>=
+      ((fromMaybeJSString <$> (js_getBgColor self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.bgColor Mozilla HTMLDocument.bgColor documentation> 
 getBgColorUnchecked ::
                     (MonadIO m, FromJSString result) => HTMLDocument -> m result
 getBgColorUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getBgColor (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getBgColor self))
  
 foreign import javascript unsafe "$1[\"fgColor\"] = $2;"
-        js_setFgColor :: HTMLDocument -> Nullable JSString -> IO ()
+        js_setFgColor :: HTMLDocument -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.fgColor Mozilla HTMLDocument.fgColor documentation> 
 setFgColor ::
            (MonadIO m, ToJSString val) => HTMLDocument -> Maybe val -> m ()
 setFgColor self val
-  = liftIO (js_setFgColor (self) (toMaybeJSString val))
+  = liftIO (js_setFgColor self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"fgColor\"]" js_getFgColor ::
         HTMLDocument -> IO (Nullable JSString)
@@ -325,7 +146,7 @@
            (MonadIO m, FromJSString result) =>
              HTMLDocument -> m (Maybe result)
 getFgColor self
-  = liftIO (fromMaybeJSString <$> (js_getFgColor (self)))
+  = liftIO (fromMaybeJSString <$> (js_getFgColor self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.fgColor Mozilla HTMLDocument.fgColor documentation> 
 getFgColorUnsafe ::
@@ -333,23 +154,23 @@
                    HTMLDocument -> m result
 getFgColorUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getFgColor (self))) >>=
+      ((fromMaybeJSString <$> (js_getFgColor self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.fgColor Mozilla HTMLDocument.fgColor documentation> 
 getFgColorUnchecked ::
                     (MonadIO m, FromJSString result) => HTMLDocument -> m result
 getFgColorUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getFgColor (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getFgColor self))
  
 foreign import javascript unsafe "$1[\"alinkColor\"] = $2;"
-        js_setAlinkColor :: HTMLDocument -> Nullable JSString -> IO ()
+        js_setAlinkColor :: HTMLDocument -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.alinkColor Mozilla HTMLDocument.alinkColor documentation> 
 setAlinkColor ::
               (MonadIO m, ToJSString val) => HTMLDocument -> Maybe val -> m ()
 setAlinkColor self val
-  = liftIO (js_setAlinkColor (self) (toMaybeJSString val))
+  = liftIO (js_setAlinkColor self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"alinkColor\"]"
         js_getAlinkColor :: HTMLDocument -> IO (Nullable JSString)
@@ -359,7 +180,7 @@
               (MonadIO m, FromJSString result) =>
                 HTMLDocument -> m (Maybe result)
 getAlinkColor self
-  = liftIO (fromMaybeJSString <$> (js_getAlinkColor (self)))
+  = liftIO (fromMaybeJSString <$> (js_getAlinkColor self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.alinkColor Mozilla HTMLDocument.alinkColor documentation> 
 getAlinkColorUnsafe ::
@@ -367,24 +188,23 @@
                       HTMLDocument -> m result
 getAlinkColorUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getAlinkColor (self))) >>=
+      ((fromMaybeJSString <$> (js_getAlinkColor self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.alinkColor Mozilla HTMLDocument.alinkColor documentation> 
 getAlinkColorUnchecked ::
                        (MonadIO m, FromJSString result) => HTMLDocument -> m result
 getAlinkColorUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getAlinkColor (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getAlinkColor self))
  
 foreign import javascript unsafe "$1[\"linkColor\"] = $2;"
-        js_setLinkColor :: HTMLDocument -> Nullable JSString -> IO ()
+        js_setLinkColor :: HTMLDocument -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.linkColor Mozilla HTMLDocument.linkColor documentation> 
 setLinkColor ::
              (MonadIO m, ToJSString val) => HTMLDocument -> Maybe val -> m ()
 setLinkColor self val
-  = liftIO (js_setLinkColor (self) (toMaybeJSString val))
+  = liftIO (js_setLinkColor self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"linkColor\"]"
         js_getLinkColor :: HTMLDocument -> IO (Nullable JSString)
@@ -394,7 +214,7 @@
              (MonadIO m, FromJSString result) =>
                HTMLDocument -> m (Maybe result)
 getLinkColor self
-  = liftIO (fromMaybeJSString <$> (js_getLinkColor (self)))
+  = liftIO (fromMaybeJSString <$> (js_getLinkColor self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.linkColor Mozilla HTMLDocument.linkColor documentation> 
 getLinkColorUnsafe ::
@@ -402,24 +222,23 @@
                      HTMLDocument -> m result
 getLinkColorUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getLinkColor (self))) >>=
+      ((fromMaybeJSString <$> (js_getLinkColor self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.linkColor Mozilla HTMLDocument.linkColor documentation> 
 getLinkColorUnchecked ::
                       (MonadIO m, FromJSString result) => HTMLDocument -> m result
 getLinkColorUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getLinkColor (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getLinkColor self))
  
 foreign import javascript unsafe "$1[\"vlinkColor\"] = $2;"
-        js_setVlinkColor :: HTMLDocument -> Nullable JSString -> IO ()
+        js_setVlinkColor :: HTMLDocument -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.vlinkColor Mozilla HTMLDocument.vlinkColor documentation> 
 setVlinkColor ::
               (MonadIO m, ToJSString val) => HTMLDocument -> Maybe val -> m ()
 setVlinkColor self val
-  = liftIO (js_setVlinkColor (self) (toMaybeJSString val))
+  = liftIO (js_setVlinkColor self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"vlinkColor\"]"
         js_getVlinkColor :: HTMLDocument -> IO (Nullable JSString)
@@ -429,7 +248,7 @@
               (MonadIO m, FromJSString result) =>
                 HTMLDocument -> m (Maybe result)
 getVlinkColor self
-  = liftIO (fromMaybeJSString <$> (js_getVlinkColor (self)))
+  = liftIO (fromMaybeJSString <$> (js_getVlinkColor self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.vlinkColor Mozilla HTMLDocument.vlinkColor documentation> 
 getVlinkColorUnsafe ::
@@ -437,12 +256,11 @@
                       HTMLDocument -> m result
 getVlinkColorUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getVlinkColor (self))) >>=
+      ((fromMaybeJSString <$> (js_getVlinkColor self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument.vlinkColor Mozilla HTMLDocument.vlinkColor documentation> 
 getVlinkColorUnchecked ::
                        (MonadIO m, FromJSString result) => HTMLDocument -> m result
 getVlinkColorUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getVlinkColor (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getVlinkColor self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLElement.hs
@@ -4,11 +4,8 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLElement
-       (js_insertAdjacentElement, insertAdjacentElement,
-        insertAdjacentElement_, insertAdjacentElementUnsafe,
-        insertAdjacentElementUnchecked, js_insertAdjacentHTML,
-        insertAdjacentHTML, js_insertAdjacentText, insertAdjacentText,
-        js_click, click, js_setTitle, setTitle, js_getTitle, getTitle,
+       (js_newHTMLElement, newHTMLElement, js_click, click, js_focus,
+        focus, js_blur, blur, js_setTitle, setTitle, js_getTitle, getTitle,
         js_setLang, setLang, js_getLang, getLang, js_setTranslate,
         setTranslate, js_getTranslate, getTranslate, js_setDir, setDir,
         js_getDir, getDir, js_setTabIndex, setTabIndex, js_getTabIndex,
@@ -20,19 +17,21 @@
         js_getInnerText, getInnerText, getInnerTextUnsafe,
         getInnerTextUnchecked, js_setOuterText, setOuterText,
         js_getOuterText, getOuterText, getOuterTextUnsafe,
-        getOuterTextUnchecked, js_getChildren, getChildren,
-        getChildrenUnsafe, getChildrenUnchecked, js_setContentEditable,
-        setContentEditable, js_getContentEditable, getContentEditable,
-        getContentEditableUnsafe, getContentEditableUnchecked,
-        js_getIsContentEditable, getIsContentEditable, js_setSpellcheck,
-        setSpellcheck, js_getSpellcheck, getSpellcheck, HTMLElement(..),
-        gTypeHTMLElement, IsHTMLElement, toHTMLElement)
+        getOuterTextUnchecked, js_setContentEditable, setContentEditable,
+        js_getContentEditable, getContentEditable, js_getIsContentEditable,
+        getIsContentEditable, js_setSpellcheck, setSpellcheck,
+        js_getSpellcheck, getSpellcheck, js_setAutocorrect, setAutocorrect,
+        js_getAutocorrect, getAutocorrect, js_setAutocapitalize,
+        setAutocapitalize, js_getAutocapitalize, getAutocapitalize,
+        getAutocapitalizeUnsafe, getAutocapitalizeUnchecked, js_getDataset,
+        getDataset, HTMLElement(..), gTypeHTMLElement, IsHTMLElement,
+        toHTMLElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -41,89 +40,18 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe
-        "$1[\"insertAdjacentElement\"]($2,\n$3)" js_insertAdjacentElement
-        ::
-        HTMLElement ->
-          JSString -> Nullable Element -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.insertAdjacentElement Mozilla HTMLElement.insertAdjacentElement documentation> 
-insertAdjacentElement ::
-                      (MonadIO m, IsHTMLElement self, ToJSString where',
-                       IsElement element) =>
-                        self -> where' -> Maybe element -> m (Maybe Element)
-insertAdjacentElement self where' element
-  = liftIO
-      (nullableToMaybe <$>
-         (js_insertAdjacentElement (toHTMLElement self) (toJSString where')
-            (maybeToNullable (fmap toElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.insertAdjacentElement Mozilla HTMLElement.insertAdjacentElement documentation> 
-insertAdjacentElement_ ::
-                       (MonadIO m, IsHTMLElement self, ToJSString where',
-                        IsElement element) =>
-                         self -> where' -> Maybe element -> m ()
-insertAdjacentElement_ self where' element
-  = liftIO
-      (void
-         (js_insertAdjacentElement (toHTMLElement self) (toJSString where')
-            (maybeToNullable (fmap toElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.insertAdjacentElement Mozilla HTMLElement.insertAdjacentElement documentation> 
-insertAdjacentElementUnsafe ::
-                            (MonadIO m, IsHTMLElement self, ToJSString where',
-                             IsElement element, HasCallStack) =>
-                              self -> where' -> Maybe element -> m Element
-insertAdjacentElementUnsafe self where' element
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_insertAdjacentElement (toHTMLElement self) (toJSString where')
-             (maybeToNullable (fmap toElement element))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.insertAdjacentElement Mozilla HTMLElement.insertAdjacentElement documentation> 
-insertAdjacentElementUnchecked ::
-                               (MonadIO m, IsHTMLElement self, ToJSString where',
-                                IsElement element) =>
-                                 self -> where' -> Maybe element -> m Element
-insertAdjacentElementUnchecked self where' element
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_insertAdjacentElement (toHTMLElement self) (toJSString where')
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe
-        "$1[\"insertAdjacentHTML\"]($2, $3)" js_insertAdjacentHTML ::
-        HTMLElement -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.insertAdjacentHTML Mozilla HTMLElement.insertAdjacentHTML documentation> 
-insertAdjacentHTML ::
-                   (MonadIO m, IsHTMLElement self, ToJSString where',
-                    ToJSString html) =>
-                     self -> where' -> html -> m ()
-insertAdjacentHTML self where' html
-  = liftIO
-      (js_insertAdjacentHTML (toHTMLElement self) (toJSString where')
-         (toJSString html))
- 
-foreign import javascript unsafe
-        "$1[\"insertAdjacentText\"]($2, $3)" js_insertAdjacentText ::
-        HTMLElement -> JSString -> JSString -> IO ()
+foreign import javascript unsafe "new window[\"HTMLElement\"]()"
+        js_newHTMLElement :: IO HTMLElement
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.insertAdjacentText Mozilla HTMLElement.insertAdjacentText documentation> 
-insertAdjacentText ::
-                   (MonadIO m, IsHTMLElement self, ToJSString where',
-                    ToJSString text) =>
-                     self -> where' -> text -> m ()
-insertAdjacentText self where' text
-  = liftIO
-      (js_insertAdjacentText (toHTMLElement self) (toJSString where')
-         (toJSString text))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement Mozilla HTMLElement documentation> 
+newHTMLElement :: (MonadIO m) => m HTMLElement
+newHTMLElement = liftIO (js_newHTMLElement)
  
 foreign import javascript unsafe "$1[\"click\"]()" js_click ::
         HTMLElement -> IO ()
@@ -132,6 +60,20 @@
 click :: (MonadIO m, IsHTMLElement self) => self -> m ()
 click self = liftIO (js_click (toHTMLElement self))
  
+foreign import javascript unsafe "$1[\"focus\"]()" js_focus ::
+        HTMLElement -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.focus Mozilla HTMLElement.focus documentation> 
+focus :: (MonadIO m, IsHTMLElement self) => self -> m ()
+focus self = liftIO (js_focus (toHTMLElement self))
+ 
+foreign import javascript unsafe "$1[\"blur\"]()" js_blur ::
+        HTMLElement -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.blur Mozilla HTMLElement.blur documentation> 
+blur :: (MonadIO m, IsHTMLElement self) => self -> m ()
+blur self = liftIO (js_blur (toHTMLElement self))
+ 
 foreign import javascript unsafe "$1[\"title\"] = $2;" js_setTitle
         :: HTMLElement -> JSString -> IO ()
 
@@ -298,7 +240,7 @@
   = liftIO (fromJSString <$> (js_getAccessKey (toHTMLElement self)))
  
 foreign import javascript unsafe "$1[\"innerText\"] = $2;"
-        js_setInnerText :: HTMLElement -> Nullable JSString -> IO ()
+        js_setInnerText :: HTMLElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.innerText Mozilla HTMLElement.innerText documentation> 
 setInnerText ::
@@ -306,7 +248,7 @@
                self -> Maybe val -> m ()
 setInnerText self val
   = liftIO
-      (js_setInnerText (toHTMLElement self) (toMaybeJSString val))
+      (js_setInnerText (toHTMLElement self) (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"innerText\"]"
         js_getInnerText :: HTMLElement -> IO (Nullable JSString)
@@ -339,7 +281,7 @@
          (js_getInnerText (toHTMLElement self)))
  
 foreign import javascript unsafe "$1[\"outerText\"] = $2;"
-        js_setOuterText :: HTMLElement -> Nullable JSString -> IO ()
+        js_setOuterText :: HTMLElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.outerText Mozilla HTMLElement.outerText documentation> 
 setOuterText ::
@@ -347,7 +289,7 @@
                self -> Maybe val -> m ()
 setOuterText self val
   = liftIO
-      (js_setOuterText (toHTMLElement self) (toMaybeJSString val))
+      (js_setOuterText (toHTMLElement self) (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"outerText\"]"
         js_getOuterText :: HTMLElement -> IO (Nullable JSString)
@@ -379,75 +321,27 @@
       (fromJust . fromMaybeJSString <$>
          (js_getOuterText (toHTMLElement self)))
  
-foreign import javascript unsafe "$1[\"children\"]" js_getChildren
-        :: HTMLElement -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.children Mozilla HTMLElement.children documentation> 
-getChildren ::
-            (MonadIO m, IsHTMLElement self) => self -> m (Maybe HTMLCollection)
-getChildren self
-  = liftIO
-      (nullableToMaybe <$> (js_getChildren (toHTMLElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.children Mozilla HTMLElement.children documentation> 
-getChildrenUnsafe ::
-                  (MonadIO m, IsHTMLElement self, HasCallStack) =>
-                    self -> m HTMLCollection
-getChildrenUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getChildren (toHTMLElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.children Mozilla HTMLElement.children documentation> 
-getChildrenUnchecked ::
-                     (MonadIO m, IsHTMLElement self) => self -> m HTMLCollection
-getChildrenUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getChildren (toHTMLElement self)))
- 
 foreign import javascript unsafe "$1[\"contentEditable\"] = $2;"
-        js_setContentEditable :: HTMLElement -> Nullable JSString -> IO ()
+        js_setContentEditable :: HTMLElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.contentEditable Mozilla HTMLElement.contentEditable documentation> 
 setContentEditable ::
                    (MonadIO m, IsHTMLElement self, ToJSString val) =>
-                     self -> Maybe val -> m ()
+                     self -> val -> m ()
 setContentEditable self val
   = liftIO
-      (js_setContentEditable (toHTMLElement self) (toMaybeJSString val))
+      (js_setContentEditable (toHTMLElement self) (toJSString val))
  
 foreign import javascript unsafe "$1[\"contentEditable\"]"
-        js_getContentEditable :: HTMLElement -> IO (Nullable JSString)
+        js_getContentEditable :: HTMLElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.contentEditable Mozilla HTMLElement.contentEditable documentation> 
 getContentEditable ::
                    (MonadIO m, IsHTMLElement self, FromJSString result) =>
-                     self -> m (Maybe result)
+                     self -> m result
 getContentEditable self
   = liftIO
-      (fromMaybeJSString <$>
-         (js_getContentEditable (toHTMLElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.contentEditable Mozilla HTMLElement.contentEditable documentation> 
-getContentEditableUnsafe ::
-                         (MonadIO m, IsHTMLElement self, HasCallStack,
-                          FromJSString result) =>
-                           self -> m result
-getContentEditableUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_getContentEditable (toHTMLElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.contentEditable Mozilla HTMLElement.contentEditable documentation> 
-getContentEditableUnchecked ::
-                            (MonadIO m, IsHTMLElement self, FromJSString result) =>
-                              self -> m result
-getContentEditableUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getContentEditable (toHTMLElement self)))
+      (fromJSString <$> (js_getContentEditable (toHTMLElement self)))
  
 foreign import javascript unsafe
         "($1[\"isContentEditable\"] ? 1 : 0)" js_getIsContentEditable ::
@@ -474,3 +368,71 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.spellcheck Mozilla HTMLElement.spellcheck documentation> 
 getSpellcheck :: (MonadIO m, IsHTMLElement self) => self -> m Bool
 getSpellcheck self = liftIO (js_getSpellcheck (toHTMLElement self))
+ 
+foreign import javascript unsafe "$1[\"autocorrect\"] = $2;"
+        js_setAutocorrect :: HTMLElement -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.autocorrect Mozilla HTMLElement.autocorrect documentation> 
+setAutocorrect ::
+               (MonadIO m, IsHTMLElement self) => self -> Bool -> m ()
+setAutocorrect self val
+  = liftIO (js_setAutocorrect (toHTMLElement self) val)
+ 
+foreign import javascript unsafe "($1[\"autocorrect\"] ? 1 : 0)"
+        js_getAutocorrect :: HTMLElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.autocorrect Mozilla HTMLElement.autocorrect documentation> 
+getAutocorrect :: (MonadIO m, IsHTMLElement self) => self -> m Bool
+getAutocorrect self
+  = liftIO (js_getAutocorrect (toHTMLElement self))
+ 
+foreign import javascript unsafe "$1[\"autocapitalize\"] = $2;"
+        js_setAutocapitalize :: HTMLElement -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.autocapitalize Mozilla HTMLElement.autocapitalize documentation> 
+setAutocapitalize ::
+                  (MonadIO m, IsHTMLElement self, ToJSString val) =>
+                    self -> Maybe val -> m ()
+setAutocapitalize self val
+  = liftIO
+      (js_setAutocapitalize (toHTMLElement self)
+         (toOptionalJSString val))
+ 
+foreign import javascript unsafe "$1[\"autocapitalize\"]"
+        js_getAutocapitalize :: HTMLElement -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.autocapitalize Mozilla HTMLElement.autocapitalize documentation> 
+getAutocapitalize ::
+                  (MonadIO m, IsHTMLElement self, FromJSString result) =>
+                    self -> m (Maybe result)
+getAutocapitalize self
+  = liftIO
+      (fromMaybeJSString <$> (js_getAutocapitalize (toHTMLElement self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.autocapitalize Mozilla HTMLElement.autocapitalize documentation> 
+getAutocapitalizeUnsafe ::
+                        (MonadIO m, IsHTMLElement self, HasCallStack,
+                         FromJSString result) =>
+                          self -> m result
+getAutocapitalizeUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$>
+          (js_getAutocapitalize (toHTMLElement self)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.autocapitalize Mozilla HTMLElement.autocapitalize documentation> 
+getAutocapitalizeUnchecked ::
+                           (MonadIO m, IsHTMLElement self, FromJSString result) =>
+                             self -> m result
+getAutocapitalizeUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getAutocapitalize (toHTMLElement self)))
+ 
+foreign import javascript unsafe "$1[\"dataset\"]" js_getDataset ::
+        HTMLElement -> IO DOMStringMap
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset Mozilla HTMLElement.dataset documentation> 
+getDataset ::
+           (MonadIO m, IsHTMLElement self) => self -> m DOMStringMap
+getDataset self = liftIO (js_getDataset (toHTMLElement self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLEmbedElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLEmbedElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLEmbedElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLEmbedElement.hs
@@ -4,8 +4,7 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLEmbedElement
-       (js_getSVGDocument, getSVGDocument, getSVGDocument_,
-        getSVGDocumentUnsafe, getSVGDocumentUnchecked, js_setAlign,
+       (js_getSVGDocument, getSVGDocument, getSVGDocument_, js_setAlign,
         setAlign, js_getAlign, getAlign, js_setHeight, setHeight,
         js_getHeight, getHeight, js_setName, setName, js_getName, getName,
         js_setSrc, setSrc, js_getSrc, getSrc, js_setType, setType,
@@ -16,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,38 +24,22 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"getSVGDocument\"]()"
-        js_getSVGDocument :: HTMLEmbedElement -> IO (Nullable SVGDocument)
+        js_getSVGDocument :: HTMLEmbedElement -> IO Document
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.getSVGDocument Mozilla HTMLEmbedElement.getSVGDocument documentation> 
-getSVGDocument ::
-               (MonadIO m) => HTMLEmbedElement -> m (Maybe SVGDocument)
-getSVGDocument self
-  = liftIO (nullableToMaybe <$> (js_getSVGDocument (self)))
+getSVGDocument :: (MonadIO m) => HTMLEmbedElement -> m Document
+getSVGDocument self = liftIO (js_getSVGDocument self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.getSVGDocument Mozilla HTMLEmbedElement.getSVGDocument documentation> 
 getSVGDocument_ :: (MonadIO m) => HTMLEmbedElement -> m ()
-getSVGDocument_ self = liftIO (void (js_getSVGDocument (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.getSVGDocument Mozilla HTMLEmbedElement.getSVGDocument documentation> 
-getSVGDocumentUnsafe ::
-                     (MonadIO m, HasCallStack) => HTMLEmbedElement -> m SVGDocument
-getSVGDocumentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSVGDocument (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.getSVGDocument Mozilla HTMLEmbedElement.getSVGDocument documentation> 
-getSVGDocumentUnchecked ::
-                        (MonadIO m) => HTMLEmbedElement -> m SVGDocument
-getSVGDocumentUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSVGDocument (self)))
+getSVGDocument_ self = liftIO (void (js_getSVGDocument self))
  
 foreign import javascript unsafe "$1[\"align\"] = $2;" js_setAlign
         :: HTMLEmbedElement -> JSString -> IO ()
@@ -64,7 +47,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.align Mozilla HTMLEmbedElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLEmbedElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLEmbedElement -> IO JSString
@@ -72,7 +55,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.align Mozilla HTMLEmbedElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLEmbedElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
         js_setHeight :: HTMLEmbedElement -> JSString -> IO ()
@@ -80,7 +63,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.height Mozilla HTMLEmbedElement.height documentation> 
 setHeight ::
           (MonadIO m, ToJSString val) => HTMLEmbedElement -> val -> m ()
-setHeight self val = liftIO (js_setHeight (self) (toJSString val))
+setHeight self val = liftIO (js_setHeight self (toJSString val))
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
         HTMLEmbedElement -> IO JSString
@@ -88,7 +71,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.height Mozilla HTMLEmbedElement.height documentation> 
 getHeight ::
           (MonadIO m, FromJSString result) => HTMLEmbedElement -> m result
-getHeight self = liftIO (fromJSString <$> (js_getHeight (self)))
+getHeight self = liftIO (fromJSString <$> (js_getHeight self))
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLEmbedElement -> JSString -> IO ()
@@ -96,7 +79,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.name Mozilla HTMLEmbedElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLEmbedElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLEmbedElement -> IO JSString
@@ -104,7 +87,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.name Mozilla HTMLEmbedElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLEmbedElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"src\"] = $2;" js_setSrc ::
         HTMLEmbedElement -> JSString -> IO ()
@@ -112,7 +95,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.src Mozilla HTMLEmbedElement.src documentation> 
 setSrc ::
        (MonadIO m, ToJSString val) => HTMLEmbedElement -> val -> m ()
-setSrc self val = liftIO (js_setSrc (self) (toJSString val))
+setSrc self val = liftIO (js_setSrc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"src\"]" js_getSrc ::
         HTMLEmbedElement -> IO JSString
@@ -120,7 +103,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.src Mozilla HTMLEmbedElement.src documentation> 
 getSrc ::
        (MonadIO m, FromJSString result) => HTMLEmbedElement -> m result
-getSrc self = liftIO (fromJSString <$> (js_getSrc (self)))
+getSrc self = liftIO (fromJSString <$> (js_getSrc self))
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         HTMLEmbedElement -> JSString -> IO ()
@@ -128,7 +111,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.type Mozilla HTMLEmbedElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLEmbedElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLEmbedElement -> IO JSString
@@ -136,7 +119,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.type Mozilla HTMLEmbedElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLEmbedElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: HTMLEmbedElement -> JSString -> IO ()
@@ -144,7 +127,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.width Mozilla HTMLEmbedElement.width documentation> 
 setWidth ::
          (MonadIO m, ToJSString val) => HTMLEmbedElement -> val -> m ()
-setWidth self val = liftIO (js_setWidth (self) (toJSString val))
+setWidth self val = liftIO (js_setWidth self (toJSString val))
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLEmbedElement -> IO JSString
@@ -152,4 +135,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement.width Mozilla HTMLEmbedElement.width documentation> 
 getWidth ::
          (MonadIO m, FromJSString result) => HTMLEmbedElement -> m result
-getWidth self = liftIO (fromJSString <$> (js_getWidth (self)))
+getWidth self = liftIO (fromJSString <$> (js_getWidth self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLFieldSetElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLFieldSetElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLFieldSetElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLFieldSetElement.hs
@@ -5,13 +5,12 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLFieldSetElement
        (js_checkValidity, checkValidity, checkValidity_,
+        js_reportValidity, reportValidity, reportValidity_,
         js_setCustomValidity, setCustomValidity, js_setDisabled,
         setDisabled, js_getDisabled, getDisabled, js_getForm, getForm,
-        getFormUnsafe, getFormUnchecked, js_setName, setName, js_getName,
-        getName, js_getType, getType, js_getElements, getElements,
-        getElementsUnsafe, getElementsUnchecked, js_getWillValidate,
-        getWillValidate, js_getValidity, getValidity, getValidityUnsafe,
-        getValidityUnchecked, js_getValidationMessage,
+        js_setName, setName, js_getName, getName, js_getType, getType,
+        js_getElements, getElements, js_getWillValidate, getWillValidate,
+        js_getValidity, getValidity, js_getValidationMessage,
         getValidationMessage, HTMLFieldSetElement(..),
         gTypeHTMLFieldSetElement)
        where
@@ -19,7 +18,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +27,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -39,59 +39,54 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.checkValidity Mozilla HTMLFieldSetElement.checkValidity documentation> 
 checkValidity :: (MonadIO m) => HTMLFieldSetElement -> m Bool
-checkValidity self = liftIO (js_checkValidity (self))
+checkValidity self = liftIO (js_checkValidity self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.checkValidity Mozilla HTMLFieldSetElement.checkValidity documentation> 
 checkValidity_ :: (MonadIO m) => HTMLFieldSetElement -> m ()
-checkValidity_ self = liftIO (void (js_checkValidity (self)))
+checkValidity_ self = liftIO (void (js_checkValidity self))
  
+foreign import javascript unsafe
+        "($1[\"reportValidity\"]() ? 1 : 0)" js_reportValidity ::
+        HTMLFieldSetElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.reportValidity Mozilla HTMLFieldSetElement.reportValidity documentation> 
+reportValidity :: (MonadIO m) => HTMLFieldSetElement -> m Bool
+reportValidity self = liftIO (js_reportValidity self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.reportValidity Mozilla HTMLFieldSetElement.reportValidity documentation> 
+reportValidity_ :: (MonadIO m) => HTMLFieldSetElement -> m ()
+reportValidity_ self = liftIO (void (js_reportValidity self))
+ 
 foreign import javascript unsafe "$1[\"setCustomValidity\"]($2)"
-        js_setCustomValidity ::
-        HTMLFieldSetElement -> Nullable JSString -> IO ()
+        js_setCustomValidity :: HTMLFieldSetElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.setCustomValidity Mozilla HTMLFieldSetElement.setCustomValidity documentation> 
 setCustomValidity ::
                   (MonadIO m, ToJSString error) =>
-                    HTMLFieldSetElement -> Maybe error -> m ()
+                    HTMLFieldSetElement -> error -> m ()
 setCustomValidity self error
-  = liftIO (js_setCustomValidity (self) (toMaybeJSString error))
+  = liftIO (js_setCustomValidity self (toJSString error))
  
 foreign import javascript unsafe "$1[\"disabled\"] = $2;"
         js_setDisabled :: HTMLFieldSetElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.disabled Mozilla HTMLFieldSetElement.disabled documentation> 
 setDisabled :: (MonadIO m) => HTMLFieldSetElement -> Bool -> m ()
-setDisabled self val = liftIO (js_setDisabled (self) val)
+setDisabled self val = liftIO (js_setDisabled self val)
  
 foreign import javascript unsafe "($1[\"disabled\"] ? 1 : 0)"
         js_getDisabled :: HTMLFieldSetElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.disabled Mozilla HTMLFieldSetElement.disabled documentation> 
 getDisabled :: (MonadIO m) => HTMLFieldSetElement -> m Bool
-getDisabled self = liftIO (js_getDisabled (self))
+getDisabled self = liftIO (js_getDisabled self)
  
 foreign import javascript unsafe "$1[\"form\"]" js_getForm ::
-        HTMLFieldSetElement -> IO (Nullable HTMLFormElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.form Mozilla HTMLFieldSetElement.form documentation> 
-getForm ::
-        (MonadIO m) => HTMLFieldSetElement -> m (Maybe HTMLFormElement)
-getForm self = liftIO (nullableToMaybe <$> (js_getForm (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.form Mozilla HTMLFieldSetElement.form documentation> 
-getFormUnsafe ::
-              (MonadIO m, HasCallStack) =>
-                HTMLFieldSetElement -> m HTMLFormElement
-getFormUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getForm (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLFieldSetElement -> IO HTMLFormElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.form Mozilla HTMLFieldSetElement.form documentation> 
-getFormUnchecked ::
-                 (MonadIO m) => HTMLFieldSetElement -> m HTMLFormElement
-getFormUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getForm (self)))
+getForm :: (MonadIO m) => HTMLFieldSetElement -> m HTMLFormElement
+getForm self = liftIO (js_getForm self)
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLFieldSetElement -> JSString -> IO ()
@@ -99,7 +94,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.name Mozilla HTMLFieldSetElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLFieldSetElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLFieldSetElement -> IO JSString
@@ -107,7 +102,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.name Mozilla HTMLFieldSetElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLFieldSetElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLFieldSetElement -> IO JSString
@@ -115,61 +110,30 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.type Mozilla HTMLFieldSetElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLFieldSetElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"elements\"]" js_getElements
-        :: HTMLFieldSetElement -> IO (Nullable HTMLCollection)
+        :: HTMLFieldSetElement -> IO HTMLFormControlsCollection
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.elements Mozilla HTMLFieldSetElement.elements documentation> 
 getElements ::
-            (MonadIO m) => HTMLFieldSetElement -> m (Maybe HTMLCollection)
-getElements self
-  = liftIO (nullableToMaybe <$> (js_getElements (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.elements Mozilla HTMLFieldSetElement.elements documentation> 
-getElementsUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    HTMLFieldSetElement -> m HTMLCollection
-getElementsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getElements (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.elements Mozilla HTMLFieldSetElement.elements documentation> 
-getElementsUnchecked ::
-                     (MonadIO m) => HTMLFieldSetElement -> m HTMLCollection
-getElementsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getElements (self)))
+            (MonadIO m) => HTMLFieldSetElement -> m HTMLFormControlsCollection
+getElements self = liftIO (js_getElements self)
  
 foreign import javascript unsafe "($1[\"willValidate\"] ? 1 : 0)"
         js_getWillValidate :: HTMLFieldSetElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.willValidate Mozilla HTMLFieldSetElement.willValidate documentation> 
 getWillValidate :: (MonadIO m) => HTMLFieldSetElement -> m Bool
-getWillValidate self = liftIO (js_getWillValidate (self))
+getWillValidate self = liftIO (js_getWillValidate self)
  
 foreign import javascript unsafe "$1[\"validity\"]" js_getValidity
-        :: HTMLFieldSetElement -> IO (Nullable ValidityState)
+        :: HTMLFieldSetElement -> IO ValidityState
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.validity Mozilla HTMLFieldSetElement.validity documentation> 
 getValidity ::
-            (MonadIO m) => HTMLFieldSetElement -> m (Maybe ValidityState)
-getValidity self
-  = liftIO (nullableToMaybe <$> (js_getValidity (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.validity Mozilla HTMLFieldSetElement.validity documentation> 
-getValidityUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLFieldSetElement -> m ValidityState
-getValidityUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getValidity (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement.validity Mozilla HTMLFieldSetElement.validity documentation> 
-getValidityUnchecked ::
-                     (MonadIO m) => HTMLFieldSetElement -> m ValidityState
-getValidityUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getValidity (self)))
+            (MonadIO m) => HTMLFieldSetElement -> m ValidityState
+getValidity self = liftIO (js_getValidity self)
  
 foreign import javascript unsafe "$1[\"validationMessage\"]"
         js_getValidationMessage :: HTMLFieldSetElement -> IO JSString
@@ -178,4 +142,4 @@
 getValidationMessage ::
                      (MonadIO m, FromJSString result) => HTMLFieldSetElement -> m result
 getValidationMessage self
-  = liftIO (fromJSString <$> (js_getValidationMessage (self)))
+  = liftIO (fromJSString <$> (js_getValidationMessage self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLFontElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLFontElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLFontElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLFontElement.hs
@@ -4,15 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLFontElement
-       (js_setColor, setColor, js_getColor, getColor, js_setFace, setFace,
-        js_getFace, getFace, js_setSize, setSize, js_getSize, getSize,
-        HTMLFontElement(..), gTypeHTMLFontElement)
+       (js_setColor, setColor, js_getColor, getColor, getColorUnsafe,
+        getColorUnchecked, js_setFace, setFace, js_getFace, getFace,
+        js_setSize, setSize, js_getSize, getSize, HTMLFontElement(..),
+        gTypeHTMLFontElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,26 +22,44 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"color\"] = $2;" js_setColor
-        :: HTMLFontElement -> JSString -> IO ()
+        :: HTMLFontElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement.color Mozilla HTMLFontElement.color documentation> 
 setColor ::
-         (MonadIO m, ToJSString val) => HTMLFontElement -> val -> m ()
-setColor self val = liftIO (js_setColor (self) (toJSString val))
+         (MonadIO m, ToJSString val) => HTMLFontElement -> Maybe val -> m ()
+setColor self val
+  = liftIO (js_setColor self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"color\"]" js_getColor ::
-        HTMLFontElement -> IO JSString
+        HTMLFontElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement.color Mozilla HTMLFontElement.color documentation> 
 getColor ::
-         (MonadIO m, FromJSString result) => HTMLFontElement -> m result
-getColor self = liftIO (fromJSString <$> (js_getColor (self)))
+         (MonadIO m, FromJSString result) =>
+           HTMLFontElement -> m (Maybe result)
+getColor self = liftIO (fromMaybeJSString <$> (js_getColor self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement.color Mozilla HTMLFontElement.color documentation> 
+getColorUnsafe ::
+               (MonadIO m, HasCallStack, FromJSString result) =>
+                 HTMLFontElement -> m result
+getColorUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getColor self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement.color Mozilla HTMLFontElement.color documentation> 
+getColorUnchecked ::
+                  (MonadIO m, FromJSString result) => HTMLFontElement -> m result
+getColorUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getColor self))
  
 foreign import javascript unsafe "$1[\"face\"] = $2;" js_setFace ::
         HTMLFontElement -> JSString -> IO ()
@@ -48,7 +67,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement.face Mozilla HTMLFontElement.face documentation> 
 setFace ::
         (MonadIO m, ToJSString val) => HTMLFontElement -> val -> m ()
-setFace self val = liftIO (js_setFace (self) (toJSString val))
+setFace self val = liftIO (js_setFace self (toJSString val))
  
 foreign import javascript unsafe "$1[\"face\"]" js_getFace ::
         HTMLFontElement -> IO JSString
@@ -56,7 +75,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement.face Mozilla HTMLFontElement.face documentation> 
 getFace ::
         (MonadIO m, FromJSString result) => HTMLFontElement -> m result
-getFace self = liftIO (fromJSString <$> (js_getFace (self)))
+getFace self = liftIO (fromJSString <$> (js_getFace self))
  
 foreign import javascript unsafe "$1[\"size\"] = $2;" js_setSize ::
         HTMLFontElement -> JSString -> IO ()
@@ -64,7 +83,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement.size Mozilla HTMLFontElement.size documentation> 
 setSize ::
         (MonadIO m, ToJSString val) => HTMLFontElement -> val -> m ()
-setSize self val = liftIO (js_setSize (self) (toJSString val))
+setSize self val = liftIO (js_setSize self (toJSString val))
  
 foreign import javascript unsafe "$1[\"size\"]" js_getSize ::
         HTMLFontElement -> IO JSString
@@ -72,4 +91,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement.size Mozilla HTMLFontElement.size documentation> 
 getSize ::
         (MonadIO m, FromJSString result) => HTMLFontElement -> m result
-getSize self = liftIO (fromJSString <$> (js_getSize (self)))
+getSize self = liftIO (fromJSString <$> (js_getSize self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLFormControlsCollection.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLFormControlsCollection.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLFormControlsCollection.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLFormControlsCollection.hs
@@ -4,7 +4,7 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLFormControlsCollection
-       (js__get, _get, _get_, _getUnsafe, _getUnchecked, js_namedItem,
+       (js_get, get, get_, getUnsafe, getUnchecked, js_namedItem,
         namedItem, namedItem_, namedItemUnsafe, namedItemUnchecked,
         HTMLFormControlsCollection(..), gTypeHTMLFormControlsCollection)
        where
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,72 +21,74 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"_get\"]($2)" js__get ::
-        HTMLFormControlsCollection -> Word -> IO (Nullable Node)
+foreign import javascript unsafe "$1[$2]" js_get ::
+        HTMLFormControlsCollection -> Word -> IO (Nullable HTMLElement)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection._get Mozilla HTMLFormControlsCollection._get documentation> 
-_get ::
-     (MonadIO m) => HTMLFormControlsCollection -> Word -> m (Maybe Node)
-_get self index
-  = liftIO (nullableToMaybe <$> (js__get (self) index))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection.get Mozilla HTMLFormControlsCollection.get documentation> 
+get ::
+    (MonadIO m) =>
+      HTMLFormControlsCollection -> Word -> m (Maybe HTMLElement)
+get self index = liftIO (nullableToMaybe <$> (js_get self index))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection._get Mozilla HTMLFormControlsCollection._get documentation> 
-_get_ :: (MonadIO m) => HTMLFormControlsCollection -> Word -> m ()
-_get_ self index = liftIO (void (js__get (self) index))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection.get Mozilla HTMLFormControlsCollection.get documentation> 
+get_ :: (MonadIO m) => HTMLFormControlsCollection -> Word -> m ()
+get_ self index = liftIO (void (js_get self index))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection._get Mozilla HTMLFormControlsCollection._get documentation> 
-_getUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             HTMLFormControlsCollection -> Word -> m Node
-_getUnsafe self index
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection.get Mozilla HTMLFormControlsCollection.get documentation> 
+getUnsafe ::
+          (MonadIO m, HasCallStack) =>
+            HTMLFormControlsCollection -> Word -> m HTMLElement
+getUnsafe self index
   = liftIO
-      ((nullableToMaybe <$> (js__get (self) index)) >>=
+      ((nullableToMaybe <$> (js_get self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection._get Mozilla HTMLFormControlsCollection._get documentation> 
-_getUnchecked ::
-              (MonadIO m) => HTMLFormControlsCollection -> Word -> m Node
-_getUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js__get (self) index))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection.get Mozilla HTMLFormControlsCollection.get documentation> 
+getUnchecked ::
+             (MonadIO m) => HTMLFormControlsCollection -> Word -> m HTMLElement
+getUnchecked self index
+  = liftIO (fromJust . nullableToMaybe <$> (js_get self index))
  
-foreign import javascript unsafe "$1[\"namedItem\"]($2)"
-        js_namedItem ::
-        HTMLFormControlsCollection -> JSString -> IO (Nullable Node)
+foreign import javascript unsafe "$1[$2]" js_namedItem ::
+        HTMLFormControlsCollection ->
+          JSString -> IO (Nullable RadioNodeListOrElement)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection.namedItem Mozilla HTMLFormControlsCollection.namedItem documentation> 
 namedItem ::
           (MonadIO m, ToJSString name) =>
-            HTMLFormControlsCollection -> name -> m (Maybe Node)
+            HTMLFormControlsCollection ->
+              name -> m (Maybe RadioNodeListOrElement)
 namedItem self name
   = liftIO
-      (nullableToMaybe <$> (js_namedItem (self) (toJSString name)))
+      (nullableToMaybe <$> (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection.namedItem Mozilla HTMLFormControlsCollection.namedItem documentation> 
 namedItem_ ::
            (MonadIO m, ToJSString name) =>
              HTMLFormControlsCollection -> name -> m ()
 namedItem_ self name
-  = liftIO (void (js_namedItem (self) (toJSString name)))
+  = liftIO (void (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection.namedItem Mozilla HTMLFormControlsCollection.namedItem documentation> 
 namedItemUnsafe ::
                 (MonadIO m, ToJSString name, HasCallStack) =>
-                  HTMLFormControlsCollection -> name -> m Node
+                  HTMLFormControlsCollection -> name -> m RadioNodeListOrElement
 namedItemUnsafe self name
   = liftIO
-      ((nullableToMaybe <$> (js_namedItem (self) (toJSString name))) >>=
+      ((nullableToMaybe <$> (js_namedItem self (toJSString name))) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection.namedItem Mozilla HTMLFormControlsCollection.namedItem documentation> 
 namedItemUnchecked ::
                    (MonadIO m, ToJSString name) =>
-                     HTMLFormControlsCollection -> name -> m Node
+                     HTMLFormControlsCollection -> name -> m RadioNodeListOrElement
 namedItemUnchecked self name
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_namedItem (self) (toJSString name)))
+         (js_namedItem self (toJSString name)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLFormElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLFormElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLFormElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLFormElement.hs
@@ -4,32 +4,27 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLFormElement
-       (js__get, _get, _get_, _getUnsafe, _getUnchecked, js_submit,
-        submit, js_reset, reset, js_checkValidity, checkValidity,
-        checkValidity_, js_requestAutocomplete, requestAutocomplete,
-        js_setAcceptCharset, setAcceptCharset, js_getAcceptCharset,
-        getAcceptCharset, js_setAction, setAction, js_getAction, getAction,
-        js_setAutocomplete, setAutocomplete, js_getAutocomplete,
-        getAutocomplete, js_setEnctype, setEnctype, js_getEnctype,
-        getEnctype, getEnctypeUnsafe, getEnctypeUnchecked, js_setEncoding,
-        setEncoding, js_getEncoding, getEncoding, getEncodingUnsafe,
-        getEncodingUnchecked, js_setMethod, setMethod, js_getMethod,
-        getMethod, getMethodUnsafe, getMethodUnchecked, js_setName,
-        setName, js_getName, getName, js_setNoValidate, setNoValidate,
-        js_getNoValidate, getNoValidate, js_setTarget, setTarget,
-        js_getTarget, getTarget, js_getElements, getElements,
-        getElementsUnsafe, getElementsUnchecked, js_getLength, getLength,
-        js_setAutocorrect, setAutocorrect, js_getAutocorrect,
-        getAutocorrect, js_setAutocapitalize, setAutocapitalize,
-        js_getAutocapitalize, getAutocapitalize, getAutocapitalizeUnsafe,
-        getAutocapitalizeUnchecked, autocomplete, autocompleteerror,
-        HTMLFormElement(..), gTypeHTMLFormElement)
+       (js_getAt, getAt, getAt_, getAtUnsafe, getAtUnchecked, js_get, get,
+        get_, getUnsafe, getUnchecked, js_submit, submit, js_reset, reset,
+        js_checkValidity, checkValidity, checkValidity_, js_reportValidity,
+        reportValidity, reportValidity_, js_requestAutocomplete,
+        requestAutocomplete, js_setAcceptCharset, setAcceptCharset,
+        js_getAcceptCharset, getAcceptCharset, js_setAction, setAction,
+        js_getAction, getAction, js_setAutocomplete, setAutocomplete,
+        js_getAutocomplete, getAutocomplete, js_setEnctype, setEnctype,
+        js_getEnctype, getEnctype, js_setEncoding, setEncoding,
+        js_getEncoding, getEncoding, js_setMethod, setMethod, js_getMethod,
+        getMethod, js_setName, setName, js_getName, getName,
+        js_setNoValidate, setNoValidate, js_getNoValidate, getNoValidate,
+        js_setTarget, setTarget, js_getTarget, getTarget, js_getElements,
+        getElements, js_getLength, getLength, HTMLFormElement(..),
+        gTypeHTMLFormElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -38,50 +33,84 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"_get\"]($2)" js__get ::
+foreign import javascript unsafe "$1[$2]" js_getAt ::
         HTMLFormElement -> Word -> IO (Nullable Element)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement._get Mozilla HTMLFormElement._get documentation> 
-_get :: (MonadIO m) => HTMLFormElement -> Word -> m (Maybe Element)
-_get self index
-  = liftIO (nullableToMaybe <$> (js__get (self) index))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.get Mozilla HTMLFormElement.get documentation> 
+getAt ::
+      (MonadIO m) => HTMLFormElement -> Word -> m (Maybe Element)
+getAt self index
+  = liftIO (nullableToMaybe <$> (js_getAt self index))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement._get Mozilla HTMLFormElement._get documentation> 
-_get_ :: (MonadIO m) => HTMLFormElement -> Word -> m ()
-_get_ self index = liftIO (void (js__get (self) index))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.get Mozilla HTMLFormElement.get documentation> 
+getAt_ :: (MonadIO m) => HTMLFormElement -> Word -> m ()
+getAt_ self index = liftIO (void (js_getAt self index))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement._get Mozilla HTMLFormElement._get documentation> 
-_getUnsafe ::
-           (MonadIO m, HasCallStack) => HTMLFormElement -> Word -> m Element
-_getUnsafe self index
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.get Mozilla HTMLFormElement.get documentation> 
+getAtUnsafe ::
+            (MonadIO m, HasCallStack) => HTMLFormElement -> Word -> m Element
+getAtUnsafe self index
   = liftIO
-      ((nullableToMaybe <$> (js__get (self) index)) >>=
+      ((nullableToMaybe <$> (js_getAt self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement._get Mozilla HTMLFormElement._get documentation> 
-_getUnchecked ::
-              (MonadIO m) => HTMLFormElement -> Word -> m Element
-_getUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js__get (self) index))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.get Mozilla HTMLFormElement.get documentation> 
+getAtUnchecked ::
+               (MonadIO m) => HTMLFormElement -> Word -> m Element
+getAtUnchecked self index
+  = liftIO (fromJust . nullableToMaybe <$> (js_getAt self index))
  
+foreign import javascript unsafe "$1[$2]" js_get ::
+        HTMLFormElement -> JSString -> IO (Nullable RadioNodeListOrElement)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.get Mozilla HTMLFormElement.get documentation> 
+get ::
+    (MonadIO m, ToJSString name) =>
+      HTMLFormElement -> name -> m (Maybe RadioNodeListOrElement)
+get self name
+  = liftIO (nullableToMaybe <$> (js_get self (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.get Mozilla HTMLFormElement.get documentation> 
+get_ ::
+     (MonadIO m, ToJSString name) => HTMLFormElement -> name -> m ()
+get_ self name = liftIO (void (js_get self (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.get Mozilla HTMLFormElement.get documentation> 
+getUnsafe ::
+          (MonadIO m, ToJSString name, HasCallStack) =>
+            HTMLFormElement -> name -> m RadioNodeListOrElement
+getUnsafe self name
+  = liftIO
+      ((nullableToMaybe <$> (js_get self (toJSString name))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.get Mozilla HTMLFormElement.get documentation> 
+getUnchecked ::
+             (MonadIO m, ToJSString name) =>
+               HTMLFormElement -> name -> m RadioNodeListOrElement
+getUnchecked self name
+  = liftIO
+      (fromJust . nullableToMaybe <$> (js_get self (toJSString name)))
+ 
 foreign import javascript unsafe "$1[\"submit\"]()" js_submit ::
         HTMLFormElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.submit Mozilla HTMLFormElement.submit documentation> 
 submit :: (MonadIO m) => HTMLFormElement -> m ()
-submit self = liftIO (js_submit (self))
+submit self = liftIO (js_submit self)
  
 foreign import javascript unsafe "$1[\"reset\"]()" js_reset ::
         HTMLFormElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.reset Mozilla HTMLFormElement.reset documentation> 
 reset :: (MonadIO m) => HTMLFormElement -> m ()
-reset self = liftIO (js_reset (self))
+reset self = liftIO (js_reset self)
  
 foreign import javascript unsafe
         "($1[\"checkValidity\"]() ? 1 : 0)" js_checkValidity ::
@@ -89,18 +118,30 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.checkValidity Mozilla HTMLFormElement.checkValidity documentation> 
 checkValidity :: (MonadIO m) => HTMLFormElement -> m Bool
-checkValidity self = liftIO (js_checkValidity (self))
+checkValidity self = liftIO (js_checkValidity self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.checkValidity Mozilla HTMLFormElement.checkValidity documentation> 
 checkValidity_ :: (MonadIO m) => HTMLFormElement -> m ()
-checkValidity_ self = liftIO (void (js_checkValidity (self)))
+checkValidity_ self = liftIO (void (js_checkValidity self))
  
+foreign import javascript unsafe
+        "($1[\"reportValidity\"]() ? 1 : 0)" js_reportValidity ::
+        HTMLFormElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.reportValidity Mozilla HTMLFormElement.reportValidity documentation> 
+reportValidity :: (MonadIO m) => HTMLFormElement -> m Bool
+reportValidity self = liftIO (js_reportValidity self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.reportValidity Mozilla HTMLFormElement.reportValidity documentation> 
+reportValidity_ :: (MonadIO m) => HTMLFormElement -> m ()
+reportValidity_ self = liftIO (void (js_reportValidity self))
+ 
 foreign import javascript unsafe "$1[\"requestAutocomplete\"]()"
         js_requestAutocomplete :: HTMLFormElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.requestAutocomplete Mozilla HTMLFormElement.requestAutocomplete documentation> 
 requestAutocomplete :: (MonadIO m) => HTMLFormElement -> m ()
-requestAutocomplete self = liftIO (js_requestAutocomplete (self))
+requestAutocomplete self = liftIO (js_requestAutocomplete self)
  
 foreign import javascript unsafe "$1[\"acceptCharset\"] = $2;"
         js_setAcceptCharset :: HTMLFormElement -> JSString -> IO ()
@@ -109,7 +150,7 @@
 setAcceptCharset ::
                  (MonadIO m, ToJSString val) => HTMLFormElement -> val -> m ()
 setAcceptCharset self val
-  = liftIO (js_setAcceptCharset (self) (toJSString val))
+  = liftIO (js_setAcceptCharset self (toJSString val))
  
 foreign import javascript unsafe "$1[\"acceptCharset\"]"
         js_getAcceptCharset :: HTMLFormElement -> IO JSString
@@ -118,7 +159,7 @@
 getAcceptCharset ::
                  (MonadIO m, FromJSString result) => HTMLFormElement -> m result
 getAcceptCharset self
-  = liftIO (fromJSString <$> (js_getAcceptCharset (self)))
+  = liftIO (fromJSString <$> (js_getAcceptCharset self))
  
 foreign import javascript unsafe "$1[\"action\"] = $2;"
         js_setAction :: HTMLFormElement -> JSString -> IO ()
@@ -126,7 +167,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.action Mozilla HTMLFormElement.action documentation> 
 setAction ::
           (MonadIO m, ToJSString val) => HTMLFormElement -> val -> m ()
-setAction self val = liftIO (js_setAction (self) (toJSString val))
+setAction self val = liftIO (js_setAction self (toJSString val))
  
 foreign import javascript unsafe "$1[\"action\"]" js_getAction ::
         HTMLFormElement -> IO JSString
@@ -134,7 +175,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.action Mozilla HTMLFormElement.action documentation> 
 getAction ::
           (MonadIO m, FromJSString result) => HTMLFormElement -> m result
-getAction self = liftIO (fromJSString <$> (js_getAction (self)))
+getAction self = liftIO (fromJSString <$> (js_getAction self))
  
 foreign import javascript unsafe "$1[\"autocomplete\"] = $2;"
         js_setAutocomplete :: HTMLFormElement -> JSString -> IO ()
@@ -143,7 +184,7 @@
 setAutocomplete ::
                 (MonadIO m, ToJSString val) => HTMLFormElement -> val -> m ()
 setAutocomplete self val
-  = liftIO (js_setAutocomplete (self) (toJSString val))
+  = liftIO (js_setAutocomplete self (toJSString val))
  
 foreign import javascript unsafe "$1[\"autocomplete\"]"
         js_getAutocomplete :: HTMLFormElement -> IO JSString
@@ -152,109 +193,56 @@
 getAutocomplete ::
                 (MonadIO m, FromJSString result) => HTMLFormElement -> m result
 getAutocomplete self
-  = liftIO (fromJSString <$> (js_getAutocomplete (self)))
+  = liftIO (fromJSString <$> (js_getAutocomplete self))
  
 foreign import javascript unsafe "$1[\"enctype\"] = $2;"
-        js_setEnctype :: HTMLFormElement -> Nullable JSString -> IO ()
+        js_setEnctype :: HTMLFormElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.enctype Mozilla HTMLFormElement.enctype documentation> 
 setEnctype ::
-           (MonadIO m, ToJSString val) => HTMLFormElement -> Maybe val -> m ()
-setEnctype self val
-  = liftIO (js_setEnctype (self) (toMaybeJSString val))
+           (MonadIO m, ToJSString val) => HTMLFormElement -> val -> m ()
+setEnctype self val = liftIO (js_setEnctype self (toJSString val))
  
 foreign import javascript unsafe "$1[\"enctype\"]" js_getEnctype ::
-        HTMLFormElement -> IO (Nullable JSString)
+        HTMLFormElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.enctype Mozilla HTMLFormElement.enctype documentation> 
 getEnctype ::
-           (MonadIO m, FromJSString result) =>
-             HTMLFormElement -> m (Maybe result)
-getEnctype self
-  = liftIO (fromMaybeJSString <$> (js_getEnctype (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.enctype Mozilla HTMLFormElement.enctype documentation> 
-getEnctypeUnsafe ::
-                 (MonadIO m, HasCallStack, FromJSString result) =>
-                   HTMLFormElement -> m result
-getEnctypeUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getEnctype (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.enctype Mozilla HTMLFormElement.enctype documentation> 
-getEnctypeUnchecked ::
-                    (MonadIO m, FromJSString result) => HTMLFormElement -> m result
-getEnctypeUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getEnctype (self)))
+           (MonadIO m, FromJSString result) => HTMLFormElement -> m result
+getEnctype self = liftIO (fromJSString <$> (js_getEnctype self))
  
 foreign import javascript unsafe "$1[\"encoding\"] = $2;"
-        js_setEncoding :: HTMLFormElement -> Nullable JSString -> IO ()
+        js_setEncoding :: HTMLFormElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.encoding Mozilla HTMLFormElement.encoding documentation> 
 setEncoding ::
-            (MonadIO m, ToJSString val) => HTMLFormElement -> Maybe val -> m ()
+            (MonadIO m, ToJSString val) => HTMLFormElement -> val -> m ()
 setEncoding self val
-  = liftIO (js_setEncoding (self) (toMaybeJSString val))
+  = liftIO (js_setEncoding self (toJSString val))
  
 foreign import javascript unsafe "$1[\"encoding\"]" js_getEncoding
-        :: HTMLFormElement -> IO (Nullable JSString)
+        :: HTMLFormElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.encoding Mozilla HTMLFormElement.encoding documentation> 
 getEncoding ::
-            (MonadIO m, FromJSString result) =>
-              HTMLFormElement -> m (Maybe result)
-getEncoding self
-  = liftIO (fromMaybeJSString <$> (js_getEncoding (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.encoding Mozilla HTMLFormElement.encoding documentation> 
-getEncodingUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    HTMLFormElement -> m result
-getEncodingUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getEncoding (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.encoding Mozilla HTMLFormElement.encoding documentation> 
-getEncodingUnchecked ::
-                     (MonadIO m, FromJSString result) => HTMLFormElement -> m result
-getEncodingUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getEncoding (self)))
+            (MonadIO m, FromJSString result) => HTMLFormElement -> m result
+getEncoding self = liftIO (fromJSString <$> (js_getEncoding self))
  
 foreign import javascript unsafe "$1[\"method\"] = $2;"
-        js_setMethod :: HTMLFormElement -> Nullable JSString -> IO ()
+        js_setMethod :: HTMLFormElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.method Mozilla HTMLFormElement.method documentation> 
 setMethod ::
-          (MonadIO m, ToJSString val) => HTMLFormElement -> Maybe val -> m ()
-setMethod self val
-  = liftIO (js_setMethod (self) (toMaybeJSString val))
+          (MonadIO m, ToJSString val) => HTMLFormElement -> val -> m ()
+setMethod self val = liftIO (js_setMethod self (toJSString val))
  
 foreign import javascript unsafe "$1[\"method\"]" js_getMethod ::
-        HTMLFormElement -> IO (Nullable JSString)
+        HTMLFormElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.method Mozilla HTMLFormElement.method documentation> 
 getMethod ::
-          (MonadIO m, FromJSString result) =>
-            HTMLFormElement -> m (Maybe result)
-getMethod self
-  = liftIO (fromMaybeJSString <$> (js_getMethod (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.method Mozilla HTMLFormElement.method documentation> 
-getMethodUnsafe ::
-                (MonadIO m, HasCallStack, FromJSString result) =>
-                  HTMLFormElement -> m result
-getMethodUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getMethod (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.method Mozilla HTMLFormElement.method documentation> 
-getMethodUnchecked ::
-                   (MonadIO m, FromJSString result) => HTMLFormElement -> m result
-getMethodUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getMethod (self)))
+          (MonadIO m, FromJSString result) => HTMLFormElement -> m result
+getMethod self = liftIO (fromJSString <$> (js_getMethod self))
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLFormElement -> JSString -> IO ()
@@ -262,7 +250,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.name Mozilla HTMLFormElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLFormElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLFormElement -> IO JSString
@@ -270,21 +258,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.name Mozilla HTMLFormElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLFormElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"noValidate\"] = $2;"
         js_setNoValidate :: HTMLFormElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.noValidate Mozilla HTMLFormElement.noValidate documentation> 
 setNoValidate :: (MonadIO m) => HTMLFormElement -> Bool -> m ()
-setNoValidate self val = liftIO (js_setNoValidate (self) val)
+setNoValidate self val = liftIO (js_setNoValidate self val)
  
 foreign import javascript unsafe "($1[\"noValidate\"] ? 1 : 0)"
         js_getNoValidate :: HTMLFormElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.noValidate Mozilla HTMLFormElement.noValidate documentation> 
 getNoValidate :: (MonadIO m) => HTMLFormElement -> m Bool
-getNoValidate self = liftIO (js_getNoValidate (self))
+getNoValidate self = liftIO (js_getNoValidate self)
  
 foreign import javascript unsafe "$1[\"target\"] = $2;"
         js_setTarget :: HTMLFormElement -> JSString -> IO ()
@@ -292,7 +280,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.target Mozilla HTMLFormElement.target documentation> 
 setTarget ::
           (MonadIO m, ToJSString val) => HTMLFormElement -> val -> m ()
-setTarget self val = liftIO (js_setTarget (self) (toJSString val))
+setTarget self val = liftIO (js_setTarget self (toJSString val))
  
 foreign import javascript unsafe "$1[\"target\"]" js_getTarget ::
         HTMLFormElement -> IO JSString
@@ -300,93 +288,19 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.target Mozilla HTMLFormElement.target documentation> 
 getTarget ::
           (MonadIO m, FromJSString result) => HTMLFormElement -> m result
-getTarget self = liftIO (fromJSString <$> (js_getTarget (self)))
+getTarget self = liftIO (fromJSString <$> (js_getTarget self))
  
 foreign import javascript unsafe "$1[\"elements\"]" js_getElements
-        :: HTMLFormElement -> IO (Nullable HTMLCollection)
+        :: HTMLFormElement -> IO HTMLFormControlsCollection
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.elements Mozilla HTMLFormElement.elements documentation> 
 getElements ::
-            (MonadIO m) => HTMLFormElement -> m (Maybe HTMLCollection)
-getElements self
-  = liftIO (nullableToMaybe <$> (js_getElements (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.elements Mozilla HTMLFormElement.elements documentation> 
-getElementsUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLFormElement -> m HTMLCollection
-getElementsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getElements (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.elements Mozilla HTMLFormElement.elements documentation> 
-getElementsUnchecked ::
-                     (MonadIO m) => HTMLFormElement -> m HTMLCollection
-getElementsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getElements (self)))
+            (MonadIO m) => HTMLFormElement -> m HTMLFormControlsCollection
+getElements self = liftIO (js_getElements self)
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
-        HTMLFormElement -> IO Int
+        HTMLFormElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.length Mozilla HTMLFormElement.length documentation> 
-getLength :: (MonadIO m) => HTMLFormElement -> m Int
-getLength self = liftIO (js_getLength (self))
- 
-foreign import javascript unsafe "$1[\"autocorrect\"] = $2;"
-        js_setAutocorrect :: HTMLFormElement -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.autocorrect Mozilla HTMLFormElement.autocorrect documentation> 
-setAutocorrect :: (MonadIO m) => HTMLFormElement -> Bool -> m ()
-setAutocorrect self val = liftIO (js_setAutocorrect (self) val)
- 
-foreign import javascript unsafe "($1[\"autocorrect\"] ? 1 : 0)"
-        js_getAutocorrect :: HTMLFormElement -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.autocorrect Mozilla HTMLFormElement.autocorrect documentation> 
-getAutocorrect :: (MonadIO m) => HTMLFormElement -> m Bool
-getAutocorrect self = liftIO (js_getAutocorrect (self))
- 
-foreign import javascript unsafe "$1[\"autocapitalize\"] = $2;"
-        js_setAutocapitalize ::
-        HTMLFormElement -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.autocapitalize Mozilla HTMLFormElement.autocapitalize documentation> 
-setAutocapitalize ::
-                  (MonadIO m, ToJSString val) => HTMLFormElement -> Maybe val -> m ()
-setAutocapitalize self val
-  = liftIO (js_setAutocapitalize (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"autocapitalize\"]"
-        js_getAutocapitalize :: HTMLFormElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.autocapitalize Mozilla HTMLFormElement.autocapitalize documentation> 
-getAutocapitalize ::
-                  (MonadIO m, FromJSString result) =>
-                    HTMLFormElement -> m (Maybe result)
-getAutocapitalize self
-  = liftIO (fromMaybeJSString <$> (js_getAutocapitalize (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.autocapitalize Mozilla HTMLFormElement.autocapitalize documentation> 
-getAutocapitalizeUnsafe ::
-                        (MonadIO m, HasCallStack, FromJSString result) =>
-                          HTMLFormElement -> m result
-getAutocapitalizeUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getAutocapitalize (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.autocapitalize Mozilla HTMLFormElement.autocapitalize documentation> 
-getAutocapitalizeUnchecked ::
-                           (MonadIO m, FromJSString result) => HTMLFormElement -> m result
-getAutocapitalizeUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getAutocapitalize (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.onautocomplete Mozilla HTMLFormElement.onautocomplete documentation> 
-autocomplete :: EventName HTMLFormElement onautocomplete
-autocomplete = unsafeEventName (toJSString "autocomplete")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.onautocompleteerror Mozilla HTMLFormElement.onautocompleteerror documentation> 
-autocompleteerror :: EventName HTMLFormElement onautocompleteerror
-autocompleteerror
-  = unsafeEventName (toJSString "autocompleteerror")
+getLength :: (MonadIO m) => HTMLFormElement -> m Word
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLFrameElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLFrameElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLFrameElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLFrameElement.hs
@@ -4,28 +4,27 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLFrameElement
-       (js_getSVGDocument, getSVGDocument, getSVGDocument_,
-        getSVGDocumentUnsafe, getSVGDocumentUnchecked, js_setFrameBorder,
-        setFrameBorder, js_getFrameBorder, getFrameBorder, js_setLongDesc,
-        setLongDesc, js_getLongDesc, getLongDesc, js_setMarginHeight,
+       (js_getSVGDocument, getSVGDocument, getSVGDocument_, js_setName,
+        setName, js_getName, getName, js_setScrolling, setScrolling,
+        js_getScrolling, getScrolling, js_setSrc, setSrc, js_getSrc,
+        getSrc, js_setFrameBorder, setFrameBorder, js_getFrameBorder,
+        getFrameBorder, js_setLongDesc, setLongDesc, js_getLongDesc,
+        getLongDesc, js_setNoResize, setNoResize, js_getNoResize,
+        getNoResize, js_getContentDocument, getContentDocument,
+        js_getContentWindow, getContentWindow, js_setMarginHeight,
         setMarginHeight, js_getMarginHeight, getMarginHeight,
-        js_setMarginWidth, setMarginWidth, js_getMarginWidth,
-        getMarginWidth, js_setName, setName, js_getName, getName,
-        js_setNoResize, setNoResize, js_getNoResize, getNoResize,
-        js_setScrolling, setScrolling, js_getScrolling, getScrolling,
-        js_setSrc, setSrc, js_getSrc, getSrc, js_getContentDocument,
-        getContentDocument, getContentDocumentUnsafe,
-        getContentDocumentUnchecked, js_getContentWindow, getContentWindow,
-        getContentWindowUnsafe, getContentWindowUnchecked, js_setLocation,
-        setLocation, js_getLocation, getLocation, getLocationUnsafe,
-        getLocationUnchecked, js_getWidth, getWidth, js_getHeight,
-        getHeight, HTMLFrameElement(..), gTypeHTMLFrameElement)
+        getMarginHeightUnsafe, getMarginHeightUnchecked, js_setMarginWidth,
+        setMarginWidth, js_getMarginWidth, getMarginWidth,
+        getMarginWidthUnsafe, getMarginWidthUnchecked, js_getWidth,
+        getWidth, js_getHeight, getHeight, js_setLocation, setLocation,
+        js_getLocation, getLocation, getLocationUnsafe,
+        getLocationUnchecked, HTMLFrameElement(..), gTypeHTMLFrameElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -34,39 +33,73 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"getSVGDocument\"]()"
-        js_getSVGDocument :: HTMLFrameElement -> IO (Nullable SVGDocument)
+        js_getSVGDocument :: HTMLFrameElement -> IO Document
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.getSVGDocument Mozilla HTMLFrameElement.getSVGDocument documentation> 
-getSVGDocument ::
-               (MonadIO m) => HTMLFrameElement -> m (Maybe SVGDocument)
-getSVGDocument self
-  = liftIO (nullableToMaybe <$> (js_getSVGDocument (self)))
+getSVGDocument :: (MonadIO m) => HTMLFrameElement -> m Document
+getSVGDocument self = liftIO (js_getSVGDocument self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.getSVGDocument Mozilla HTMLFrameElement.getSVGDocument documentation> 
 getSVGDocument_ :: (MonadIO m) => HTMLFrameElement -> m ()
-getSVGDocument_ self = liftIO (void (js_getSVGDocument (self)))
+getSVGDocument_ self = liftIO (void (js_getSVGDocument self))
+ 
+foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
+        HTMLFrameElement -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.getSVGDocument Mozilla HTMLFrameElement.getSVGDocument documentation> 
-getSVGDocumentUnsafe ::
-                     (MonadIO m, HasCallStack) => HTMLFrameElement -> m SVGDocument
-getSVGDocumentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSVGDocument (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.name Mozilla HTMLFrameElement.name documentation> 
+setName ::
+        (MonadIO m, ToJSString val) => HTMLFrameElement -> val -> m ()
+setName self val = liftIO (js_setName self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"name\"]" js_getName ::
+        HTMLFrameElement -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.getSVGDocument Mozilla HTMLFrameElement.getSVGDocument documentation> 
-getSVGDocumentUnchecked ::
-                        (MonadIO m) => HTMLFrameElement -> m SVGDocument
-getSVGDocumentUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSVGDocument (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.name Mozilla HTMLFrameElement.name documentation> 
+getName ::
+        (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
+getName self = liftIO (fromJSString <$> (js_getName self))
  
+foreign import javascript unsafe "$1[\"scrolling\"] = $2;"
+        js_setScrolling :: HTMLFrameElement -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.scrolling Mozilla HTMLFrameElement.scrolling documentation> 
+setScrolling ::
+             (MonadIO m, ToJSString val) => HTMLFrameElement -> val -> m ()
+setScrolling self val
+  = liftIO (js_setScrolling self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"scrolling\"]"
+        js_getScrolling :: HTMLFrameElement -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.scrolling Mozilla HTMLFrameElement.scrolling documentation> 
+getScrolling ::
+             (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
+getScrolling self
+  = liftIO (fromJSString <$> (js_getScrolling self))
+ 
+foreign import javascript unsafe "$1[\"src\"] = $2;" js_setSrc ::
+        HTMLFrameElement -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.src Mozilla HTMLFrameElement.src documentation> 
+setSrc ::
+       (MonadIO m, ToJSString val) => HTMLFrameElement -> val -> m ()
+setSrc self val = liftIO (js_setSrc self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"src\"]" js_getSrc ::
+        HTMLFrameElement -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.src Mozilla HTMLFrameElement.src documentation> 
+getSrc ::
+       (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
+getSrc self = liftIO (fromJSString <$> (js_getSrc self))
+ 
 foreign import javascript unsafe "$1[\"frameBorder\"] = $2;"
         js_setFrameBorder :: HTMLFrameElement -> JSString -> IO ()
 
@@ -74,7 +107,7 @@
 setFrameBorder ::
                (MonadIO m, ToJSString val) => HTMLFrameElement -> val -> m ()
 setFrameBorder self val
-  = liftIO (js_setFrameBorder (self) (toJSString val))
+  = liftIO (js_setFrameBorder self (toJSString val))
  
 foreign import javascript unsafe "$1[\"frameBorder\"]"
         js_getFrameBorder :: HTMLFrameElement -> IO JSString
@@ -83,7 +116,7 @@
 getFrameBorder ::
                (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
 getFrameBorder self
-  = liftIO (fromJSString <$> (js_getFrameBorder (self)))
+  = liftIO (fromJSString <$> (js_getFrameBorder self))
  
 foreign import javascript unsafe "$1[\"longDesc\"] = $2;"
         js_setLongDesc :: HTMLFrameElement -> JSString -> IO ()
@@ -92,7 +125,7 @@
 setLongDesc ::
             (MonadIO m, ToJSString val) => HTMLFrameElement -> val -> m ()
 setLongDesc self val
-  = liftIO (js_setLongDesc (self) (toJSString val))
+  = liftIO (js_setLongDesc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"longDesc\"]" js_getLongDesc
         :: HTMLFrameElement -> IO JSString
@@ -100,166 +133,132 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.longDesc Mozilla HTMLFrameElement.longDesc documentation> 
 getLongDesc ::
             (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
-getLongDesc self
-  = liftIO (fromJSString <$> (js_getLongDesc (self)))
- 
-foreign import javascript unsafe "$1[\"marginHeight\"] = $2;"
-        js_setMarginHeight :: HTMLFrameElement -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginHeight Mozilla HTMLFrameElement.marginHeight documentation> 
-setMarginHeight ::
-                (MonadIO m, ToJSString val) => HTMLFrameElement -> val -> m ()
-setMarginHeight self val
-  = liftIO (js_setMarginHeight (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"marginHeight\"]"
-        js_getMarginHeight :: HTMLFrameElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginHeight Mozilla HTMLFrameElement.marginHeight documentation> 
-getMarginHeight ::
-                (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
-getMarginHeight self
-  = liftIO (fromJSString <$> (js_getMarginHeight (self)))
- 
-foreign import javascript unsafe "$1[\"marginWidth\"] = $2;"
-        js_setMarginWidth :: HTMLFrameElement -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginWidth Mozilla HTMLFrameElement.marginWidth documentation> 
-setMarginWidth ::
-               (MonadIO m, ToJSString val) => HTMLFrameElement -> val -> m ()
-setMarginWidth self val
-  = liftIO (js_setMarginWidth (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"marginWidth\"]"
-        js_getMarginWidth :: HTMLFrameElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginWidth Mozilla HTMLFrameElement.marginWidth documentation> 
-getMarginWidth ::
-               (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
-getMarginWidth self
-  = liftIO (fromJSString <$> (js_getMarginWidth (self)))
- 
-foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
-        HTMLFrameElement -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.name Mozilla HTMLFrameElement.name documentation> 
-setName ::
-        (MonadIO m, ToJSString val) => HTMLFrameElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"name\"]" js_getName ::
-        HTMLFrameElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.name Mozilla HTMLFrameElement.name documentation> 
-getName ::
-        (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getLongDesc self = liftIO (fromJSString <$> (js_getLongDesc self))
  
 foreign import javascript unsafe "$1[\"noResize\"] = $2;"
         js_setNoResize :: HTMLFrameElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.noResize Mozilla HTMLFrameElement.noResize documentation> 
 setNoResize :: (MonadIO m) => HTMLFrameElement -> Bool -> m ()
-setNoResize self val = liftIO (js_setNoResize (self) val)
+setNoResize self val = liftIO (js_setNoResize self val)
  
 foreign import javascript unsafe "($1[\"noResize\"] ? 1 : 0)"
         js_getNoResize :: HTMLFrameElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.noResize Mozilla HTMLFrameElement.noResize documentation> 
 getNoResize :: (MonadIO m) => HTMLFrameElement -> m Bool
-getNoResize self = liftIO (js_getNoResize (self))
- 
-foreign import javascript unsafe "$1[\"scrolling\"] = $2;"
-        js_setScrolling :: HTMLFrameElement -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.scrolling Mozilla HTMLFrameElement.scrolling documentation> 
-setScrolling ::
-             (MonadIO m, ToJSString val) => HTMLFrameElement -> val -> m ()
-setScrolling self val
-  = liftIO (js_setScrolling (self) (toJSString val))
+getNoResize self = liftIO (js_getNoResize self)
  
-foreign import javascript unsafe "$1[\"scrolling\"]"
-        js_getScrolling :: HTMLFrameElement -> IO JSString
+foreign import javascript unsafe "$1[\"contentDocument\"]"
+        js_getContentDocument :: HTMLFrameElement -> IO Document
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.scrolling Mozilla HTMLFrameElement.scrolling documentation> 
-getScrolling ::
-             (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
-getScrolling self
-  = liftIO (fromJSString <$> (js_getScrolling (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.contentDocument Mozilla HTMLFrameElement.contentDocument documentation> 
+getContentDocument :: (MonadIO m) => HTMLFrameElement -> m Document
+getContentDocument self = liftIO (js_getContentDocument self)
  
-foreign import javascript unsafe "$1[\"src\"] = $2;" js_setSrc ::
-        HTMLFrameElement -> JSString -> IO ()
+foreign import javascript unsafe "$1[\"contentWindow\"]"
+        js_getContentWindow :: HTMLFrameElement -> IO Window
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.src Mozilla HTMLFrameElement.src documentation> 
-setSrc ::
-       (MonadIO m, ToJSString val) => HTMLFrameElement -> val -> m ()
-setSrc self val = liftIO (js_setSrc (self) (toJSString val))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.contentWindow Mozilla HTMLFrameElement.contentWindow documentation> 
+getContentWindow :: (MonadIO m) => HTMLFrameElement -> m Window
+getContentWindow self = liftIO (js_getContentWindow self)
  
-foreign import javascript unsafe "$1[\"src\"]" js_getSrc ::
-        HTMLFrameElement -> IO JSString
+foreign import javascript unsafe "$1[\"marginHeight\"] = $2;"
+        js_setMarginHeight ::
+        HTMLFrameElement -> Optional JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.src Mozilla HTMLFrameElement.src documentation> 
-getSrc ::
-       (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
-getSrc self = liftIO (fromJSString <$> (js_getSrc (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginHeight Mozilla HTMLFrameElement.marginHeight documentation> 
+setMarginHeight ::
+                (MonadIO m, ToJSString val) =>
+                  HTMLFrameElement -> Maybe val -> m ()
+setMarginHeight self val
+  = liftIO (js_setMarginHeight self (toOptionalJSString val))
  
-foreign import javascript unsafe "$1[\"contentDocument\"]"
-        js_getContentDocument :: HTMLFrameElement -> IO (Nullable Document)
+foreign import javascript unsafe "$1[\"marginHeight\"]"
+        js_getMarginHeight :: HTMLFrameElement -> IO (Nullable JSString)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.contentDocument Mozilla HTMLFrameElement.contentDocument documentation> 
-getContentDocument ::
-                   (MonadIO m) => HTMLFrameElement -> m (Maybe Document)
-getContentDocument self
-  = liftIO (nullableToMaybe <$> (js_getContentDocument (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginHeight Mozilla HTMLFrameElement.marginHeight documentation> 
+getMarginHeight ::
+                (MonadIO m, FromJSString result) =>
+                  HTMLFrameElement -> m (Maybe result)
+getMarginHeight self
+  = liftIO (fromMaybeJSString <$> (js_getMarginHeight self))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.contentDocument Mozilla HTMLFrameElement.contentDocument documentation> 
-getContentDocumentUnsafe ::
-                         (MonadIO m, HasCallStack) => HTMLFrameElement -> m Document
-getContentDocumentUnsafe self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginHeight Mozilla HTMLFrameElement.marginHeight documentation> 
+getMarginHeightUnsafe ::
+                      (MonadIO m, HasCallStack, FromJSString result) =>
+                        HTMLFrameElement -> m result
+getMarginHeightUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getContentDocument (self))) >>=
+      ((fromMaybeJSString <$> (js_getMarginHeight self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.contentDocument Mozilla HTMLFrameElement.contentDocument documentation> 
-getContentDocumentUnchecked ::
-                            (MonadIO m) => HTMLFrameElement -> m Document
-getContentDocumentUnchecked self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginHeight Mozilla HTMLFrameElement.marginHeight documentation> 
+getMarginHeightUnchecked ::
+                         (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
+getMarginHeightUnchecked self
   = liftIO
-      (fromJust . nullableToMaybe <$> (js_getContentDocument (self)))
+      (fromJust . fromMaybeJSString <$> (js_getMarginHeight self))
  
-foreign import javascript unsafe "$1[\"contentWindow\"]"
-        js_getContentWindow :: HTMLFrameElement -> IO (Nullable Window)
+foreign import javascript unsafe "$1[\"marginWidth\"] = $2;"
+        js_setMarginWidth :: HTMLFrameElement -> Optional JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.contentWindow Mozilla HTMLFrameElement.contentWindow documentation> 
-getContentWindow ::
-                 (MonadIO m) => HTMLFrameElement -> m (Maybe Window)
-getContentWindow self
-  = liftIO (nullableToMaybe <$> (js_getContentWindow (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginWidth Mozilla HTMLFrameElement.marginWidth documentation> 
+setMarginWidth ::
+               (MonadIO m, ToJSString val) =>
+                 HTMLFrameElement -> Maybe val -> m ()
+setMarginWidth self val
+  = liftIO (js_setMarginWidth self (toOptionalJSString val))
+ 
+foreign import javascript unsafe "$1[\"marginWidth\"]"
+        js_getMarginWidth :: HTMLFrameElement -> IO (Nullable JSString)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.contentWindow Mozilla HTMLFrameElement.contentWindow documentation> 
-getContentWindowUnsafe ::
-                       (MonadIO m, HasCallStack) => HTMLFrameElement -> m Window
-getContentWindowUnsafe self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginWidth Mozilla HTMLFrameElement.marginWidth documentation> 
+getMarginWidth ::
+               (MonadIO m, FromJSString result) =>
+                 HTMLFrameElement -> m (Maybe result)
+getMarginWidth self
+  = liftIO (fromMaybeJSString <$> (js_getMarginWidth self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginWidth Mozilla HTMLFrameElement.marginWidth documentation> 
+getMarginWidthUnsafe ::
+                     (MonadIO m, HasCallStack, FromJSString result) =>
+                       HTMLFrameElement -> m result
+getMarginWidthUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getContentWindow (self))) >>=
+      ((fromMaybeJSString <$> (js_getMarginWidth self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.contentWindow Mozilla HTMLFrameElement.contentWindow documentation> 
-getContentWindowUnchecked ::
-                          (MonadIO m) => HTMLFrameElement -> m Window
-getContentWindowUnchecked self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.marginWidth Mozilla HTMLFrameElement.marginWidth documentation> 
+getMarginWidthUnchecked ::
+                        (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
+getMarginWidthUnchecked self
   = liftIO
-      (fromJust . nullableToMaybe <$> (js_getContentWindow (self)))
+      (fromJust . fromMaybeJSString <$> (js_getMarginWidth self))
  
+foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
+        HTMLFrameElement -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.width Mozilla HTMLFrameElement.width documentation> 
+getWidth :: (MonadIO m) => HTMLFrameElement -> m Int
+getWidth self = liftIO (js_getWidth self)
+ 
+foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
+        HTMLFrameElement -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.height Mozilla HTMLFrameElement.height documentation> 
+getHeight :: (MonadIO m) => HTMLFrameElement -> m Int
+getHeight self = liftIO (js_getHeight self)
+ 
 foreign import javascript unsafe "$1[\"location\"] = $2;"
-        js_setLocation :: HTMLFrameElement -> Nullable JSString -> IO ()
+        js_setLocation :: HTMLFrameElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.location Mozilla HTMLFrameElement.location documentation> 
 setLocation ::
             (MonadIO m, ToJSString val) =>
               HTMLFrameElement -> Maybe val -> m ()
 setLocation self val
-  = liftIO (js_setLocation (self) (toMaybeJSString val))
+  = liftIO (js_setLocation self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"location\"]" js_getLocation
         :: HTMLFrameElement -> IO (Nullable JSString)
@@ -269,7 +268,7 @@
             (MonadIO m, FromJSString result) =>
               HTMLFrameElement -> m (Maybe result)
 getLocation self
-  = liftIO (fromMaybeJSString <$> (js_getLocation (self)))
+  = liftIO (fromMaybeJSString <$> (js_getLocation self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.location Mozilla HTMLFrameElement.location documentation> 
 getLocationUnsafe ::
@@ -277,25 +276,11 @@
                     HTMLFrameElement -> m result
 getLocationUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getLocation (self))) >>=
+      ((fromMaybeJSString <$> (js_getLocation self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.location Mozilla HTMLFrameElement.location documentation> 
 getLocationUnchecked ::
                      (MonadIO m, FromJSString result) => HTMLFrameElement -> m result
 getLocationUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getLocation (self)))
- 
-foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        HTMLFrameElement -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.width Mozilla HTMLFrameElement.width documentation> 
-getWidth :: (MonadIO m) => HTMLFrameElement -> m Int
-getWidth self = liftIO (js_getWidth (self))
- 
-foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        HTMLFrameElement -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement.height Mozilla HTMLFrameElement.height documentation> 
-getHeight :: (MonadIO m) => HTMLFrameElement -> m Int
-getHeight self = liftIO (js_getHeight (self))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getLocation self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLFrameSetElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLFrameSetElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLFrameSetElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLFrameSetElement.hs
@@ -5,16 +5,16 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLFrameSetElement
        (js_setCols, setCols, js_getCols, getCols, js_setRows, setRows,
-        js_getRows, getRows, beforeUnload, hashChange, message, offline,
-        online, popState, resize, storage, unload, orientationChange, blur,
-        error, focus, load, HTMLFrameSetElement(..),
-        gTypeHTMLFrameSetElement)
+        js_getRows, getRows, blur, error, focus, focusin, focusout, load,
+        resize, scroll, webKitWillRevealBottom, webKitWillRevealLeft,
+        webKitWillRevealRight, webKitWillRevealTop,
+        HTMLFrameSetElement(..), gTypeHTMLFrameSetElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,7 +35,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.cols Mozilla HTMLFrameSetElement.cols documentation> 
 setCols ::
         (MonadIO m, ToJSString val) => HTMLFrameSetElement -> val -> m ()
-setCols self val = liftIO (js_setCols (self) (toJSString val))
+setCols self val = liftIO (js_setCols self (toJSString val))
  
 foreign import javascript unsafe "$1[\"cols\"]" js_getCols ::
         HTMLFrameSetElement -> IO JSString
@@ -42,7 +43,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.cols Mozilla HTMLFrameSetElement.cols documentation> 
 getCols ::
         (MonadIO m, FromJSString result) => HTMLFrameSetElement -> m result
-getCols self = liftIO (fromJSString <$> (js_getCols (self)))
+getCols self = liftIO (fromJSString <$> (js_getCols self))
  
 foreign import javascript unsafe "$1[\"rows\"] = $2;" js_setRows ::
         HTMLFrameSetElement -> JSString -> IO ()
@@ -50,7 +51,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.rows Mozilla HTMLFrameSetElement.rows documentation> 
 setRows ::
         (MonadIO m, ToJSString val) => HTMLFrameSetElement -> val -> m ()
-setRows self val = liftIO (js_setRows (self) (toJSString val))
+setRows self val = liftIO (js_setRows self (toJSString val))
  
 foreign import javascript unsafe "$1[\"rows\"]" js_getRows ::
         HTMLFrameSetElement -> IO JSString
@@ -58,48 +59,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.rows Mozilla HTMLFrameSetElement.rows documentation> 
 getRows ::
         (MonadIO m, FromJSString result) => HTMLFrameSetElement -> m result
-getRows self = liftIO (fromJSString <$> (js_getRows (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onbeforeunload Mozilla HTMLFrameSetElement.onbeforeunload documentation> 
-beforeUnload :: EventName HTMLFrameSetElement BeforeUnloadEvent
-beforeUnload = unsafeEventName (toJSString "beforeunload")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onhashchange Mozilla HTMLFrameSetElement.onhashchange documentation> 
-hashChange :: EventName HTMLFrameSetElement HashChangeEvent
-hashChange = unsafeEventName (toJSString "hashchange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onmessage Mozilla HTMLFrameSetElement.onmessage documentation> 
-message :: EventName HTMLFrameSetElement MessageEvent
-message = unsafeEventName (toJSString "message")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onoffline Mozilla HTMLFrameSetElement.onoffline documentation> 
-offline :: EventName HTMLFrameSetElement Event
-offline = unsafeEventName (toJSString "offline")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.ononline Mozilla HTMLFrameSetElement.ononline documentation> 
-online :: EventName HTMLFrameSetElement Event
-online = unsafeEventName (toJSString "online")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onpopstate Mozilla HTMLFrameSetElement.onpopstate documentation> 
-popState :: EventName HTMLFrameSetElement PopStateEvent
-popState = unsafeEventName (toJSString "popstate")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onresize Mozilla HTMLFrameSetElement.onresize documentation> 
-resize :: EventName HTMLFrameSetElement UIEvent
-resize = unsafeEventName (toJSString "resize")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onstorage Mozilla HTMLFrameSetElement.onstorage documentation> 
-storage :: EventName HTMLFrameSetElement StorageEvent
-storage = unsafeEventName (toJSString "storage")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onunload Mozilla HTMLFrameSetElement.onunload documentation> 
-unload :: EventName HTMLFrameSetElement UIEvent
-unload = unsafeEventName (toJSString "unload")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onorientationchange Mozilla HTMLFrameSetElement.onorientationchange documentation> 
-orientationChange :: EventName HTMLFrameSetElement Event
-orientationChange
-  = unsafeEventName (toJSString "orientationchange")
+getRows self = liftIO (fromJSString <$> (js_getRows self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onblur Mozilla HTMLFrameSetElement.onblur documentation> 
 blur :: EventName HTMLFrameSetElement FocusEvent
@@ -113,6 +73,42 @@
 focus :: EventName HTMLFrameSetElement FocusEvent
 focus = unsafeEventName (toJSString "focus")
 
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onfocusin Mozilla HTMLFrameSetElement.onfocusin documentation> 
+focusin :: EventName HTMLFrameSetElement onfocusin
+focusin = unsafeEventName (toJSString "focusin")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onfocusout Mozilla HTMLFrameSetElement.onfocusout documentation> 
+focusout :: EventName HTMLFrameSetElement onfocusout
+focusout = unsafeEventName (toJSString "focusout")
+
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onload Mozilla HTMLFrameSetElement.onload documentation> 
 load :: EventName HTMLFrameSetElement UIEvent
 load = unsafeEventName (toJSString "load")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onresize Mozilla HTMLFrameSetElement.onresize documentation> 
+resize :: EventName HTMLFrameSetElement UIEvent
+resize = unsafeEventName (toJSString "resize")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onscroll Mozilla HTMLFrameSetElement.onscroll documentation> 
+scroll :: EventName HTMLFrameSetElement UIEvent
+scroll = unsafeEventName (toJSString "scroll")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onwebkitwillrevealbottom Mozilla HTMLFrameSetElement.onwebkitwillrevealbottom documentation> 
+webKitWillRevealBottom :: EventName HTMLFrameSetElement Event
+webKitWillRevealBottom
+  = unsafeEventName (toJSString "webkitwillrevealbottom")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onwebkitwillrevealleft Mozilla HTMLFrameSetElement.onwebkitwillrevealleft documentation> 
+webKitWillRevealLeft :: EventName HTMLFrameSetElement Event
+webKitWillRevealLeft
+  = unsafeEventName (toJSString "webkitwillrevealleft")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onwebkitwillrevealright Mozilla HTMLFrameSetElement.onwebkitwillrevealright documentation> 
+webKitWillRevealRight :: EventName HTMLFrameSetElement Event
+webKitWillRevealRight
+  = unsafeEventName (toJSString "webkitwillrevealright")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement.onwebkitwillrevealtop Mozilla HTMLFrameSetElement.onwebkitwillrevealtop documentation> 
+webKitWillRevealTop :: EventName HTMLFrameSetElement Event
+webKitWillRevealTop
+  = unsafeEventName (toJSString "webkitwillrevealtop")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLHRElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLHRElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLHRElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLHRElement.hs
@@ -4,16 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLHRElement
-       (js_setAlign, setAlign, js_getAlign, getAlign, js_setNoShade,
-        setNoShade, js_getNoShade, getNoShade, js_setSize, setSize,
-        js_getSize, getSize, js_setWidth, setWidth, js_getWidth, getWidth,
+       (js_setAlign, setAlign, js_getAlign, getAlign, js_setColor,
+        setColor, js_getColor, getColor, js_setNoShade, setNoShade,
+        js_getNoShade, getNoShade, js_setSize, setSize, js_getSize,
+        getSize, js_setWidth, setWidth, js_getWidth, getWidth,
         HTMLHRElement(..), gTypeHTMLHRElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,7 +35,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement.align Mozilla HTMLHRElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLHRElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLHRElement -> IO JSString
@@ -41,21 +43,37 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement.align Mozilla HTMLHRElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLHRElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
+foreign import javascript unsafe "$1[\"color\"] = $2;" js_setColor
+        :: HTMLHRElement -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement.color Mozilla HTMLHRElement.color documentation> 
+setColor ::
+         (MonadIO m, ToJSString val) => HTMLHRElement -> val -> m ()
+setColor self val = liftIO (js_setColor self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"color\"]" js_getColor ::
+        HTMLHRElement -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement.color Mozilla HTMLHRElement.color documentation> 
+getColor ::
+         (MonadIO m, FromJSString result) => HTMLHRElement -> m result
+getColor self = liftIO (fromJSString <$> (js_getColor self))
+ 
 foreign import javascript unsafe "$1[\"noShade\"] = $2;"
         js_setNoShade :: HTMLHRElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement.noShade Mozilla HTMLHRElement.noShade documentation> 
 setNoShade :: (MonadIO m) => HTMLHRElement -> Bool -> m ()
-setNoShade self val = liftIO (js_setNoShade (self) val)
+setNoShade self val = liftIO (js_setNoShade self val)
  
 foreign import javascript unsafe "($1[\"noShade\"] ? 1 : 0)"
         js_getNoShade :: HTMLHRElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement.noShade Mozilla HTMLHRElement.noShade documentation> 
 getNoShade :: (MonadIO m) => HTMLHRElement -> m Bool
-getNoShade self = liftIO (js_getNoShade (self))
+getNoShade self = liftIO (js_getNoShade self)
  
 foreign import javascript unsafe "$1[\"size\"] = $2;" js_setSize ::
         HTMLHRElement -> JSString -> IO ()
@@ -63,7 +81,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement.size Mozilla HTMLHRElement.size documentation> 
 setSize ::
         (MonadIO m, ToJSString val) => HTMLHRElement -> val -> m ()
-setSize self val = liftIO (js_setSize (self) (toJSString val))
+setSize self val = liftIO (js_setSize self (toJSString val))
  
 foreign import javascript unsafe "$1[\"size\"]" js_getSize ::
         HTMLHRElement -> IO JSString
@@ -71,7 +89,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement.size Mozilla HTMLHRElement.size documentation> 
 getSize ::
         (MonadIO m, FromJSString result) => HTMLHRElement -> m result
-getSize self = liftIO (fromJSString <$> (js_getSize (self)))
+getSize self = liftIO (fromJSString <$> (js_getSize self))
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: HTMLHRElement -> JSString -> IO ()
@@ -79,7 +97,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement.width Mozilla HTMLHRElement.width documentation> 
 setWidth ::
          (MonadIO m, ToJSString val) => HTMLHRElement -> val -> m ()
-setWidth self val = liftIO (js_setWidth (self) (toJSString val))
+setWidth self val = liftIO (js_setWidth self (toJSString val))
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLHRElement -> IO JSString
@@ -87,4 +105,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement.width Mozilla HTMLHRElement.width documentation> 
 getWidth ::
          (MonadIO m, FromJSString result) => HTMLHRElement -> m result
-getWidth self = liftIO (fromJSString <$> (js_getWidth (self)))
+getWidth self = liftIO (fromJSString <$> (js_getWidth self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLHeadElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLHeadElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLHeadElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLHeadElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,8 +32,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadElement.profile Mozilla HTMLHeadElement.profile documentation> 
 setProfile ::
            (MonadIO m, ToJSString val) => HTMLHeadElement -> val -> m ()
-setProfile self val
-  = liftIO (js_setProfile (self) (toJSString val))
+setProfile self val = liftIO (js_setProfile self (toJSString val))
  
 foreign import javascript unsafe "$1[\"profile\"]" js_getProfile ::
         HTMLHeadElement -> IO JSString
@@ -40,4 +40,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadElement.profile Mozilla HTMLHeadElement.profile documentation> 
 getProfile ::
            (MonadIO m, FromJSString result) => HTMLHeadElement -> m result
-getProfile self = liftIO (fromJSString <$> (js_getProfile (self)))
+getProfile self = liftIO (fromJSString <$> (js_getProfile self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLHeadingElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLHeadingElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLHeadingElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLHeadingElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,7 +32,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement.align Mozilla HTMLHeadingElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLHeadingElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLHeadingElement -> IO JSString
@@ -39,4 +40,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement.align Mozilla HTMLHeadingElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLHeadingElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLHtmlElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLHtmlElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLHtmlElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLHtmlElement.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,8 +33,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHtmlElement.version Mozilla HTMLHtmlElement.version documentation> 
 setVersion ::
            (MonadIO m, ToJSString val) => HTMLHtmlElement -> val -> m ()
-setVersion self val
-  = liftIO (js_setVersion (self) (toJSString val))
+setVersion self val = liftIO (js_setVersion self (toJSString val))
  
 foreign import javascript unsafe "$1[\"version\"]" js_getVersion ::
         HTMLHtmlElement -> IO JSString
@@ -41,7 +41,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHtmlElement.version Mozilla HTMLHtmlElement.version documentation> 
 getVersion ::
            (MonadIO m, FromJSString result) => HTMLHtmlElement -> m result
-getVersion self = liftIO (fromJSString <$> (js_getVersion (self)))
+getVersion self = liftIO (fromJSString <$> (js_getVersion self))
  
 foreign import javascript unsafe "$1[\"manifest\"] = $2;"
         js_setManifest :: HTMLHtmlElement -> JSString -> IO ()
@@ -50,7 +50,7 @@
 setManifest ::
             (MonadIO m, ToJSString val) => HTMLHtmlElement -> val -> m ()
 setManifest self val
-  = liftIO (js_setManifest (self) (toJSString val))
+  = liftIO (js_setManifest self (toJSString val))
  
 foreign import javascript unsafe "$1[\"manifest\"]" js_getManifest
         :: HTMLHtmlElement -> IO JSString
@@ -58,5 +58,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHtmlElement.manifest Mozilla HTMLHtmlElement.manifest documentation> 
 getManifest ::
             (MonadIO m, FromJSString result) => HTMLHtmlElement -> m result
-getManifest self
-  = liftIO (fromJSString <$> (js_getManifest (self)))
+getManifest self = liftIO (fromJSString <$> (js_getManifest self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLHyperlinkElementUtils.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLHyperlinkElementUtils.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLHyperlinkElementUtils.hs
@@ -0,0 +1,290 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.HTMLHyperlinkElementUtils
+       (js_setHref, setHref, js_getHref, getHref, js_getOrigin, getOrigin,
+        js_setProtocol, setProtocol, js_getProtocol, getProtocol,
+        js_setUsername, setUsername, js_getUsername, getUsername,
+        js_setPassword, setPassword, js_getPassword, getPassword,
+        js_setHost, setHost, js_getHost, getHost, js_setHostname,
+        setHostname, js_getHostname, getHostname, js_setPort, setPort,
+        js_getPort, getPort, js_setPathname, setPathname, js_getPathname,
+        getPathname, js_setSearch, setSearch, js_getSearch, getSearch,
+        js_setHash, setHash, js_getHash, getHash,
+        HTMLHyperlinkElementUtils(..), gTypeHTMLHyperlinkElementUtils,
+        IsHTMLHyperlinkElementUtils, toHTMLHyperlinkElementUtils)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"href\"] = $2;" js_setHref ::
+        HTMLHyperlinkElementUtils -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.href Mozilla HTMLHyperlinkElementUtils.href documentation> 
+setHref ::
+        (MonadIO m, IsHTMLHyperlinkElementUtils self, ToJSString val) =>
+          self -> val -> m ()
+setHref self val
+  = liftIO
+      (js_setHref (toHTMLHyperlinkElementUtils self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"href\"]" js_getHref ::
+        HTMLHyperlinkElementUtils -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.href Mozilla HTMLHyperlinkElementUtils.href documentation> 
+getHref ::
+        (MonadIO m, IsHTMLHyperlinkElementUtils self,
+         FromJSString result) =>
+          self -> m result
+getHref self
+  = liftIO
+      (fromJSString <$> (js_getHref (toHTMLHyperlinkElementUtils self)))
+ 
+foreign import javascript unsafe "$1[\"origin\"]" js_getOrigin ::
+        HTMLHyperlinkElementUtils -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.origin Mozilla HTMLHyperlinkElementUtils.origin documentation> 
+getOrigin ::
+          (MonadIO m, IsHTMLHyperlinkElementUtils self,
+           FromJSString result) =>
+            self -> m result
+getOrigin self
+  = liftIO
+      (fromJSString <$>
+         (js_getOrigin (toHTMLHyperlinkElementUtils self)))
+ 
+foreign import javascript unsafe "$1[\"protocol\"] = $2;"
+        js_setProtocol :: HTMLHyperlinkElementUtils -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.protocol Mozilla HTMLHyperlinkElementUtils.protocol documentation> 
+setProtocol ::
+            (MonadIO m, IsHTMLHyperlinkElementUtils self, ToJSString val) =>
+              self -> val -> m ()
+setProtocol self val
+  = liftIO
+      (js_setProtocol (toHTMLHyperlinkElementUtils self)
+         (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"protocol\"]" js_getProtocol
+        :: HTMLHyperlinkElementUtils -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.protocol Mozilla HTMLHyperlinkElementUtils.protocol documentation> 
+getProtocol ::
+            (MonadIO m, IsHTMLHyperlinkElementUtils self,
+             FromJSString result) =>
+              self -> m result
+getProtocol self
+  = liftIO
+      (fromJSString <$>
+         (js_getProtocol (toHTMLHyperlinkElementUtils self)))
+ 
+foreign import javascript unsafe "$1[\"username\"] = $2;"
+        js_setUsername :: HTMLHyperlinkElementUtils -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.username Mozilla HTMLHyperlinkElementUtils.username documentation> 
+setUsername ::
+            (MonadIO m, IsHTMLHyperlinkElementUtils self, ToJSString val) =>
+              self -> val -> m ()
+setUsername self val
+  = liftIO
+      (js_setUsername (toHTMLHyperlinkElementUtils self)
+         (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"username\"]" js_getUsername
+        :: HTMLHyperlinkElementUtils -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.username Mozilla HTMLHyperlinkElementUtils.username documentation> 
+getUsername ::
+            (MonadIO m, IsHTMLHyperlinkElementUtils self,
+             FromJSString result) =>
+              self -> m result
+getUsername self
+  = liftIO
+      (fromJSString <$>
+         (js_getUsername (toHTMLHyperlinkElementUtils self)))
+ 
+foreign import javascript unsafe "$1[\"password\"] = $2;"
+        js_setPassword :: HTMLHyperlinkElementUtils -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.password Mozilla HTMLHyperlinkElementUtils.password documentation> 
+setPassword ::
+            (MonadIO m, IsHTMLHyperlinkElementUtils self, ToJSString val) =>
+              self -> val -> m ()
+setPassword self val
+  = liftIO
+      (js_setPassword (toHTMLHyperlinkElementUtils self)
+         (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"password\"]" js_getPassword
+        :: HTMLHyperlinkElementUtils -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.password Mozilla HTMLHyperlinkElementUtils.password documentation> 
+getPassword ::
+            (MonadIO m, IsHTMLHyperlinkElementUtils self,
+             FromJSString result) =>
+              self -> m result
+getPassword self
+  = liftIO
+      (fromJSString <$>
+         (js_getPassword (toHTMLHyperlinkElementUtils self)))
+ 
+foreign import javascript unsafe "$1[\"host\"] = $2;" js_setHost ::
+        HTMLHyperlinkElementUtils -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.host Mozilla HTMLHyperlinkElementUtils.host documentation> 
+setHost ::
+        (MonadIO m, IsHTMLHyperlinkElementUtils self, ToJSString val) =>
+          self -> val -> m ()
+setHost self val
+  = liftIO
+      (js_setHost (toHTMLHyperlinkElementUtils self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"host\"]" js_getHost ::
+        HTMLHyperlinkElementUtils -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.host Mozilla HTMLHyperlinkElementUtils.host documentation> 
+getHost ::
+        (MonadIO m, IsHTMLHyperlinkElementUtils self,
+         FromJSString result) =>
+          self -> m result
+getHost self
+  = liftIO
+      (fromJSString <$> (js_getHost (toHTMLHyperlinkElementUtils self)))
+ 
+foreign import javascript unsafe "$1[\"hostname\"] = $2;"
+        js_setHostname :: HTMLHyperlinkElementUtils -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.hostname Mozilla HTMLHyperlinkElementUtils.hostname documentation> 
+setHostname ::
+            (MonadIO m, IsHTMLHyperlinkElementUtils self, ToJSString val) =>
+              self -> val -> m ()
+setHostname self val
+  = liftIO
+      (js_setHostname (toHTMLHyperlinkElementUtils self)
+         (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"hostname\"]" js_getHostname
+        :: HTMLHyperlinkElementUtils -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.hostname Mozilla HTMLHyperlinkElementUtils.hostname documentation> 
+getHostname ::
+            (MonadIO m, IsHTMLHyperlinkElementUtils self,
+             FromJSString result) =>
+              self -> m result
+getHostname self
+  = liftIO
+      (fromJSString <$>
+         (js_getHostname (toHTMLHyperlinkElementUtils self)))
+ 
+foreign import javascript unsafe "$1[\"port\"] = $2;" js_setPort ::
+        HTMLHyperlinkElementUtils -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.port Mozilla HTMLHyperlinkElementUtils.port documentation> 
+setPort ::
+        (MonadIO m, IsHTMLHyperlinkElementUtils self, ToJSString val) =>
+          self -> val -> m ()
+setPort self val
+  = liftIO
+      (js_setPort (toHTMLHyperlinkElementUtils self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"port\"]" js_getPort ::
+        HTMLHyperlinkElementUtils -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.port Mozilla HTMLHyperlinkElementUtils.port documentation> 
+getPort ::
+        (MonadIO m, IsHTMLHyperlinkElementUtils self,
+         FromJSString result) =>
+          self -> m result
+getPort self
+  = liftIO
+      (fromJSString <$> (js_getPort (toHTMLHyperlinkElementUtils self)))
+ 
+foreign import javascript unsafe "$1[\"pathname\"] = $2;"
+        js_setPathname :: HTMLHyperlinkElementUtils -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.pathname Mozilla HTMLHyperlinkElementUtils.pathname documentation> 
+setPathname ::
+            (MonadIO m, IsHTMLHyperlinkElementUtils self, ToJSString val) =>
+              self -> val -> m ()
+setPathname self val
+  = liftIO
+      (js_setPathname (toHTMLHyperlinkElementUtils self)
+         (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"pathname\"]" js_getPathname
+        :: HTMLHyperlinkElementUtils -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.pathname Mozilla HTMLHyperlinkElementUtils.pathname documentation> 
+getPathname ::
+            (MonadIO m, IsHTMLHyperlinkElementUtils self,
+             FromJSString result) =>
+              self -> m result
+getPathname self
+  = liftIO
+      (fromJSString <$>
+         (js_getPathname (toHTMLHyperlinkElementUtils self)))
+ 
+foreign import javascript unsafe "$1[\"search\"] = $2;"
+        js_setSearch :: HTMLHyperlinkElementUtils -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.search Mozilla HTMLHyperlinkElementUtils.search documentation> 
+setSearch ::
+          (MonadIO m, IsHTMLHyperlinkElementUtils self, ToJSString val) =>
+            self -> val -> m ()
+setSearch self val
+  = liftIO
+      (js_setSearch (toHTMLHyperlinkElementUtils self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"search\"]" js_getSearch ::
+        HTMLHyperlinkElementUtils -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.search Mozilla HTMLHyperlinkElementUtils.search documentation> 
+getSearch ::
+          (MonadIO m, IsHTMLHyperlinkElementUtils self,
+           FromJSString result) =>
+            self -> m result
+getSearch self
+  = liftIO
+      (fromJSString <$>
+         (js_getSearch (toHTMLHyperlinkElementUtils self)))
+ 
+foreign import javascript unsafe "$1[\"hash\"] = $2;" js_setHash ::
+        HTMLHyperlinkElementUtils -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.hash Mozilla HTMLHyperlinkElementUtils.hash documentation> 
+setHash ::
+        (MonadIO m, IsHTMLHyperlinkElementUtils self, ToJSString val) =>
+          self -> val -> m ()
+setHash self val
+  = liftIO
+      (js_setHash (toHTMLHyperlinkElementUtils self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"hash\"]" js_getHash ::
+        HTMLHyperlinkElementUtils -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils.hash Mozilla HTMLHyperlinkElementUtils.hash documentation> 
+getHash ::
+        (MonadIO m, IsHTMLHyperlinkElementUtils self,
+         FromJSString result) =>
+          self -> m result
+getHash self
+  = liftIO
+      (fromJSString <$> (js_getHash (toHTMLHyperlinkElementUtils self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLIFrameElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLIFrameElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLIFrameElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLIFrameElement.hs
@@ -4,30 +4,29 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLIFrameElement
-       (js_getSVGDocument, getSVGDocument, getSVGDocument_,
-        getSVGDocumentUnsafe, getSVGDocumentUnchecked, js_setAlign,
+       (js_getSVGDocument, getSVGDocument, getSVGDocument_, js_setAlign,
         setAlign, js_getAlign, getAlign, js_setFrameBorder, setFrameBorder,
         js_getFrameBorder, getFrameBorder, js_setHeight, setHeight,
         js_getHeight, getHeight, js_setLongDesc, setLongDesc,
         js_getLongDesc, getLongDesc, js_setMarginHeight, setMarginHeight,
-        js_getMarginHeight, getMarginHeight, js_setMarginWidth,
-        setMarginWidth, js_getMarginWidth, getMarginWidth, js_setName,
-        setName, js_getName, getName, js_setSandbox, setSandbox,
-        js_getSandbox, getSandbox, js_setScrolling, setScrolling,
-        js_getScrolling, getScrolling, js_setSrc, setSrc, js_getSrc,
-        getSrc, js_setSrcdoc, setSrcdoc, js_getSrcdoc, getSrcdoc,
-        js_setWidth, setWidth, js_getWidth, getWidth,
-        js_getContentDocument, getContentDocument,
-        getContentDocumentUnsafe, getContentDocumentUnchecked,
-        js_getContentWindow, getContentWindow, getContentWindowUnsafe,
-        getContentWindowUnchecked, HTMLIFrameElement(..),
+        js_getMarginHeight, getMarginHeight, getMarginHeightUnsafe,
+        getMarginHeightUnchecked, js_setMarginWidth, setMarginWidth,
+        js_getMarginWidth, getMarginWidth, getMarginWidthUnsafe,
+        getMarginWidthUnchecked, js_setName, setName, js_getName, getName,
+        js_getSandbox, getSandbox, js_setAllowFullscreen,
+        setAllowFullscreen, js_getAllowFullscreen, getAllowFullscreen,
+        js_setScrolling, setScrolling, js_getScrolling, getScrolling,
+        js_setSrc, setSrc, js_getSrc, getSrc, js_setSrcdoc, setSrcdoc,
+        js_getSrcdoc, getSrcdoc, js_setWidth, setWidth, js_getWidth,
+        getWidth, js_getContentDocument, getContentDocument,
+        js_getContentWindow, getContentWindow, HTMLIFrameElement(..),
         gTypeHTMLIFrameElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -36,38 +35,22 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"getSVGDocument\"]()"
-        js_getSVGDocument :: HTMLIFrameElement -> IO (Nullable SVGDocument)
+        js_getSVGDocument :: HTMLIFrameElement -> IO Document
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.getSVGDocument Mozilla HTMLIFrameElement.getSVGDocument documentation> 
-getSVGDocument ::
-               (MonadIO m) => HTMLIFrameElement -> m (Maybe SVGDocument)
-getSVGDocument self
-  = liftIO (nullableToMaybe <$> (js_getSVGDocument (self)))
+getSVGDocument :: (MonadIO m) => HTMLIFrameElement -> m Document
+getSVGDocument self = liftIO (js_getSVGDocument self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.getSVGDocument Mozilla HTMLIFrameElement.getSVGDocument documentation> 
 getSVGDocument_ :: (MonadIO m) => HTMLIFrameElement -> m ()
-getSVGDocument_ self = liftIO (void (js_getSVGDocument (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.getSVGDocument Mozilla HTMLIFrameElement.getSVGDocument documentation> 
-getSVGDocumentUnsafe ::
-                     (MonadIO m, HasCallStack) => HTMLIFrameElement -> m SVGDocument
-getSVGDocumentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSVGDocument (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.getSVGDocument Mozilla HTMLIFrameElement.getSVGDocument documentation> 
-getSVGDocumentUnchecked ::
-                        (MonadIO m) => HTMLIFrameElement -> m SVGDocument
-getSVGDocumentUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSVGDocument (self)))
+getSVGDocument_ self = liftIO (void (js_getSVGDocument self))
  
 foreign import javascript unsafe "$1[\"align\"] = $2;" js_setAlign
         :: HTMLIFrameElement -> JSString -> IO ()
@@ -75,7 +58,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.align Mozilla HTMLIFrameElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLIFrameElement -> IO JSString
@@ -83,7 +66,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.align Mozilla HTMLIFrameElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"frameBorder\"] = $2;"
         js_setFrameBorder :: HTMLIFrameElement -> JSString -> IO ()
@@ -92,7 +75,7 @@
 setFrameBorder ::
                (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
 setFrameBorder self val
-  = liftIO (js_setFrameBorder (self) (toJSString val))
+  = liftIO (js_setFrameBorder self (toJSString val))
  
 foreign import javascript unsafe "$1[\"frameBorder\"]"
         js_getFrameBorder :: HTMLIFrameElement -> IO JSString
@@ -101,7 +84,7 @@
 getFrameBorder ::
                (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
 getFrameBorder self
-  = liftIO (fromJSString <$> (js_getFrameBorder (self)))
+  = liftIO (fromJSString <$> (js_getFrameBorder self))
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
         js_setHeight :: HTMLIFrameElement -> JSString -> IO ()
@@ -109,7 +92,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.height Mozilla HTMLIFrameElement.height documentation> 
 setHeight ::
           (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
-setHeight self val = liftIO (js_setHeight (self) (toJSString val))
+setHeight self val = liftIO (js_setHeight self (toJSString val))
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
         HTMLIFrameElement -> IO JSString
@@ -117,7 +100,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.height Mozilla HTMLIFrameElement.height documentation> 
 getHeight ::
           (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
-getHeight self = liftIO (fromJSString <$> (js_getHeight (self)))
+getHeight self = liftIO (fromJSString <$> (js_getHeight self))
  
 foreign import javascript unsafe "$1[\"longDesc\"] = $2;"
         js_setLongDesc :: HTMLIFrameElement -> JSString -> IO ()
@@ -126,7 +109,7 @@
 setLongDesc ::
             (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
 setLongDesc self val
-  = liftIO (js_setLongDesc (self) (toJSString val))
+  = liftIO (js_setLongDesc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"longDesc\"]" js_getLongDesc
         :: HTMLIFrameElement -> IO JSString
@@ -134,44 +117,81 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.longDesc Mozilla HTMLIFrameElement.longDesc documentation> 
 getLongDesc ::
             (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
-getLongDesc self
-  = liftIO (fromJSString <$> (js_getLongDesc (self)))
+getLongDesc self = liftIO (fromJSString <$> (js_getLongDesc self))
  
 foreign import javascript unsafe "$1[\"marginHeight\"] = $2;"
-        js_setMarginHeight :: HTMLIFrameElement -> JSString -> IO ()
+        js_setMarginHeight ::
+        HTMLIFrameElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.marginHeight Mozilla HTMLIFrameElement.marginHeight documentation> 
 setMarginHeight ::
-                (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
+                (MonadIO m, ToJSString val) =>
+                  HTMLIFrameElement -> Maybe val -> m ()
 setMarginHeight self val
-  = liftIO (js_setMarginHeight (self) (toJSString val))
+  = liftIO (js_setMarginHeight self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"marginHeight\"]"
-        js_getMarginHeight :: HTMLIFrameElement -> IO JSString
+        js_getMarginHeight :: HTMLIFrameElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.marginHeight Mozilla HTMLIFrameElement.marginHeight documentation> 
 getMarginHeight ::
-                (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
+                (MonadIO m, FromJSString result) =>
+                  HTMLIFrameElement -> m (Maybe result)
 getMarginHeight self
-  = liftIO (fromJSString <$> (js_getMarginHeight (self)))
+  = liftIO (fromMaybeJSString <$> (js_getMarginHeight self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.marginHeight Mozilla HTMLIFrameElement.marginHeight documentation> 
+getMarginHeightUnsafe ::
+                      (MonadIO m, HasCallStack, FromJSString result) =>
+                        HTMLIFrameElement -> m result
+getMarginHeightUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getMarginHeight self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.marginHeight Mozilla HTMLIFrameElement.marginHeight documentation> 
+getMarginHeightUnchecked ::
+                         (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
+getMarginHeightUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_getMarginHeight self))
  
 foreign import javascript unsafe "$1[\"marginWidth\"] = $2;"
-        js_setMarginWidth :: HTMLIFrameElement -> JSString -> IO ()
+        js_setMarginWidth ::
+        HTMLIFrameElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.marginWidth Mozilla HTMLIFrameElement.marginWidth documentation> 
 setMarginWidth ::
-               (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
+               (MonadIO m, ToJSString val) =>
+                 HTMLIFrameElement -> Maybe val -> m ()
 setMarginWidth self val
-  = liftIO (js_setMarginWidth (self) (toJSString val))
+  = liftIO (js_setMarginWidth self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"marginWidth\"]"
-        js_getMarginWidth :: HTMLIFrameElement -> IO JSString
+        js_getMarginWidth :: HTMLIFrameElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.marginWidth Mozilla HTMLIFrameElement.marginWidth documentation> 
 getMarginWidth ::
-               (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
+               (MonadIO m, FromJSString result) =>
+                 HTMLIFrameElement -> m (Maybe result)
 getMarginWidth self
-  = liftIO (fromJSString <$> (js_getMarginWidth (self)))
+  = liftIO (fromMaybeJSString <$> (js_getMarginWidth self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.marginWidth Mozilla HTMLIFrameElement.marginWidth documentation> 
+getMarginWidthUnsafe ::
+                     (MonadIO m, HasCallStack, FromJSString result) =>
+                       HTMLIFrameElement -> m result
+getMarginWidthUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getMarginWidth self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.marginWidth Mozilla HTMLIFrameElement.marginWidth documentation> 
+getMarginWidthUnchecked ::
+                        (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
+getMarginWidthUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_getMarginWidth self))
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLIFrameElement -> JSString -> IO ()
@@ -179,7 +199,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.name Mozilla HTMLIFrameElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLIFrameElement -> IO JSString
@@ -187,25 +207,32 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.name Mozilla HTMLIFrameElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
-foreign import javascript unsafe "$1[\"sandbox\"] = $2;"
-        js_setSandbox :: HTMLIFrameElement -> JSString -> IO ()
+foreign import javascript unsafe "$1[\"sandbox\"]" js_getSandbox ::
+        HTMLIFrameElement -> IO DOMTokenList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.sandbox Mozilla HTMLIFrameElement.sandbox documentation> 
-setSandbox ::
-           (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
-setSandbox self val
-  = liftIO (js_setSandbox (self) (toJSString val))
+getSandbox :: (MonadIO m) => HTMLIFrameElement -> m DOMTokenList
+getSandbox self = liftIO (js_getSandbox self)
  
-foreign import javascript unsafe "$1[\"sandbox\"]" js_getSandbox ::
-        HTMLIFrameElement -> IO JSString
+foreign import javascript unsafe "$1[\"allowFullscreen\"] = $2;"
+        js_setAllowFullscreen :: HTMLIFrameElement -> Bool -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.sandbox Mozilla HTMLIFrameElement.sandbox documentation> 
-getSandbox ::
-           (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
-getSandbox self = liftIO (fromJSString <$> (js_getSandbox (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.allowFullscreen Mozilla HTMLIFrameElement.allowFullscreen documentation> 
+setAllowFullscreen ::
+                   (MonadIO m) => HTMLIFrameElement -> Bool -> m ()
+setAllowFullscreen self val
+  = liftIO (js_setAllowFullscreen self val)
  
+foreign import javascript unsafe
+        "($1[\"allowFullscreen\"] ? 1 : 0)" js_getAllowFullscreen ::
+        HTMLIFrameElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.allowFullscreen Mozilla HTMLIFrameElement.allowFullscreen documentation> 
+getAllowFullscreen :: (MonadIO m) => HTMLIFrameElement -> m Bool
+getAllowFullscreen self = liftIO (js_getAllowFullscreen self)
+ 
 foreign import javascript unsafe "$1[\"scrolling\"] = $2;"
         js_setScrolling :: HTMLIFrameElement -> JSString -> IO ()
 
@@ -213,7 +240,7 @@
 setScrolling ::
              (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
 setScrolling self val
-  = liftIO (js_setScrolling (self) (toJSString val))
+  = liftIO (js_setScrolling self (toJSString val))
  
 foreign import javascript unsafe "$1[\"scrolling\"]"
         js_getScrolling :: HTMLIFrameElement -> IO JSString
@@ -222,7 +249,7 @@
 getScrolling ::
              (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
 getScrolling self
-  = liftIO (fromJSString <$> (js_getScrolling (self)))
+  = liftIO (fromJSString <$> (js_getScrolling self))
  
 foreign import javascript unsafe "$1[\"src\"] = $2;" js_setSrc ::
         HTMLIFrameElement -> JSString -> IO ()
@@ -230,7 +257,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.src Mozilla HTMLIFrameElement.src documentation> 
 setSrc ::
        (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
-setSrc self val = liftIO (js_setSrc (self) (toJSString val))
+setSrc self val = liftIO (js_setSrc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"src\"]" js_getSrc ::
         HTMLIFrameElement -> IO JSString
@@ -238,7 +265,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.src Mozilla HTMLIFrameElement.src documentation> 
 getSrc ::
        (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
-getSrc self = liftIO (fromJSString <$> (js_getSrc (self)))
+getSrc self = liftIO (fromJSString <$> (js_getSrc self))
  
 foreign import javascript unsafe "$1[\"srcdoc\"] = $2;"
         js_setSrcdoc :: HTMLIFrameElement -> JSString -> IO ()
@@ -246,7 +273,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.srcdoc Mozilla HTMLIFrameElement.srcdoc documentation> 
 setSrcdoc ::
           (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
-setSrcdoc self val = liftIO (js_setSrcdoc (self) (toJSString val))
+setSrcdoc self val = liftIO (js_setSrcdoc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"srcdoc\"]" js_getSrcdoc ::
         HTMLIFrameElement -> IO JSString
@@ -254,7 +281,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.srcdoc Mozilla HTMLIFrameElement.srcdoc documentation> 
 getSrcdoc ::
           (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
-getSrcdoc self = liftIO (fromJSString <$> (js_getSrcdoc (self)))
+getSrcdoc self = liftIO (fromJSString <$> (js_getSrcdoc self))
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: HTMLIFrameElement -> JSString -> IO ()
@@ -262,7 +289,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.width Mozilla HTMLIFrameElement.width documentation> 
 setWidth ::
          (MonadIO m, ToJSString val) => HTMLIFrameElement -> val -> m ()
-setWidth self val = liftIO (js_setWidth (self) (toJSString val))
+setWidth self val = liftIO (js_setWidth self (toJSString val))
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLIFrameElement -> IO JSString
@@ -270,53 +297,19 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.width Mozilla HTMLIFrameElement.width documentation> 
 getWidth ::
          (MonadIO m, FromJSString result) => HTMLIFrameElement -> m result
-getWidth self = liftIO (fromJSString <$> (js_getWidth (self)))
+getWidth self = liftIO (fromJSString <$> (js_getWidth self))
  
 foreign import javascript unsafe "$1[\"contentDocument\"]"
-        js_getContentDocument ::
-        HTMLIFrameElement -> IO (Nullable Document)
+        js_getContentDocument :: HTMLIFrameElement -> IO Document
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.contentDocument Mozilla HTMLIFrameElement.contentDocument documentation> 
 getContentDocument ::
-                   (MonadIO m) => HTMLIFrameElement -> m (Maybe Document)
-getContentDocument self
-  = liftIO (nullableToMaybe <$> (js_getContentDocument (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.contentDocument Mozilla HTMLIFrameElement.contentDocument documentation> 
-getContentDocumentUnsafe ::
-                         (MonadIO m, HasCallStack) => HTMLIFrameElement -> m Document
-getContentDocumentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getContentDocument (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.contentDocument Mozilla HTMLIFrameElement.contentDocument documentation> 
-getContentDocumentUnchecked ::
-                            (MonadIO m) => HTMLIFrameElement -> m Document
-getContentDocumentUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getContentDocument (self)))
+                   (MonadIO m) => HTMLIFrameElement -> m Document
+getContentDocument self = liftIO (js_getContentDocument self)
  
 foreign import javascript unsafe "$1[\"contentWindow\"]"
-        js_getContentWindow :: HTMLIFrameElement -> IO (Nullable Window)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.contentWindow Mozilla HTMLIFrameElement.contentWindow documentation> 
-getContentWindow ::
-                 (MonadIO m) => HTMLIFrameElement -> m (Maybe Window)
-getContentWindow self
-  = liftIO (nullableToMaybe <$> (js_getContentWindow (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.contentWindow Mozilla HTMLIFrameElement.contentWindow documentation> 
-getContentWindowUnsafe ::
-                       (MonadIO m, HasCallStack) => HTMLIFrameElement -> m Window
-getContentWindowUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getContentWindow (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getContentWindow :: HTMLIFrameElement -> IO Window
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement.contentWindow Mozilla HTMLIFrameElement.contentWindow documentation> 
-getContentWindowUnchecked ::
-                          (MonadIO m) => HTMLIFrameElement -> m Window
-getContentWindowUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getContentWindow (self)))
+getContentWindow :: (MonadIO m) => HTMLIFrameElement -> m Window
+getContentWindow self = liftIO (js_getContentWindow self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLImageElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLImageElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLImageElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLImageElement.hs
@@ -6,26 +6,28 @@
 module GHCJS.DOM.JSFFI.Generated.HTMLImageElement
        (js_setName, setName, js_getName, getName, js_setAlign, setAlign,
         js_getAlign, getAlign, js_setAlt, setAlt, js_getAlt, getAlt,
-        js_setBorder, setBorder, js_getBorder, getBorder,
-        js_setCrossOrigin, setCrossOrigin, js_getCrossOrigin,
-        getCrossOrigin, js_setHeight, setHeight, js_getHeight, getHeight,
-        js_setHspace, setHspace, js_getHspace, getHspace, js_setIsMap,
-        setIsMap, js_getIsMap, getIsMap, js_setLongDesc, setLongDesc,
-        js_getLongDesc, getLongDesc, js_setSrc, setSrc, js_getSrc, getSrc,
-        js_setSrcset, setSrcset, js_getSrcset, getSrcset, js_setSizes,
-        setSizes, js_getSizes, getSizes, js_getCurrentSrc, getCurrentSrc,
-        js_setUseMap, setUseMap, js_getUseMap, getUseMap, js_setVspace,
-        setVspace, js_getVspace, getVspace, js_setWidth, setWidth,
-        js_getWidth, getWidth, js_getComplete, getComplete, js_setLowsrc,
-        setLowsrc, js_getLowsrc, getLowsrc, js_getNaturalHeight,
-        getNaturalHeight, js_getNaturalWidth, getNaturalWidth, js_getX,
-        getX, js_getY, getY, HTMLImageElement(..), gTypeHTMLImageElement)
+        js_setBorder, setBorder, js_getBorder, getBorder, getBorderUnsafe,
+        getBorderUnchecked, js_setCrossOrigin, setCrossOrigin,
+        js_getCrossOrigin, getCrossOrigin, getCrossOriginUnsafe,
+        getCrossOriginUnchecked, js_setHeight, setHeight, js_getHeight,
+        getHeight, js_setHspace, setHspace, js_getHspace, getHspace,
+        js_setIsMap, setIsMap, js_getIsMap, getIsMap, js_setLongDesc,
+        setLongDesc, js_getLongDesc, getLongDesc, js_setSrc, setSrc,
+        js_getSrc, getSrc, js_setSrcset, setSrcset, js_getSrcset,
+        getSrcset, js_setSizes, setSizes, js_getSizes, getSizes,
+        js_getCurrentSrc, getCurrentSrc, js_setUseMap, setUseMap,
+        js_getUseMap, getUseMap, js_setVspace, setVspace, js_getVspace,
+        getVspace, js_setWidth, setWidth, js_getWidth, getWidth,
+        js_getComplete, getComplete, js_setLowsrc, setLowsrc, js_getLowsrc,
+        getLowsrc, js_getNaturalHeight, getNaturalHeight,
+        js_getNaturalWidth, getNaturalWidth, js_getX, getX, js_getY, getY,
+        HTMLImageElement(..), gTypeHTMLImageElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -34,6 +36,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -45,7 +48,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.name Mozilla HTMLImageElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLImageElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLImageElement -> IO JSString
@@ -53,7 +56,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.name Mozilla HTMLImageElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLImageElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"align\"] = $2;" js_setAlign
         :: HTMLImageElement -> JSString -> IO ()
@@ -61,7 +64,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.align Mozilla HTMLImageElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLImageElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLImageElement -> IO JSString
@@ -69,7 +72,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.align Mozilla HTMLImageElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLImageElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"alt\"] = $2;" js_setAlt ::
         HTMLImageElement -> JSString -> IO ()
@@ -77,7 +80,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.alt Mozilla HTMLImageElement.alt documentation> 
 setAlt ::
        (MonadIO m, ToJSString val) => HTMLImageElement -> val -> m ()
-setAlt self val = liftIO (js_setAlt (self) (toJSString val))
+setAlt self val = liftIO (js_setAlt self (toJSString val))
  
 foreign import javascript unsafe "$1[\"alt\"]" js_getAlt ::
         HTMLImageElement -> IO JSString
@@ -85,83 +88,119 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.alt Mozilla HTMLImageElement.alt documentation> 
 getAlt ::
        (MonadIO m, FromJSString result) => HTMLImageElement -> m result
-getAlt self = liftIO (fromJSString <$> (js_getAlt (self)))
+getAlt self = liftIO (fromJSString <$> (js_getAlt self))
  
 foreign import javascript unsafe "$1[\"border\"] = $2;"
-        js_setBorder :: HTMLImageElement -> JSString -> IO ()
+        js_setBorder :: HTMLImageElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.border Mozilla HTMLImageElement.border documentation> 
 setBorder ::
-          (MonadIO m, ToJSString val) => HTMLImageElement -> val -> m ()
-setBorder self val = liftIO (js_setBorder (self) (toJSString val))
+          (MonadIO m, ToJSString val) =>
+            HTMLImageElement -> Maybe val -> m ()
+setBorder self val
+  = liftIO (js_setBorder self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"border\"]" js_getBorder ::
-        HTMLImageElement -> IO JSString
+        HTMLImageElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.border Mozilla HTMLImageElement.border documentation> 
 getBorder ::
-          (MonadIO m, FromJSString result) => HTMLImageElement -> m result
-getBorder self = liftIO (fromJSString <$> (js_getBorder (self)))
+          (MonadIO m, FromJSString result) =>
+            HTMLImageElement -> m (Maybe result)
+getBorder self = liftIO (fromMaybeJSString <$> (js_getBorder self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.border Mozilla HTMLImageElement.border documentation> 
+getBorderUnsafe ::
+                (MonadIO m, HasCallStack, FromJSString result) =>
+                  HTMLImageElement -> m result
+getBorderUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getBorder self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.border Mozilla HTMLImageElement.border documentation> 
+getBorderUnchecked ::
+                   (MonadIO m, FromJSString result) => HTMLImageElement -> m result
+getBorderUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getBorder self))
  
 foreign import javascript unsafe "$1[\"crossOrigin\"] = $2;"
-        js_setCrossOrigin :: HTMLImageElement -> JSString -> IO ()
+        js_setCrossOrigin :: HTMLImageElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.crossOrigin Mozilla HTMLImageElement.crossOrigin documentation> 
 setCrossOrigin ::
-               (MonadIO m, ToJSString val) => HTMLImageElement -> val -> m ()
+               (MonadIO m, ToJSString val) =>
+                 HTMLImageElement -> Maybe val -> m ()
 setCrossOrigin self val
-  = liftIO (js_setCrossOrigin (self) (toJSString val))
+  = liftIO (js_setCrossOrigin self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"crossOrigin\"]"
-        js_getCrossOrigin :: HTMLImageElement -> IO JSString
+        js_getCrossOrigin :: HTMLImageElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.crossOrigin Mozilla HTMLImageElement.crossOrigin documentation> 
 getCrossOrigin ::
-               (MonadIO m, FromJSString result) => HTMLImageElement -> m result
+               (MonadIO m, FromJSString result) =>
+                 HTMLImageElement -> m (Maybe result)
 getCrossOrigin self
-  = liftIO (fromJSString <$> (js_getCrossOrigin (self)))
+  = liftIO (fromMaybeJSString <$> (js_getCrossOrigin self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.crossOrigin Mozilla HTMLImageElement.crossOrigin documentation> 
+getCrossOriginUnsafe ::
+                     (MonadIO m, HasCallStack, FromJSString result) =>
+                       HTMLImageElement -> m result
+getCrossOriginUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getCrossOrigin self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.crossOrigin Mozilla HTMLImageElement.crossOrigin documentation> 
+getCrossOriginUnchecked ::
+                        (MonadIO m, FromJSString result) => HTMLImageElement -> m result
+getCrossOriginUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_getCrossOrigin self))
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
-        js_setHeight :: HTMLImageElement -> Int -> IO ()
+        js_setHeight :: HTMLImageElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.height Mozilla HTMLImageElement.height documentation> 
-setHeight :: (MonadIO m) => HTMLImageElement -> Int -> m ()
-setHeight self val = liftIO (js_setHeight (self) val)
+setHeight :: (MonadIO m) => HTMLImageElement -> Word -> m ()
+setHeight self val = liftIO (js_setHeight self val)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        HTMLImageElement -> IO Int
+        HTMLImageElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.height Mozilla HTMLImageElement.height documentation> 
-getHeight :: (MonadIO m) => HTMLImageElement -> m Int
-getHeight self = liftIO (js_getHeight (self))
+getHeight :: (MonadIO m) => HTMLImageElement -> m Word
+getHeight self = liftIO (js_getHeight self)
  
 foreign import javascript unsafe "$1[\"hspace\"] = $2;"
-        js_setHspace :: HTMLImageElement -> Int -> IO ()
+        js_setHspace :: HTMLImageElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.hspace Mozilla HTMLImageElement.hspace documentation> 
-setHspace :: (MonadIO m) => HTMLImageElement -> Int -> m ()
-setHspace self val = liftIO (js_setHspace (self) val)
+setHspace :: (MonadIO m) => HTMLImageElement -> Word -> m ()
+setHspace self val = liftIO (js_setHspace self val)
  
 foreign import javascript unsafe "$1[\"hspace\"]" js_getHspace ::
-        HTMLImageElement -> IO Int
+        HTMLImageElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.hspace Mozilla HTMLImageElement.hspace documentation> 
-getHspace :: (MonadIO m) => HTMLImageElement -> m Int
-getHspace self = liftIO (js_getHspace (self))
+getHspace :: (MonadIO m) => HTMLImageElement -> m Word
+getHspace self = liftIO (js_getHspace self)
  
 foreign import javascript unsafe "$1[\"isMap\"] = $2;" js_setIsMap
         :: HTMLImageElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.isMap Mozilla HTMLImageElement.isMap documentation> 
 setIsMap :: (MonadIO m) => HTMLImageElement -> Bool -> m ()
-setIsMap self val = liftIO (js_setIsMap (self) val)
+setIsMap self val = liftIO (js_setIsMap self val)
  
 foreign import javascript unsafe "($1[\"isMap\"] ? 1 : 0)"
         js_getIsMap :: HTMLImageElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.isMap Mozilla HTMLImageElement.isMap documentation> 
 getIsMap :: (MonadIO m) => HTMLImageElement -> m Bool
-getIsMap self = liftIO (js_getIsMap (self))
+getIsMap self = liftIO (js_getIsMap self)
  
 foreign import javascript unsafe "$1[\"longDesc\"] = $2;"
         js_setLongDesc :: HTMLImageElement -> JSString -> IO ()
@@ -170,7 +209,7 @@
 setLongDesc ::
             (MonadIO m, ToJSString val) => HTMLImageElement -> val -> m ()
 setLongDesc self val
-  = liftIO (js_setLongDesc (self) (toJSString val))
+  = liftIO (js_setLongDesc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"longDesc\"]" js_getLongDesc
         :: HTMLImageElement -> IO JSString
@@ -178,8 +217,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.longDesc Mozilla HTMLImageElement.longDesc documentation> 
 getLongDesc ::
             (MonadIO m, FromJSString result) => HTMLImageElement -> m result
-getLongDesc self
-  = liftIO (fromJSString <$> (js_getLongDesc (self)))
+getLongDesc self = liftIO (fromJSString <$> (js_getLongDesc self))
  
 foreign import javascript unsafe "$1[\"src\"] = $2;" js_setSrc ::
         HTMLImageElement -> JSString -> IO ()
@@ -187,7 +225,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.src Mozilla HTMLImageElement.src documentation> 
 setSrc ::
        (MonadIO m, ToJSString val) => HTMLImageElement -> val -> m ()
-setSrc self val = liftIO (js_setSrc (self) (toJSString val))
+setSrc self val = liftIO (js_setSrc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"src\"]" js_getSrc ::
         HTMLImageElement -> IO JSString
@@ -195,7 +233,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.src Mozilla HTMLImageElement.src documentation> 
 getSrc ::
        (MonadIO m, FromJSString result) => HTMLImageElement -> m result
-getSrc self = liftIO (fromJSString <$> (js_getSrc (self)))
+getSrc self = liftIO (fromJSString <$> (js_getSrc self))
  
 foreign import javascript unsafe "$1[\"srcset\"] = $2;"
         js_setSrcset :: HTMLImageElement -> JSString -> IO ()
@@ -203,7 +241,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.srcset Mozilla HTMLImageElement.srcset documentation> 
 setSrcset ::
           (MonadIO m, ToJSString val) => HTMLImageElement -> val -> m ()
-setSrcset self val = liftIO (js_setSrcset (self) (toJSString val))
+setSrcset self val = liftIO (js_setSrcset self (toJSString val))
  
 foreign import javascript unsafe "$1[\"srcset\"]" js_getSrcset ::
         HTMLImageElement -> IO JSString
@@ -211,7 +249,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.srcset Mozilla HTMLImageElement.srcset documentation> 
 getSrcset ::
           (MonadIO m, FromJSString result) => HTMLImageElement -> m result
-getSrcset self = liftIO (fromJSString <$> (js_getSrcset (self)))
+getSrcset self = liftIO (fromJSString <$> (js_getSrcset self))
  
 foreign import javascript unsafe "$1[\"sizes\"] = $2;" js_setSizes
         :: HTMLImageElement -> JSString -> IO ()
@@ -219,7 +257,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.sizes Mozilla HTMLImageElement.sizes documentation> 
 setSizes ::
          (MonadIO m, ToJSString val) => HTMLImageElement -> val -> m ()
-setSizes self val = liftIO (js_setSizes (self) (toJSString val))
+setSizes self val = liftIO (js_setSizes self (toJSString val))
  
 foreign import javascript unsafe "$1[\"sizes\"]" js_getSizes ::
         HTMLImageElement -> IO JSString
@@ -227,7 +265,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.sizes Mozilla HTMLImageElement.sizes documentation> 
 getSizes ::
          (MonadIO m, FromJSString result) => HTMLImageElement -> m result
-getSizes self = liftIO (fromJSString <$> (js_getSizes (self)))
+getSizes self = liftIO (fromJSString <$> (js_getSizes self))
  
 foreign import javascript unsafe "$1[\"currentSrc\"]"
         js_getCurrentSrc :: HTMLImageElement -> IO JSString
@@ -236,7 +274,7 @@
 getCurrentSrc ::
               (MonadIO m, FromJSString result) => HTMLImageElement -> m result
 getCurrentSrc self
-  = liftIO (fromJSString <$> (js_getCurrentSrc (self)))
+  = liftIO (fromJSString <$> (js_getCurrentSrc self))
  
 foreign import javascript unsafe "$1[\"useMap\"] = $2;"
         js_setUseMap :: HTMLImageElement -> JSString -> IO ()
@@ -244,7 +282,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.useMap Mozilla HTMLImageElement.useMap documentation> 
 setUseMap ::
           (MonadIO m, ToJSString val) => HTMLImageElement -> val -> m ()
-setUseMap self val = liftIO (js_setUseMap (self) (toJSString val))
+setUseMap self val = liftIO (js_setUseMap self (toJSString val))
  
 foreign import javascript unsafe "$1[\"useMap\"]" js_getUseMap ::
         HTMLImageElement -> IO JSString
@@ -252,42 +290,42 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.useMap Mozilla HTMLImageElement.useMap documentation> 
 getUseMap ::
           (MonadIO m, FromJSString result) => HTMLImageElement -> m result
-getUseMap self = liftIO (fromJSString <$> (js_getUseMap (self)))
+getUseMap self = liftIO (fromJSString <$> (js_getUseMap self))
  
 foreign import javascript unsafe "$1[\"vspace\"] = $2;"
-        js_setVspace :: HTMLImageElement -> Int -> IO ()
+        js_setVspace :: HTMLImageElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.vspace Mozilla HTMLImageElement.vspace documentation> 
-setVspace :: (MonadIO m) => HTMLImageElement -> Int -> m ()
-setVspace self val = liftIO (js_setVspace (self) val)
+setVspace :: (MonadIO m) => HTMLImageElement -> Word -> m ()
+setVspace self val = liftIO (js_setVspace self val)
  
 foreign import javascript unsafe "$1[\"vspace\"]" js_getVspace ::
-        HTMLImageElement -> IO Int
+        HTMLImageElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.vspace Mozilla HTMLImageElement.vspace documentation> 
-getVspace :: (MonadIO m) => HTMLImageElement -> m Int
-getVspace self = liftIO (js_getVspace (self))
+getVspace :: (MonadIO m) => HTMLImageElement -> m Word
+getVspace self = liftIO (js_getVspace self)
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
-        :: HTMLImageElement -> Int -> IO ()
+        :: HTMLImageElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.width Mozilla HTMLImageElement.width documentation> 
-setWidth :: (MonadIO m) => HTMLImageElement -> Int -> m ()
-setWidth self val = liftIO (js_setWidth (self) val)
+setWidth :: (MonadIO m) => HTMLImageElement -> Word -> m ()
+setWidth self val = liftIO (js_setWidth self val)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        HTMLImageElement -> IO Int
+        HTMLImageElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.width Mozilla HTMLImageElement.width documentation> 
-getWidth :: (MonadIO m) => HTMLImageElement -> m Int
-getWidth self = liftIO (js_getWidth (self))
+getWidth :: (MonadIO m) => HTMLImageElement -> m Word
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "($1[\"complete\"] ? 1 : 0)"
         js_getComplete :: HTMLImageElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.complete Mozilla HTMLImageElement.complete documentation> 
 getComplete :: (MonadIO m) => HTMLImageElement -> m Bool
-getComplete self = liftIO (js_getComplete (self))
+getComplete self = liftIO (js_getComplete self)
  
 foreign import javascript unsafe "$1[\"lowsrc\"] = $2;"
         js_setLowsrc :: HTMLImageElement -> JSString -> IO ()
@@ -295,7 +333,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.lowsrc Mozilla HTMLImageElement.lowsrc documentation> 
 setLowsrc ::
           (MonadIO m, ToJSString val) => HTMLImageElement -> val -> m ()
-setLowsrc self val = liftIO (js_setLowsrc (self) (toJSString val))
+setLowsrc self val = liftIO (js_setLowsrc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"lowsrc\"]" js_getLowsrc ::
         HTMLImageElement -> IO JSString
@@ -303,32 +341,32 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.lowsrc Mozilla HTMLImageElement.lowsrc documentation> 
 getLowsrc ::
           (MonadIO m, FromJSString result) => HTMLImageElement -> m result
-getLowsrc self = liftIO (fromJSString <$> (js_getLowsrc (self)))
+getLowsrc self = liftIO (fromJSString <$> (js_getLowsrc self))
  
 foreign import javascript unsafe "$1[\"naturalHeight\"]"
         js_getNaturalHeight :: HTMLImageElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.naturalHeight Mozilla HTMLImageElement.naturalHeight documentation> 
 getNaturalHeight :: (MonadIO m) => HTMLImageElement -> m Int
-getNaturalHeight self = liftIO (js_getNaturalHeight (self))
+getNaturalHeight self = liftIO (js_getNaturalHeight self)
  
 foreign import javascript unsafe "$1[\"naturalWidth\"]"
         js_getNaturalWidth :: HTMLImageElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.naturalWidth Mozilla HTMLImageElement.naturalWidth documentation> 
 getNaturalWidth :: (MonadIO m) => HTMLImageElement -> m Int
-getNaturalWidth self = liftIO (js_getNaturalWidth (self))
+getNaturalWidth self = liftIO (js_getNaturalWidth self)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         HTMLImageElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.x Mozilla HTMLImageElement.x documentation> 
 getX :: (MonadIO m) => HTMLImageElement -> m Int
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         HTMLImageElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.y Mozilla HTMLImageElement.y documentation> 
 getY :: (MonadIO m) => HTMLImageElement -> m Int
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLInputElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLInputElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLInputElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLInputElement.hs
@@ -5,63 +5,56 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLInputElement
        (js_stepUp, stepUp, js_stepDown, stepDown, js_checkValidity,
-        checkValidity, checkValidity_, js_setCustomValidity,
-        setCustomValidity, js_select, select, js_setRangeText,
-        setRangeText, js_setRangeText4, setRangeText4,
-        js_setSelectionRange, setSelectionRange, js_setAccept, setAccept,
-        js_getAccept, getAccept, js_setAlt, setAlt, js_getAlt, getAlt,
-        js_setAutocomplete, setAutocomplete, js_getAutocomplete,
-        getAutocomplete, js_setAutofocus, setAutofocus, js_getAutofocus,
-        getAutofocus, js_setDefaultChecked, setDefaultChecked,
-        js_getDefaultChecked, getDefaultChecked, js_setChecked, setChecked,
-        js_getChecked, getChecked, js_setDirName, setDirName,
-        js_getDirName, getDirName, js_setDisabled, setDisabled,
-        js_getDisabled, getDisabled, js_getForm, getForm, getFormUnsafe,
-        getFormUnchecked, js_setFiles, setFiles, js_getFiles, getFiles,
+        checkValidity, checkValidity_, js_reportValidity, reportValidity,
+        reportValidity_, js_setCustomValidity, setCustomValidity,
+        js_select, select, js_setRangeText, setRangeText, js_setRangeText4,
+        setRangeText4, js_setSelectionRange, setSelectionRange,
+        js_setAccept, setAccept, js_getAccept, getAccept, js_setAlt,
+        setAlt, js_getAlt, getAlt, js_setAutocomplete, setAutocomplete,
+        js_getAutocomplete, getAutocomplete, js_setAutofocus, setAutofocus,
+        js_getAutofocus, getAutofocus, js_setDefaultChecked,
+        setDefaultChecked, js_getDefaultChecked, getDefaultChecked,
+        js_setChecked, setChecked, js_getChecked, getChecked,
+        js_setDirName, setDirName, js_getDirName, getDirName,
+        js_setDisabled, setDisabled, js_getDisabled, getDisabled,
+        js_getForm, getForm, js_setFiles, setFiles, js_getFiles, getFiles,
         getFilesUnsafe, getFilesUnchecked, js_setFormAction, setFormAction,
         js_getFormAction, getFormAction, js_setFormEnctype, setFormEnctype,
-        js_getFormEnctype, getFormEnctype, getFormEnctypeUnsafe,
-        getFormEnctypeUnchecked, js_setFormMethod, setFormMethod,
-        js_getFormMethod, getFormMethod, getFormMethodUnsafe,
-        getFormMethodUnchecked, js_setFormNoValidate, setFormNoValidate,
-        js_getFormNoValidate, getFormNoValidate, js_setFormTarget,
-        setFormTarget, js_getFormTarget, getFormTarget, js_setHeight,
-        setHeight, js_getHeight, getHeight, js_setIndeterminate,
-        setIndeterminate, js_getIndeterminate, getIndeterminate,
-        js_getList, getList, getListUnsafe, getListUnchecked, js_setMax,
-        setMax, js_getMax, getMax, js_setMaxLength, setMaxLength,
-        js_getMaxLength, getMaxLength, js_setMin, setMin, js_getMin,
-        getMin, js_setMultiple, setMultiple, js_getMultiple, getMultiple,
-        js_setName, setName, js_getName, getName, js_setPattern,
-        setPattern, js_getPattern, getPattern, js_setPlaceholder,
-        setPlaceholder, js_getPlaceholder, getPlaceholder, js_setReadOnly,
-        setReadOnly, js_getReadOnly, getReadOnly, js_setRequired,
-        setRequired, js_getRequired, getRequired, js_setSize, setSize,
-        js_getSize, getSize, js_setSrc, setSrc, js_getSrc, getSrc,
-        js_setStep, setStep, js_getStep, getStep, js_setType, setType,
-        js_getType, getType, js_setDefaultValue, setDefaultValue,
-        js_getDefaultValue, getDefaultValue, getDefaultValueUnsafe,
-        getDefaultValueUnchecked, js_setValue, setValue, js_getValue,
-        getValue, getValueUnsafe, getValueUnchecked, js_setValueAsDate,
+        js_getFormEnctype, getFormEnctype, js_setFormMethod, setFormMethod,
+        js_getFormMethod, getFormMethod, js_setFormNoValidate,
+        setFormNoValidate, js_getFormNoValidate, getFormNoValidate,
+        js_setFormTarget, setFormTarget, js_getFormTarget, getFormTarget,
+        js_setHeight, setHeight, js_getHeight, getHeight,
+        js_setIndeterminate, setIndeterminate, js_getIndeterminate,
+        getIndeterminate, js_getList, getList, js_setMax, setMax,
+        js_getMax, getMax, js_setMinLength, setMinLength, js_getMinLength,
+        getMinLength, js_setMaxLength, setMaxLength, js_getMaxLength,
+        getMaxLength, js_setMin, setMin, js_getMin, getMin, js_setMultiple,
+        setMultiple, js_getMultiple, getMultiple, js_setName, setName,
+        js_getName, getName, js_setPattern, setPattern, js_getPattern,
+        getPattern, js_setPlaceholder, setPlaceholder, js_getPlaceholder,
+        getPlaceholder, js_setReadOnly, setReadOnly, js_getReadOnly,
+        getReadOnly, js_setRequired, setRequired, js_getRequired,
+        getRequired, js_setSize, setSize, js_getSize, getSize, js_setSrc,
+        setSrc, js_getSrc, getSrc, js_setStep, setStep, js_getStep,
+        getStep, js_setType, setType, js_getType, getType,
+        js_setDefaultValue, setDefaultValue, js_getDefaultValue,
+        getDefaultValue, js_setValue, setValue, js_getValue, getValue,
+        getValueUnsafe, getValueUnchecked, js_setValueAsDate,
         setValueAsDate, js_getValueAsDate, getValueAsDate,
         getValueAsDateUnsafe, getValueAsDateUnchecked, js_setValueAsNumber,
         setValueAsNumber, js_getValueAsNumber, getValueAsNumber,
         js_setWidth, setWidth, js_getWidth, getWidth, js_getWillValidate,
-        getWillValidate, js_getValidity, getValidity, getValidityUnsafe,
-        getValidityUnchecked, js_getValidationMessage,
-        getValidationMessage, js_getLabels, getLabels, getLabelsUnsafe,
-        getLabelsUnchecked, js_setSelectionStart, setSelectionStart,
+        getWillValidate, js_getValidity, getValidity,
+        js_getValidationMessage, getValidationMessage, js_getLabels,
+        getLabels, js_setSelectionStart, setSelectionStart,
         js_getSelectionStart, getSelectionStart, js_setSelectionEnd,
         setSelectionEnd, js_getSelectionEnd, getSelectionEnd,
         js_setSelectionDirection, setSelectionDirection,
         js_getSelectionDirection, getSelectionDirection, js_setAlign,
         setAlign, js_getAlign, getAlign, js_setUseMap, setUseMap,
         js_getUseMap, getUseMap, js_setIncremental, setIncremental,
-        js_getIncremental, getIncremental, js_setAutocorrect,
-        setAutocorrect, js_getAutocorrect, getAutocorrect,
-        js_setAutocapitalize, setAutocapitalize, js_getAutocapitalize,
-        getAutocapitalize, getAutocapitalizeUnsafe,
-        getAutocapitalizeUnchecked, js_setCapture, setCapture,
+        js_getIncremental, getIncremental, js_setCapture, setCapture,
         js_getCapture, getCapture, HTMLInputElement(..),
         gTypeHTMLInputElement)
        where
@@ -69,7 +62,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -78,24 +71,25 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"stepUp\"]($2)" js_stepUp ::
-        HTMLInputElement -> Int -> IO ()
+        HTMLInputElement -> Optional Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.stepUp Mozilla HTMLInputElement.stepUp documentation> 
-stepUp :: (MonadIO m) => HTMLInputElement -> Int -> m ()
-stepUp self n = liftIO (js_stepUp (self) n)
+stepUp :: (MonadIO m) => HTMLInputElement -> Maybe Int -> m ()
+stepUp self n = liftIO (js_stepUp self (maybeToOptional n))
  
 foreign import javascript unsafe "$1[\"stepDown\"]($2)" js_stepDown
-        :: HTMLInputElement -> Int -> IO ()
+        :: HTMLInputElement -> Optional Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.stepDown Mozilla HTMLInputElement.stepDown documentation> 
-stepDown :: (MonadIO m) => HTMLInputElement -> Int -> m ()
-stepDown self n = liftIO (js_stepDown (self) n)
+stepDown :: (MonadIO m) => HTMLInputElement -> Maybe Int -> m ()
+stepDown self n = liftIO (js_stepDown self (maybeToOptional n))
  
 foreign import javascript unsafe
         "($1[\"checkValidity\"]() ? 1 : 0)" js_checkValidity ::
@@ -103,29 +97,39 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.checkValidity Mozilla HTMLInputElement.checkValidity documentation> 
 checkValidity :: (MonadIO m) => HTMLInputElement -> m Bool
-checkValidity self = liftIO (js_checkValidity (self))
+checkValidity self = liftIO (js_checkValidity self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.checkValidity Mozilla HTMLInputElement.checkValidity documentation> 
 checkValidity_ :: (MonadIO m) => HTMLInputElement -> m ()
-checkValidity_ self = liftIO (void (js_checkValidity (self)))
+checkValidity_ self = liftIO (void (js_checkValidity self))
  
+foreign import javascript unsafe
+        "($1[\"reportValidity\"]() ? 1 : 0)" js_reportValidity ::
+        HTMLInputElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.reportValidity Mozilla HTMLInputElement.reportValidity documentation> 
+reportValidity :: (MonadIO m) => HTMLInputElement -> m Bool
+reportValidity self = liftIO (js_reportValidity self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.reportValidity Mozilla HTMLInputElement.reportValidity documentation> 
+reportValidity_ :: (MonadIO m) => HTMLInputElement -> m ()
+reportValidity_ self = liftIO (void (js_reportValidity self))
+ 
 foreign import javascript unsafe "$1[\"setCustomValidity\"]($2)"
-        js_setCustomValidity ::
-        HTMLInputElement -> Nullable JSString -> IO ()
+        js_setCustomValidity :: HTMLInputElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.setCustomValidity Mozilla HTMLInputElement.setCustomValidity documentation> 
 setCustomValidity ::
-                  (MonadIO m, ToJSString error) =>
-                    HTMLInputElement -> Maybe error -> m ()
+                  (MonadIO m, ToJSString error) => HTMLInputElement -> error -> m ()
 setCustomValidity self error
-  = liftIO (js_setCustomValidity (self) (toMaybeJSString error))
+  = liftIO (js_setCustomValidity self (toJSString error))
  
 foreign import javascript unsafe "$1[\"select\"]()" js_select ::
         HTMLInputElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.select Mozilla HTMLInputElement.select documentation> 
 select :: (MonadIO m) => HTMLInputElement -> m ()
-select self = liftIO (js_select (self))
+select self = liftIO (js_select self)
  
 foreign import javascript unsafe "$1[\"setRangeText\"]($2)"
         js_setRangeText :: HTMLInputElement -> JSString -> IO ()
@@ -135,33 +139,35 @@
              (MonadIO m, ToJSString replacement) =>
                HTMLInputElement -> replacement -> m ()
 setRangeText self replacement
-  = liftIO (js_setRangeText (self) (toJSString replacement))
+  = liftIO (js_setRangeText self (toJSString replacement))
  
 foreign import javascript unsafe
         "$1[\"setRangeText\"]($2, $3, $4,\n$5)" js_setRangeText4 ::
-        HTMLInputElement -> JSString -> Word -> Word -> JSString -> IO ()
+        HTMLInputElement ->
+          JSString -> Word -> Word -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.setRangeText Mozilla HTMLInputElement.setRangeText documentation> 
 setRangeText4 ::
               (MonadIO m, ToJSString replacement, ToJSString selectionMode) =>
                 HTMLInputElement ->
-                  replacement -> Word -> Word -> selectionMode -> m ()
+                  replacement -> Word -> Word -> Maybe selectionMode -> m ()
 setRangeText4 self replacement start end selectionMode
   = liftIO
-      (js_setRangeText4 (self) (toJSString replacement) start end
-         (toJSString selectionMode))
+      (js_setRangeText4 self (toJSString replacement) start end
+         (toOptionalJSString selectionMode))
  
 foreign import javascript unsafe
         "$1[\"setSelectionRange\"]($2, $3,\n$4)" js_setSelectionRange ::
-        HTMLInputElement -> Int -> Int -> JSString -> IO ()
+        HTMLInputElement -> Int -> Int -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.setSelectionRange Mozilla HTMLInputElement.setSelectionRange documentation> 
 setSelectionRange ::
                   (MonadIO m, ToJSString direction) =>
-                    HTMLInputElement -> Int -> Int -> direction -> m ()
+                    HTMLInputElement -> Int -> Int -> Maybe direction -> m ()
 setSelectionRange self start end direction
   = liftIO
-      (js_setSelectionRange (self) start end (toJSString direction))
+      (js_setSelectionRange self start end
+         (toOptionalJSString direction))
  
 foreign import javascript unsafe "$1[\"accept\"] = $2;"
         js_setAccept :: HTMLInputElement -> JSString -> IO ()
@@ -169,7 +175,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.accept Mozilla HTMLInputElement.accept documentation> 
 setAccept ::
           (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setAccept self val = liftIO (js_setAccept (self) (toJSString val))
+setAccept self val = liftIO (js_setAccept self (toJSString val))
  
 foreign import javascript unsafe "$1[\"accept\"]" js_getAccept ::
         HTMLInputElement -> IO JSString
@@ -177,7 +183,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.accept Mozilla HTMLInputElement.accept documentation> 
 getAccept ::
           (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getAccept self = liftIO (fromJSString <$> (js_getAccept (self)))
+getAccept self = liftIO (fromJSString <$> (js_getAccept self))
  
 foreign import javascript unsafe "$1[\"alt\"] = $2;" js_setAlt ::
         HTMLInputElement -> JSString -> IO ()
@@ -185,7 +191,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.alt Mozilla HTMLInputElement.alt documentation> 
 setAlt ::
        (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setAlt self val = liftIO (js_setAlt (self) (toJSString val))
+setAlt self val = liftIO (js_setAlt self (toJSString val))
  
 foreign import javascript unsafe "$1[\"alt\"]" js_getAlt ::
         HTMLInputElement -> IO JSString
@@ -193,7 +199,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.alt Mozilla HTMLInputElement.alt documentation> 
 getAlt ::
        (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getAlt self = liftIO (fromJSString <$> (js_getAlt (self)))
+getAlt self = liftIO (fromJSString <$> (js_getAlt self))
  
 foreign import javascript unsafe "$1[\"autocomplete\"] = $2;"
         js_setAutocomplete :: HTMLInputElement -> JSString -> IO ()
@@ -202,7 +208,7 @@
 setAutocomplete ::
                 (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
 setAutocomplete self val
-  = liftIO (js_setAutocomplete (self) (toJSString val))
+  = liftIO (js_setAutocomplete self (toJSString val))
  
 foreign import javascript unsafe "$1[\"autocomplete\"]"
         js_getAutocomplete :: HTMLInputElement -> IO JSString
@@ -211,21 +217,21 @@
 getAutocomplete ::
                 (MonadIO m, FromJSString result) => HTMLInputElement -> m result
 getAutocomplete self
-  = liftIO (fromJSString <$> (js_getAutocomplete (self)))
+  = liftIO (fromJSString <$> (js_getAutocomplete self))
  
 foreign import javascript unsafe "$1[\"autofocus\"] = $2;"
         js_setAutofocus :: HTMLInputElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.autofocus Mozilla HTMLInputElement.autofocus documentation> 
 setAutofocus :: (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setAutofocus self val = liftIO (js_setAutofocus (self) val)
+setAutofocus self val = liftIO (js_setAutofocus self val)
  
 foreign import javascript unsafe "($1[\"autofocus\"] ? 1 : 0)"
         js_getAutofocus :: HTMLInputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.autofocus Mozilla HTMLInputElement.autofocus documentation> 
 getAutofocus :: (MonadIO m) => HTMLInputElement -> m Bool
-getAutofocus self = liftIO (js_getAutofocus (self))
+getAutofocus self = liftIO (js_getAutofocus self)
  
 foreign import javascript unsafe "$1[\"defaultChecked\"] = $2;"
         js_setDefaultChecked :: HTMLInputElement -> Bool -> IO ()
@@ -233,29 +239,28 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.defaultChecked Mozilla HTMLInputElement.defaultChecked documentation> 
 setDefaultChecked ::
                   (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setDefaultChecked self val
-  = liftIO (js_setDefaultChecked (self) val)
+setDefaultChecked self val = liftIO (js_setDefaultChecked self val)
  
 foreign import javascript unsafe "($1[\"defaultChecked\"] ? 1 : 0)"
         js_getDefaultChecked :: HTMLInputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.defaultChecked Mozilla HTMLInputElement.defaultChecked documentation> 
 getDefaultChecked :: (MonadIO m) => HTMLInputElement -> m Bool
-getDefaultChecked self = liftIO (js_getDefaultChecked (self))
+getDefaultChecked self = liftIO (js_getDefaultChecked self)
  
 foreign import javascript unsafe "$1[\"checked\"] = $2;"
         js_setChecked :: HTMLInputElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.checked Mozilla HTMLInputElement.checked documentation> 
 setChecked :: (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setChecked self val = liftIO (js_setChecked (self) val)
+setChecked self val = liftIO (js_setChecked self val)
  
 foreign import javascript unsafe "($1[\"checked\"] ? 1 : 0)"
         js_getChecked :: HTMLInputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.checked Mozilla HTMLInputElement.checked documentation> 
 getChecked :: (MonadIO m) => HTMLInputElement -> m Bool
-getChecked self = liftIO (js_getChecked (self))
+getChecked self = liftIO (js_getChecked self)
  
 foreign import javascript unsafe "$1[\"dirName\"] = $2;"
         js_setDirName :: HTMLInputElement -> JSString -> IO ()
@@ -263,8 +268,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.dirName Mozilla HTMLInputElement.dirName documentation> 
 setDirName ::
            (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setDirName self val
-  = liftIO (js_setDirName (self) (toJSString val))
+setDirName self val = liftIO (js_setDirName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"dirName\"]" js_getDirName ::
         HTMLInputElement -> IO JSString
@@ -272,72 +276,56 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.dirName Mozilla HTMLInputElement.dirName documentation> 
 getDirName ::
            (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getDirName self = liftIO (fromJSString <$> (js_getDirName (self)))
+getDirName self = liftIO (fromJSString <$> (js_getDirName self))
  
 foreign import javascript unsafe "$1[\"disabled\"] = $2;"
         js_setDisabled :: HTMLInputElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.disabled Mozilla HTMLInputElement.disabled documentation> 
 setDisabled :: (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setDisabled self val = liftIO (js_setDisabled (self) val)
+setDisabled self val = liftIO (js_setDisabled self val)
  
 foreign import javascript unsafe "($1[\"disabled\"] ? 1 : 0)"
         js_getDisabled :: HTMLInputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.disabled Mozilla HTMLInputElement.disabled documentation> 
 getDisabled :: (MonadIO m) => HTMLInputElement -> m Bool
-getDisabled self = liftIO (js_getDisabled (self))
+getDisabled self = liftIO (js_getDisabled self)
  
 foreign import javascript unsafe "$1[\"form\"]" js_getForm ::
-        HTMLInputElement -> IO (Nullable HTMLFormElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.form Mozilla HTMLInputElement.form documentation> 
-getForm ::
-        (MonadIO m) => HTMLInputElement -> m (Maybe HTMLFormElement)
-getForm self = liftIO (nullableToMaybe <$> (js_getForm (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.form Mozilla HTMLInputElement.form documentation> 
-getFormUnsafe ::
-              (MonadIO m, HasCallStack) => HTMLInputElement -> m HTMLFormElement
-getFormUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getForm (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLInputElement -> IO HTMLFormElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.form Mozilla HTMLInputElement.form documentation> 
-getFormUnchecked ::
-                 (MonadIO m) => HTMLInputElement -> m HTMLFormElement
-getFormUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getForm (self)))
+getForm :: (MonadIO m) => HTMLInputElement -> m HTMLFormElement
+getForm self = liftIO (js_getForm self)
  
 foreign import javascript unsafe "$1[\"files\"] = $2;" js_setFiles
-        :: HTMLInputElement -> Nullable FileList -> IO ()
+        :: HTMLInputElement -> Optional FileList -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.files Mozilla HTMLInputElement.files documentation> 
 setFiles ::
          (MonadIO m) => HTMLInputElement -> Maybe FileList -> m ()
-setFiles self val
-  = liftIO (js_setFiles (self) (maybeToNullable val))
+setFiles self val = liftIO (js_setFiles self (maybeToOptional val))
  
 foreign import javascript unsafe "$1[\"files\"]" js_getFiles ::
         HTMLInputElement -> IO (Nullable FileList)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.files Mozilla HTMLInputElement.files documentation> 
 getFiles :: (MonadIO m) => HTMLInputElement -> m (Maybe FileList)
-getFiles self = liftIO (nullableToMaybe <$> (js_getFiles (self)))
+getFiles self = liftIO (nullableToMaybe <$> (js_getFiles self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.files Mozilla HTMLInputElement.files documentation> 
 getFilesUnsafe ::
                (MonadIO m, HasCallStack) => HTMLInputElement -> m FileList
 getFilesUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getFiles (self))) >>=
+      ((nullableToMaybe <$> (js_getFiles self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.files Mozilla HTMLInputElement.files documentation> 
 getFilesUnchecked :: (MonadIO m) => HTMLInputElement -> m FileList
 getFilesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFiles (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getFiles self))
  
 foreign import javascript unsafe "$1[\"formAction\"] = $2;"
         js_setFormAction :: HTMLInputElement -> JSString -> IO ()
@@ -346,7 +334,7 @@
 setFormAction ::
               (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
 setFormAction self val
-  = liftIO (js_setFormAction (self) (toJSString val))
+  = liftIO (js_setFormAction self (toJSString val))
  
 foreign import javascript unsafe "$1[\"formAction\"]"
         js_getFormAction :: HTMLInputElement -> IO JSString
@@ -355,79 +343,43 @@
 getFormAction ::
               (MonadIO m, FromJSString result) => HTMLInputElement -> m result
 getFormAction self
-  = liftIO (fromJSString <$> (js_getFormAction (self)))
+  = liftIO (fromJSString <$> (js_getFormAction self))
  
 foreign import javascript unsafe "$1[\"formEnctype\"] = $2;"
-        js_setFormEnctype :: HTMLInputElement -> Nullable JSString -> IO ()
+        js_setFormEnctype :: HTMLInputElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.formEnctype Mozilla HTMLInputElement.formEnctype documentation> 
 setFormEnctype ::
-               (MonadIO m, ToJSString val) =>
-                 HTMLInputElement -> Maybe val -> m ()
+               (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
 setFormEnctype self val
-  = liftIO (js_setFormEnctype (self) (toMaybeJSString val))
+  = liftIO (js_setFormEnctype self (toJSString val))
  
 foreign import javascript unsafe "$1[\"formEnctype\"]"
-        js_getFormEnctype :: HTMLInputElement -> IO (Nullable JSString)
+        js_getFormEnctype :: HTMLInputElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.formEnctype Mozilla HTMLInputElement.formEnctype documentation> 
 getFormEnctype ::
-               (MonadIO m, FromJSString result) =>
-                 HTMLInputElement -> m (Maybe result)
+               (MonadIO m, FromJSString result) => HTMLInputElement -> m result
 getFormEnctype self
-  = liftIO (fromMaybeJSString <$> (js_getFormEnctype (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.formEnctype Mozilla HTMLInputElement.formEnctype documentation> 
-getFormEnctypeUnsafe ::
-                     (MonadIO m, HasCallStack, FromJSString result) =>
-                       HTMLInputElement -> m result
-getFormEnctypeUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getFormEnctype (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.formEnctype Mozilla HTMLInputElement.formEnctype documentation> 
-getFormEnctypeUnchecked ::
-                        (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getFormEnctypeUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getFormEnctype (self)))
+  = liftIO (fromJSString <$> (js_getFormEnctype self))
  
 foreign import javascript unsafe "$1[\"formMethod\"] = $2;"
-        js_setFormMethod :: HTMLInputElement -> Nullable JSString -> IO ()
+        js_setFormMethod :: HTMLInputElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.formMethod Mozilla HTMLInputElement.formMethod documentation> 
 setFormMethod ::
-              (MonadIO m, ToJSString val) =>
-                HTMLInputElement -> Maybe val -> m ()
+              (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
 setFormMethod self val
-  = liftIO (js_setFormMethod (self) (toMaybeJSString val))
+  = liftIO (js_setFormMethod self (toJSString val))
  
 foreign import javascript unsafe "$1[\"formMethod\"]"
-        js_getFormMethod :: HTMLInputElement -> IO (Nullable JSString)
+        js_getFormMethod :: HTMLInputElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.formMethod Mozilla HTMLInputElement.formMethod documentation> 
 getFormMethod ::
-              (MonadIO m, FromJSString result) =>
-                HTMLInputElement -> m (Maybe result)
+              (MonadIO m, FromJSString result) => HTMLInputElement -> m result
 getFormMethod self
-  = liftIO (fromMaybeJSString <$> (js_getFormMethod (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.formMethod Mozilla HTMLInputElement.formMethod documentation> 
-getFormMethodUnsafe ::
-                    (MonadIO m, HasCallStack, FromJSString result) =>
-                      HTMLInputElement -> m result
-getFormMethodUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getFormMethod (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.formMethod Mozilla HTMLInputElement.formMethod documentation> 
-getFormMethodUnchecked ::
-                       (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getFormMethodUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getFormMethod (self)))
+  = liftIO (fromJSString <$> (js_getFormMethod self))
  
 foreign import javascript unsafe "$1[\"formNoValidate\"] = $2;"
         js_setFormNoValidate :: HTMLInputElement -> Bool -> IO ()
@@ -435,15 +387,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.formNoValidate Mozilla HTMLInputElement.formNoValidate documentation> 
 setFormNoValidate ::
                   (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setFormNoValidate self val
-  = liftIO (js_setFormNoValidate (self) val)
+setFormNoValidate self val = liftIO (js_setFormNoValidate self val)
  
 foreign import javascript unsafe "($1[\"formNoValidate\"] ? 1 : 0)"
         js_getFormNoValidate :: HTMLInputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.formNoValidate Mozilla HTMLInputElement.formNoValidate documentation> 
 getFormNoValidate :: (MonadIO m) => HTMLInputElement -> m Bool
-getFormNoValidate self = liftIO (js_getFormNoValidate (self))
+getFormNoValidate self = liftIO (js_getFormNoValidate self)
  
 foreign import javascript unsafe "$1[\"formTarget\"] = $2;"
         js_setFormTarget :: HTMLInputElement -> JSString -> IO ()
@@ -452,7 +403,7 @@
 setFormTarget ::
               (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
 setFormTarget self val
-  = liftIO (js_setFormTarget (self) (toJSString val))
+  = liftIO (js_setFormTarget self (toJSString val))
  
 foreign import javascript unsafe "$1[\"formTarget\"]"
         js_getFormTarget :: HTMLInputElement -> IO JSString
@@ -461,56 +412,42 @@
 getFormTarget ::
               (MonadIO m, FromJSString result) => HTMLInputElement -> m result
 getFormTarget self
-  = liftIO (fromJSString <$> (js_getFormTarget (self)))
+  = liftIO (fromJSString <$> (js_getFormTarget self))
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
         js_setHeight :: HTMLInputElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.height Mozilla HTMLInputElement.height documentation> 
 setHeight :: (MonadIO m) => HTMLInputElement -> Word -> m ()
-setHeight self val = liftIO (js_setHeight (self) val)
+setHeight self val = liftIO (js_setHeight self val)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
         HTMLInputElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.height Mozilla HTMLInputElement.height documentation> 
 getHeight :: (MonadIO m) => HTMLInputElement -> m Word
-getHeight self = liftIO (js_getHeight (self))
+getHeight self = liftIO (js_getHeight self)
  
 foreign import javascript unsafe "$1[\"indeterminate\"] = $2;"
         js_setIndeterminate :: HTMLInputElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.indeterminate Mozilla HTMLInputElement.indeterminate documentation> 
 setIndeterminate :: (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setIndeterminate self val = liftIO (js_setIndeterminate (self) val)
+setIndeterminate self val = liftIO (js_setIndeterminate self val)
  
 foreign import javascript unsafe "($1[\"indeterminate\"] ? 1 : 0)"
         js_getIndeterminate :: HTMLInputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.indeterminate Mozilla HTMLInputElement.indeterminate documentation> 
 getIndeterminate :: (MonadIO m) => HTMLInputElement -> m Bool
-getIndeterminate self = liftIO (js_getIndeterminate (self))
+getIndeterminate self = liftIO (js_getIndeterminate self)
  
 foreign import javascript unsafe "$1[\"list\"]" js_getList ::
-        HTMLInputElement -> IO (Nullable HTMLElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.list Mozilla HTMLInputElement.list documentation> 
-getList :: (MonadIO m) => HTMLInputElement -> m (Maybe HTMLElement)
-getList self = liftIO (nullableToMaybe <$> (js_getList (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.list Mozilla HTMLInputElement.list documentation> 
-getListUnsafe ::
-              (MonadIO m, HasCallStack) => HTMLInputElement -> m HTMLElement
-getListUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getList (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLInputElement -> IO HTMLElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.list Mozilla HTMLInputElement.list documentation> 
-getListUnchecked ::
-                 (MonadIO m) => HTMLInputElement -> m HTMLElement
-getListUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getList (self)))
+getList :: (MonadIO m) => HTMLInputElement -> m HTMLElement
+getList self = liftIO (js_getList self)
  
 foreign import javascript unsafe "$1[\"max\"] = $2;" js_setMax ::
         HTMLInputElement -> JSString -> IO ()
@@ -518,7 +455,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.max Mozilla HTMLInputElement.max documentation> 
 setMax ::
        (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setMax self val = liftIO (js_setMax (self) (toJSString val))
+setMax self val = liftIO (js_setMax self (toJSString val))
  
 foreign import javascript unsafe "$1[\"max\"]" js_getMax ::
         HTMLInputElement -> IO JSString
@@ -526,21 +463,35 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.max Mozilla HTMLInputElement.max documentation> 
 getMax ::
        (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getMax self = liftIO (fromJSString <$> (js_getMax (self)))
+getMax self = liftIO (fromJSString <$> (js_getMax self))
  
+foreign import javascript unsafe "$1[\"minLength\"] = $2;"
+        js_setMinLength :: HTMLInputElement -> Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.minLength Mozilla HTMLInputElement.minLength documentation> 
+setMinLength :: (MonadIO m) => HTMLInputElement -> Int -> m ()
+setMinLength self val = liftIO (js_setMinLength self val)
+ 
+foreign import javascript unsafe "$1[\"minLength\"]"
+        js_getMinLength :: HTMLInputElement -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.minLength Mozilla HTMLInputElement.minLength documentation> 
+getMinLength :: (MonadIO m) => HTMLInputElement -> m Int
+getMinLength self = liftIO (js_getMinLength self)
+ 
 foreign import javascript unsafe "$1[\"maxLength\"] = $2;"
         js_setMaxLength :: HTMLInputElement -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.maxLength Mozilla HTMLInputElement.maxLength documentation> 
 setMaxLength :: (MonadIO m) => HTMLInputElement -> Int -> m ()
-setMaxLength self val = liftIO (js_setMaxLength (self) val)
+setMaxLength self val = liftIO (js_setMaxLength self val)
  
 foreign import javascript unsafe "$1[\"maxLength\"]"
         js_getMaxLength :: HTMLInputElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.maxLength Mozilla HTMLInputElement.maxLength documentation> 
 getMaxLength :: (MonadIO m) => HTMLInputElement -> m Int
-getMaxLength self = liftIO (js_getMaxLength (self))
+getMaxLength self = liftIO (js_getMaxLength self)
  
 foreign import javascript unsafe "$1[\"min\"] = $2;" js_setMin ::
         HTMLInputElement -> JSString -> IO ()
@@ -548,7 +499,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.min Mozilla HTMLInputElement.min documentation> 
 setMin ::
        (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setMin self val = liftIO (js_setMin (self) (toJSString val))
+setMin self val = liftIO (js_setMin self (toJSString val))
  
 foreign import javascript unsafe "$1[\"min\"]" js_getMin ::
         HTMLInputElement -> IO JSString
@@ -556,21 +507,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.min Mozilla HTMLInputElement.min documentation> 
 getMin ::
        (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getMin self = liftIO (fromJSString <$> (js_getMin (self)))
+getMin self = liftIO (fromJSString <$> (js_getMin self))
  
 foreign import javascript unsafe "$1[\"multiple\"] = $2;"
         js_setMultiple :: HTMLInputElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.multiple Mozilla HTMLInputElement.multiple documentation> 
 setMultiple :: (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setMultiple self val = liftIO (js_setMultiple (self) val)
+setMultiple self val = liftIO (js_setMultiple self val)
  
 foreign import javascript unsafe "($1[\"multiple\"] ? 1 : 0)"
         js_getMultiple :: HTMLInputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.multiple Mozilla HTMLInputElement.multiple documentation> 
 getMultiple :: (MonadIO m) => HTMLInputElement -> m Bool
-getMultiple self = liftIO (js_getMultiple (self))
+getMultiple self = liftIO (js_getMultiple self)
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLInputElement -> JSString -> IO ()
@@ -578,7 +529,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.name Mozilla HTMLInputElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLInputElement -> IO JSString
@@ -586,7 +537,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.name Mozilla HTMLInputElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"pattern\"] = $2;"
         js_setPattern :: HTMLInputElement -> JSString -> IO ()
@@ -594,8 +545,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.pattern Mozilla HTMLInputElement.pattern documentation> 
 setPattern ::
            (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setPattern self val
-  = liftIO (js_setPattern (self) (toJSString val))
+setPattern self val = liftIO (js_setPattern self (toJSString val))
  
 foreign import javascript unsafe "$1[\"pattern\"]" js_getPattern ::
         HTMLInputElement -> IO JSString
@@ -603,7 +553,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.pattern Mozilla HTMLInputElement.pattern documentation> 
 getPattern ::
            (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getPattern self = liftIO (fromJSString <$> (js_getPattern (self)))
+getPattern self = liftIO (fromJSString <$> (js_getPattern self))
  
 foreign import javascript unsafe "$1[\"placeholder\"] = $2;"
         js_setPlaceholder :: HTMLInputElement -> JSString -> IO ()
@@ -612,7 +562,7 @@
 setPlaceholder ::
                (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
 setPlaceholder self val
-  = liftIO (js_setPlaceholder (self) (toJSString val))
+  = liftIO (js_setPlaceholder self (toJSString val))
  
 foreign import javascript unsafe "$1[\"placeholder\"]"
         js_getPlaceholder :: HTMLInputElement -> IO JSString
@@ -621,49 +571,49 @@
 getPlaceholder ::
                (MonadIO m, FromJSString result) => HTMLInputElement -> m result
 getPlaceholder self
-  = liftIO (fromJSString <$> (js_getPlaceholder (self)))
+  = liftIO (fromJSString <$> (js_getPlaceholder self))
  
 foreign import javascript unsafe "$1[\"readOnly\"] = $2;"
         js_setReadOnly :: HTMLInputElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.readOnly Mozilla HTMLInputElement.readOnly documentation> 
 setReadOnly :: (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setReadOnly self val = liftIO (js_setReadOnly (self) val)
+setReadOnly self val = liftIO (js_setReadOnly self val)
  
 foreign import javascript unsafe "($1[\"readOnly\"] ? 1 : 0)"
         js_getReadOnly :: HTMLInputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.readOnly Mozilla HTMLInputElement.readOnly documentation> 
 getReadOnly :: (MonadIO m) => HTMLInputElement -> m Bool
-getReadOnly self = liftIO (js_getReadOnly (self))
+getReadOnly self = liftIO (js_getReadOnly self)
  
 foreign import javascript unsafe "$1[\"required\"] = $2;"
         js_setRequired :: HTMLInputElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.required Mozilla HTMLInputElement.required documentation> 
 setRequired :: (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setRequired self val = liftIO (js_setRequired (self) val)
+setRequired self val = liftIO (js_setRequired self val)
  
 foreign import javascript unsafe "($1[\"required\"] ? 1 : 0)"
         js_getRequired :: HTMLInputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.required Mozilla HTMLInputElement.required documentation> 
 getRequired :: (MonadIO m) => HTMLInputElement -> m Bool
-getRequired self = liftIO (js_getRequired (self))
+getRequired self = liftIO (js_getRequired self)
  
 foreign import javascript unsafe "$1[\"size\"] = $2;" js_setSize ::
         HTMLInputElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.size Mozilla HTMLInputElement.size documentation> 
 setSize :: (MonadIO m) => HTMLInputElement -> Word -> m ()
-setSize self val = liftIO (js_setSize (self) val)
+setSize self val = liftIO (js_setSize self val)
  
 foreign import javascript unsafe "$1[\"size\"]" js_getSize ::
         HTMLInputElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.size Mozilla HTMLInputElement.size documentation> 
 getSize :: (MonadIO m) => HTMLInputElement -> m Word
-getSize self = liftIO (js_getSize (self))
+getSize self = liftIO (js_getSize self)
  
 foreign import javascript unsafe "$1[\"src\"] = $2;" js_setSrc ::
         HTMLInputElement -> JSString -> IO ()
@@ -671,7 +621,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.src Mozilla HTMLInputElement.src documentation> 
 setSrc ::
        (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setSrc self val = liftIO (js_setSrc (self) (toJSString val))
+setSrc self val = liftIO (js_setSrc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"src\"]" js_getSrc ::
         HTMLInputElement -> IO JSString
@@ -679,7 +629,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.src Mozilla HTMLInputElement.src documentation> 
 getSrc ::
        (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getSrc self = liftIO (fromJSString <$> (js_getSrc (self)))
+getSrc self = liftIO (fromJSString <$> (js_getSrc self))
  
 foreign import javascript unsafe "$1[\"step\"] = $2;" js_setStep ::
         HTMLInputElement -> JSString -> IO ()
@@ -687,7 +637,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.step Mozilla HTMLInputElement.step documentation> 
 setStep ::
         (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setStep self val = liftIO (js_setStep (self) (toJSString val))
+setStep self val = liftIO (js_setStep self (toJSString val))
  
 foreign import javascript unsafe "$1[\"step\"]" js_getStep ::
         HTMLInputElement -> IO JSString
@@ -695,7 +645,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.step Mozilla HTMLInputElement.step documentation> 
 getStep ::
         (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getStep self = liftIO (fromJSString <$> (js_getStep (self)))
+getStep self = liftIO (fromJSString <$> (js_getStep self))
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         HTMLInputElement -> JSString -> IO ()
@@ -703,7 +653,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.type Mozilla HTMLInputElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLInputElement -> IO JSString
@@ -711,54 +661,35 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.type Mozilla HTMLInputElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"defaultValue\"] = $2;"
-        js_setDefaultValue ::
-        HTMLInputElement -> Nullable JSString -> IO ()
+        js_setDefaultValue :: HTMLInputElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.defaultValue Mozilla HTMLInputElement.defaultValue documentation> 
 setDefaultValue ::
-                (MonadIO m, ToJSString val) =>
-                  HTMLInputElement -> Maybe val -> m ()
+                (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
 setDefaultValue self val
-  = liftIO (js_setDefaultValue (self) (toMaybeJSString val))
+  = liftIO (js_setDefaultValue self (toJSString val))
  
 foreign import javascript unsafe "$1[\"defaultValue\"]"
-        js_getDefaultValue :: HTMLInputElement -> IO (Nullable JSString)
+        js_getDefaultValue :: HTMLInputElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.defaultValue Mozilla HTMLInputElement.defaultValue documentation> 
 getDefaultValue ::
-                (MonadIO m, FromJSString result) =>
-                  HTMLInputElement -> m (Maybe result)
+                (MonadIO m, FromJSString result) => HTMLInputElement -> m result
 getDefaultValue self
-  = liftIO (fromMaybeJSString <$> (js_getDefaultValue (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.defaultValue Mozilla HTMLInputElement.defaultValue documentation> 
-getDefaultValueUnsafe ::
-                      (MonadIO m, HasCallStack, FromJSString result) =>
-                        HTMLInputElement -> m result
-getDefaultValueUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getDefaultValue (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.defaultValue Mozilla HTMLInputElement.defaultValue documentation> 
-getDefaultValueUnchecked ::
-                         (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getDefaultValueUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getDefaultValue (self)))
+  = liftIO (fromJSString <$> (js_getDefaultValue self))
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
-        :: HTMLInputElement -> Nullable JSString -> IO ()
+        :: HTMLInputElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.value Mozilla HTMLInputElement.value documentation> 
 setValue ::
          (MonadIO m, ToJSString val) =>
            HTMLInputElement -> Maybe val -> m ()
 setValue self val
-  = liftIO (js_setValue (self) (toMaybeJSString val))
+  = liftIO (js_setValue self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         HTMLInputElement -> IO (Nullable JSString)
@@ -767,7 +698,7 @@
 getValue ::
          (MonadIO m, FromJSString result) =>
            HTMLInputElement -> m (Maybe result)
-getValue self = liftIO (fromMaybeJSString <$> (js_getValue (self)))
+getValue self = liftIO (fromMaybeJSString <$> (js_getValue self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.value Mozilla HTMLInputElement.value documentation> 
 getValueUnsafe ::
@@ -775,24 +706,24 @@
                  HTMLInputElement -> m result
 getValueUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getValue (self))) >>=
+      ((fromMaybeJSString <$> (js_getValue self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.value Mozilla HTMLInputElement.value documentation> 
 getValueUnchecked ::
                   (MonadIO m, FromJSString result) => HTMLInputElement -> m result
 getValueUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getValue (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getValue self))
  
 foreign import javascript unsafe "$1[\"valueAsDate\"] = $2;"
-        js_setValueAsDate :: HTMLInputElement -> Nullable Date -> IO ()
+        js_setValueAsDate :: HTMLInputElement -> Optional Date -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.valueAsDate Mozilla HTMLInputElement.valueAsDate documentation> 
 setValueAsDate ::
                (MonadIO m, IsDate val) => HTMLInputElement -> Maybe val -> m ()
 setValueAsDate self val
   = liftIO
-      (js_setValueAsDate (self) (maybeToNullable (fmap toDate val)))
+      (js_setValueAsDate self (maybeToOptional (fmap toDate val)))
  
 foreign import javascript unsafe "$1[\"valueAsDate\"]"
         js_getValueAsDate :: HTMLInputElement -> IO (Nullable Date)
@@ -800,22 +731,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.valueAsDate Mozilla HTMLInputElement.valueAsDate documentation> 
 getValueAsDate :: (MonadIO m) => HTMLInputElement -> m (Maybe Date)
 getValueAsDate self
-  = liftIO (nullableToMaybe <$> (js_getValueAsDate (self)))
+  = liftIO (nullableToMaybe <$> (js_getValueAsDate self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.valueAsDate Mozilla HTMLInputElement.valueAsDate documentation> 
 getValueAsDateUnsafe ::
                      (MonadIO m, HasCallStack) => HTMLInputElement -> m Date
 getValueAsDateUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getValueAsDate (self))) >>=
+      ((nullableToMaybe <$> (js_getValueAsDate self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.valueAsDate Mozilla HTMLInputElement.valueAsDate documentation> 
 getValueAsDateUnchecked ::
                         (MonadIO m) => HTMLInputElement -> m Date
 getValueAsDateUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getValueAsDate (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getValueAsDate self))
  
 foreign import javascript unsafe "$1[\"valueAsNumber\"] = $2;"
         js_setValueAsNumber :: HTMLInputElement -> Double -> IO ()
@@ -823,58 +753,42 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.valueAsNumber Mozilla HTMLInputElement.valueAsNumber documentation> 
 setValueAsNumber ::
                  (MonadIO m) => HTMLInputElement -> Double -> m ()
-setValueAsNumber self val = liftIO (js_setValueAsNumber (self) val)
+setValueAsNumber self val = liftIO (js_setValueAsNumber self val)
  
 foreign import javascript unsafe "$1[\"valueAsNumber\"]"
         js_getValueAsNumber :: HTMLInputElement -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.valueAsNumber Mozilla HTMLInputElement.valueAsNumber documentation> 
 getValueAsNumber :: (MonadIO m) => HTMLInputElement -> m Double
-getValueAsNumber self = liftIO (js_getValueAsNumber (self))
+getValueAsNumber self = liftIO (js_getValueAsNumber self)
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: HTMLInputElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.width Mozilla HTMLInputElement.width documentation> 
 setWidth :: (MonadIO m) => HTMLInputElement -> Word -> m ()
-setWidth self val = liftIO (js_setWidth (self) val)
+setWidth self val = liftIO (js_setWidth self val)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLInputElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.width Mozilla HTMLInputElement.width documentation> 
 getWidth :: (MonadIO m) => HTMLInputElement -> m Word
-getWidth self = liftIO (js_getWidth (self))
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "($1[\"willValidate\"] ? 1 : 0)"
         js_getWillValidate :: HTMLInputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.willValidate Mozilla HTMLInputElement.willValidate documentation> 
 getWillValidate :: (MonadIO m) => HTMLInputElement -> m Bool
-getWillValidate self = liftIO (js_getWillValidate (self))
+getWillValidate self = liftIO (js_getWillValidate self)
  
 foreign import javascript unsafe "$1[\"validity\"]" js_getValidity
-        :: HTMLInputElement -> IO (Nullable ValidityState)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.validity Mozilla HTMLInputElement.validity documentation> 
-getValidity ::
-            (MonadIO m) => HTMLInputElement -> m (Maybe ValidityState)
-getValidity self
-  = liftIO (nullableToMaybe <$> (js_getValidity (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.validity Mozilla HTMLInputElement.validity documentation> 
-getValidityUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLInputElement -> m ValidityState
-getValidityUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getValidity (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: HTMLInputElement -> IO ValidityState
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.validity Mozilla HTMLInputElement.validity documentation> 
-getValidityUnchecked ::
-                     (MonadIO m) => HTMLInputElement -> m ValidityState
-getValidityUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getValidity (self)))
+getValidity :: (MonadIO m) => HTMLInputElement -> m ValidityState
+getValidity self = liftIO (js_getValidity self)
  
 foreign import javascript unsafe "$1[\"validationMessage\"]"
         js_getValidationMessage :: HTMLInputElement -> IO JSString
@@ -883,56 +797,42 @@
 getValidationMessage ::
                      (MonadIO m, FromJSString result) => HTMLInputElement -> m result
 getValidationMessage self
-  = liftIO (fromJSString <$> (js_getValidationMessage (self)))
+  = liftIO (fromJSString <$> (js_getValidationMessage self))
  
 foreign import javascript unsafe "$1[\"labels\"]" js_getLabels ::
-        HTMLInputElement -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.labels Mozilla HTMLInputElement.labels documentation> 
-getLabels :: (MonadIO m) => HTMLInputElement -> m (Maybe NodeList)
-getLabels self = liftIO (nullableToMaybe <$> (js_getLabels (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.labels Mozilla HTMLInputElement.labels documentation> 
-getLabelsUnsafe ::
-                (MonadIO m, HasCallStack) => HTMLInputElement -> m NodeList
-getLabelsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLabels (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLInputElement -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.labels Mozilla HTMLInputElement.labels documentation> 
-getLabelsUnchecked :: (MonadIO m) => HTMLInputElement -> m NodeList
-getLabelsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getLabels (self)))
+getLabels :: (MonadIO m) => HTMLInputElement -> m NodeList
+getLabels self = liftIO (js_getLabels self)
  
 foreign import javascript unsafe "$1[\"selectionStart\"] = $2;"
         js_setSelectionStart :: HTMLInputElement -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.selectionStart Mozilla HTMLInputElement.selectionStart documentation> 
 setSelectionStart :: (MonadIO m) => HTMLInputElement -> Int -> m ()
-setSelectionStart self val
-  = liftIO (js_setSelectionStart (self) val)
+setSelectionStart self val = liftIO (js_setSelectionStart self val)
  
 foreign import javascript unsafe "$1[\"selectionStart\"]"
         js_getSelectionStart :: HTMLInputElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.selectionStart Mozilla HTMLInputElement.selectionStart documentation> 
 getSelectionStart :: (MonadIO m) => HTMLInputElement -> m Int
-getSelectionStart self = liftIO (js_getSelectionStart (self))
+getSelectionStart self = liftIO (js_getSelectionStart self)
  
 foreign import javascript unsafe "$1[\"selectionEnd\"] = $2;"
         js_setSelectionEnd :: HTMLInputElement -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.selectionEnd Mozilla HTMLInputElement.selectionEnd documentation> 
 setSelectionEnd :: (MonadIO m) => HTMLInputElement -> Int -> m ()
-setSelectionEnd self val = liftIO (js_setSelectionEnd (self) val)
+setSelectionEnd self val = liftIO (js_setSelectionEnd self val)
  
 foreign import javascript unsafe "$1[\"selectionEnd\"]"
         js_getSelectionEnd :: HTMLInputElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.selectionEnd Mozilla HTMLInputElement.selectionEnd documentation> 
 getSelectionEnd :: (MonadIO m) => HTMLInputElement -> m Int
-getSelectionEnd self = liftIO (js_getSelectionEnd (self))
+getSelectionEnd self = liftIO (js_getSelectionEnd self)
  
 foreign import javascript unsafe "$1[\"selectionDirection\"] = $2;"
         js_setSelectionDirection :: HTMLInputElement -> JSString -> IO ()
@@ -941,7 +841,7 @@
 setSelectionDirection ::
                       (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
 setSelectionDirection self val
-  = liftIO (js_setSelectionDirection (self) (toJSString val))
+  = liftIO (js_setSelectionDirection self (toJSString val))
  
 foreign import javascript unsafe "$1[\"selectionDirection\"]"
         js_getSelectionDirection :: HTMLInputElement -> IO JSString
@@ -950,7 +850,7 @@
 getSelectionDirection ::
                       (MonadIO m, FromJSString result) => HTMLInputElement -> m result
 getSelectionDirection self
-  = liftIO (fromJSString <$> (js_getSelectionDirection (self)))
+  = liftIO (fromJSString <$> (js_getSelectionDirection self))
  
 foreign import javascript unsafe "$1[\"align\"] = $2;" js_setAlign
         :: HTMLInputElement -> JSString -> IO ()
@@ -958,7 +858,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.align Mozilla HTMLInputElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLInputElement -> IO JSString
@@ -966,7 +866,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.align Mozilla HTMLInputElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"useMap\"] = $2;"
         js_setUseMap :: HTMLInputElement -> JSString -> IO ()
@@ -974,7 +874,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.useMap Mozilla HTMLInputElement.useMap documentation> 
 setUseMap ::
           (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
-setUseMap self val = liftIO (js_setUseMap (self) (toJSString val))
+setUseMap self val = liftIO (js_setUseMap self (toJSString val))
  
 foreign import javascript unsafe "$1[\"useMap\"]" js_getUseMap ::
         HTMLInputElement -> IO JSString
@@ -982,83 +882,34 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.useMap Mozilla HTMLInputElement.useMap documentation> 
 getUseMap ::
           (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getUseMap self = liftIO (fromJSString <$> (js_getUseMap (self)))
+getUseMap self = liftIO (fromJSString <$> (js_getUseMap self))
  
 foreign import javascript unsafe "$1[\"incremental\"] = $2;"
         js_setIncremental :: HTMLInputElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.incremental Mozilla HTMLInputElement.incremental documentation> 
 setIncremental :: (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setIncremental self val = liftIO (js_setIncremental (self) val)
+setIncremental self val = liftIO (js_setIncremental self val)
  
 foreign import javascript unsafe "($1[\"incremental\"] ? 1 : 0)"
         js_getIncremental :: HTMLInputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.incremental Mozilla HTMLInputElement.incremental documentation> 
 getIncremental :: (MonadIO m) => HTMLInputElement -> m Bool
-getIncremental self = liftIO (js_getIncremental (self))
- 
-foreign import javascript unsafe "$1[\"autocorrect\"] = $2;"
-        js_setAutocorrect :: HTMLInputElement -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.autocorrect Mozilla HTMLInputElement.autocorrect documentation> 
-setAutocorrect :: (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setAutocorrect self val = liftIO (js_setAutocorrect (self) val)
- 
-foreign import javascript unsafe "($1[\"autocorrect\"] ? 1 : 0)"
-        js_getAutocorrect :: HTMLInputElement -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.autocorrect Mozilla HTMLInputElement.autocorrect documentation> 
-getAutocorrect :: (MonadIO m) => HTMLInputElement -> m Bool
-getAutocorrect self = liftIO (js_getAutocorrect (self))
- 
-foreign import javascript unsafe "$1[\"autocapitalize\"] = $2;"
-        js_setAutocapitalize ::
-        HTMLInputElement -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.autocapitalize Mozilla HTMLInputElement.autocapitalize documentation> 
-setAutocapitalize ::
-                  (MonadIO m, ToJSString val) =>
-                    HTMLInputElement -> Maybe val -> m ()
-setAutocapitalize self val
-  = liftIO (js_setAutocapitalize (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"autocapitalize\"]"
-        js_getAutocapitalize :: HTMLInputElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.autocapitalize Mozilla HTMLInputElement.autocapitalize documentation> 
-getAutocapitalize ::
-                  (MonadIO m, FromJSString result) =>
-                    HTMLInputElement -> m (Maybe result)
-getAutocapitalize self
-  = liftIO (fromMaybeJSString <$> (js_getAutocapitalize (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.autocapitalize Mozilla HTMLInputElement.autocapitalize documentation> 
-getAutocapitalizeUnsafe ::
-                        (MonadIO m, HasCallStack, FromJSString result) =>
-                          HTMLInputElement -> m result
-getAutocapitalizeUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getAutocapitalize (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.autocapitalize Mozilla HTMLInputElement.autocapitalize documentation> 
-getAutocapitalizeUnchecked ::
-                           (MonadIO m, FromJSString result) => HTMLInputElement -> m result
-getAutocapitalizeUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getAutocapitalize (self)))
+getIncremental self = liftIO (js_getIncremental self)
  
 foreign import javascript unsafe "$1[\"capture\"] = $2;"
-        js_setCapture :: HTMLInputElement -> Bool -> IO ()
+        js_setCapture :: HTMLInputElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.capture Mozilla HTMLInputElement.capture documentation> 
-setCapture :: (MonadIO m) => HTMLInputElement -> Bool -> m ()
-setCapture self val = liftIO (js_setCapture (self) val)
+setCapture ::
+           (MonadIO m, ToJSString val) => HTMLInputElement -> val -> m ()
+setCapture self val = liftIO (js_setCapture self (toJSString val))
  
-foreign import javascript unsafe "($1[\"capture\"] ? 1 : 0)"
-        js_getCapture :: HTMLInputElement -> IO Bool
+foreign import javascript unsafe "$1[\"capture\"]" js_getCapture ::
+        HTMLInputElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement.capture Mozilla HTMLInputElement.capture documentation> 
-getCapture :: (MonadIO m) => HTMLInputElement -> m Bool
-getCapture self = liftIO (js_getCapture (self))
+getCapture ::
+           (MonadIO m, FromJSString result) => HTMLInputElement -> m result
+getCapture self = liftIO (fromJSString <$> (js_getCapture self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLKeygenElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLKeygenElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLKeygenElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLKeygenElement.hs
@@ -5,23 +5,22 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLKeygenElement
        (js_checkValidity, checkValidity, checkValidity_,
+        js_reportValidity, reportValidity, reportValidity_,
         js_setCustomValidity, setCustomValidity, js_setAutofocus,
         setAutofocus, js_getAutofocus, getAutofocus, js_setChallenge,
         setChallenge, js_getChallenge, getChallenge, js_setDisabled,
         setDisabled, js_getDisabled, getDisabled, js_getForm, getForm,
-        getFormUnsafe, getFormUnchecked, js_setKeytype, setKeytype,
-        js_getKeytype, getKeytype, js_setName, setName, js_getName,
-        getName, js_getType, getType, js_getWillValidate, getWillValidate,
-        js_getValidity, getValidity, getValidityUnsafe,
-        getValidityUnchecked, js_getValidationMessage,
-        getValidationMessage, js_getLabels, getLabels, getLabelsUnsafe,
-        getLabelsUnchecked, HTMLKeygenElement(..), gTypeHTMLKeygenElement)
+        js_setKeytype, setKeytype, js_getKeytype, getKeytype, js_setName,
+        setName, js_getName, getName, js_getType, getType,
+        js_getWillValidate, getWillValidate, js_getValidity, getValidity,
+        js_getValidationMessage, getValidationMessage, js_getLabels,
+        getLabels, HTMLKeygenElement(..), gTypeHTMLKeygenElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -30,6 +29,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -41,36 +41,46 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.checkValidity Mozilla HTMLKeygenElement.checkValidity documentation> 
 checkValidity :: (MonadIO m) => HTMLKeygenElement -> m Bool
-checkValidity self = liftIO (js_checkValidity (self))
+checkValidity self = liftIO (js_checkValidity self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.checkValidity Mozilla HTMLKeygenElement.checkValidity documentation> 
 checkValidity_ :: (MonadIO m) => HTMLKeygenElement -> m ()
-checkValidity_ self = liftIO (void (js_checkValidity (self)))
+checkValidity_ self = liftIO (void (js_checkValidity self))
  
+foreign import javascript unsafe
+        "($1[\"reportValidity\"]() ? 1 : 0)" js_reportValidity ::
+        HTMLKeygenElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.reportValidity Mozilla HTMLKeygenElement.reportValidity documentation> 
+reportValidity :: (MonadIO m) => HTMLKeygenElement -> m Bool
+reportValidity self = liftIO (js_reportValidity self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.reportValidity Mozilla HTMLKeygenElement.reportValidity documentation> 
+reportValidity_ :: (MonadIO m) => HTMLKeygenElement -> m ()
+reportValidity_ self = liftIO (void (js_reportValidity self))
+ 
 foreign import javascript unsafe "$1[\"setCustomValidity\"]($2)"
-        js_setCustomValidity ::
-        HTMLKeygenElement -> Nullable JSString -> IO ()
+        js_setCustomValidity :: HTMLKeygenElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.setCustomValidity Mozilla HTMLKeygenElement.setCustomValidity documentation> 
 setCustomValidity ::
-                  (MonadIO m, ToJSString error) =>
-                    HTMLKeygenElement -> Maybe error -> m ()
+                  (MonadIO m, ToJSString error) => HTMLKeygenElement -> error -> m ()
 setCustomValidity self error
-  = liftIO (js_setCustomValidity (self) (toMaybeJSString error))
+  = liftIO (js_setCustomValidity self (toJSString error))
  
 foreign import javascript unsafe "$1[\"autofocus\"] = $2;"
         js_setAutofocus :: HTMLKeygenElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.autofocus Mozilla HTMLKeygenElement.autofocus documentation> 
 setAutofocus :: (MonadIO m) => HTMLKeygenElement -> Bool -> m ()
-setAutofocus self val = liftIO (js_setAutofocus (self) val)
+setAutofocus self val = liftIO (js_setAutofocus self val)
  
 foreign import javascript unsafe "($1[\"autofocus\"] ? 1 : 0)"
         js_getAutofocus :: HTMLKeygenElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.autofocus Mozilla HTMLKeygenElement.autofocus documentation> 
 getAutofocus :: (MonadIO m) => HTMLKeygenElement -> m Bool
-getAutofocus self = liftIO (js_getAutofocus (self))
+getAutofocus self = liftIO (js_getAutofocus self)
  
 foreign import javascript unsafe "$1[\"challenge\"] = $2;"
         js_setChallenge :: HTMLKeygenElement -> JSString -> IO ()
@@ -79,7 +89,7 @@
 setChallenge ::
              (MonadIO m, ToJSString val) => HTMLKeygenElement -> val -> m ()
 setChallenge self val
-  = liftIO (js_setChallenge (self) (toJSString val))
+  = liftIO (js_setChallenge self (toJSString val))
  
 foreign import javascript unsafe "$1[\"challenge\"]"
         js_getChallenge :: HTMLKeygenElement -> IO JSString
@@ -88,43 +98,28 @@
 getChallenge ::
              (MonadIO m, FromJSString result) => HTMLKeygenElement -> m result
 getChallenge self
-  = liftIO (fromJSString <$> (js_getChallenge (self)))
+  = liftIO (fromJSString <$> (js_getChallenge self))
  
 foreign import javascript unsafe "$1[\"disabled\"] = $2;"
         js_setDisabled :: HTMLKeygenElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.disabled Mozilla HTMLKeygenElement.disabled documentation> 
 setDisabled :: (MonadIO m) => HTMLKeygenElement -> Bool -> m ()
-setDisabled self val = liftIO (js_setDisabled (self) val)
+setDisabled self val = liftIO (js_setDisabled self val)
  
 foreign import javascript unsafe "($1[\"disabled\"] ? 1 : 0)"
         js_getDisabled :: HTMLKeygenElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.disabled Mozilla HTMLKeygenElement.disabled documentation> 
 getDisabled :: (MonadIO m) => HTMLKeygenElement -> m Bool
-getDisabled self = liftIO (js_getDisabled (self))
+getDisabled self = liftIO (js_getDisabled self)
  
 foreign import javascript unsafe "$1[\"form\"]" js_getForm ::
-        HTMLKeygenElement -> IO (Nullable HTMLFormElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.form Mozilla HTMLKeygenElement.form documentation> 
-getForm ::
-        (MonadIO m) => HTMLKeygenElement -> m (Maybe HTMLFormElement)
-getForm self = liftIO (nullableToMaybe <$> (js_getForm (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.form Mozilla HTMLKeygenElement.form documentation> 
-getFormUnsafe ::
-              (MonadIO m, HasCallStack) => HTMLKeygenElement -> m HTMLFormElement
-getFormUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getForm (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLKeygenElement -> IO HTMLFormElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.form Mozilla HTMLKeygenElement.form documentation> 
-getFormUnchecked ::
-                 (MonadIO m) => HTMLKeygenElement -> m HTMLFormElement
-getFormUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getForm (self)))
+getForm :: (MonadIO m) => HTMLKeygenElement -> m HTMLFormElement
+getForm self = liftIO (js_getForm self)
  
 foreign import javascript unsafe "$1[\"keytype\"] = $2;"
         js_setKeytype :: HTMLKeygenElement -> JSString -> IO ()
@@ -132,8 +127,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.keytype Mozilla HTMLKeygenElement.keytype documentation> 
 setKeytype ::
            (MonadIO m, ToJSString val) => HTMLKeygenElement -> val -> m ()
-setKeytype self val
-  = liftIO (js_setKeytype (self) (toJSString val))
+setKeytype self val = liftIO (js_setKeytype self (toJSString val))
  
 foreign import javascript unsafe "$1[\"keytype\"]" js_getKeytype ::
         HTMLKeygenElement -> IO JSString
@@ -141,7 +135,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.keytype Mozilla HTMLKeygenElement.keytype documentation> 
 getKeytype ::
            (MonadIO m, FromJSString result) => HTMLKeygenElement -> m result
-getKeytype self = liftIO (fromJSString <$> (js_getKeytype (self)))
+getKeytype self = liftIO (fromJSString <$> (js_getKeytype self))
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLKeygenElement -> JSString -> IO ()
@@ -149,7 +143,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.name Mozilla HTMLKeygenElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLKeygenElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLKeygenElement -> IO JSString
@@ -157,7 +151,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.name Mozilla HTMLKeygenElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLKeygenElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLKeygenElement -> IO JSString
@@ -165,37 +159,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.type Mozilla HTMLKeygenElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLKeygenElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "($1[\"willValidate\"] ? 1 : 0)"
         js_getWillValidate :: HTMLKeygenElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.willValidate Mozilla HTMLKeygenElement.willValidate documentation> 
 getWillValidate :: (MonadIO m) => HTMLKeygenElement -> m Bool
-getWillValidate self = liftIO (js_getWillValidate (self))
+getWillValidate self = liftIO (js_getWillValidate self)
  
 foreign import javascript unsafe "$1[\"validity\"]" js_getValidity
-        :: HTMLKeygenElement -> IO (Nullable ValidityState)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.validity Mozilla HTMLKeygenElement.validity documentation> 
-getValidity ::
-            (MonadIO m) => HTMLKeygenElement -> m (Maybe ValidityState)
-getValidity self
-  = liftIO (nullableToMaybe <$> (js_getValidity (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.validity Mozilla HTMLKeygenElement.validity documentation> 
-getValidityUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLKeygenElement -> m ValidityState
-getValidityUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getValidity (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: HTMLKeygenElement -> IO ValidityState
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.validity Mozilla HTMLKeygenElement.validity documentation> 
-getValidityUnchecked ::
-                     (MonadIO m) => HTMLKeygenElement -> m ValidityState
-getValidityUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getValidity (self)))
+getValidity :: (MonadIO m) => HTMLKeygenElement -> m ValidityState
+getValidity self = liftIO (js_getValidity self)
  
 foreign import javascript unsafe "$1[\"validationMessage\"]"
         js_getValidationMessage :: HTMLKeygenElement -> IO JSString
@@ -204,25 +182,11 @@
 getValidationMessage ::
                      (MonadIO m, FromJSString result) => HTMLKeygenElement -> m result
 getValidationMessage self
-  = liftIO (fromJSString <$> (js_getValidationMessage (self)))
+  = liftIO (fromJSString <$> (js_getValidationMessage self))
  
 foreign import javascript unsafe "$1[\"labels\"]" js_getLabels ::
-        HTMLKeygenElement -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.labels Mozilla HTMLKeygenElement.labels documentation> 
-getLabels :: (MonadIO m) => HTMLKeygenElement -> m (Maybe NodeList)
-getLabels self = liftIO (nullableToMaybe <$> (js_getLabels (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.labels Mozilla HTMLKeygenElement.labels documentation> 
-getLabelsUnsafe ::
-                (MonadIO m, HasCallStack) => HTMLKeygenElement -> m NodeList
-getLabelsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLabels (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLKeygenElement -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement.labels Mozilla HTMLKeygenElement.labels documentation> 
-getLabelsUnchecked ::
-                   (MonadIO m) => HTMLKeygenElement -> m NodeList
-getLabelsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getLabels (self)))
+getLabels :: (MonadIO m) => HTMLKeygenElement -> m NodeList
+getLabels self = liftIO (js_getLabels self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLLIElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLLIElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLLIElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLLIElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,7 +32,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLIElement.type Mozilla HTMLLIElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLLIElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLLIElement -> IO JSString
@@ -39,18 +40,18 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLIElement.type Mozilla HTMLLIElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLLIElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
         :: HTMLLIElement -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLIElement.value Mozilla HTMLLIElement.value documentation> 
 setValue :: (MonadIO m) => HTMLLIElement -> Int -> m ()
-setValue self val = liftIO (js_setValue (self) val)
+setValue self val = liftIO (js_setValue self val)
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         HTMLLIElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLIElement.value Mozilla HTMLLIElement.value documentation> 
 getValue :: (MonadIO m) => HTMLLIElement -> m Int
-getValue self = liftIO (js_getValue (self))
+getValue self = liftIO (js_getValue self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLLabelElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLLabelElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLLabelElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLLabelElement.hs
@@ -4,16 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLLabelElement
-       (js_getForm, getForm, getFormUnsafe, getFormUnchecked,
-        js_setHtmlFor, setHtmlFor, js_getHtmlFor, getHtmlFor,
-        js_getControl, getControl, getControlUnsafe, getControlUnchecked,
-        HTMLLabelElement(..), gTypeHTMLLabelElement)
+       (js_getForm, getForm, js_setHtmlFor, setHtmlFor, js_getHtmlFor,
+        getHtmlFor, js_getControl, getControl, HTMLLabelElement(..),
+        gTypeHTMLLabelElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,32 +21,18 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"form\"]" js_getForm ::
-        HTMLLabelElement -> IO (Nullable HTMLFormElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement.form Mozilla HTMLLabelElement.form documentation> 
-getForm ::
-        (MonadIO m) => HTMLLabelElement -> m (Maybe HTMLFormElement)
-getForm self = liftIO (nullableToMaybe <$> (js_getForm (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement.form Mozilla HTMLLabelElement.form documentation> 
-getFormUnsafe ::
-              (MonadIO m, HasCallStack) => HTMLLabelElement -> m HTMLFormElement
-getFormUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getForm (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLLabelElement -> IO HTMLFormElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement.form Mozilla HTMLLabelElement.form documentation> 
-getFormUnchecked ::
-                 (MonadIO m) => HTMLLabelElement -> m HTMLFormElement
-getFormUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getForm (self)))
+getForm :: (MonadIO m) => HTMLLabelElement -> m HTMLFormElement
+getForm self = liftIO (js_getForm self)
  
 foreign import javascript unsafe "$1[\"htmlFor\"] = $2;"
         js_setHtmlFor :: HTMLLabelElement -> JSString -> IO ()
@@ -55,8 +40,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement.htmlFor Mozilla HTMLLabelElement.htmlFor documentation> 
 setHtmlFor ::
            (MonadIO m, ToJSString val) => HTMLLabelElement -> val -> m ()
-setHtmlFor self val
-  = liftIO (js_setHtmlFor (self) (toJSString val))
+setHtmlFor self val = liftIO (js_setHtmlFor self (toJSString val))
  
 foreign import javascript unsafe "$1[\"htmlFor\"]" js_getHtmlFor ::
         HTMLLabelElement -> IO JSString
@@ -64,27 +48,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement.htmlFor Mozilla HTMLLabelElement.htmlFor documentation> 
 getHtmlFor ::
            (MonadIO m, FromJSString result) => HTMLLabelElement -> m result
-getHtmlFor self = liftIO (fromJSString <$> (js_getHtmlFor (self)))
+getHtmlFor self = liftIO (fromJSString <$> (js_getHtmlFor self))
  
 foreign import javascript unsafe "$1[\"control\"]" js_getControl ::
-        HTMLLabelElement -> IO (Nullable HTMLElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement.control Mozilla HTMLLabelElement.control documentation> 
-getControl ::
-           (MonadIO m) => HTMLLabelElement -> m (Maybe HTMLElement)
-getControl self
-  = liftIO (nullableToMaybe <$> (js_getControl (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement.control Mozilla HTMLLabelElement.control documentation> 
-getControlUnsafe ::
-                 (MonadIO m, HasCallStack) => HTMLLabelElement -> m HTMLElement
-getControlUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getControl (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLLabelElement -> IO HTMLElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement.control Mozilla HTMLLabelElement.control documentation> 
-getControlUnchecked ::
-                    (MonadIO m) => HTMLLabelElement -> m HTMLElement
-getControlUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getControl (self)))
+getControl :: (MonadIO m) => HTMLLabelElement -> m HTMLElement
+getControl self = liftIO (js_getControl self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLLegendElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLLegendElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLLegendElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLLegendElement.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLLegendElement
-       (js_getForm, getForm, getFormUnsafe, getFormUnchecked, js_setAlign,
-        setAlign, js_getAlign, getAlign, HTMLLegendElement(..),
-        gTypeHTMLLegendElement)
+       (js_getForm, getForm, js_setAlign, setAlign, js_getAlign, getAlign,
+        HTMLLegendElement(..), gTypeHTMLLegendElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,32 +20,18 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"form\"]" js_getForm ::
-        HTMLLegendElement -> IO (Nullable HTMLFormElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLegendElement.form Mozilla HTMLLegendElement.form documentation> 
-getForm ::
-        (MonadIO m) => HTMLLegendElement -> m (Maybe HTMLFormElement)
-getForm self = liftIO (nullableToMaybe <$> (js_getForm (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLegendElement.form Mozilla HTMLLegendElement.form documentation> 
-getFormUnsafe ::
-              (MonadIO m, HasCallStack) => HTMLLegendElement -> m HTMLFormElement
-getFormUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getForm (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLLegendElement -> IO HTMLFormElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLegendElement.form Mozilla HTMLLegendElement.form documentation> 
-getFormUnchecked ::
-                 (MonadIO m) => HTMLLegendElement -> m HTMLFormElement
-getFormUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getForm (self)))
+getForm :: (MonadIO m) => HTMLLegendElement -> m HTMLFormElement
+getForm self = liftIO (js_getForm self)
  
 foreign import javascript unsafe "$1[\"align\"] = $2;" js_setAlign
         :: HTMLLegendElement -> JSString -> IO ()
@@ -54,7 +39,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLegendElement.align Mozilla HTMLLegendElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLLegendElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLLegendElement -> IO JSString
@@ -62,4 +47,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLegendElement.align Mozilla HTMLLegendElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLLegendElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLLinkElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLLinkElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLLinkElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLLinkElement.hs
@@ -9,18 +9,19 @@
         setHref, js_getHref, getHref, js_setHreflang, setHreflang,
         js_getHreflang, getHreflang, js_setMedia, setMedia, js_getMedia,
         getMedia, js_setRel, setRel, js_getRel, getRel, js_setRev, setRev,
-        js_getRev, getRev, js_setSizes, setSizes, js_getSizes, getSizes,
-        getSizesUnsafe, getSizesUnchecked, js_setTarget, setTarget,
+        js_getRev, getRev, js_getSizes, getSizes, js_setTarget, setTarget,
         js_getTarget, getTarget, js_setType, setType, js_getType, getType,
-        js_getSheet, getSheet, getSheetUnsafe, getSheetUnchecked,
-        js_getRelList, getRelList, getRelListUnsafe, getRelListUnchecked,
-        HTMLLinkElement(..), gTypeHTMLLinkElement)
+        js_setAs, setAs, js_getAs, getAs, js_setCrossOrigin,
+        setCrossOrigin, js_getCrossOrigin, getCrossOrigin,
+        getCrossOriginUnsafe, getCrossOriginUnchecked, js_getSheet,
+        getSheet, js_getRelList, getRelList, js_setNonce, setNonce,
+        js_getNonce, getNonce, HTMLLinkElement(..), gTypeHTMLLinkElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -29,6 +30,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -39,14 +41,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.disabled Mozilla HTMLLinkElement.disabled documentation> 
 setDisabled :: (MonadIO m) => HTMLLinkElement -> Bool -> m ()
-setDisabled self val = liftIO (js_setDisabled (self) val)
+setDisabled self val = liftIO (js_setDisabled self val)
  
 foreign import javascript unsafe "($1[\"disabled\"] ? 1 : 0)"
         js_getDisabled :: HTMLLinkElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.disabled Mozilla HTMLLinkElement.disabled documentation> 
 getDisabled :: (MonadIO m) => HTMLLinkElement -> m Bool
-getDisabled self = liftIO (js_getDisabled (self))
+getDisabled self = liftIO (js_getDisabled self)
  
 foreign import javascript unsafe "$1[\"charset\"] = $2;"
         js_setCharset :: HTMLLinkElement -> JSString -> IO ()
@@ -54,8 +56,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.charset Mozilla HTMLLinkElement.charset documentation> 
 setCharset ::
            (MonadIO m, ToJSString val) => HTMLLinkElement -> val -> m ()
-setCharset self val
-  = liftIO (js_setCharset (self) (toJSString val))
+setCharset self val = liftIO (js_setCharset self (toJSString val))
  
 foreign import javascript unsafe "$1[\"charset\"]" js_getCharset ::
         HTMLLinkElement -> IO JSString
@@ -63,7 +64,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.charset Mozilla HTMLLinkElement.charset documentation> 
 getCharset ::
            (MonadIO m, FromJSString result) => HTMLLinkElement -> m result
-getCharset self = liftIO (fromJSString <$> (js_getCharset (self)))
+getCharset self = liftIO (fromJSString <$> (js_getCharset self))
  
 foreign import javascript unsafe "$1[\"href\"] = $2;" js_setHref ::
         HTMLLinkElement -> JSString -> IO ()
@@ -71,7 +72,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.href Mozilla HTMLLinkElement.href documentation> 
 setHref ::
         (MonadIO m, ToJSString val) => HTMLLinkElement -> val -> m ()
-setHref self val = liftIO (js_setHref (self) (toJSString val))
+setHref self val = liftIO (js_setHref self (toJSString val))
  
 foreign import javascript unsafe "$1[\"href\"]" js_getHref ::
         HTMLLinkElement -> IO JSString
@@ -79,7 +80,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.href Mozilla HTMLLinkElement.href documentation> 
 getHref ::
         (MonadIO m, FromJSString result) => HTMLLinkElement -> m result
-getHref self = liftIO (fromJSString <$> (js_getHref (self)))
+getHref self = liftIO (fromJSString <$> (js_getHref self))
  
 foreign import javascript unsafe "$1[\"hreflang\"] = $2;"
         js_setHreflang :: HTMLLinkElement -> JSString -> IO ()
@@ -88,7 +89,7 @@
 setHreflang ::
             (MonadIO m, ToJSString val) => HTMLLinkElement -> val -> m ()
 setHreflang self val
-  = liftIO (js_setHreflang (self) (toJSString val))
+  = liftIO (js_setHreflang self (toJSString val))
  
 foreign import javascript unsafe "$1[\"hreflang\"]" js_getHreflang
         :: HTMLLinkElement -> IO JSString
@@ -96,8 +97,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.hreflang Mozilla HTMLLinkElement.hreflang documentation> 
 getHreflang ::
             (MonadIO m, FromJSString result) => HTMLLinkElement -> m result
-getHreflang self
-  = liftIO (fromJSString <$> (js_getHreflang (self)))
+getHreflang self = liftIO (fromJSString <$> (js_getHreflang self))
  
 foreign import javascript unsafe "$1[\"media\"] = $2;" js_setMedia
         :: HTMLLinkElement -> JSString -> IO ()
@@ -105,7 +105,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.media Mozilla HTMLLinkElement.media documentation> 
 setMedia ::
          (MonadIO m, ToJSString val) => HTMLLinkElement -> val -> m ()
-setMedia self val = liftIO (js_setMedia (self) (toJSString val))
+setMedia self val = liftIO (js_setMedia self (toJSString val))
  
 foreign import javascript unsafe "$1[\"media\"]" js_getMedia ::
         HTMLLinkElement -> IO JSString
@@ -113,7 +113,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.media Mozilla HTMLLinkElement.media documentation> 
 getMedia ::
          (MonadIO m, FromJSString result) => HTMLLinkElement -> m result
-getMedia self = liftIO (fromJSString <$> (js_getMedia (self)))
+getMedia self = liftIO (fromJSString <$> (js_getMedia self))
  
 foreign import javascript unsafe "$1[\"rel\"] = $2;" js_setRel ::
         HTMLLinkElement -> JSString -> IO ()
@@ -121,7 +121,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.rel Mozilla HTMLLinkElement.rel documentation> 
 setRel ::
        (MonadIO m, ToJSString val) => HTMLLinkElement -> val -> m ()
-setRel self val = liftIO (js_setRel (self) (toJSString val))
+setRel self val = liftIO (js_setRel self (toJSString val))
  
 foreign import javascript unsafe "$1[\"rel\"]" js_getRel ::
         HTMLLinkElement -> IO JSString
@@ -129,7 +129,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.rel Mozilla HTMLLinkElement.rel documentation> 
 getRel ::
        (MonadIO m, FromJSString result) => HTMLLinkElement -> m result
-getRel self = liftIO (fromJSString <$> (js_getRel (self)))
+getRel self = liftIO (fromJSString <$> (js_getRel self))
  
 foreign import javascript unsafe "$1[\"rev\"] = $2;" js_setRev ::
         HTMLLinkElement -> JSString -> IO ()
@@ -137,7 +137,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.rev Mozilla HTMLLinkElement.rev documentation> 
 setRev ::
        (MonadIO m, ToJSString val) => HTMLLinkElement -> val -> m ()
-setRev self val = liftIO (js_setRev (self) (toJSString val))
+setRev self val = liftIO (js_setRev self (toJSString val))
  
 foreign import javascript unsafe "$1[\"rev\"]" js_getRev ::
         HTMLLinkElement -> IO JSString
@@ -145,40 +145,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.rev Mozilla HTMLLinkElement.rev documentation> 
 getRev ::
        (MonadIO m, FromJSString result) => HTMLLinkElement -> m result
-getRev self = liftIO (fromJSString <$> (js_getRev (self)))
- 
-foreign import javascript unsafe "$1[\"sizes\"] = $2;" js_setSizes
-        :: HTMLLinkElement -> Nullable DOMSettableTokenList -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.sizes Mozilla HTMLLinkElement.sizes documentation> 
-setSizes ::
-         (MonadIO m) =>
-           HTMLLinkElement -> Maybe DOMSettableTokenList -> m ()
-setSizes self val
-  = liftIO (js_setSizes (self) (maybeToNullable val))
+getRev self = liftIO (fromJSString <$> (js_getRev self))
  
 foreign import javascript unsafe "$1[\"sizes\"]" js_getSizes ::
-        HTMLLinkElement -> IO (Nullable DOMSettableTokenList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.sizes Mozilla HTMLLinkElement.sizes documentation> 
-getSizes ::
-         (MonadIO m) => HTMLLinkElement -> m (Maybe DOMSettableTokenList)
-getSizes self = liftIO (nullableToMaybe <$> (js_getSizes (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.sizes Mozilla HTMLLinkElement.sizes documentation> 
-getSizesUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 HTMLLinkElement -> m DOMSettableTokenList
-getSizesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSizes (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLLinkElement -> IO DOMTokenList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.sizes Mozilla HTMLLinkElement.sizes documentation> 
-getSizesUnchecked ::
-                  (MonadIO m) => HTMLLinkElement -> m DOMSettableTokenList
-getSizesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getSizes (self)))
+getSizes :: (MonadIO m) => HTMLLinkElement -> m DOMTokenList
+getSizes self = liftIO (js_getSizes self)
  
 foreign import javascript unsafe "$1[\"target\"] = $2;"
         js_setTarget :: HTMLLinkElement -> JSString -> IO ()
@@ -186,7 +160,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.target Mozilla HTMLLinkElement.target documentation> 
 setTarget ::
           (MonadIO m, ToJSString val) => HTMLLinkElement -> val -> m ()
-setTarget self val = liftIO (js_setTarget (self) (toJSString val))
+setTarget self val = liftIO (js_setTarget self (toJSString val))
  
 foreign import javascript unsafe "$1[\"target\"]" js_getTarget ::
         HTMLLinkElement -> IO JSString
@@ -194,7 +168,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.target Mozilla HTMLLinkElement.target documentation> 
 getTarget ::
           (MonadIO m, FromJSString result) => HTMLLinkElement -> m result
-getTarget self = liftIO (fromJSString <$> (js_getTarget (self)))
+getTarget self = liftIO (fromJSString <$> (js_getTarget self))
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         HTMLLinkElement -> JSString -> IO ()
@@ -202,7 +176,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.type Mozilla HTMLLinkElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLLinkElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLLinkElement -> IO JSString
@@ -210,47 +184,85 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.type Mozilla HTMLLinkElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLLinkElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
-foreign import javascript unsafe "$1[\"sheet\"]" js_getSheet ::
-        HTMLLinkElement -> IO (Nullable StyleSheet)
+foreign import javascript unsafe "$1[\"as\"] = $2;" js_setAs ::
+        HTMLLinkElement -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.sheet Mozilla HTMLLinkElement.sheet documentation> 
-getSheet :: (MonadIO m) => HTMLLinkElement -> m (Maybe StyleSheet)
-getSheet self = liftIO (nullableToMaybe <$> (js_getSheet (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.as Mozilla HTMLLinkElement.as documentation> 
+setAs ::
+      (MonadIO m, ToJSString val) => HTMLLinkElement -> val -> m ()
+setAs self val = liftIO (js_setAs self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"as\"]" js_getAs ::
+        HTMLLinkElement -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.sheet Mozilla HTMLLinkElement.sheet documentation> 
-getSheetUnsafe ::
-               (MonadIO m, HasCallStack) => HTMLLinkElement -> m StyleSheet
-getSheetUnsafe self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.as Mozilla HTMLLinkElement.as documentation> 
+getAs ::
+      (MonadIO m, FromJSString result) => HTMLLinkElement -> m result
+getAs self = liftIO (fromJSString <$> (js_getAs self))
+ 
+foreign import javascript unsafe "$1[\"crossOrigin\"] = $2;"
+        js_setCrossOrigin :: HTMLLinkElement -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.crossOrigin Mozilla HTMLLinkElement.crossOrigin documentation> 
+setCrossOrigin ::
+               (MonadIO m, ToJSString val) => HTMLLinkElement -> Maybe val -> m ()
+setCrossOrigin self val
+  = liftIO (js_setCrossOrigin self (toOptionalJSString val))
+ 
+foreign import javascript unsafe "$1[\"crossOrigin\"]"
+        js_getCrossOrigin :: HTMLLinkElement -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.crossOrigin Mozilla HTMLLinkElement.crossOrigin documentation> 
+getCrossOrigin ::
+               (MonadIO m, FromJSString result) =>
+                 HTMLLinkElement -> m (Maybe result)
+getCrossOrigin self
+  = liftIO (fromMaybeJSString <$> (js_getCrossOrigin self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.crossOrigin Mozilla HTMLLinkElement.crossOrigin documentation> 
+getCrossOriginUnsafe ::
+                     (MonadIO m, HasCallStack, FromJSString result) =>
+                       HTMLLinkElement -> m result
+getCrossOriginUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getSheet (self))) >>=
+      ((fromMaybeJSString <$> (js_getCrossOrigin self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.crossOrigin Mozilla HTMLLinkElement.crossOrigin documentation> 
+getCrossOriginUnchecked ::
+                        (MonadIO m, FromJSString result) => HTMLLinkElement -> m result
+getCrossOriginUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_getCrossOrigin self))
+ 
+foreign import javascript unsafe "$1[\"sheet\"]" js_getSheet ::
+        HTMLLinkElement -> IO StyleSheet
+
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.sheet Mozilla HTMLLinkElement.sheet documentation> 
-getSheetUnchecked :: (MonadIO m) => HTMLLinkElement -> m StyleSheet
-getSheetUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getSheet (self)))
+getSheet :: (MonadIO m) => HTMLLinkElement -> m StyleSheet
+getSheet self = liftIO (js_getSheet self)
  
 foreign import javascript unsafe "$1[\"relList\"]" js_getRelList ::
-        HTMLLinkElement -> IO (Nullable DOMTokenList)
+        HTMLLinkElement -> IO DOMTokenList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.relList Mozilla HTMLLinkElement.relList documentation> 
-getRelList ::
-           (MonadIO m) => HTMLLinkElement -> m (Maybe DOMTokenList)
-getRelList self
-  = liftIO (nullableToMaybe <$> (js_getRelList (self)))
+getRelList :: (MonadIO m) => HTMLLinkElement -> m DOMTokenList
+getRelList self = liftIO (js_getRelList self)
+ 
+foreign import javascript unsafe "$1[\"nonce\"] = $2;" js_setNonce
+        :: HTMLLinkElement -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.relList Mozilla HTMLLinkElement.relList documentation> 
-getRelListUnsafe ::
-                 (MonadIO m, HasCallStack) => HTMLLinkElement -> m DOMTokenList
-getRelListUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRelList (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.nonce Mozilla HTMLLinkElement.nonce documentation> 
+setNonce ::
+         (MonadIO m, ToJSString val) => HTMLLinkElement -> val -> m ()
+setNonce self val = liftIO (js_setNonce self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"nonce\"]" js_getNonce ::
+        HTMLLinkElement -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.relList Mozilla HTMLLinkElement.relList documentation> 
-getRelListUnchecked ::
-                    (MonadIO m) => HTMLLinkElement -> m DOMTokenList
-getRelListUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRelList (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement.nonce Mozilla HTMLLinkElement.nonce documentation> 
+getNonce ::
+         (MonadIO m, FromJSString result) => HTMLLinkElement -> m result
+getNonce self = liftIO (fromJSString <$> (js_getNonce self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLMapElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLMapElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLMapElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLMapElement.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLMapElement
-       (js_getAreas, getAreas, getAreasUnsafe, getAreasUnchecked,
-        js_setName, setName, js_getName, getName, HTMLMapElement(..),
-        gTypeHTMLMapElement)
+       (js_getAreas, getAreas, js_setName, setName, js_getName, getName,
+        HTMLMapElement(..), gTypeHTMLMapElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,32 +20,18 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"areas\"]" js_getAreas ::
-        HTMLMapElement -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement.areas Mozilla HTMLMapElement.areas documentation> 
-getAreas ::
-         (MonadIO m) => HTMLMapElement -> m (Maybe HTMLCollection)
-getAreas self = liftIO (nullableToMaybe <$> (js_getAreas (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement.areas Mozilla HTMLMapElement.areas documentation> 
-getAreasUnsafe ::
-               (MonadIO m, HasCallStack) => HTMLMapElement -> m HTMLCollection
-getAreasUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAreas (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLMapElement -> IO HTMLCollection
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement.areas Mozilla HTMLMapElement.areas documentation> 
-getAreasUnchecked ::
-                  (MonadIO m) => HTMLMapElement -> m HTMLCollection
-getAreasUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAreas (self)))
+getAreas :: (MonadIO m) => HTMLMapElement -> m HTMLCollection
+getAreas self = liftIO (js_getAreas self)
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLMapElement -> JSString -> IO ()
@@ -54,7 +39,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement.name Mozilla HTMLMapElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLMapElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLMapElement -> IO JSString
@@ -62,4 +47,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement.name Mozilla HTMLMapElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLMapElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLMarqueeElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLMarqueeElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLMarqueeElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLMarqueeElement.hs
@@ -21,7 +21,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -30,6 +30,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -40,14 +41,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.start Mozilla HTMLMarqueeElement.start documentation> 
 start :: (MonadIO m) => HTMLMarqueeElement -> m ()
-start self = liftIO (js_start (self))
+start self = liftIO (js_start self)
  
 foreign import javascript unsafe "$1[\"stop\"]()" js_stop ::
         HTMLMarqueeElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.stop Mozilla HTMLMarqueeElement.stop documentation> 
 stop :: (MonadIO m) => HTMLMarqueeElement -> m ()
-stop self = liftIO (js_stop (self))
+stop self = liftIO (js_stop self)
  
 foreign import javascript unsafe "$1[\"behavior\"] = $2;"
         js_setBehavior :: HTMLMarqueeElement -> JSString -> IO ()
@@ -56,7 +57,7 @@
 setBehavior ::
             (MonadIO m, ToJSString val) => HTMLMarqueeElement -> val -> m ()
 setBehavior self val
-  = liftIO (js_setBehavior (self) (toJSString val))
+  = liftIO (js_setBehavior self (toJSString val))
  
 foreign import javascript unsafe "$1[\"behavior\"]" js_getBehavior
         :: HTMLMarqueeElement -> IO JSString
@@ -64,8 +65,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.behavior Mozilla HTMLMarqueeElement.behavior documentation> 
 getBehavior ::
             (MonadIO m, FromJSString result) => HTMLMarqueeElement -> m result
-getBehavior self
-  = liftIO (fromJSString <$> (js_getBehavior (self)))
+getBehavior self = liftIO (fromJSString <$> (js_getBehavior self))
  
 foreign import javascript unsafe "$1[\"bgColor\"] = $2;"
         js_setBgColor :: HTMLMarqueeElement -> JSString -> IO ()
@@ -73,8 +73,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.bgColor Mozilla HTMLMarqueeElement.bgColor documentation> 
 setBgColor ::
            (MonadIO m, ToJSString val) => HTMLMarqueeElement -> val -> m ()
-setBgColor self val
-  = liftIO (js_setBgColor (self) (toJSString val))
+setBgColor self val = liftIO (js_setBgColor self (toJSString val))
  
 foreign import javascript unsafe "$1[\"bgColor\"]" js_getBgColor ::
         HTMLMarqueeElement -> IO JSString
@@ -82,7 +81,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.bgColor Mozilla HTMLMarqueeElement.bgColor documentation> 
 getBgColor ::
            (MonadIO m, FromJSString result) => HTMLMarqueeElement -> m result
-getBgColor self = liftIO (fromJSString <$> (js_getBgColor (self)))
+getBgColor self = liftIO (fromJSString <$> (js_getBgColor self))
  
 foreign import javascript unsafe "$1[\"direction\"] = $2;"
         js_setDirection :: HTMLMarqueeElement -> JSString -> IO ()
@@ -91,7 +90,7 @@
 setDirection ::
              (MonadIO m, ToJSString val) => HTMLMarqueeElement -> val -> m ()
 setDirection self val
-  = liftIO (js_setDirection (self) (toJSString val))
+  = liftIO (js_setDirection self (toJSString val))
  
 foreign import javascript unsafe "$1[\"direction\"]"
         js_getDirection :: HTMLMarqueeElement -> IO JSString
@@ -100,7 +99,7 @@
 getDirection ::
              (MonadIO m, FromJSString result) => HTMLMarqueeElement -> m result
 getDirection self
-  = liftIO (fromJSString <$> (js_getDirection (self)))
+  = liftIO (fromJSString <$> (js_getDirection self))
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
         js_setHeight :: HTMLMarqueeElement -> JSString -> IO ()
@@ -108,7 +107,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.height Mozilla HTMLMarqueeElement.height documentation> 
 setHeight ::
           (MonadIO m, ToJSString val) => HTMLMarqueeElement -> val -> m ()
-setHeight self val = liftIO (js_setHeight (self) (toJSString val))
+setHeight self val = liftIO (js_setHeight self (toJSString val))
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
         HTMLMarqueeElement -> IO JSString
@@ -116,91 +115,92 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.height Mozilla HTMLMarqueeElement.height documentation> 
 getHeight ::
           (MonadIO m, FromJSString result) => HTMLMarqueeElement -> m result
-getHeight self = liftIO (fromJSString <$> (js_getHeight (self)))
+getHeight self = liftIO (fromJSString <$> (js_getHeight self))
  
 foreign import javascript unsafe "$1[\"hspace\"] = $2;"
         js_setHspace :: HTMLMarqueeElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.hspace Mozilla HTMLMarqueeElement.hspace documentation> 
 setHspace :: (MonadIO m) => HTMLMarqueeElement -> Word -> m ()
-setHspace self val = liftIO (js_setHspace (self) val)
+setHspace self val = liftIO (js_setHspace self val)
  
 foreign import javascript unsafe "$1[\"hspace\"]" js_getHspace ::
         HTMLMarqueeElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.hspace Mozilla HTMLMarqueeElement.hspace documentation> 
 getHspace :: (MonadIO m) => HTMLMarqueeElement -> m Word
-getHspace self = liftIO (js_getHspace (self))
+getHspace self = liftIO (js_getHspace self)
  
 foreign import javascript unsafe "$1[\"loop\"] = $2;" js_setLoop ::
         HTMLMarqueeElement -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.loop Mozilla HTMLMarqueeElement.loop documentation> 
 setLoop :: (MonadIO m) => HTMLMarqueeElement -> Int -> m ()
-setLoop self val = liftIO (js_setLoop (self) val)
+setLoop self val = liftIO (js_setLoop self val)
  
 foreign import javascript unsafe "$1[\"loop\"]" js_getLoop ::
         HTMLMarqueeElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.loop Mozilla HTMLMarqueeElement.loop documentation> 
 getLoop :: (MonadIO m) => HTMLMarqueeElement -> m Int
-getLoop self = liftIO (js_getLoop (self))
+getLoop self = liftIO (js_getLoop self)
  
 foreign import javascript unsafe "$1[\"scrollAmount\"] = $2;"
-        js_setScrollAmount :: HTMLMarqueeElement -> Int -> IO ()
+        js_setScrollAmount :: HTMLMarqueeElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.scrollAmount Mozilla HTMLMarqueeElement.scrollAmount documentation> 
-setScrollAmount :: (MonadIO m) => HTMLMarqueeElement -> Int -> m ()
-setScrollAmount self val = liftIO (js_setScrollAmount (self) val)
+setScrollAmount ::
+                (MonadIO m) => HTMLMarqueeElement -> Word -> m ()
+setScrollAmount self val = liftIO (js_setScrollAmount self val)
  
 foreign import javascript unsafe "$1[\"scrollAmount\"]"
-        js_getScrollAmount :: HTMLMarqueeElement -> IO Int
+        js_getScrollAmount :: HTMLMarqueeElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.scrollAmount Mozilla HTMLMarqueeElement.scrollAmount documentation> 
-getScrollAmount :: (MonadIO m) => HTMLMarqueeElement -> m Int
-getScrollAmount self = liftIO (js_getScrollAmount (self))
+getScrollAmount :: (MonadIO m) => HTMLMarqueeElement -> m Word
+getScrollAmount self = liftIO (js_getScrollAmount self)
  
 foreign import javascript unsafe "$1[\"scrollDelay\"] = $2;"
-        js_setScrollDelay :: HTMLMarqueeElement -> Int -> IO ()
+        js_setScrollDelay :: HTMLMarqueeElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.scrollDelay Mozilla HTMLMarqueeElement.scrollDelay documentation> 
-setScrollDelay :: (MonadIO m) => HTMLMarqueeElement -> Int -> m ()
-setScrollDelay self val = liftIO (js_setScrollDelay (self) val)
+setScrollDelay :: (MonadIO m) => HTMLMarqueeElement -> Word -> m ()
+setScrollDelay self val = liftIO (js_setScrollDelay self val)
  
 foreign import javascript unsafe "$1[\"scrollDelay\"]"
-        js_getScrollDelay :: HTMLMarqueeElement -> IO Int
+        js_getScrollDelay :: HTMLMarqueeElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.scrollDelay Mozilla HTMLMarqueeElement.scrollDelay documentation> 
-getScrollDelay :: (MonadIO m) => HTMLMarqueeElement -> m Int
-getScrollDelay self = liftIO (js_getScrollDelay (self))
+getScrollDelay :: (MonadIO m) => HTMLMarqueeElement -> m Word
+getScrollDelay self = liftIO (js_getScrollDelay self)
  
 foreign import javascript unsafe "$1[\"trueSpeed\"] = $2;"
         js_setTrueSpeed :: HTMLMarqueeElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.trueSpeed Mozilla HTMLMarqueeElement.trueSpeed documentation> 
 setTrueSpeed :: (MonadIO m) => HTMLMarqueeElement -> Bool -> m ()
-setTrueSpeed self val = liftIO (js_setTrueSpeed (self) val)
+setTrueSpeed self val = liftIO (js_setTrueSpeed self val)
  
 foreign import javascript unsafe "($1[\"trueSpeed\"] ? 1 : 0)"
         js_getTrueSpeed :: HTMLMarqueeElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.trueSpeed Mozilla HTMLMarqueeElement.trueSpeed documentation> 
 getTrueSpeed :: (MonadIO m) => HTMLMarqueeElement -> m Bool
-getTrueSpeed self = liftIO (js_getTrueSpeed (self))
+getTrueSpeed self = liftIO (js_getTrueSpeed self)
  
 foreign import javascript unsafe "$1[\"vspace\"] = $2;"
         js_setVspace :: HTMLMarqueeElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.vspace Mozilla HTMLMarqueeElement.vspace documentation> 
 setVspace :: (MonadIO m) => HTMLMarqueeElement -> Word -> m ()
-setVspace self val = liftIO (js_setVspace (self) val)
+setVspace self val = liftIO (js_setVspace self val)
  
 foreign import javascript unsafe "$1[\"vspace\"]" js_getVspace ::
         HTMLMarqueeElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.vspace Mozilla HTMLMarqueeElement.vspace documentation> 
 getVspace :: (MonadIO m) => HTMLMarqueeElement -> m Word
-getVspace self = liftIO (js_getVspace (self))
+getVspace self = liftIO (js_getVspace self)
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: HTMLMarqueeElement -> JSString -> IO ()
@@ -208,7 +208,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.width Mozilla HTMLMarqueeElement.width documentation> 
 setWidth ::
          (MonadIO m, ToJSString val) => HTMLMarqueeElement -> val -> m ()
-setWidth self val = liftIO (js_setWidth (self) (toJSString val))
+setWidth self val = liftIO (js_setWidth self (toJSString val))
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLMarqueeElement -> IO JSString
@@ -216,4 +216,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement.width Mozilla HTMLMarqueeElement.width documentation> 
 getWidth ::
          (MonadIO m, FromJSString result) => HTMLMarqueeElement -> m result
-getWidth self = liftIO (fromJSString <$> (js_getWidth (self)))
+getWidth self = liftIO (fromJSString <$> (js_getWidth self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLMediaElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLMediaElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLMediaElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLMediaElement.hs
@@ -4,42 +4,37 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLMediaElement
-       (js_load, load, js_canPlayType, canPlayType, canPlayType_, js_play,
-        play, js_pause, pause, js_fastSeek, fastSeek,
-        js_webkitGenerateKeyRequest, webkitGenerateKeyRequest,
-        js_webkitAddKey, webkitAddKey, js_webkitCancelKeyRequest,
-        webkitCancelKeyRequest, js_webkitSetMediaKeys, webkitSetMediaKeys,
-        js_addTextTrack, addTextTrack, addTextTrack_, addTextTrackUnsafe,
-        addTextTrackUnchecked, js_getVideoPlaybackQuality,
+       (js_load, load, js_canPlayType, canPlayType, canPlayType_,
+        js_getStartDate, getStartDate, getStartDate_, js_play, play,
+        js_pause, pause, js_fastSeek, fastSeek, js_webkitSetMediaKeys,
+        webkitSetMediaKeys, js_setMediaKeys, setMediaKeys, js_addTextTrack,
+        addTextTrack, addTextTrack_, js_getVideoPlaybackQuality,
         getVideoPlaybackQuality, getVideoPlaybackQuality_,
-        getVideoPlaybackQualityUnsafe, getVideoPlaybackQualityUnchecked,
         js_webkitShowPlaybackTargetPicker, webkitShowPlaybackTargetPicker,
         pattern NETWORK_EMPTY, pattern NETWORK_IDLE,
         pattern NETWORK_LOADING, pattern NETWORK_NO_SOURCE,
         pattern HAVE_NOTHING, pattern HAVE_METADATA,
         pattern HAVE_CURRENT_DATA, pattern HAVE_FUTURE_DATA,
-        pattern HAVE_ENOUGH_DATA, js_getError, getError, getErrorUnsafe,
-        getErrorUnchecked, js_setSrc, setSrc, js_getSrc, getSrc,
-        js_getCurrentSrc, getCurrentSrc, js_getNetworkState,
-        getNetworkState, js_setPreload, setPreload, js_getPreload,
-        getPreload, js_getBuffered, getBuffered, getBufferedUnsafe,
-        getBufferedUnchecked, js_getReadyState, getReadyState,
+        pattern HAVE_ENOUGH_DATA, js_getError, getError, js_setSrc, setSrc,
+        js_getSrc, getSrc, js_setSrcObject, setSrcObject, js_getSrcObject,
+        getSrcObject, getSrcObjectUnsafe, getSrcObjectUnchecked,
+        js_getCurrentSrc, getCurrentSrc, js_setCrossOrigin, setCrossOrigin,
+        js_getCrossOrigin, getCrossOrigin, getCrossOriginUnsafe,
+        getCrossOriginUnchecked, js_getNetworkState, getNetworkState,
+        js_setPreload, setPreload, js_getPreload, getPreload,
+        js_getBuffered, getBuffered, js_getReadyState, getReadyState,
         js_getSeeking, getSeeking, js_setCurrentTime, setCurrentTime,
         js_getCurrentTime, getCurrentTime, js_getDuration, getDuration,
         js_getPaused, getPaused, js_setDefaultPlaybackRate,
         setDefaultPlaybackRate, js_getDefaultPlaybackRate,
         getDefaultPlaybackRate, js_setPlaybackRate, setPlaybackRate,
         js_getPlaybackRate, getPlaybackRate, js_getPlayed, getPlayed,
-        getPlayedUnsafe, getPlayedUnchecked, js_getSeekable, getSeekable,
-        getSeekableUnsafe, getSeekableUnchecked, js_getEnded, getEnded,
-        js_setAutoplay, setAutoplay, js_getAutoplay, getAutoplay,
-        js_setLoop, setLoop, js_getLoop, getLoop, js_setControls,
-        setControls, js_getControls, getControls, js_setVolume, setVolume,
-        js_getVolume, getVolume, js_setMuted, setMuted, js_getMuted,
-        getMuted, js_setDefaultMuted, setDefaultMuted, js_getDefaultMuted,
-        getDefaultMuted, emptied, loadedMetadata, loadedData, canPlay,
-        canPlayThrough, playing, ended, waiting, durationChange,
-        timeUpdate, playEvent, pauseEvent, rateChange, volumeChange,
+        js_getSeekable, getSeekable, js_getEnded, getEnded, js_setAutoplay,
+        setAutoplay, js_getAutoplay, getAutoplay, js_setLoop, setLoop,
+        js_getLoop, getLoop, js_setControls, setControls, js_getControls,
+        getControls, js_setVolume, setVolume, js_getVolume, getVolume,
+        js_setMuted, setMuted, js_getMuted, getMuted, js_setDefaultMuted,
+        setDefaultMuted, js_getDefaultMuted, getDefaultMuted,
         js_setWebkitPreservesPitch, setWebkitPreservesPitch,
         js_getWebkitPreservesPitch, getWebkitPreservesPitch,
         js_getWebkitHasClosedCaptions, getWebkitHasClosedCaptions,
@@ -47,30 +42,24 @@
         js_getWebkitClosedCaptionsVisible, getWebkitClosedCaptionsVisible,
         js_getWebkitAudioDecodedByteCount, getWebkitAudioDecodedByteCount,
         js_getWebkitVideoDecodedByteCount, getWebkitVideoDecodedByteCount,
-        webKitKeyAdded, webKitKeyError, webKitKeyMessage, webKitNeedKey,
-        js_getWebkitKeys, getWebkitKeys, getWebkitKeysUnsafe,
-        getWebkitKeysUnchecked, js_getAudioTracks, getAudioTracks,
-        getAudioTracksUnsafe, getAudioTracksUnchecked, js_getTextTracks,
-        getTextTracks, getTextTracksUnsafe, getTextTracksUnchecked,
-        js_getVideoTracks, getVideoTracks, getVideoTracksUnsafe,
-        getVideoTracksUnchecked, js_setMediaGroup, setMediaGroup,
-        js_getMediaGroup, getMediaGroup, getMediaGroupUnsafe,
-        getMediaGroupUnchecked, js_setController, setController,
-        js_getController, getController, getControllerUnsafe,
-        getControllerUnchecked,
+        js_getWebkitKeys, getWebkitKeys, js_getMediaKeys, getMediaKeys,
+        encrypted, waitingforkey, js_getAudioTracks, getAudioTracks,
+        js_getTextTracks, getTextTracks, js_getVideoTracks, getVideoTracks,
+        js_setMediaGroup, setMediaGroup, js_getMediaGroup, getMediaGroup,
+        js_setController, setController, js_getController, getController,
+        getControllerUnsafe, getControllerUnchecked,
         js_getWebkitCurrentPlaybackTargetIsWireless,
-        getWebkitCurrentPlaybackTargetIsWireless,
-        webKitCurrentPlaybackTargetIsWirelessChanged,
-        webKitPlaybackTargetAvailabilityChanged, js_setSrcObject,
-        setSrcObject, js_getSrcObject, getSrcObject, getSrcObjectUnsafe,
-        getSrcObjectUnchecked, HTMLMediaElement(..), gTypeHTMLMediaElement,
-        IsHTMLMediaElement, toHTMLMediaElement)
+        getWebkitCurrentPlaybackTargetIsWireless, js_setKind, setKind,
+        js_getKind, getKind, js_setSession, setSession, js_getSession,
+        getSession, getSessionUnsafe, getSessionUnchecked,
+        HTMLMediaElement(..), gTypeHTMLMediaElement, IsHTMLMediaElement,
+        toHTMLMediaElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -79,6 +68,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -91,35 +81,46 @@
 load :: (MonadIO m, IsHTMLMediaElement self) => self -> m ()
 load self = liftIO (js_load (toHTMLMediaElement self))
  
-foreign import javascript unsafe "$1[\"canPlayType\"]($2, $3)"
-        js_canPlayType ::
-        HTMLMediaElement -> JSString -> Nullable JSString -> IO JSString
+foreign import javascript unsafe "$1[\"canPlayType\"]($2)"
+        js_canPlayType :: HTMLMediaElement -> JSString -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.canPlayType Mozilla HTMLMediaElement.canPlayType documentation> 
 canPlayType ::
             (MonadIO m, IsHTMLMediaElement self, ToJSString type',
-             ToJSString keySystem, FromJSString result) =>
-              self -> type' -> Maybe keySystem -> m result
-canPlayType self type' keySystem
+             FromJSString result) =>
+              self -> type' -> m result
+canPlayType self type'
   = liftIO
       (fromJSString <$>
-         (js_canPlayType (toHTMLMediaElement self) (toJSString type')
-            (toMaybeJSString keySystem)))
+         (js_canPlayType (toHTMLMediaElement self) (toJSString type')))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.canPlayType Mozilla HTMLMediaElement.canPlayType documentation> 
 canPlayType_ ::
-             (MonadIO m, IsHTMLMediaElement self, ToJSString type',
-              ToJSString keySystem) =>
-               self -> type' -> Maybe keySystem -> m ()
-canPlayType_ self type' keySystem
+             (MonadIO m, IsHTMLMediaElement self, ToJSString type') =>
+               self -> type' -> m ()
+canPlayType_ self type'
   = liftIO
       (void
-         (js_canPlayType (toHTMLMediaElement self) (toJSString type')
-            (toMaybeJSString keySystem)))
+         (js_canPlayType (toHTMLMediaElement self) (toJSString type')))
  
-foreign import javascript unsafe "$1[\"play\"]()" js_play ::
-        HTMLMediaElement -> IO ()
+foreign import javascript unsafe "$1[\"getStartDate\"]()"
+        js_getStartDate :: HTMLMediaElement -> IO Date
 
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.getStartDate Mozilla HTMLMediaElement.getStartDate documentation> 
+getStartDate ::
+             (MonadIO m, IsHTMLMediaElement self) => self -> m Date
+getStartDate self
+  = liftIO (js_getStartDate (toHTMLMediaElement self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.getStartDate Mozilla HTMLMediaElement.getStartDate documentation> 
+getStartDate_ ::
+              (MonadIO m, IsHTMLMediaElement self) => self -> m ()
+getStartDate_ self
+  = liftIO (void (js_getStartDate (toHTMLMediaElement self)))
+ 
+foreign import javascript interruptible
+        "$1[\"play\"]().then($c);" js_play :: HTMLMediaElement -> IO ()
+
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.play Mozilla HTMLMediaElement.play documentation> 
 play :: (MonadIO m, IsHTMLMediaElement self) => self -> m ()
 play self = liftIO (js_play (toHTMLMediaElement self))
@@ -140,137 +141,70 @@
 fastSeek self time
   = liftIO (js_fastSeek (toHTMLMediaElement self) time)
  
-foreign import javascript unsafe
-        "$1[\"webkitGenerateKeyRequest\"]($2,\n$3)"
-        js_webkitGenerateKeyRequest ::
-        HTMLMediaElement ->
-          Nullable JSString -> Nullable Uint8Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.webkitGenerateKeyRequest Mozilla HTMLMediaElement.webkitGenerateKeyRequest documentation> 
-webkitGenerateKeyRequest ::
-                         (MonadIO m, IsHTMLMediaElement self, ToJSString keySystem,
-                          IsUint8Array initData) =>
-                           self -> Maybe keySystem -> Maybe initData -> m ()
-webkitGenerateKeyRequest self keySystem initData
-  = liftIO
-      (js_webkitGenerateKeyRequest (toHTMLMediaElement self)
-         (toMaybeJSString keySystem)
-         (maybeToNullable (fmap toUint8Array initData)))
- 
-foreign import javascript unsafe
-        "$1[\"webkitAddKey\"]($2, $3, $4,\n$5)" js_webkitAddKey ::
-        HTMLMediaElement ->
-          Nullable JSString ->
-            Nullable Uint8Array -> Nullable Uint8Array -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.webkitAddKey Mozilla HTMLMediaElement.webkitAddKey documentation> 
-webkitAddKey ::
-             (MonadIO m, IsHTMLMediaElement self, ToJSString keySystem,
-              IsUint8Array key, IsUint8Array initData, ToJSString sessionId) =>
-               self ->
-                 Maybe keySystem -> Maybe key -> Maybe initData -> sessionId -> m ()
-webkitAddKey self keySystem key initData sessionId
-  = liftIO
-      (js_webkitAddKey (toHTMLMediaElement self)
-         (toMaybeJSString keySystem)
-         (maybeToNullable (fmap toUint8Array key))
-         (maybeToNullable (fmap toUint8Array initData))
-         (toJSString sessionId))
- 
-foreign import javascript unsafe
-        "$1[\"webkitCancelKeyRequest\"]($2,\n$3)" js_webkitCancelKeyRequest
-        :: HTMLMediaElement -> Nullable JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.webkitCancelKeyRequest Mozilla HTMLMediaElement.webkitCancelKeyRequest documentation> 
-webkitCancelKeyRequest ::
-                       (MonadIO m, IsHTMLMediaElement self, ToJSString keySystem,
-                        ToJSString sessionId) =>
-                         self -> Maybe keySystem -> sessionId -> m ()
-webkitCancelKeyRequest self keySystem sessionId
-  = liftIO
-      (js_webkitCancelKeyRequest (toHTMLMediaElement self)
-         (toMaybeJSString keySystem)
-         (toJSString sessionId))
- 
 foreign import javascript unsafe "$1[\"webkitSetMediaKeys\"]($2)"
         js_webkitSetMediaKeys ::
-        HTMLMediaElement -> Nullable MediaKeys -> IO ()
+        HTMLMediaElement -> Optional WebKitMediaKeys -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.webkitSetMediaKeys Mozilla HTMLMediaElement.webkitSetMediaKeys documentation> 
 webkitSetMediaKeys ::
                    (MonadIO m, IsHTMLMediaElement self) =>
-                     self -> Maybe MediaKeys -> m ()
+                     self -> Maybe WebKitMediaKeys -> m ()
 webkitSetMediaKeys self mediaKeys
   = liftIO
       (js_webkitSetMediaKeys (toHTMLMediaElement self)
-         (maybeToNullable mediaKeys))
+         (maybeToOptional mediaKeys))
  
+foreign import javascript interruptible
+        "$1[\"setMediaKeys\"]($2).then($c);" js_setMediaKeys ::
+        HTMLMediaElement -> Optional MediaKeys -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.setMediaKeys Mozilla HTMLMediaElement.setMediaKeys documentation> 
+setMediaKeys ::
+             (MonadIO m, IsHTMLMediaElement self) =>
+               self -> Maybe MediaKeys -> m ()
+setMediaKeys self mediaKeys
+  = liftIO
+      (js_setMediaKeys (toHTMLMediaElement self)
+         (maybeToOptional mediaKeys))
+ 
 foreign import javascript unsafe "$1[\"addTextTrack\"]($2, $3, $4)"
         js_addTextTrack ::
         HTMLMediaElement ->
-          JSString -> JSString -> JSString -> IO (Nullable TextTrack)
+          JSString -> Optional JSString -> Optional JSString -> IO TextTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.addTextTrack Mozilla HTMLMediaElement.addTextTrack documentation> 
 addTextTrack ::
              (MonadIO m, IsHTMLMediaElement self, ToJSString kind,
               ToJSString label, ToJSString language) =>
-               self -> kind -> label -> language -> m (Maybe TextTrack)
+               self -> kind -> Maybe label -> Maybe language -> m TextTrack
 addTextTrack self kind label language
   = liftIO
-      (nullableToMaybe <$>
-         (js_addTextTrack (toHTMLMediaElement self) (toJSString kind)
-            (toJSString label)
-            (toJSString language)))
+      (js_addTextTrack (toHTMLMediaElement self) (toJSString kind)
+         (toOptionalJSString label)
+         (toOptionalJSString language))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.addTextTrack Mozilla HTMLMediaElement.addTextTrack documentation> 
 addTextTrack_ ::
               (MonadIO m, IsHTMLMediaElement self, ToJSString kind,
                ToJSString label, ToJSString language) =>
-                self -> kind -> label -> language -> m ()
+                self -> kind -> Maybe label -> Maybe language -> m ()
 addTextTrack_ self kind label language
   = liftIO
       (void
          (js_addTextTrack (toHTMLMediaElement self) (toJSString kind)
-            (toJSString label)
-            (toJSString language)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.addTextTrack Mozilla HTMLMediaElement.addTextTrack documentation> 
-addTextTrackUnsafe ::
-                   (MonadIO m, IsHTMLMediaElement self, ToJSString kind,
-                    ToJSString label, ToJSString language, HasCallStack) =>
-                     self -> kind -> label -> language -> m TextTrack
-addTextTrackUnsafe self kind label language
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_addTextTrack (toHTMLMediaElement self) (toJSString kind)
-             (toJSString label)
-             (toJSString language)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.addTextTrack Mozilla HTMLMediaElement.addTextTrack documentation> 
-addTextTrackUnchecked ::
-                      (MonadIO m, IsHTMLMediaElement self, ToJSString kind,
-                       ToJSString label, ToJSString language) =>
-                        self -> kind -> label -> language -> m TextTrack
-addTextTrackUnchecked self kind label language
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_addTextTrack (toHTMLMediaElement self) (toJSString kind)
-            (toJSString label)
-            (toJSString language)))
+            (toOptionalJSString label)
+            (toOptionalJSString language)))
  
 foreign import javascript unsafe
         "$1[\"getVideoPlaybackQuality\"]()" js_getVideoPlaybackQuality ::
-        HTMLMediaElement -> IO (Nullable VideoPlaybackQuality)
+        HTMLMediaElement -> IO VideoPlaybackQuality
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.getVideoPlaybackQuality Mozilla HTMLMediaElement.getVideoPlaybackQuality documentation> 
 getVideoPlaybackQuality ::
                         (MonadIO m, IsHTMLMediaElement self) =>
-                          self -> m (Maybe VideoPlaybackQuality)
+                          self -> m VideoPlaybackQuality
 getVideoPlaybackQuality self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getVideoPlaybackQuality (toHTMLMediaElement self)))
+  = liftIO (js_getVideoPlaybackQuality (toHTMLMediaElement self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.getVideoPlaybackQuality Mozilla HTMLMediaElement.getVideoPlaybackQuality documentation> 
 getVideoPlaybackQuality_ ::
@@ -278,25 +212,6 @@
 getVideoPlaybackQuality_ self
   = liftIO
       (void (js_getVideoPlaybackQuality (toHTMLMediaElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.getVideoPlaybackQuality Mozilla HTMLMediaElement.getVideoPlaybackQuality documentation> 
-getVideoPlaybackQualityUnsafe ::
-                              (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
-                                self -> m VideoPlaybackQuality
-getVideoPlaybackQualityUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getVideoPlaybackQuality (toHTMLMediaElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.getVideoPlaybackQuality Mozilla HTMLMediaElement.getVideoPlaybackQuality documentation> 
-getVideoPlaybackQualityUnchecked ::
-                                 (MonadIO m, IsHTMLMediaElement self) =>
-                                   self -> m VideoPlaybackQuality
-getVideoPlaybackQualityUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getVideoPlaybackQuality (toHTMLMediaElement self)))
  
 foreign import javascript unsafe
         "$1[\"webkitShowPlaybackTargetPicker\"]()"
@@ -319,32 +234,12 @@
 pattern HAVE_ENOUGH_DATA = 4
  
 foreign import javascript unsafe "$1[\"error\"]" js_getError ::
-        HTMLMediaElement -> IO (Nullable MediaError)
+        HTMLMediaElement -> IO MediaError
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.error Mozilla HTMLMediaElement.error documentation> 
 getError ::
-         (MonadIO m, IsHTMLMediaElement self) =>
-           self -> m (Maybe MediaError)
-getError self
-  = liftIO
-      (nullableToMaybe <$> (js_getError (toHTMLMediaElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.error Mozilla HTMLMediaElement.error documentation> 
-getErrorUnsafe ::
-               (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
-                 self -> m MediaError
-getErrorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getError (toHTMLMediaElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.error Mozilla HTMLMediaElement.error documentation> 
-getErrorUnchecked ::
-                  (MonadIO m, IsHTMLMediaElement self) => self -> m MediaError
-getErrorUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getError (toHTMLMediaElement self)))
+         (MonadIO m, IsHTMLMediaElement self) => self -> m MediaError
+getError self = liftIO (js_getError (toHTMLMediaElement self))
  
 foreign import javascript unsafe "$1[\"src\"] = $2;" js_setSrc ::
         HTMLMediaElement -> JSString -> IO ()
@@ -366,6 +261,47 @@
 getSrc self
   = liftIO (fromJSString <$> (js_getSrc (toHTMLMediaElement self)))
  
+foreign import javascript unsafe "$1[\"srcObject\"] = $2;"
+        js_setSrcObject ::
+        HTMLMediaElement -> Optional MediaProvider -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.srcObject Mozilla HTMLMediaElement.srcObject documentation> 
+setSrcObject ::
+             (MonadIO m, IsHTMLMediaElement self, IsMediaProvider val) =>
+               self -> Maybe val -> m ()
+setSrcObject self val
+  = liftIO
+      (js_setSrcObject (toHTMLMediaElement self)
+         (maybeToOptional (fmap toMediaProvider val)))
+ 
+foreign import javascript unsafe "$1[\"srcObject\"]"
+        js_getSrcObject :: HTMLMediaElement -> IO (Nullable MediaProvider)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.srcObject Mozilla HTMLMediaElement.srcObject documentation> 
+getSrcObject ::
+             (MonadIO m, IsHTMLMediaElement self) =>
+               self -> m (Maybe MediaProvider)
+getSrcObject self
+  = liftIO
+      (nullableToMaybe <$> (js_getSrcObject (toHTMLMediaElement self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.srcObject Mozilla HTMLMediaElement.srcObject documentation> 
+getSrcObjectUnsafe ::
+                   (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
+                     self -> m MediaProvider
+getSrcObjectUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getSrcObject (toHTMLMediaElement self)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.srcObject Mozilla HTMLMediaElement.srcObject documentation> 
+getSrcObjectUnchecked ::
+                      (MonadIO m, IsHTMLMediaElement self) => self -> m MediaProvider
+getSrcObjectUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getSrcObject (toHTMLMediaElement self)))
+ 
 foreign import javascript unsafe "$1[\"currentSrc\"]"
         js_getCurrentSrc :: HTMLMediaElement -> IO JSString
 
@@ -377,6 +313,50 @@
   = liftIO
       (fromJSString <$> (js_getCurrentSrc (toHTMLMediaElement self)))
  
+foreign import javascript unsafe "$1[\"crossOrigin\"] = $2;"
+        js_setCrossOrigin :: HTMLMediaElement -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.crossOrigin Mozilla HTMLMediaElement.crossOrigin documentation> 
+setCrossOrigin ::
+               (MonadIO m, IsHTMLMediaElement self, ToJSString val) =>
+                 self -> Maybe val -> m ()
+setCrossOrigin self val
+  = liftIO
+      (js_setCrossOrigin (toHTMLMediaElement self)
+         (toOptionalJSString val))
+ 
+foreign import javascript unsafe "$1[\"crossOrigin\"]"
+        js_getCrossOrigin :: HTMLMediaElement -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.crossOrigin Mozilla HTMLMediaElement.crossOrigin documentation> 
+getCrossOrigin ::
+               (MonadIO m, IsHTMLMediaElement self, FromJSString result) =>
+                 self -> m (Maybe result)
+getCrossOrigin self
+  = liftIO
+      (fromMaybeJSString <$>
+         (js_getCrossOrigin (toHTMLMediaElement self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.crossOrigin Mozilla HTMLMediaElement.crossOrigin documentation> 
+getCrossOriginUnsafe ::
+                     (MonadIO m, IsHTMLMediaElement self, HasCallStack,
+                      FromJSString result) =>
+                       self -> m result
+getCrossOriginUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$>
+          (js_getCrossOrigin (toHTMLMediaElement self)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.crossOrigin Mozilla HTMLMediaElement.crossOrigin documentation> 
+getCrossOriginUnchecked ::
+                        (MonadIO m, IsHTMLMediaElement self, FromJSString result) =>
+                          self -> m result
+getCrossOriginUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getCrossOrigin (toHTMLMediaElement self)))
+ 
 foreign import javascript unsafe "$1[\"networkState\"]"
         js_getNetworkState :: HTMLMediaElement -> IO Word
 
@@ -408,32 +388,13 @@
       (fromJSString <$> (js_getPreload (toHTMLMediaElement self)))
  
 foreign import javascript unsafe "$1[\"buffered\"]" js_getBuffered
-        :: HTMLMediaElement -> IO (Nullable TimeRanges)
+        :: HTMLMediaElement -> IO TimeRanges
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.buffered Mozilla HTMLMediaElement.buffered documentation> 
 getBuffered ::
-            (MonadIO m, IsHTMLMediaElement self) =>
-              self -> m (Maybe TimeRanges)
+            (MonadIO m, IsHTMLMediaElement self) => self -> m TimeRanges
 getBuffered self
-  = liftIO
-      (nullableToMaybe <$> (js_getBuffered (toHTMLMediaElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.buffered Mozilla HTMLMediaElement.buffered documentation> 
-getBufferedUnsafe ::
-                  (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
-                    self -> m TimeRanges
-getBufferedUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBuffered (toHTMLMediaElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.buffered Mozilla HTMLMediaElement.buffered documentation> 
-getBufferedUnchecked ::
-                     (MonadIO m, IsHTMLMediaElement self) => self -> m TimeRanges
-getBufferedUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getBuffered (toHTMLMediaElement self)))
+  = liftIO (js_getBuffered (toHTMLMediaElement self))
  
 foreign import javascript unsafe "$1[\"readyState\"]"
         js_getReadyState :: HTMLMediaElement -> IO Word
@@ -524,60 +485,21 @@
   = liftIO (js_getPlaybackRate (toHTMLMediaElement self))
  
 foreign import javascript unsafe "$1[\"played\"]" js_getPlayed ::
-        HTMLMediaElement -> IO (Nullable TimeRanges)
+        HTMLMediaElement -> IO TimeRanges
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.played Mozilla HTMLMediaElement.played documentation> 
 getPlayed ::
-          (MonadIO m, IsHTMLMediaElement self) =>
-            self -> m (Maybe TimeRanges)
-getPlayed self
-  = liftIO
-      (nullableToMaybe <$> (js_getPlayed (toHTMLMediaElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.played Mozilla HTMLMediaElement.played documentation> 
-getPlayedUnsafe ::
-                (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
-                  self -> m TimeRanges
-getPlayedUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPlayed (toHTMLMediaElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.played Mozilla HTMLMediaElement.played documentation> 
-getPlayedUnchecked ::
-                   (MonadIO m, IsHTMLMediaElement self) => self -> m TimeRanges
-getPlayedUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getPlayed (toHTMLMediaElement self)))
+          (MonadIO m, IsHTMLMediaElement self) => self -> m TimeRanges
+getPlayed self = liftIO (js_getPlayed (toHTMLMediaElement self))
  
 foreign import javascript unsafe "$1[\"seekable\"]" js_getSeekable
-        :: HTMLMediaElement -> IO (Nullable TimeRanges)
+        :: HTMLMediaElement -> IO TimeRanges
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.seekable Mozilla HTMLMediaElement.seekable documentation> 
 getSeekable ::
-            (MonadIO m, IsHTMLMediaElement self) =>
-              self -> m (Maybe TimeRanges)
+            (MonadIO m, IsHTMLMediaElement self) => self -> m TimeRanges
 getSeekable self
-  = liftIO
-      (nullableToMaybe <$> (js_getSeekable (toHTMLMediaElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.seekable Mozilla HTMLMediaElement.seekable documentation> 
-getSeekableUnsafe ::
-                  (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
-                    self -> m TimeRanges
-getSeekableUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSeekable (toHTMLMediaElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.seekable Mozilla HTMLMediaElement.seekable documentation> 
-getSeekableUnchecked ::
-                     (MonadIO m, IsHTMLMediaElement self) => self -> m TimeRanges
-getSeekableUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getSeekable (toHTMLMediaElement self)))
+  = liftIO (js_getSeekable (toHTMLMediaElement self))
  
 foreign import javascript unsafe "($1[\"ended\"] ? 1 : 0)"
         js_getEnded :: HTMLMediaElement -> IO Bool
@@ -688,90 +610,6 @@
                 (MonadIO m, IsHTMLMediaElement self) => self -> m Bool
 getDefaultMuted self
   = liftIO (js_getDefaultMuted (toHTMLMediaElement self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onemptied Mozilla HTMLMediaElement.onemptied documentation> 
-emptied ::
-        (IsHTMLMediaElement self, IsEventTarget self) =>
-          EventName self Event
-emptied = unsafeEventName (toJSString "emptied")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onloadedmetadata Mozilla HTMLMediaElement.onloadedmetadata documentation> 
-loadedMetadata ::
-               (IsHTMLMediaElement self, IsEventTarget self) =>
-                 EventName self Event
-loadedMetadata = unsafeEventName (toJSString "loadedmetadata")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onloadeddata Mozilla HTMLMediaElement.onloadeddata documentation> 
-loadedData ::
-           (IsHTMLMediaElement self, IsEventTarget self) =>
-             EventName self Event
-loadedData = unsafeEventName (toJSString "loadeddata")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.oncanplay Mozilla HTMLMediaElement.oncanplay documentation> 
-canPlay ::
-        (IsHTMLMediaElement self, IsEventTarget self) =>
-          EventName self Event
-canPlay = unsafeEventName (toJSString "canplay")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.oncanplaythrough Mozilla HTMLMediaElement.oncanplaythrough documentation> 
-canPlayThrough ::
-               (IsHTMLMediaElement self, IsEventTarget self) =>
-                 EventName self Event
-canPlayThrough = unsafeEventName (toJSString "canplaythrough")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onplaying Mozilla HTMLMediaElement.onplaying documentation> 
-playing ::
-        (IsHTMLMediaElement self, IsEventTarget self) =>
-          EventName self Event
-playing = unsafeEventName (toJSString "playing")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onended Mozilla HTMLMediaElement.onended documentation> 
-ended ::
-      (IsHTMLMediaElement self, IsEventTarget self) =>
-        EventName self Event
-ended = unsafeEventName (toJSString "ended")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onwaiting Mozilla HTMLMediaElement.onwaiting documentation> 
-waiting ::
-        (IsHTMLMediaElement self, IsEventTarget self) =>
-          EventName self Event
-waiting = unsafeEventName (toJSString "waiting")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.ondurationchange Mozilla HTMLMediaElement.ondurationchange documentation> 
-durationChange ::
-               (IsHTMLMediaElement self, IsEventTarget self) =>
-                 EventName self Event
-durationChange = unsafeEventName (toJSString "durationchange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.ontimeupdate Mozilla HTMLMediaElement.ontimeupdate documentation> 
-timeUpdate ::
-           (IsHTMLMediaElement self, IsEventTarget self) =>
-             EventName self Event
-timeUpdate = unsafeEventName (toJSString "timeupdate")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onplay Mozilla HTMLMediaElement.onplay documentation> 
-playEvent ::
-          (IsHTMLMediaElement self, IsEventTarget self) =>
-            EventName self Event
-playEvent = unsafeEventName (toJSString "play")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onpause Mozilla HTMLMediaElement.onpause documentation> 
-pauseEvent ::
-           (IsHTMLMediaElement self, IsEventTarget self) =>
-             EventName self Event
-pauseEvent = unsafeEventName (toJSString "pause")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onratechange Mozilla HTMLMediaElement.onratechange documentation> 
-rateChange ::
-           (IsHTMLMediaElement self, IsEventTarget self) =>
-             EventName self Event
-rateChange = unsafeEventName (toJSString "ratechange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onvolumechange Mozilla HTMLMediaElement.onvolumechange documentation> 
-volumeChange ::
-             (IsHTMLMediaElement self, IsEventTarget self) =>
-               EventName self Event
-volumeChange = unsafeEventName (toJSString "volumechange")
  
 foreign import javascript unsafe
         "$1[\"webkitPreservesPitch\"] = $2;" js_setWebkitPreservesPitch ::
@@ -847,192 +685,89 @@
 getWebkitVideoDecodedByteCount self
   = liftIO
       (js_getWebkitVideoDecodedByteCount (toHTMLMediaElement self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onwebkitkeyadded Mozilla HTMLMediaElement.onwebkitkeyadded documentation> 
-webKitKeyAdded ::
-               (IsHTMLMediaElement self, IsEventTarget self) =>
-                 EventName self Event
-webKitKeyAdded = unsafeEventName (toJSString "webkitkeyadded")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onwebkitkeyerror Mozilla HTMLMediaElement.onwebkitkeyerror documentation> 
-webKitKeyError ::
-               (IsHTMLMediaElement self, IsEventTarget self) =>
-                 EventName self Event
-webKitKeyError = unsafeEventName (toJSString "webkitkeyerror")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onwebkitkeymessage Mozilla HTMLMediaElement.onwebkitkeymessage documentation> 
-webKitKeyMessage ::
-                 (IsHTMLMediaElement self, IsEventTarget self) =>
-                   EventName self Event
-webKitKeyMessage = unsafeEventName (toJSString "webkitkeymessage")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onwebkitneedkey Mozilla HTMLMediaElement.onwebkitneedkey documentation> 
-webKitNeedKey ::
-              (IsHTMLMediaElement self, IsEventTarget self) =>
-                EventName self Event
-webKitNeedKey = unsafeEventName (toJSString "webkitneedkey")
  
 foreign import javascript unsafe "$1[\"webkitKeys\"]"
-        js_getWebkitKeys :: HTMLMediaElement -> IO (Nullable MediaKeys)
+        js_getWebkitKeys :: HTMLMediaElement -> IO WebKitMediaKeys
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.webkitKeys Mozilla HTMLMediaElement.webkitKeys documentation> 
 getWebkitKeys ::
-              (MonadIO m, IsHTMLMediaElement self) => self -> m (Maybe MediaKeys)
+              (MonadIO m, IsHTMLMediaElement self) => self -> m WebKitMediaKeys
 getWebkitKeys self
-  = liftIO
-      (nullableToMaybe <$> (js_getWebkitKeys (toHTMLMediaElement self)))
+  = liftIO (js_getWebkitKeys (toHTMLMediaElement self))
+ 
+foreign import javascript unsafe "$1[\"mediaKeys\"]"
+        js_getMediaKeys :: HTMLMediaElement -> IO MediaKeys
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.webkitKeys Mozilla HTMLMediaElement.webkitKeys documentation> 
-getWebkitKeysUnsafe ::
-                    (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
-                      self -> m MediaKeys
-getWebkitKeysUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWebkitKeys (toHTMLMediaElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.mediaKeys Mozilla HTMLMediaElement.mediaKeys documentation> 
+getMediaKeys ::
+             (MonadIO m, IsHTMLMediaElement self) => self -> m MediaKeys
+getMediaKeys self
+  = liftIO (js_getMediaKeys (toHTMLMediaElement self))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.webkitKeys Mozilla HTMLMediaElement.webkitKeys documentation> 
-getWebkitKeysUnchecked ::
-                       (MonadIO m, IsHTMLMediaElement self) => self -> m MediaKeys
-getWebkitKeysUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getWebkitKeys (toHTMLMediaElement self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onencrypted Mozilla HTMLMediaElement.onencrypted documentation> 
+encrypted ::
+          (IsHTMLMediaElement self, IsEventTarget self) =>
+            EventName self onencrypted
+encrypted = unsafeEventName (toJSString "encrypted")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onwaitingforkey Mozilla HTMLMediaElement.onwaitingforkey documentation> 
+waitingforkey ::
+              (IsHTMLMediaElement self, IsEventTarget self) =>
+                EventName self onwaitingforkey
+waitingforkey = unsafeEventName (toJSString "waitingforkey")
  
 foreign import javascript unsafe "$1[\"audioTracks\"]"
-        js_getAudioTracks ::
-        HTMLMediaElement -> IO (Nullable AudioTrackList)
+        js_getAudioTracks :: HTMLMediaElement -> IO AudioTrackList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.audioTracks Mozilla HTMLMediaElement.audioTracks documentation> 
 getAudioTracks ::
-               (MonadIO m, IsHTMLMediaElement self) =>
-                 self -> m (Maybe AudioTrackList)
+               (MonadIO m, IsHTMLMediaElement self) => self -> m AudioTrackList
 getAudioTracks self
-  = liftIO
-      (nullableToMaybe <$> (js_getAudioTracks (toHTMLMediaElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.audioTracks Mozilla HTMLMediaElement.audioTracks documentation> 
-getAudioTracksUnsafe ::
-                     (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
-                       self -> m AudioTrackList
-getAudioTracksUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getAudioTracks (toHTMLMediaElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.audioTracks Mozilla HTMLMediaElement.audioTracks documentation> 
-getAudioTracksUnchecked ::
-                        (MonadIO m, IsHTMLMediaElement self) => self -> m AudioTrackList
-getAudioTracksUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getAudioTracks (toHTMLMediaElement self)))
+  = liftIO (js_getAudioTracks (toHTMLMediaElement self))
  
 foreign import javascript unsafe "$1[\"textTracks\"]"
-        js_getTextTracks :: HTMLMediaElement -> IO (Nullable TextTrackList)
+        js_getTextTracks :: HTMLMediaElement -> IO TextTrackList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.textTracks Mozilla HTMLMediaElement.textTracks documentation> 
 getTextTracks ::
-              (MonadIO m, IsHTMLMediaElement self) =>
-                self -> m (Maybe TextTrackList)
+              (MonadIO m, IsHTMLMediaElement self) => self -> m TextTrackList
 getTextTracks self
-  = liftIO
-      (nullableToMaybe <$> (js_getTextTracks (toHTMLMediaElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.textTracks Mozilla HTMLMediaElement.textTracks documentation> 
-getTextTracksUnsafe ::
-                    (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
-                      self -> m TextTrackList
-getTextTracksUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTextTracks (toHTMLMediaElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.textTracks Mozilla HTMLMediaElement.textTracks documentation> 
-getTextTracksUnchecked ::
-                       (MonadIO m, IsHTMLMediaElement self) => self -> m TextTrackList
-getTextTracksUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTextTracks (toHTMLMediaElement self)))
+  = liftIO (js_getTextTracks (toHTMLMediaElement self))
  
 foreign import javascript unsafe "$1[\"videoTracks\"]"
-        js_getVideoTracks ::
-        HTMLMediaElement -> IO (Nullable VideoTrackList)
+        js_getVideoTracks :: HTMLMediaElement -> IO VideoTrackList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.videoTracks Mozilla HTMLMediaElement.videoTracks documentation> 
 getVideoTracks ::
-               (MonadIO m, IsHTMLMediaElement self) =>
-                 self -> m (Maybe VideoTrackList)
+               (MonadIO m, IsHTMLMediaElement self) => self -> m VideoTrackList
 getVideoTracks self
-  = liftIO
-      (nullableToMaybe <$> (js_getVideoTracks (toHTMLMediaElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.videoTracks Mozilla HTMLMediaElement.videoTracks documentation> 
-getVideoTracksUnsafe ::
-                     (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
-                       self -> m VideoTrackList
-getVideoTracksUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getVideoTracks (toHTMLMediaElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.videoTracks Mozilla HTMLMediaElement.videoTracks documentation> 
-getVideoTracksUnchecked ::
-                        (MonadIO m, IsHTMLMediaElement self) => self -> m VideoTrackList
-getVideoTracksUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getVideoTracks (toHTMLMediaElement self)))
+  = liftIO (js_getVideoTracks (toHTMLMediaElement self))
  
 foreign import javascript unsafe "$1[\"mediaGroup\"] = $2;"
-        js_setMediaGroup :: HTMLMediaElement -> Nullable JSString -> IO ()
+        js_setMediaGroup :: HTMLMediaElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.mediaGroup Mozilla HTMLMediaElement.mediaGroup documentation> 
 setMediaGroup ::
               (MonadIO m, IsHTMLMediaElement self, ToJSString val) =>
-                self -> Maybe val -> m ()
+                self -> val -> m ()
 setMediaGroup self val
   = liftIO
-      (js_setMediaGroup (toHTMLMediaElement self) (toMaybeJSString val))
+      (js_setMediaGroup (toHTMLMediaElement self) (toJSString val))
  
 foreign import javascript unsafe "$1[\"mediaGroup\"]"
-        js_getMediaGroup :: HTMLMediaElement -> IO (Nullable JSString)
+        js_getMediaGroup :: HTMLMediaElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.mediaGroup Mozilla HTMLMediaElement.mediaGroup documentation> 
 getMediaGroup ::
               (MonadIO m, IsHTMLMediaElement self, FromJSString result) =>
-                self -> m (Maybe result)
+                self -> m result
 getMediaGroup self
   = liftIO
-      (fromMaybeJSString <$>
-         (js_getMediaGroup (toHTMLMediaElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.mediaGroup Mozilla HTMLMediaElement.mediaGroup documentation> 
-getMediaGroupUnsafe ::
-                    (MonadIO m, IsHTMLMediaElement self, HasCallStack,
-                     FromJSString result) =>
-                      self -> m result
-getMediaGroupUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_getMediaGroup (toHTMLMediaElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.mediaGroup Mozilla HTMLMediaElement.mediaGroup documentation> 
-getMediaGroupUnchecked ::
-                       (MonadIO m, IsHTMLMediaElement self, FromJSString result) =>
-                         self -> m result
-getMediaGroupUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getMediaGroup (toHTMLMediaElement self)))
+      (fromJSString <$> (js_getMediaGroup (toHTMLMediaElement self)))
  
 foreign import javascript unsafe "$1[\"controller\"] = $2;"
         js_setController ::
-        HTMLMediaElement -> Nullable MediaController -> IO ()
+        HTMLMediaElement -> Optional MediaController -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.controller Mozilla HTMLMediaElement.controller documentation> 
 setController ::
@@ -1040,7 +775,7 @@
                 self -> Maybe MediaController -> m ()
 setController self val
   = liftIO
-      (js_setController (toHTMLMediaElement self) (maybeToNullable val))
+      (js_setController (toHTMLMediaElement self) (maybeToOptional val))
  
 foreign import javascript unsafe "$1[\"controller\"]"
         js_getController ::
@@ -1083,61 +818,62 @@
   = liftIO
       (js_getWebkitCurrentPlaybackTargetIsWireless
          (toHTMLMediaElement self))
+ 
+foreign import javascript unsafe "$1[\"kind\"] = $2;" js_setKind ::
+        HTMLMediaElement -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onwebkitcurrentplaybacktargetiswirelesschanged Mozilla HTMLMediaElement.onwebkitcurrentplaybacktargetiswirelesschanged documentation> 
-webKitCurrentPlaybackTargetIsWirelessChanged ::
-                                             (IsHTMLMediaElement self, IsEventTarget self) =>
-                                               EventName self Event
-webKitCurrentPlaybackTargetIsWirelessChanged
-  = unsafeEventName
-      (toJSString "webkitcurrentplaybacktargetiswirelesschanged")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.kind Mozilla HTMLMediaElement.kind documentation> 
+setKind ::
+        (MonadIO m, IsHTMLMediaElement self, ToJSString val) =>
+          self -> val -> m ()
+setKind self val
+  = liftIO (js_setKind (toHTMLMediaElement self) (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"kind\"]" js_getKind ::
+        HTMLMediaElement -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.onwebkitplaybacktargetavailabilitychanged Mozilla HTMLMediaElement.onwebkitplaybacktargetavailabilitychanged documentation> 
-webKitPlaybackTargetAvailabilityChanged ::
-                                        (IsHTMLMediaElement self, IsEventTarget self) =>
-                                          EventName self Event
-webKitPlaybackTargetAvailabilityChanged
-  = unsafeEventName
-      (toJSString "webkitplaybacktargetavailabilitychanged")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.kind Mozilla HTMLMediaElement.kind documentation> 
+getKind ::
+        (MonadIO m, IsHTMLMediaElement self, FromJSString result) =>
+          self -> m result
+getKind self
+  = liftIO (fromJSString <$> (js_getKind (toHTMLMediaElement self)))
  
-foreign import javascript unsafe "$1[\"srcObject\"] = $2;"
-        js_setSrcObject ::
-        HTMLMediaElement -> Nullable MediaStream -> IO ()
+foreign import javascript unsafe "$1[\"session\"] = $2;"
+        js_setSession :: HTMLMediaElement -> Optional MediaSession -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.srcObject Mozilla HTMLMediaElement.srcObject documentation> 
-setSrcObject ::
-             (MonadIO m, IsHTMLMediaElement self) =>
-               self -> Maybe MediaStream -> m ()
-setSrcObject self val
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.session Mozilla HTMLMediaElement.session documentation> 
+setSession ::
+           (MonadIO m, IsHTMLMediaElement self) =>
+             self -> Maybe MediaSession -> m ()
+setSession self val
   = liftIO
-      (js_setSrcObject (toHTMLMediaElement self) (maybeToNullable val))
+      (js_setSession (toHTMLMediaElement self) (maybeToOptional val))
  
-foreign import javascript unsafe "$1[\"srcObject\"]"
-        js_getSrcObject :: HTMLMediaElement -> IO JSVal
+foreign import javascript unsafe "$1[\"session\"]" js_getSession ::
+        HTMLMediaElement -> IO (Nullable MediaSession)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.srcObject Mozilla HTMLMediaElement.srcObject documentation> 
-getSrcObject ::
-             (MonadIO m, IsHTMLMediaElement self) =>
-               self -> m (Maybe MediaStream)
-getSrcObject self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.session Mozilla HTMLMediaElement.session documentation> 
+getSession ::
+           (MonadIO m, IsHTMLMediaElement self) =>
+             self -> m (Maybe MediaSession)
+getSession self
   = liftIO
-      ((js_getSrcObject (toHTMLMediaElement self)) >>=
-         fromJSValUnchecked)
+      (nullableToMaybe <$> (js_getSession (toHTMLMediaElement self)))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.srcObject Mozilla HTMLMediaElement.srcObject documentation> 
-getSrcObjectUnsafe ::
-                   (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
-                     self -> m MediaStream
-getSrcObjectUnsafe self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.session Mozilla HTMLMediaElement.session documentation> 
+getSessionUnsafe ::
+                 (MonadIO m, IsHTMLMediaElement self, HasCallStack) =>
+                   self -> m MediaSession
+getSessionUnsafe self
   = liftIO
-      (((js_getSrcObject (toHTMLMediaElement self)) >>=
-          fromJSValUnchecked)
+      ((nullableToMaybe <$> (js_getSession (toHTMLMediaElement self)))
          >>= maybe (Prelude.error "Nothing to return") return)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.srcObject Mozilla HTMLMediaElement.srcObject documentation> 
-getSrcObjectUnchecked ::
-                      (MonadIO m, IsHTMLMediaElement self) => self -> m MediaStream
-getSrcObjectUnchecked self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.session Mozilla HTMLMediaElement.session documentation> 
+getSessionUnchecked ::
+                    (MonadIO m, IsHTMLMediaElement self) => self -> m MediaSession
+getSessionUnchecked self
   = liftIO
-      ((js_getSrcObject (toHTMLMediaElement self)) >>=
-         fromJSValUnchecked)
+      (fromJust . nullableToMaybe <$>
+         (js_getSession (toHTMLMediaElement self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLMenuElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLMenuElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLMenuElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLMenuElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,11 +31,11 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMenuElement.compact Mozilla HTMLMenuElement.compact documentation> 
 setCompact :: (MonadIO m) => HTMLMenuElement -> Bool -> m ()
-setCompact self val = liftIO (js_setCompact (self) val)
+setCompact self val = liftIO (js_setCompact self val)
  
 foreign import javascript unsafe "($1[\"compact\"] ? 1 : 0)"
         js_getCompact :: HTMLMenuElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMenuElement.compact Mozilla HTMLMenuElement.compact documentation> 
 getCompact :: (MonadIO m) => HTMLMenuElement -> m Bool
-getCompact self = liftIO (js_getCompact (self))
+getCompact self = liftIO (js_getCompact self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLMetaElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLMetaElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLMetaElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLMetaElement.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,8 +34,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement.content Mozilla HTMLMetaElement.content documentation> 
 setContent ::
            (MonadIO m, ToJSString val) => HTMLMetaElement -> val -> m ()
-setContent self val
-  = liftIO (js_setContent (self) (toJSString val))
+setContent self val = liftIO (js_setContent self (toJSString val))
  
 foreign import javascript unsafe "$1[\"content\"]" js_getContent ::
         HTMLMetaElement -> IO JSString
@@ -42,7 +42,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement.content Mozilla HTMLMetaElement.content documentation> 
 getContent ::
            (MonadIO m, FromJSString result) => HTMLMetaElement -> m result
-getContent self = liftIO (fromJSString <$> (js_getContent (self)))
+getContent self = liftIO (fromJSString <$> (js_getContent self))
  
 foreign import javascript unsafe "$1[\"httpEquiv\"] = $2;"
         js_setHttpEquiv :: HTMLMetaElement -> JSString -> IO ()
@@ -51,7 +51,7 @@
 setHttpEquiv ::
              (MonadIO m, ToJSString val) => HTMLMetaElement -> val -> m ()
 setHttpEquiv self val
-  = liftIO (js_setHttpEquiv (self) (toJSString val))
+  = liftIO (js_setHttpEquiv self (toJSString val))
  
 foreign import javascript unsafe "$1[\"httpEquiv\"]"
         js_getHttpEquiv :: HTMLMetaElement -> IO JSString
@@ -60,7 +60,7 @@
 getHttpEquiv ::
              (MonadIO m, FromJSString result) => HTMLMetaElement -> m result
 getHttpEquiv self
-  = liftIO (fromJSString <$> (js_getHttpEquiv (self)))
+  = liftIO (fromJSString <$> (js_getHttpEquiv self))
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLMetaElement -> JSString -> IO ()
@@ -68,7 +68,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement.name Mozilla HTMLMetaElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLMetaElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLMetaElement -> IO JSString
@@ -76,7 +76,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement.name Mozilla HTMLMetaElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLMetaElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"scheme\"] = $2;"
         js_setScheme :: HTMLMetaElement -> JSString -> IO ()
@@ -84,7 +84,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement.scheme Mozilla HTMLMetaElement.scheme documentation> 
 setScheme ::
           (MonadIO m, ToJSString val) => HTMLMetaElement -> val -> m ()
-setScheme self val = liftIO (js_setScheme (self) (toJSString val))
+setScheme self val = liftIO (js_setScheme self (toJSString val))
  
 foreign import javascript unsafe "$1[\"scheme\"]" js_getScheme ::
         HTMLMetaElement -> IO JSString
@@ -92,4 +92,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement.scheme Mozilla HTMLMetaElement.scheme documentation> 
 getScheme ::
           (MonadIO m, FromJSString result) => HTMLMetaElement -> m result
-getScheme self = liftIO (fromJSString <$> (js_getScheme (self)))
+getScheme self = liftIO (fromJSString <$> (js_getScheme self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLMeterElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLMeterElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLMeterElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLMeterElement.hs
@@ -8,14 +8,14 @@
         js_getMin, getMin, js_setMax, setMax, js_getMax, getMax, js_setLow,
         setLow, js_getLow, getLow, js_setHigh, setHigh, js_getHigh,
         getHigh, js_setOptimum, setOptimum, js_getOptimum, getOptimum,
-        js_getLabels, getLabels, getLabelsUnsafe, getLabelsUnchecked,
-        HTMLMeterElement(..), gTypeHTMLMeterElement)
+        js_getLabels, getLabels, HTMLMeterElement(..),
+        gTypeHTMLMeterElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,101 +35,88 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.value Mozilla HTMLMeterElement.value documentation> 
 setValue :: (MonadIO m) => HTMLMeterElement -> Double -> m ()
-setValue self val = liftIO (js_setValue (self) val)
+setValue self val = liftIO (js_setValue self val)
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         HTMLMeterElement -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.value Mozilla HTMLMeterElement.value documentation> 
 getValue :: (MonadIO m) => HTMLMeterElement -> m Double
-getValue self = liftIO (js_getValue (self))
+getValue self = liftIO (js_getValue self)
  
 foreign import javascript unsafe "$1[\"min\"] = $2;" js_setMin ::
         HTMLMeterElement -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.min Mozilla HTMLMeterElement.min documentation> 
 setMin :: (MonadIO m) => HTMLMeterElement -> Double -> m ()
-setMin self val = liftIO (js_setMin (self) val)
+setMin self val = liftIO (js_setMin self val)
  
 foreign import javascript unsafe "$1[\"min\"]" js_getMin ::
         HTMLMeterElement -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.min Mozilla HTMLMeterElement.min documentation> 
 getMin :: (MonadIO m) => HTMLMeterElement -> m Double
-getMin self = liftIO (js_getMin (self))
+getMin self = liftIO (js_getMin self)
  
 foreign import javascript unsafe "$1[\"max\"] = $2;" js_setMax ::
         HTMLMeterElement -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.max Mozilla HTMLMeterElement.max documentation> 
 setMax :: (MonadIO m) => HTMLMeterElement -> Double -> m ()
-setMax self val = liftIO (js_setMax (self) val)
+setMax self val = liftIO (js_setMax self val)
  
 foreign import javascript unsafe "$1[\"max\"]" js_getMax ::
         HTMLMeterElement -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.max Mozilla HTMLMeterElement.max documentation> 
 getMax :: (MonadIO m) => HTMLMeterElement -> m Double
-getMax self = liftIO (js_getMax (self))
+getMax self = liftIO (js_getMax self)
  
 foreign import javascript unsafe "$1[\"low\"] = $2;" js_setLow ::
         HTMLMeterElement -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.low Mozilla HTMLMeterElement.low documentation> 
 setLow :: (MonadIO m) => HTMLMeterElement -> Double -> m ()
-setLow self val = liftIO (js_setLow (self) val)
+setLow self val = liftIO (js_setLow self val)
  
 foreign import javascript unsafe "$1[\"low\"]" js_getLow ::
         HTMLMeterElement -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.low Mozilla HTMLMeterElement.low documentation> 
 getLow :: (MonadIO m) => HTMLMeterElement -> m Double
-getLow self = liftIO (js_getLow (self))
+getLow self = liftIO (js_getLow self)
  
 foreign import javascript unsafe "$1[\"high\"] = $2;" js_setHigh ::
         HTMLMeterElement -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.high Mozilla HTMLMeterElement.high documentation> 
 setHigh :: (MonadIO m) => HTMLMeterElement -> Double -> m ()
-setHigh self val = liftIO (js_setHigh (self) val)
+setHigh self val = liftIO (js_setHigh self val)
  
 foreign import javascript unsafe "$1[\"high\"]" js_getHigh ::
         HTMLMeterElement -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.high Mozilla HTMLMeterElement.high documentation> 
 getHigh :: (MonadIO m) => HTMLMeterElement -> m Double
-getHigh self = liftIO (js_getHigh (self))
+getHigh self = liftIO (js_getHigh self)
  
 foreign import javascript unsafe "$1[\"optimum\"] = $2;"
         js_setOptimum :: HTMLMeterElement -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.optimum Mozilla HTMLMeterElement.optimum documentation> 
 setOptimum :: (MonadIO m) => HTMLMeterElement -> Double -> m ()
-setOptimum self val = liftIO (js_setOptimum (self) val)
+setOptimum self val = liftIO (js_setOptimum self val)
  
 foreign import javascript unsafe "$1[\"optimum\"]" js_getOptimum ::
         HTMLMeterElement -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.optimum Mozilla HTMLMeterElement.optimum documentation> 
 getOptimum :: (MonadIO m) => HTMLMeterElement -> m Double
-getOptimum self = liftIO (js_getOptimum (self))
+getOptimum self = liftIO (js_getOptimum self)
  
 foreign import javascript unsafe "$1[\"labels\"]" js_getLabels ::
-        HTMLMeterElement -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.labels Mozilla HTMLMeterElement.labels documentation> 
-getLabels :: (MonadIO m) => HTMLMeterElement -> m (Maybe NodeList)
-getLabels self = liftIO (nullableToMaybe <$> (js_getLabels (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.labels Mozilla HTMLMeterElement.labels documentation> 
-getLabelsUnsafe ::
-                (MonadIO m, HasCallStack) => HTMLMeterElement -> m NodeList
-getLabelsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLabels (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLMeterElement -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement.labels Mozilla HTMLMeterElement.labels documentation> 
-getLabelsUnchecked :: (MonadIO m) => HTMLMeterElement -> m NodeList
-getLabelsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getLabels (self)))
+getLabels :: (MonadIO m) => HTMLMeterElement -> m NodeList
+getLabels self = liftIO (js_getLabels self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLModElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLModElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLModElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLModElement.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,7 +33,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLModElement.cite Mozilla HTMLModElement.cite documentation> 
 setCite ::
         (MonadIO m, ToJSString val) => HTMLModElement -> val -> m ()
-setCite self val = liftIO (js_setCite (self) (toJSString val))
+setCite self val = liftIO (js_setCite self (toJSString val))
  
 foreign import javascript unsafe "$1[\"cite\"]" js_getCite ::
         HTMLModElement -> IO JSString
@@ -40,7 +41,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLModElement.cite Mozilla HTMLModElement.cite documentation> 
 getCite ::
         (MonadIO m, FromJSString result) => HTMLModElement -> m result
-getCite self = liftIO (fromJSString <$> (js_getCite (self)))
+getCite self = liftIO (fromJSString <$> (js_getCite self))
  
 foreign import javascript unsafe "$1[\"dateTime\"] = $2;"
         js_setDateTime :: HTMLModElement -> JSString -> IO ()
@@ -49,7 +50,7 @@
 setDateTime ::
             (MonadIO m, ToJSString val) => HTMLModElement -> val -> m ()
 setDateTime self val
-  = liftIO (js_setDateTime (self) (toJSString val))
+  = liftIO (js_setDateTime self (toJSString val))
  
 foreign import javascript unsafe "$1[\"dateTime\"]" js_getDateTime
         :: HTMLModElement -> IO JSString
@@ -57,5 +58,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLModElement.dateTime Mozilla HTMLModElement.dateTime documentation> 
 getDateTime ::
             (MonadIO m, FromJSString result) => HTMLModElement -> m result
-getDateTime self
-  = liftIO (fromJSString <$> (js_getDateTime (self)))
+getDateTime self = liftIO (fromJSString <$> (js_getDateTime self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLOListElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLOListElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLOListElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLOListElement.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,42 +33,42 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement.compact Mozilla HTMLOListElement.compact documentation> 
 setCompact :: (MonadIO m) => HTMLOListElement -> Bool -> m ()
-setCompact self val = liftIO (js_setCompact (self) val)
+setCompact self val = liftIO (js_setCompact self val)
  
 foreign import javascript unsafe "($1[\"compact\"] ? 1 : 0)"
         js_getCompact :: HTMLOListElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement.compact Mozilla HTMLOListElement.compact documentation> 
 getCompact :: (MonadIO m) => HTMLOListElement -> m Bool
-getCompact self = liftIO (js_getCompact (self))
+getCompact self = liftIO (js_getCompact self)
  
 foreign import javascript unsafe "$1[\"start\"] = $2;" js_setStart
         :: HTMLOListElement -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement.start Mozilla HTMLOListElement.start documentation> 
 setStart :: (MonadIO m) => HTMLOListElement -> Int -> m ()
-setStart self val = liftIO (js_setStart (self) val)
+setStart self val = liftIO (js_setStart self val)
  
 foreign import javascript unsafe "$1[\"start\"]" js_getStart ::
         HTMLOListElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement.start Mozilla HTMLOListElement.start documentation> 
 getStart :: (MonadIO m) => HTMLOListElement -> m Int
-getStart self = liftIO (js_getStart (self))
+getStart self = liftIO (js_getStart self)
  
 foreign import javascript unsafe "$1[\"reversed\"] = $2;"
         js_setReversed :: HTMLOListElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement.reversed Mozilla HTMLOListElement.reversed documentation> 
 setReversed :: (MonadIO m) => HTMLOListElement -> Bool -> m ()
-setReversed self val = liftIO (js_setReversed (self) val)
+setReversed self val = liftIO (js_setReversed self val)
  
 foreign import javascript unsafe "($1[\"reversed\"] ? 1 : 0)"
         js_getReversed :: HTMLOListElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement.reversed Mozilla HTMLOListElement.reversed documentation> 
 getReversed :: (MonadIO m) => HTMLOListElement -> m Bool
-getReversed self = liftIO (js_getReversed (self))
+getReversed self = liftIO (js_getReversed self)
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         HTMLOListElement -> JSString -> IO ()
@@ -75,7 +76,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement.type Mozilla HTMLOListElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLOListElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLOListElement -> IO JSString
@@ -83,4 +84,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement.type Mozilla HTMLOListElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLOListElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLObjectElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLObjectElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLObjectElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLObjectElement.hs
@@ -5,34 +5,32 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLObjectElement
        (js_checkValidity, checkValidity, checkValidity_,
+        js_reportValidity, reportValidity, reportValidity_,
         js_setCustomValidity, setCustomValidity, js_getSVGDocument,
-        getSVGDocument, getSVGDocument_, getSVGDocumentUnsafe,
-        getSVGDocumentUnchecked, js_getForm, getForm, getFormUnsafe,
-        getFormUnchecked, js_setCode, setCode, js_getCode, getCode,
-        js_setAlign, setAlign, js_getAlign, getAlign, js_setArchive,
-        setArchive, js_getArchive, getArchive, js_setBorder, setBorder,
-        js_getBorder, getBorder, js_setCodeBase, setCodeBase,
-        js_getCodeBase, getCodeBase, js_setCodeType, setCodeType,
-        js_getCodeType, getCodeType, js_setData, setData, js_getData,
-        getData, js_setDeclare, setDeclare, js_getDeclare, getDeclare,
-        js_setHeight, setHeight, js_getHeight, getHeight, js_setHspace,
-        setHspace, js_getHspace, getHspace, js_setName, setName,
-        js_getName, getName, js_setStandby, setStandby, js_getStandby,
-        getStandby, js_setType, setType, js_getType, getType, js_setUseMap,
-        setUseMap, js_getUseMap, getUseMap, js_setVspace, setVspace,
-        js_getVspace, getVspace, js_setWidth, setWidth, js_getWidth,
-        getWidth, js_getWillValidate, getWillValidate, js_getValidity,
-        getValidity, getValidityUnsafe, getValidityUnchecked,
+        getSVGDocument, getSVGDocument_, js_getForm, getForm, js_setCode,
+        setCode, js_getCode, getCode, js_setAlign, setAlign, js_getAlign,
+        getAlign, js_setArchive, setArchive, js_getArchive, getArchive,
+        js_setBorder, setBorder, js_getBorder, getBorder, getBorderUnsafe,
+        getBorderUnchecked, js_setCodeBase, setCodeBase, js_getCodeBase,
+        getCodeBase, js_setCodeType, setCodeType, js_getCodeType,
+        getCodeType, js_setData, setData, js_getData, getData,
+        js_setDeclare, setDeclare, js_getDeclare, getDeclare, js_setHeight,
+        setHeight, js_getHeight, getHeight, js_setHspace, setHspace,
+        js_getHspace, getHspace, js_setName, setName, js_getName, getName,
+        js_setStandby, setStandby, js_getStandby, getStandby, js_setType,
+        setType, js_getType, getType, js_setUseMap, setUseMap,
+        js_getUseMap, getUseMap, js_setVspace, setVspace, js_getVspace,
+        getVspace, js_setWidth, setWidth, js_getWidth, getWidth,
+        js_getWillValidate, getWillValidate, js_getValidity, getValidity,
         js_getValidationMessage, getValidationMessage,
-        js_getContentDocument, getContentDocument,
-        getContentDocumentUnsafe, getContentDocumentUnchecked,
-        HTMLObjectElement(..), gTypeHTMLObjectElement)
+        js_getContentDocument, getContentDocument, HTMLObjectElement(..),
+        gTypeHTMLObjectElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -41,6 +39,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -52,72 +51,50 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.checkValidity Mozilla HTMLObjectElement.checkValidity documentation> 
 checkValidity :: (MonadIO m) => HTMLObjectElement -> m Bool
-checkValidity self = liftIO (js_checkValidity (self))
+checkValidity self = liftIO (js_checkValidity self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.checkValidity Mozilla HTMLObjectElement.checkValidity documentation> 
 checkValidity_ :: (MonadIO m) => HTMLObjectElement -> m ()
-checkValidity_ self = liftIO (void (js_checkValidity (self)))
+checkValidity_ self = liftIO (void (js_checkValidity self))
  
+foreign import javascript unsafe
+        "($1[\"reportValidity\"]() ? 1 : 0)" js_reportValidity ::
+        HTMLObjectElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.reportValidity Mozilla HTMLObjectElement.reportValidity documentation> 
+reportValidity :: (MonadIO m) => HTMLObjectElement -> m Bool
+reportValidity self = liftIO (js_reportValidity self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.reportValidity Mozilla HTMLObjectElement.reportValidity documentation> 
+reportValidity_ :: (MonadIO m) => HTMLObjectElement -> m ()
+reportValidity_ self = liftIO (void (js_reportValidity self))
+ 
 foreign import javascript unsafe "$1[\"setCustomValidity\"]($2)"
-        js_setCustomValidity ::
-        HTMLObjectElement -> Nullable JSString -> IO ()
+        js_setCustomValidity :: HTMLObjectElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.setCustomValidity Mozilla HTMLObjectElement.setCustomValidity documentation> 
 setCustomValidity ::
-                  (MonadIO m, ToJSString error) =>
-                    HTMLObjectElement -> Maybe error -> m ()
+                  (MonadIO m, ToJSString error) => HTMLObjectElement -> error -> m ()
 setCustomValidity self error
-  = liftIO (js_setCustomValidity (self) (toMaybeJSString error))
+  = liftIO (js_setCustomValidity self (toJSString error))
  
 foreign import javascript unsafe "$1[\"getSVGDocument\"]()"
-        js_getSVGDocument :: HTMLObjectElement -> IO (Nullable SVGDocument)
+        js_getSVGDocument :: HTMLObjectElement -> IO Document
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.getSVGDocument Mozilla HTMLObjectElement.getSVGDocument documentation> 
-getSVGDocument ::
-               (MonadIO m) => HTMLObjectElement -> m (Maybe SVGDocument)
-getSVGDocument self
-  = liftIO (nullableToMaybe <$> (js_getSVGDocument (self)))
+getSVGDocument :: (MonadIO m) => HTMLObjectElement -> m Document
+getSVGDocument self = liftIO (js_getSVGDocument self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.getSVGDocument Mozilla HTMLObjectElement.getSVGDocument documentation> 
 getSVGDocument_ :: (MonadIO m) => HTMLObjectElement -> m ()
-getSVGDocument_ self = liftIO (void (js_getSVGDocument (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.getSVGDocument Mozilla HTMLObjectElement.getSVGDocument documentation> 
-getSVGDocumentUnsafe ::
-                     (MonadIO m, HasCallStack) => HTMLObjectElement -> m SVGDocument
-getSVGDocumentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSVGDocument (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.getSVGDocument Mozilla HTMLObjectElement.getSVGDocument documentation> 
-getSVGDocumentUnchecked ::
-                        (MonadIO m) => HTMLObjectElement -> m SVGDocument
-getSVGDocumentUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSVGDocument (self)))
+getSVGDocument_ self = liftIO (void (js_getSVGDocument self))
  
 foreign import javascript unsafe "$1[\"form\"]" js_getForm ::
-        HTMLObjectElement -> IO (Nullable HTMLFormElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.form Mozilla HTMLObjectElement.form documentation> 
-getForm ::
-        (MonadIO m) => HTMLObjectElement -> m (Maybe HTMLFormElement)
-getForm self = liftIO (nullableToMaybe <$> (js_getForm (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.form Mozilla HTMLObjectElement.form documentation> 
-getFormUnsafe ::
-              (MonadIO m, HasCallStack) => HTMLObjectElement -> m HTMLFormElement
-getFormUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getForm (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLObjectElement -> IO HTMLFormElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.form Mozilla HTMLObjectElement.form documentation> 
-getFormUnchecked ::
-                 (MonadIO m) => HTMLObjectElement -> m HTMLFormElement
-getFormUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getForm (self)))
+getForm :: (MonadIO m) => HTMLObjectElement -> m HTMLFormElement
+getForm self = liftIO (js_getForm self)
  
 foreign import javascript unsafe "$1[\"code\"] = $2;" js_setCode ::
         HTMLObjectElement -> JSString -> IO ()
@@ -125,7 +102,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.code Mozilla HTMLObjectElement.code documentation> 
 setCode ::
         (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
-setCode self val = liftIO (js_setCode (self) (toJSString val))
+setCode self val = liftIO (js_setCode self (toJSString val))
  
 foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
         HTMLObjectElement -> IO JSString
@@ -133,7 +110,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.code Mozilla HTMLObjectElement.code documentation> 
 getCode ::
         (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getCode self = liftIO (fromJSString <$> (js_getCode (self)))
+getCode self = liftIO (fromJSString <$> (js_getCode self))
  
 foreign import javascript unsafe "$1[\"align\"] = $2;" js_setAlign
         :: HTMLObjectElement -> JSString -> IO ()
@@ -141,7 +118,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.align Mozilla HTMLObjectElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLObjectElement -> IO JSString
@@ -149,7 +126,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.align Mozilla HTMLObjectElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"archive\"] = $2;"
         js_setArchive :: HTMLObjectElement -> JSString -> IO ()
@@ -157,8 +134,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.archive Mozilla HTMLObjectElement.archive documentation> 
 setArchive ::
            (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
-setArchive self val
-  = liftIO (js_setArchive (self) (toJSString val))
+setArchive self val = liftIO (js_setArchive self (toJSString val))
  
 foreign import javascript unsafe "$1[\"archive\"]" js_getArchive ::
         HTMLObjectElement -> IO JSString
@@ -166,23 +142,41 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.archive Mozilla HTMLObjectElement.archive documentation> 
 getArchive ::
            (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getArchive self = liftIO (fromJSString <$> (js_getArchive (self)))
+getArchive self = liftIO (fromJSString <$> (js_getArchive self))
  
 foreign import javascript unsafe "$1[\"border\"] = $2;"
-        js_setBorder :: HTMLObjectElement -> JSString -> IO ()
+        js_setBorder :: HTMLObjectElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.border Mozilla HTMLObjectElement.border documentation> 
 setBorder ::
-          (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
-setBorder self val = liftIO (js_setBorder (self) (toJSString val))
+          (MonadIO m, ToJSString val) =>
+            HTMLObjectElement -> Maybe val -> m ()
+setBorder self val
+  = liftIO (js_setBorder self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"border\"]" js_getBorder ::
-        HTMLObjectElement -> IO JSString
+        HTMLObjectElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.border Mozilla HTMLObjectElement.border documentation> 
 getBorder ::
-          (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getBorder self = liftIO (fromJSString <$> (js_getBorder (self)))
+          (MonadIO m, FromJSString result) =>
+            HTMLObjectElement -> m (Maybe result)
+getBorder self = liftIO (fromMaybeJSString <$> (js_getBorder self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.border Mozilla HTMLObjectElement.border documentation> 
+getBorderUnsafe ::
+                (MonadIO m, HasCallStack, FromJSString result) =>
+                  HTMLObjectElement -> m result
+getBorderUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getBorder self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.border Mozilla HTMLObjectElement.border documentation> 
+getBorderUnchecked ::
+                   (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
+getBorderUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getBorder self))
  
 foreign import javascript unsafe "$1[\"codeBase\"] = $2;"
         js_setCodeBase :: HTMLObjectElement -> JSString -> IO ()
@@ -191,7 +185,7 @@
 setCodeBase ::
             (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
 setCodeBase self val
-  = liftIO (js_setCodeBase (self) (toJSString val))
+  = liftIO (js_setCodeBase self (toJSString val))
  
 foreign import javascript unsafe "$1[\"codeBase\"]" js_getCodeBase
         :: HTMLObjectElement -> IO JSString
@@ -199,8 +193,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.codeBase Mozilla HTMLObjectElement.codeBase documentation> 
 getCodeBase ::
             (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getCodeBase self
-  = liftIO (fromJSString <$> (js_getCodeBase (self)))
+getCodeBase self = liftIO (fromJSString <$> (js_getCodeBase self))
  
 foreign import javascript unsafe "$1[\"codeType\"] = $2;"
         js_setCodeType :: HTMLObjectElement -> JSString -> IO ()
@@ -209,7 +202,7 @@
 setCodeType ::
             (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
 setCodeType self val
-  = liftIO (js_setCodeType (self) (toJSString val))
+  = liftIO (js_setCodeType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"codeType\"]" js_getCodeType
         :: HTMLObjectElement -> IO JSString
@@ -217,8 +210,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.codeType Mozilla HTMLObjectElement.codeType documentation> 
 getCodeType ::
             (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getCodeType self
-  = liftIO (fromJSString <$> (js_getCodeType (self)))
+getCodeType self = liftIO (fromJSString <$> (js_getCodeType self))
  
 foreign import javascript unsafe "$1[\"data\"] = $2;" js_setData ::
         HTMLObjectElement -> JSString -> IO ()
@@ -226,7 +218,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.data Mozilla HTMLObjectElement.data documentation> 
 setData ::
         (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
-setData self val = liftIO (js_setData (self) (toJSString val))
+setData self val = liftIO (js_setData self (toJSString val))
  
 foreign import javascript unsafe "$1[\"data\"]" js_getData ::
         HTMLObjectElement -> IO JSString
@@ -234,21 +226,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.data Mozilla HTMLObjectElement.data documentation> 
 getData ::
         (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getData self = liftIO (fromJSString <$> (js_getData (self)))
+getData self = liftIO (fromJSString <$> (js_getData self))
  
 foreign import javascript unsafe "$1[\"declare\"] = $2;"
         js_setDeclare :: HTMLObjectElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.declare Mozilla HTMLObjectElement.declare documentation> 
 setDeclare :: (MonadIO m) => HTMLObjectElement -> Bool -> m ()
-setDeclare self val = liftIO (js_setDeclare (self) val)
+setDeclare self val = liftIO (js_setDeclare self val)
  
 foreign import javascript unsafe "($1[\"declare\"] ? 1 : 0)"
         js_getDeclare :: HTMLObjectElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.declare Mozilla HTMLObjectElement.declare documentation> 
 getDeclare :: (MonadIO m) => HTMLObjectElement -> m Bool
-getDeclare self = liftIO (js_getDeclare (self))
+getDeclare self = liftIO (js_getDeclare self)
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
         js_setHeight :: HTMLObjectElement -> JSString -> IO ()
@@ -256,7 +248,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.height Mozilla HTMLObjectElement.height documentation> 
 setHeight ::
           (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
-setHeight self val = liftIO (js_setHeight (self) (toJSString val))
+setHeight self val = liftIO (js_setHeight self (toJSString val))
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
         HTMLObjectElement -> IO JSString
@@ -264,21 +256,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.height Mozilla HTMLObjectElement.height documentation> 
 getHeight ::
           (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getHeight self = liftIO (fromJSString <$> (js_getHeight (self)))
+getHeight self = liftIO (fromJSString <$> (js_getHeight self))
  
 foreign import javascript unsafe "$1[\"hspace\"] = $2;"
-        js_setHspace :: HTMLObjectElement -> Int -> IO ()
+        js_setHspace :: HTMLObjectElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.hspace Mozilla HTMLObjectElement.hspace documentation> 
-setHspace :: (MonadIO m) => HTMLObjectElement -> Int -> m ()
-setHspace self val = liftIO (js_setHspace (self) val)
+setHspace :: (MonadIO m) => HTMLObjectElement -> Word -> m ()
+setHspace self val = liftIO (js_setHspace self val)
  
 foreign import javascript unsafe "$1[\"hspace\"]" js_getHspace ::
-        HTMLObjectElement -> IO Int
+        HTMLObjectElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.hspace Mozilla HTMLObjectElement.hspace documentation> 
-getHspace :: (MonadIO m) => HTMLObjectElement -> m Int
-getHspace self = liftIO (js_getHspace (self))
+getHspace :: (MonadIO m) => HTMLObjectElement -> m Word
+getHspace self = liftIO (js_getHspace self)
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLObjectElement -> JSString -> IO ()
@@ -286,7 +278,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.name Mozilla HTMLObjectElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLObjectElement -> IO JSString
@@ -294,7 +286,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.name Mozilla HTMLObjectElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"standby\"] = $2;"
         js_setStandby :: HTMLObjectElement -> JSString -> IO ()
@@ -302,8 +294,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.standby Mozilla HTMLObjectElement.standby documentation> 
 setStandby ::
            (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
-setStandby self val
-  = liftIO (js_setStandby (self) (toJSString val))
+setStandby self val = liftIO (js_setStandby self (toJSString val))
  
 foreign import javascript unsafe "$1[\"standby\"]" js_getStandby ::
         HTMLObjectElement -> IO JSString
@@ -311,7 +302,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.standby Mozilla HTMLObjectElement.standby documentation> 
 getStandby ::
            (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getStandby self = liftIO (fromJSString <$> (js_getStandby (self)))
+getStandby self = liftIO (fromJSString <$> (js_getStandby self))
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         HTMLObjectElement -> JSString -> IO ()
@@ -319,7 +310,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.type Mozilla HTMLObjectElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLObjectElement -> IO JSString
@@ -327,7 +318,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.type Mozilla HTMLObjectElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"useMap\"] = $2;"
         js_setUseMap :: HTMLObjectElement -> JSString -> IO ()
@@ -335,7 +326,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.useMap Mozilla HTMLObjectElement.useMap documentation> 
 setUseMap ::
           (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
-setUseMap self val = liftIO (js_setUseMap (self) (toJSString val))
+setUseMap self val = liftIO (js_setUseMap self (toJSString val))
  
 foreign import javascript unsafe "$1[\"useMap\"]" js_getUseMap ::
         HTMLObjectElement -> IO JSString
@@ -343,21 +334,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.useMap Mozilla HTMLObjectElement.useMap documentation> 
 getUseMap ::
           (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getUseMap self = liftIO (fromJSString <$> (js_getUseMap (self)))
+getUseMap self = liftIO (fromJSString <$> (js_getUseMap self))
  
 foreign import javascript unsafe "$1[\"vspace\"] = $2;"
-        js_setVspace :: HTMLObjectElement -> Int -> IO ()
+        js_setVspace :: HTMLObjectElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.vspace Mozilla HTMLObjectElement.vspace documentation> 
-setVspace :: (MonadIO m) => HTMLObjectElement -> Int -> m ()
-setVspace self val = liftIO (js_setVspace (self) val)
+setVspace :: (MonadIO m) => HTMLObjectElement -> Word -> m ()
+setVspace self val = liftIO (js_setVspace self val)
  
 foreign import javascript unsafe "$1[\"vspace\"]" js_getVspace ::
-        HTMLObjectElement -> IO Int
+        HTMLObjectElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.vspace Mozilla HTMLObjectElement.vspace documentation> 
-getVspace :: (MonadIO m) => HTMLObjectElement -> m Int
-getVspace self = liftIO (js_getVspace (self))
+getVspace :: (MonadIO m) => HTMLObjectElement -> m Word
+getVspace self = liftIO (js_getVspace self)
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: HTMLObjectElement -> JSString -> IO ()
@@ -365,7 +356,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.width Mozilla HTMLObjectElement.width documentation> 
 setWidth ::
          (MonadIO m, ToJSString val) => HTMLObjectElement -> val -> m ()
-setWidth self val = liftIO (js_setWidth (self) (toJSString val))
+setWidth self val = liftIO (js_setWidth self (toJSString val))
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLObjectElement -> IO JSString
@@ -373,37 +364,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.width Mozilla HTMLObjectElement.width documentation> 
 getWidth ::
          (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
-getWidth self = liftIO (fromJSString <$> (js_getWidth (self)))
+getWidth self = liftIO (fromJSString <$> (js_getWidth self))
  
 foreign import javascript unsafe "($1[\"willValidate\"] ? 1 : 0)"
         js_getWillValidate :: HTMLObjectElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.willValidate Mozilla HTMLObjectElement.willValidate documentation> 
 getWillValidate :: (MonadIO m) => HTMLObjectElement -> m Bool
-getWillValidate self = liftIO (js_getWillValidate (self))
+getWillValidate self = liftIO (js_getWillValidate self)
  
 foreign import javascript unsafe "$1[\"validity\"]" js_getValidity
-        :: HTMLObjectElement -> IO (Nullable ValidityState)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.validity Mozilla HTMLObjectElement.validity documentation> 
-getValidity ::
-            (MonadIO m) => HTMLObjectElement -> m (Maybe ValidityState)
-getValidity self
-  = liftIO (nullableToMaybe <$> (js_getValidity (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.validity Mozilla HTMLObjectElement.validity documentation> 
-getValidityUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLObjectElement -> m ValidityState
-getValidityUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getValidity (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: HTMLObjectElement -> IO ValidityState
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.validity Mozilla HTMLObjectElement.validity documentation> 
-getValidityUnchecked ::
-                     (MonadIO m) => HTMLObjectElement -> m ValidityState
-getValidityUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getValidity (self)))
+getValidity :: (MonadIO m) => HTMLObjectElement -> m ValidityState
+getValidity self = liftIO (js_getValidity self)
  
 foreign import javascript unsafe "$1[\"validationMessage\"]"
         js_getValidationMessage :: HTMLObjectElement -> IO JSString
@@ -412,29 +387,12 @@
 getValidationMessage ::
                      (MonadIO m, FromJSString result) => HTMLObjectElement -> m result
 getValidationMessage self
-  = liftIO (fromJSString <$> (js_getValidationMessage (self)))
+  = liftIO (fromJSString <$> (js_getValidationMessage self))
  
 foreign import javascript unsafe "$1[\"contentDocument\"]"
-        js_getContentDocument ::
-        HTMLObjectElement -> IO (Nullable Document)
+        js_getContentDocument :: HTMLObjectElement -> IO Document
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.contentDocument Mozilla HTMLObjectElement.contentDocument documentation> 
 getContentDocument ::
-                   (MonadIO m) => HTMLObjectElement -> m (Maybe Document)
-getContentDocument self
-  = liftIO (nullableToMaybe <$> (js_getContentDocument (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.contentDocument Mozilla HTMLObjectElement.contentDocument documentation> 
-getContentDocumentUnsafe ::
-                         (MonadIO m, HasCallStack) => HTMLObjectElement -> m Document
-getContentDocumentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getContentDocument (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement.contentDocument Mozilla HTMLObjectElement.contentDocument documentation> 
-getContentDocumentUnchecked ::
-                            (MonadIO m) => HTMLObjectElement -> m Document
-getContentDocumentUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getContentDocument (self)))
+                   (MonadIO m) => HTMLObjectElement -> m Document
+getContentDocument self = liftIO (js_getContentDocument self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLOptGroupElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLOptGroupElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLOptGroupElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLOptGroupElement.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,14 +32,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement.disabled Mozilla HTMLOptGroupElement.disabled documentation> 
 setDisabled :: (MonadIO m) => HTMLOptGroupElement -> Bool -> m ()
-setDisabled self val = liftIO (js_setDisabled (self) val)
+setDisabled self val = liftIO (js_setDisabled self val)
  
 foreign import javascript unsafe "($1[\"disabled\"] ? 1 : 0)"
         js_getDisabled :: HTMLOptGroupElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement.disabled Mozilla HTMLOptGroupElement.disabled documentation> 
 getDisabled :: (MonadIO m) => HTMLOptGroupElement -> m Bool
-getDisabled self = liftIO (js_getDisabled (self))
+getDisabled self = liftIO (js_getDisabled self)
  
 foreign import javascript unsafe "$1[\"label\"] = $2;" js_setLabel
         :: HTMLOptGroupElement -> JSString -> IO ()
@@ -46,7 +47,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement.label Mozilla HTMLOptGroupElement.label documentation> 
 setLabel ::
          (MonadIO m, ToJSString val) => HTMLOptGroupElement -> val -> m ()
-setLabel self val = liftIO (js_setLabel (self) (toJSString val))
+setLabel self val = liftIO (js_setLabel self (toJSString val))
  
 foreign import javascript unsafe "$1[\"label\"]" js_getLabel ::
         HTMLOptGroupElement -> IO JSString
@@ -54,4 +55,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement.label Mozilla HTMLOptGroupElement.label documentation> 
 getLabel ::
          (MonadIO m, FromJSString result) => HTMLOptGroupElement -> m result
-getLabel self = liftIO (fromJSString <$> (js_getLabel (self)))
+getLabel self = liftIO (fromJSString <$> (js_getLabel self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLOptionElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLOptionElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLOptionElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLOptionElement.hs
@@ -5,19 +5,18 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLOptionElement
        (js_setDisabled, setDisabled, js_getDisabled, getDisabled,
-        js_getForm, getForm, getFormUnsafe, getFormUnchecked, js_setLabel,
-        setLabel, js_getLabel, getLabel, js_setDefaultSelected,
-        setDefaultSelected, js_getDefaultSelected, getDefaultSelected,
-        js_setSelected, setSelected, js_getSelected, getSelected,
-        js_setValue, setValue, js_getValue, getValue, js_setText, setText,
-        js_getText, getText, js_getIndex, getIndex, HTMLOptionElement(..),
-        gTypeHTMLOptionElement)
+        js_getForm, getForm, js_setLabel, setLabel, js_getLabel, getLabel,
+        js_setDefaultSelected, setDefaultSelected, js_getDefaultSelected,
+        getDefaultSelected, js_setSelected, setSelected, js_getSelected,
+        getSelected, js_setValue, setValue, js_getValue, getValue,
+        js_setText, setText, js_getText, getText, js_getIndex, getIndex,
+        HTMLOptionElement(..), gTypeHTMLOptionElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,6 +25,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -36,36 +36,21 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.disabled Mozilla HTMLOptionElement.disabled documentation> 
 setDisabled :: (MonadIO m) => HTMLOptionElement -> Bool -> m ()
-setDisabled self val = liftIO (js_setDisabled (self) val)
+setDisabled self val = liftIO (js_setDisabled self val)
  
 foreign import javascript unsafe "($1[\"disabled\"] ? 1 : 0)"
         js_getDisabled :: HTMLOptionElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.disabled Mozilla HTMLOptionElement.disabled documentation> 
 getDisabled :: (MonadIO m) => HTMLOptionElement -> m Bool
-getDisabled self = liftIO (js_getDisabled (self))
+getDisabled self = liftIO (js_getDisabled self)
  
 foreign import javascript unsafe "$1[\"form\"]" js_getForm ::
-        HTMLOptionElement -> IO (Nullable HTMLFormElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.form Mozilla HTMLOptionElement.form documentation> 
-getForm ::
-        (MonadIO m) => HTMLOptionElement -> m (Maybe HTMLFormElement)
-getForm self = liftIO (nullableToMaybe <$> (js_getForm (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.form Mozilla HTMLOptionElement.form documentation> 
-getFormUnsafe ::
-              (MonadIO m, HasCallStack) => HTMLOptionElement -> m HTMLFormElement
-getFormUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getForm (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLOptionElement -> IO HTMLFormElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.form Mozilla HTMLOptionElement.form documentation> 
-getFormUnchecked ::
-                 (MonadIO m) => HTMLOptionElement -> m HTMLFormElement
-getFormUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getForm (self)))
+getForm :: (MonadIO m) => HTMLOptionElement -> m HTMLFormElement
+getForm self = liftIO (js_getForm self)
  
 foreign import javascript unsafe "$1[\"label\"] = $2;" js_setLabel
         :: HTMLOptionElement -> JSString -> IO ()
@@ -73,7 +58,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.label Mozilla HTMLOptionElement.label documentation> 
 setLabel ::
          (MonadIO m, ToJSString val) => HTMLOptionElement -> val -> m ()
-setLabel self val = liftIO (js_setLabel (self) (toJSString val))
+setLabel self val = liftIO (js_setLabel self (toJSString val))
  
 foreign import javascript unsafe "$1[\"label\"]" js_getLabel ::
         HTMLOptionElement -> IO JSString
@@ -81,7 +66,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.label Mozilla HTMLOptionElement.label documentation> 
 getLabel ::
          (MonadIO m, FromJSString result) => HTMLOptionElement -> m result
-getLabel self = liftIO (fromJSString <$> (js_getLabel (self)))
+getLabel self = liftIO (fromJSString <$> (js_getLabel self))
  
 foreign import javascript unsafe "$1[\"defaultSelected\"] = $2;"
         js_setDefaultSelected :: HTMLOptionElement -> Bool -> IO ()
@@ -90,7 +75,7 @@
 setDefaultSelected ::
                    (MonadIO m) => HTMLOptionElement -> Bool -> m ()
 setDefaultSelected self val
-  = liftIO (js_setDefaultSelected (self) val)
+  = liftIO (js_setDefaultSelected self val)
  
 foreign import javascript unsafe
         "($1[\"defaultSelected\"] ? 1 : 0)" js_getDefaultSelected ::
@@ -98,21 +83,21 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.defaultSelected Mozilla HTMLOptionElement.defaultSelected documentation> 
 getDefaultSelected :: (MonadIO m) => HTMLOptionElement -> m Bool
-getDefaultSelected self = liftIO (js_getDefaultSelected (self))
+getDefaultSelected self = liftIO (js_getDefaultSelected self)
  
 foreign import javascript unsafe "$1[\"selected\"] = $2;"
         js_setSelected :: HTMLOptionElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.selected Mozilla HTMLOptionElement.selected documentation> 
 setSelected :: (MonadIO m) => HTMLOptionElement -> Bool -> m ()
-setSelected self val = liftIO (js_setSelected (self) val)
+setSelected self val = liftIO (js_setSelected self val)
  
 foreign import javascript unsafe "($1[\"selected\"] ? 1 : 0)"
         js_getSelected :: HTMLOptionElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.selected Mozilla HTMLOptionElement.selected documentation> 
 getSelected :: (MonadIO m) => HTMLOptionElement -> m Bool
-getSelected self = liftIO (js_getSelected (self))
+getSelected self = liftIO (js_getSelected self)
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
         :: HTMLOptionElement -> JSString -> IO ()
@@ -120,7 +105,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.value Mozilla HTMLOptionElement.value documentation> 
 setValue ::
          (MonadIO m, ToJSString val) => HTMLOptionElement -> val -> m ()
-setValue self val = liftIO (js_setValue (self) (toJSString val))
+setValue self val = liftIO (js_setValue self (toJSString val))
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         HTMLOptionElement -> IO JSString
@@ -128,7 +113,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.value Mozilla HTMLOptionElement.value documentation> 
 getValue ::
          (MonadIO m, FromJSString result) => HTMLOptionElement -> m result
-getValue self = liftIO (fromJSString <$> (js_getValue (self)))
+getValue self = liftIO (fromJSString <$> (js_getValue self))
  
 foreign import javascript unsafe "$1[\"text\"] = $2;" js_setText ::
         HTMLOptionElement -> JSString -> IO ()
@@ -136,7 +121,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.text Mozilla HTMLOptionElement.text documentation> 
 setText ::
         (MonadIO m, ToJSString val) => HTMLOptionElement -> val -> m ()
-setText self val = liftIO (js_setText (self) (toJSString val))
+setText self val = liftIO (js_setText self (toJSString val))
  
 foreign import javascript unsafe "$1[\"text\"]" js_getText ::
         HTMLOptionElement -> IO JSString
@@ -144,11 +129,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.text Mozilla HTMLOptionElement.text documentation> 
 getText ::
         (MonadIO m, FromJSString result) => HTMLOptionElement -> m result
-getText self = liftIO (fromJSString <$> (js_getText (self)))
+getText self = liftIO (fromJSString <$> (js_getText self))
  
 foreign import javascript unsafe "$1[\"index\"]" js_getIndex ::
         HTMLOptionElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement.index Mozilla HTMLOptionElement.index documentation> 
 getIndex :: (MonadIO m) => HTMLOptionElement -> m Int
-getIndex self = liftIO (js_getIndex (self))
+getIndex self = liftIO (js_getIndex self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLOptionsCollection.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLOptionsCollection.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLOptionsCollection.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLOptionsCollection.hs
@@ -4,18 +4,19 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLOptionsCollection
-       (js_namedItem, namedItem, namedItem_, namedItemUnsafe,
-        namedItemUnchecked, js_addBefore, addBefore, js_add, add,
-        js_remove, remove, js_setSelectedIndex, setSelectedIndex,
-        js_getSelectedIndex, getSelectedIndex, js_setLength, setLength,
-        js_getLength, getLength, HTMLOptionsCollection(..),
+       (js_addBefore, addBefore, js_remove, remove, js_removeElement,
+        removeElement, js_item, item, item_, itemUnsafe, itemUnchecked,
+        js_namedItem, namedItem, namedItem_, namedItemUnsafe,
+        namedItemUnchecked, js_setLength, setLength, js_getLength,
+        getLength, js_setSelectedIndex, setSelectedIndex,
+        js_getSelectedIndex, getSelectedIndex, HTMLOptionsCollection(..),
         gTypeHTMLOptionsCollection)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,80 +25,124 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"namedItem\"]($2)"
-        js_namedItem ::
-        HTMLOptionsCollection -> JSString -> IO (Nullable Node)
+foreign import javascript unsafe "$1[\"add\"]($2, $3)" js_addBefore
+        ::
+        HTMLOptionsCollection ->
+          HTMLOptionElementOrGroup -> Optional HTMLElementOrLong -> IO ()
 
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.add Mozilla HTMLOptionsCollection.add documentation> 
+addBefore ::
+          (MonadIO m, IsHTMLOptionElementOrGroup element,
+           IsHTMLElementOrLong before) =>
+            HTMLOptionsCollection -> element -> Maybe before -> m ()
+addBefore self element before
+  = liftIO
+      (mapM toJSVal before >>=
+         \ before' ->
+           toJSVal element >>=
+             \ element' -> js_addBefore self (HTMLOptionElementOrGroup element')
+             (maybeToOptional (fmap HTMLElementOrLong before')))
+ 
+foreign import javascript unsafe "$1[\"remove\"]($2)" js_remove ::
+        HTMLOptionsCollection -> Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.remove Mozilla HTMLOptionsCollection.remove documentation> 
+remove :: (MonadIO m) => HTMLOptionsCollection -> Int -> m ()
+remove self index = liftIO (js_remove self index)
+ 
+foreign import javascript unsafe "$1[\"remove\"]($2)"
+        js_removeElement ::
+        HTMLOptionsCollection -> HTMLOptionElement -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.remove Mozilla HTMLOptionsCollection.remove documentation> 
+removeElement ::
+              (MonadIO m) => HTMLOptionsCollection -> HTMLOptionElement -> m ()
+removeElement self option = liftIO (js_removeElement self option)
+ 
+foreign import javascript unsafe "$1[$2]" js_item ::
+        HTMLOptionsCollection -> Word -> IO (Nullable HTMLOptionElement)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.item Mozilla HTMLOptionsCollection.item documentation> 
+item ::
+     (MonadIO m) =>
+       HTMLOptionsCollection -> Word -> m (Maybe HTMLOptionElement)
+item self index = liftIO (nullableToMaybe <$> (js_item self index))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.item Mozilla HTMLOptionsCollection.item documentation> 
+item_ :: (MonadIO m) => HTMLOptionsCollection -> Word -> m ()
+item_ self index = liftIO (void (js_item self index))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.item Mozilla HTMLOptionsCollection.item documentation> 
+itemUnsafe ::
+           (MonadIO m, HasCallStack) =>
+             HTMLOptionsCollection -> Word -> m HTMLOptionElement
+itemUnsafe self index
+  = liftIO
+      ((nullableToMaybe <$> (js_item self index)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.item Mozilla HTMLOptionsCollection.item documentation> 
+itemUnchecked ::
+              (MonadIO m) => HTMLOptionsCollection -> Word -> m HTMLOptionElement
+itemUnchecked self index
+  = liftIO (fromJust . nullableToMaybe <$> (js_item self index))
+ 
+foreign import javascript unsafe "$1[$2]" js_namedItem ::
+        HTMLOptionsCollection ->
+          JSString -> IO (Nullable HTMLOptionElement)
+
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.namedItem Mozilla HTMLOptionsCollection.namedItem documentation> 
 namedItem ::
           (MonadIO m, ToJSString name) =>
-            HTMLOptionsCollection -> name -> m (Maybe Node)
+            HTMLOptionsCollection -> name -> m (Maybe HTMLOptionElement)
 namedItem self name
   = liftIO
-      (nullableToMaybe <$> (js_namedItem (self) (toJSString name)))
+      (nullableToMaybe <$> (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.namedItem Mozilla HTMLOptionsCollection.namedItem documentation> 
 namedItem_ ::
            (MonadIO m, ToJSString name) =>
              HTMLOptionsCollection -> name -> m ()
 namedItem_ self name
-  = liftIO (void (js_namedItem (self) (toJSString name)))
+  = liftIO (void (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.namedItem Mozilla HTMLOptionsCollection.namedItem documentation> 
 namedItemUnsafe ::
                 (MonadIO m, ToJSString name, HasCallStack) =>
-                  HTMLOptionsCollection -> name -> m Node
+                  HTMLOptionsCollection -> name -> m HTMLOptionElement
 namedItemUnsafe self name
   = liftIO
-      ((nullableToMaybe <$> (js_namedItem (self) (toJSString name))) >>=
+      ((nullableToMaybe <$> (js_namedItem self (toJSString name))) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.namedItem Mozilla HTMLOptionsCollection.namedItem documentation> 
 namedItemUnchecked ::
                    (MonadIO m, ToJSString name) =>
-                     HTMLOptionsCollection -> name -> m Node
+                     HTMLOptionsCollection -> name -> m HTMLOptionElement
 namedItemUnchecked self name
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_namedItem (self) (toJSString name)))
- 
-foreign import javascript unsafe "$1[\"add\"]($2, $3)" js_addBefore
-        ::
-        HTMLOptionsCollection ->
-          Nullable HTMLElement -> Nullable HTMLElement -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.add Mozilla HTMLOptionsCollection.add documentation> 
-addBefore ::
-          (MonadIO m, IsHTMLElement element, IsHTMLElement before) =>
-            HTMLOptionsCollection -> Maybe element -> Maybe before -> m ()
-addBefore self element before
-  = liftIO
-      (js_addBefore (self) (maybeToNullable (fmap toHTMLElement element))
-         (maybeToNullable (fmap toHTMLElement before)))
+         (js_namedItem self (toJSString name)))
  
-foreign import javascript unsafe "$1[\"add\"]($2, $3)" js_add ::
-        HTMLOptionsCollection -> Nullable HTMLElement -> Int -> IO ()
+foreign import javascript unsafe "$1[\"length\"] = $2;"
+        js_setLength :: HTMLOptionsCollection -> Word -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.add Mozilla HTMLOptionsCollection.add documentation> 
-add ::
-    (MonadIO m, IsHTMLElement element) =>
-      HTMLOptionsCollection -> Maybe element -> Int -> m ()
-add self element index
-  = liftIO
-      (js_add (self) (maybeToNullable (fmap toHTMLElement element))
-         index)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.length Mozilla HTMLOptionsCollection.length documentation> 
+setLength :: (MonadIO m) => HTMLOptionsCollection -> Word -> m ()
+setLength self val = liftIO (js_setLength self val)
  
-foreign import javascript unsafe "$1[\"remove\"]($2)" js_remove ::
-        HTMLOptionsCollection -> Word -> IO ()
+foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
+        HTMLOptionsCollection -> IO Word
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.remove Mozilla HTMLOptionsCollection.remove documentation> 
-remove :: (MonadIO m) => HTMLOptionsCollection -> Word -> m ()
-remove self index = liftIO (js_remove (self) index)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.length Mozilla HTMLOptionsCollection.length documentation> 
+getLength :: (MonadIO m) => HTMLOptionsCollection -> m Word
+getLength self = liftIO (js_getLength self)
  
 foreign import javascript unsafe "$1[\"selectedIndex\"] = $2;"
         js_setSelectedIndex :: HTMLOptionsCollection -> Int -> IO ()
@@ -105,25 +150,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.selectedIndex Mozilla HTMLOptionsCollection.selectedIndex documentation> 
 setSelectedIndex ::
                  (MonadIO m) => HTMLOptionsCollection -> Int -> m ()
-setSelectedIndex self val = liftIO (js_setSelectedIndex (self) val)
+setSelectedIndex self val = liftIO (js_setSelectedIndex self val)
  
 foreign import javascript unsafe "$1[\"selectedIndex\"]"
         js_getSelectedIndex :: HTMLOptionsCollection -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.selectedIndex Mozilla HTMLOptionsCollection.selectedIndex documentation> 
 getSelectedIndex :: (MonadIO m) => HTMLOptionsCollection -> m Int
-getSelectedIndex self = liftIO (js_getSelectedIndex (self))
- 
-foreign import javascript unsafe "$1[\"length\"] = $2;"
-        js_setLength :: HTMLOptionsCollection -> Word -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.length Mozilla HTMLOptionsCollection.length documentation> 
-setLength :: (MonadIO m) => HTMLOptionsCollection -> Word -> m ()
-setLength self val = liftIO (js_setLength (self) val)
- 
-foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
-        HTMLOptionsCollection -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.length Mozilla HTMLOptionsCollection.length documentation> 
-getLength :: (MonadIO m) => HTMLOptionsCollection -> m Word
-getLength self = liftIO (js_getLength (self))
+getSelectedIndex self = liftIO (js_getSelectedIndex self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLOutputElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLOutputElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLOutputElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLOutputElement.hs
@@ -5,23 +5,22 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLOutputElement
        (js_checkValidity, checkValidity, checkValidity_,
+        js_reportValidity, reportValidity, reportValidity_,
         js_setCustomValidity, setCustomValidity, js_getHtmlFor, getHtmlFor,
-        getHtmlForUnsafe, getHtmlForUnchecked, js_getForm, getForm,
-        getFormUnsafe, getFormUnchecked, js_setName, setName, js_getName,
-        getName, js_getType, getType, js_setDefaultValue, setDefaultValue,
+        js_getForm, getForm, js_setName, setName, js_getName, getName,
+        js_getType, getType, js_setDefaultValue, setDefaultValue,
         js_getDefaultValue, getDefaultValue, getDefaultValueUnsafe,
         getDefaultValueUnchecked, js_setValue, setValue, js_getValue,
         getValue, getValueUnsafe, getValueUnchecked, js_getWillValidate,
-        getWillValidate, js_getValidity, getValidity, getValidityUnsafe,
-        getValidityUnchecked, js_getValidationMessage,
-        getValidationMessage, js_getLabels, getLabels, getLabelsUnsafe,
-        getLabelsUnchecked, HTMLOutputElement(..), gTypeHTMLOutputElement)
+        getWillValidate, js_getValidity, getValidity,
+        js_getValidationMessage, getValidationMessage, js_getLabels,
+        getLabels, HTMLOutputElement(..), gTypeHTMLOutputElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -30,6 +29,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -41,68 +41,46 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.checkValidity Mozilla HTMLOutputElement.checkValidity documentation> 
 checkValidity :: (MonadIO m) => HTMLOutputElement -> m Bool
-checkValidity self = liftIO (js_checkValidity (self))
+checkValidity self = liftIO (js_checkValidity self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.checkValidity Mozilla HTMLOutputElement.checkValidity documentation> 
 checkValidity_ :: (MonadIO m) => HTMLOutputElement -> m ()
-checkValidity_ self = liftIO (void (js_checkValidity (self)))
+checkValidity_ self = liftIO (void (js_checkValidity self))
  
+foreign import javascript unsafe
+        "($1[\"reportValidity\"]() ? 1 : 0)" js_reportValidity ::
+        HTMLOutputElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.reportValidity Mozilla HTMLOutputElement.reportValidity documentation> 
+reportValidity :: (MonadIO m) => HTMLOutputElement -> m Bool
+reportValidity self = liftIO (js_reportValidity self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.reportValidity Mozilla HTMLOutputElement.reportValidity documentation> 
+reportValidity_ :: (MonadIO m) => HTMLOutputElement -> m ()
+reportValidity_ self = liftIO (void (js_reportValidity self))
+ 
 foreign import javascript unsafe "$1[\"setCustomValidity\"]($2)"
-        js_setCustomValidity ::
-        HTMLOutputElement -> Nullable JSString -> IO ()
+        js_setCustomValidity :: HTMLOutputElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.setCustomValidity Mozilla HTMLOutputElement.setCustomValidity documentation> 
 setCustomValidity ::
-                  (MonadIO m, ToJSString error) =>
-                    HTMLOutputElement -> Maybe error -> m ()
+                  (MonadIO m, ToJSString error) => HTMLOutputElement -> error -> m ()
 setCustomValidity self error
-  = liftIO (js_setCustomValidity (self) (toMaybeJSString error))
+  = liftIO (js_setCustomValidity self (toJSString error))
  
 foreign import javascript unsafe "$1[\"htmlFor\"]" js_getHtmlFor ::
-        HTMLOutputElement -> IO (Nullable DOMSettableTokenList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.htmlFor Mozilla HTMLOutputElement.htmlFor documentation> 
-getHtmlFor ::
-           (MonadIO m) => HTMLOutputElement -> m (Maybe DOMSettableTokenList)
-getHtmlFor self
-  = liftIO (nullableToMaybe <$> (js_getHtmlFor (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.htmlFor Mozilla HTMLOutputElement.htmlFor documentation> 
-getHtmlForUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   HTMLOutputElement -> m DOMSettableTokenList
-getHtmlForUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHtmlFor (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLOutputElement -> IO DOMTokenList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.htmlFor Mozilla HTMLOutputElement.htmlFor documentation> 
-getHtmlForUnchecked ::
-                    (MonadIO m) => HTMLOutputElement -> m DOMSettableTokenList
-getHtmlForUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHtmlFor (self)))
+getHtmlFor :: (MonadIO m) => HTMLOutputElement -> m DOMTokenList
+getHtmlFor self = liftIO (js_getHtmlFor self)
  
 foreign import javascript unsafe "$1[\"form\"]" js_getForm ::
-        HTMLOutputElement -> IO (Nullable HTMLFormElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.form Mozilla HTMLOutputElement.form documentation> 
-getForm ::
-        (MonadIO m) => HTMLOutputElement -> m (Maybe HTMLFormElement)
-getForm self = liftIO (nullableToMaybe <$> (js_getForm (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.form Mozilla HTMLOutputElement.form documentation> 
-getFormUnsafe ::
-              (MonadIO m, HasCallStack) => HTMLOutputElement -> m HTMLFormElement
-getFormUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getForm (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLOutputElement -> IO HTMLFormElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.form Mozilla HTMLOutputElement.form documentation> 
-getFormUnchecked ::
-                 (MonadIO m) => HTMLOutputElement -> m HTMLFormElement
-getFormUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getForm (self)))
+getForm :: (MonadIO m) => HTMLOutputElement -> m HTMLFormElement
+getForm self = liftIO (js_getForm self)
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLOutputElement -> JSString -> IO ()
@@ -110,7 +88,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.name Mozilla HTMLOutputElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLOutputElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLOutputElement -> IO JSString
@@ -118,7 +96,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.name Mozilla HTMLOutputElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLOutputElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLOutputElement -> IO JSString
@@ -126,18 +104,18 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.type Mozilla HTMLOutputElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLOutputElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"defaultValue\"] = $2;"
         js_setDefaultValue ::
-        HTMLOutputElement -> Nullable JSString -> IO ()
+        HTMLOutputElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.defaultValue Mozilla HTMLOutputElement.defaultValue documentation> 
 setDefaultValue ::
                 (MonadIO m, ToJSString val) =>
                   HTMLOutputElement -> Maybe val -> m ()
 setDefaultValue self val
-  = liftIO (js_setDefaultValue (self) (toMaybeJSString val))
+  = liftIO (js_setDefaultValue self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"defaultValue\"]"
         js_getDefaultValue :: HTMLOutputElement -> IO (Nullable JSString)
@@ -147,7 +125,7 @@
                 (MonadIO m, FromJSString result) =>
                   HTMLOutputElement -> m (Maybe result)
 getDefaultValue self
-  = liftIO (fromMaybeJSString <$> (js_getDefaultValue (self)))
+  = liftIO (fromMaybeJSString <$> (js_getDefaultValue self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.defaultValue Mozilla HTMLOutputElement.defaultValue documentation> 
 getDefaultValueUnsafe ::
@@ -155,7 +133,7 @@
                         HTMLOutputElement -> m result
 getDefaultValueUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getDefaultValue (self))) >>=
+      ((fromMaybeJSString <$> (js_getDefaultValue self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.defaultValue Mozilla HTMLOutputElement.defaultValue documentation> 
@@ -163,17 +141,17 @@
                          (MonadIO m, FromJSString result) => HTMLOutputElement -> m result
 getDefaultValueUnchecked self
   = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getDefaultValue (self)))
+      (fromJust . fromMaybeJSString <$> (js_getDefaultValue self))
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
-        :: HTMLOutputElement -> Nullable JSString -> IO ()
+        :: HTMLOutputElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.value Mozilla HTMLOutputElement.value documentation> 
 setValue ::
          (MonadIO m, ToJSString val) =>
            HTMLOutputElement -> Maybe val -> m ()
 setValue self val
-  = liftIO (js_setValue (self) (toMaybeJSString val))
+  = liftIO (js_setValue self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         HTMLOutputElement -> IO (Nullable JSString)
@@ -182,7 +160,7 @@
 getValue ::
          (MonadIO m, FromJSString result) =>
            HTMLOutputElement -> m (Maybe result)
-getValue self = liftIO (fromMaybeJSString <$> (js_getValue (self)))
+getValue self = liftIO (fromMaybeJSString <$> (js_getValue self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.value Mozilla HTMLOutputElement.value documentation> 
 getValueUnsafe ::
@@ -190,44 +168,28 @@
                  HTMLOutputElement -> m result
 getValueUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getValue (self))) >>=
+      ((fromMaybeJSString <$> (js_getValue self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.value Mozilla HTMLOutputElement.value documentation> 
 getValueUnchecked ::
                   (MonadIO m, FromJSString result) => HTMLOutputElement -> m result
 getValueUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getValue (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getValue self))
  
 foreign import javascript unsafe "($1[\"willValidate\"] ? 1 : 0)"
         js_getWillValidate :: HTMLOutputElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.willValidate Mozilla HTMLOutputElement.willValidate documentation> 
 getWillValidate :: (MonadIO m) => HTMLOutputElement -> m Bool
-getWillValidate self = liftIO (js_getWillValidate (self))
+getWillValidate self = liftIO (js_getWillValidate self)
  
 foreign import javascript unsafe "$1[\"validity\"]" js_getValidity
-        :: HTMLOutputElement -> IO (Nullable ValidityState)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.validity Mozilla HTMLOutputElement.validity documentation> 
-getValidity ::
-            (MonadIO m) => HTMLOutputElement -> m (Maybe ValidityState)
-getValidity self
-  = liftIO (nullableToMaybe <$> (js_getValidity (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.validity Mozilla HTMLOutputElement.validity documentation> 
-getValidityUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLOutputElement -> m ValidityState
-getValidityUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getValidity (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: HTMLOutputElement -> IO ValidityState
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.validity Mozilla HTMLOutputElement.validity documentation> 
-getValidityUnchecked ::
-                     (MonadIO m) => HTMLOutputElement -> m ValidityState
-getValidityUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getValidity (self)))
+getValidity :: (MonadIO m) => HTMLOutputElement -> m ValidityState
+getValidity self = liftIO (js_getValidity self)
  
 foreign import javascript unsafe "$1[\"validationMessage\"]"
         js_getValidationMessage :: HTMLOutputElement -> IO JSString
@@ -236,25 +198,11 @@
 getValidationMessage ::
                      (MonadIO m, FromJSString result) => HTMLOutputElement -> m result
 getValidationMessage self
-  = liftIO (fromJSString <$> (js_getValidationMessage (self)))
+  = liftIO (fromJSString <$> (js_getValidationMessage self))
  
 foreign import javascript unsafe "$1[\"labels\"]" js_getLabels ::
-        HTMLOutputElement -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.labels Mozilla HTMLOutputElement.labels documentation> 
-getLabels :: (MonadIO m) => HTMLOutputElement -> m (Maybe NodeList)
-getLabels self = liftIO (nullableToMaybe <$> (js_getLabels (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.labels Mozilla HTMLOutputElement.labels documentation> 
-getLabelsUnsafe ::
-                (MonadIO m, HasCallStack) => HTMLOutputElement -> m NodeList
-getLabelsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLabels (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLOutputElement -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement.labels Mozilla HTMLOutputElement.labels documentation> 
-getLabelsUnchecked ::
-                   (MonadIO m) => HTMLOutputElement -> m NodeList
-getLabelsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getLabels (self)))
+getLabels :: (MonadIO m) => HTMLOutputElement -> m NodeList
+getLabels self = liftIO (js_getLabels self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLParagraphElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLParagraphElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLParagraphElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLParagraphElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,7 +32,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParagraphElement.align Mozilla HTMLParagraphElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLParagraphElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLParagraphElement -> IO JSString
@@ -40,4 +41,4 @@
 getAlign ::
          (MonadIO m, FromJSString result) =>
            HTMLParagraphElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLParamElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLParamElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLParamElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLParamElement.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,7 +34,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement.name Mozilla HTMLParamElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLParamElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLParamElement -> IO JSString
@@ -41,7 +42,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement.name Mozilla HTMLParamElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLParamElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         HTMLParamElement -> JSString -> IO ()
@@ -49,7 +50,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement.type Mozilla HTMLParamElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLParamElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLParamElement -> IO JSString
@@ -57,7 +58,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement.type Mozilla HTMLParamElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLParamElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
         :: HTMLParamElement -> JSString -> IO ()
@@ -65,7 +66,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement.value Mozilla HTMLParamElement.value documentation> 
 setValue ::
          (MonadIO m, ToJSString val) => HTMLParamElement -> val -> m ()
-setValue self val = liftIO (js_setValue (self) (toJSString val))
+setValue self val = liftIO (js_setValue self (toJSString val))
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         HTMLParamElement -> IO JSString
@@ -73,7 +74,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement.value Mozilla HTMLParamElement.value documentation> 
 getValue ::
          (MonadIO m, FromJSString result) => HTMLParamElement -> m result
-getValue self = liftIO (fromJSString <$> (js_getValue (self)))
+getValue self = liftIO (fromJSString <$> (js_getValue self))
  
 foreign import javascript unsafe "$1[\"valueType\"] = $2;"
         js_setValueType :: HTMLParamElement -> JSString -> IO ()
@@ -82,7 +83,7 @@
 setValueType ::
              (MonadIO m, ToJSString val) => HTMLParamElement -> val -> m ()
 setValueType self val
-  = liftIO (js_setValueType (self) (toJSString val))
+  = liftIO (js_setValueType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"valueType\"]"
         js_getValueType :: HTMLParamElement -> IO JSString
@@ -91,4 +92,4 @@
 getValueType ::
              (MonadIO m, FromJSString result) => HTMLParamElement -> m result
 getValueType self
-  = liftIO (fromJSString <$> (js_getValueType (self)))
+  = liftIO (fromJSString <$> (js_getValueType self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLPreElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLPreElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLPreElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLPreElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,25 +31,25 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLPreElement.width Mozilla HTMLPreElement.width documentation> 
 setWidth :: (MonadIO m) => HTMLPreElement -> Int -> m ()
-setWidth self val = liftIO (js_setWidth (self) val)
+setWidth self val = liftIO (js_setWidth self val)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLPreElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLPreElement.width Mozilla HTMLPreElement.width documentation> 
 getWidth :: (MonadIO m) => HTMLPreElement -> m Int
-getWidth self = liftIO (js_getWidth (self))
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"wrap\"] = $2;" js_setWrap ::
         HTMLPreElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLPreElement.wrap Mozilla HTMLPreElement.wrap documentation> 
 setWrap :: (MonadIO m) => HTMLPreElement -> Bool -> m ()
-setWrap self val = liftIO (js_setWrap (self) val)
+setWrap self val = liftIO (js_setWrap self val)
  
 foreign import javascript unsafe "($1[\"wrap\"] ? 1 : 0)"
         js_getWrap :: HTMLPreElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLPreElement.wrap Mozilla HTMLPreElement.wrap documentation> 
 getWrap :: (MonadIO m) => HTMLPreElement -> m Bool
-getWrap self = liftIO (js_getWrap (self))
+getWrap self = liftIO (js_getWrap self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLProgressElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLProgressElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLProgressElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLProgressElement.hs
@@ -6,14 +6,13 @@
 module GHCJS.DOM.JSFFI.Generated.HTMLProgressElement
        (js_setValue, setValue, js_getValue, getValue, js_setMax, setMax,
         js_getMax, getMax, js_getPosition, getPosition, js_getLabels,
-        getLabels, getLabelsUnsafe, getLabelsUnchecked,
-        HTMLProgressElement(..), gTypeHTMLProgressElement)
+        getLabels, HTMLProgressElement(..), gTypeHTMLProgressElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,54 +32,39 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement.value Mozilla HTMLProgressElement.value documentation> 
 setValue :: (MonadIO m) => HTMLProgressElement -> Double -> m ()
-setValue self val = liftIO (js_setValue (self) val)
+setValue self val = liftIO (js_setValue self val)
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         HTMLProgressElement -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement.value Mozilla HTMLProgressElement.value documentation> 
 getValue :: (MonadIO m) => HTMLProgressElement -> m Double
-getValue self = liftIO (js_getValue (self))
+getValue self = liftIO (js_getValue self)
  
 foreign import javascript unsafe "$1[\"max\"] = $2;" js_setMax ::
         HTMLProgressElement -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement.max Mozilla HTMLProgressElement.max documentation> 
 setMax :: (MonadIO m) => HTMLProgressElement -> Double -> m ()
-setMax self val = liftIO (js_setMax (self) val)
+setMax self val = liftIO (js_setMax self val)
  
 foreign import javascript unsafe "$1[\"max\"]" js_getMax ::
         HTMLProgressElement -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement.max Mozilla HTMLProgressElement.max documentation> 
 getMax :: (MonadIO m) => HTMLProgressElement -> m Double
-getMax self = liftIO (js_getMax (self))
+getMax self = liftIO (js_getMax self)
  
 foreign import javascript unsafe "$1[\"position\"]" js_getPosition
         :: HTMLProgressElement -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement.position Mozilla HTMLProgressElement.position documentation> 
 getPosition :: (MonadIO m) => HTMLProgressElement -> m Double
-getPosition self = liftIO (js_getPosition (self))
+getPosition self = liftIO (js_getPosition self)
  
 foreign import javascript unsafe "$1[\"labels\"]" js_getLabels ::
-        HTMLProgressElement -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement.labels Mozilla HTMLProgressElement.labels documentation> 
-getLabels ::
-          (MonadIO m) => HTMLProgressElement -> m (Maybe NodeList)
-getLabels self = liftIO (nullableToMaybe <$> (js_getLabels (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement.labels Mozilla HTMLProgressElement.labels documentation> 
-getLabelsUnsafe ::
-                (MonadIO m, HasCallStack) => HTMLProgressElement -> m NodeList
-getLabelsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLabels (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLProgressElement -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement.labels Mozilla HTMLProgressElement.labels documentation> 
-getLabelsUnchecked ::
-                   (MonadIO m) => HTMLProgressElement -> m NodeList
-getLabelsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getLabels (self)))
+getLabels :: (MonadIO m) => HTMLProgressElement -> m NodeList
+getLabels self = liftIO (js_getLabels self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLQuoteElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLQuoteElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLQuoteElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLQuoteElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,7 +32,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLQuoteElement.cite Mozilla HTMLQuoteElement.cite documentation> 
 setCite ::
         (MonadIO m, ToJSString val) => HTMLQuoteElement -> val -> m ()
-setCite self val = liftIO (js_setCite (self) (toJSString val))
+setCite self val = liftIO (js_setCite self (toJSString val))
  
 foreign import javascript unsafe "$1[\"cite\"]" js_getCite ::
         HTMLQuoteElement -> IO JSString
@@ -39,4 +40,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLQuoteElement.cite Mozilla HTMLQuoteElement.cite documentation> 
 getCite ::
         (MonadIO m, FromJSString result) => HTMLQuoteElement -> m result
-getCite self = liftIO (fromJSString <$> (js_getCite (self)))
+getCite self = liftIO (fromJSString <$> (js_getCite self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLScriptElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLScriptElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLScriptElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLScriptElement.hs
@@ -4,22 +4,23 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLScriptElement
-       (js_setText, setText, js_getText, getText, getTextUnsafe,
-        getTextUnchecked, js_setHtmlFor, setHtmlFor, js_getHtmlFor,
-        getHtmlFor, js_setEvent, setEvent, js_getEvent, getEvent,
-        js_setCharset, setCharset, js_getCharset, getCharset, js_setAsync,
-        setAsync, js_getAsync, getAsync, js_setDefer, setDefer,
-        js_getDefer, getDefer, js_setSrc, setSrc, js_getSrc, getSrc,
-        js_setType, setType, js_getType, getType, js_setCrossOrigin,
-        setCrossOrigin, js_getCrossOrigin, getCrossOrigin, js_setNonce,
-        setNonce, js_getNonce, getNonce, HTMLScriptElement(..),
+       (js_setText, setText, js_getText, getText, js_setHtmlFor,
+        setHtmlFor, js_getHtmlFor, getHtmlFor, js_setEvent, setEvent,
+        js_getEvent, getEvent, js_setCharset, setCharset, js_getCharset,
+        getCharset, js_setAsync, setAsync, js_getAsync, getAsync,
+        js_setDefer, setDefer, js_getDefer, getDefer, js_setSrc, setSrc,
+        js_getSrc, getSrc, js_setType, setType, js_getType, getType,
+        js_setCrossOrigin, setCrossOrigin, js_getCrossOrigin,
+        getCrossOrigin, getCrossOriginUnsafe, getCrossOriginUnchecked,
+        js_setNonce, setNonce, js_getNonce, getNonce, js_setNoModule,
+        setNoModule, js_getNoModule, getNoModule, HTMLScriptElement(..),
         gTypeHTMLScriptElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,43 +29,27 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"text\"] = $2;" js_setText ::
-        HTMLScriptElement -> Nullable JSString -> IO ()
+        HTMLScriptElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.text Mozilla HTMLScriptElement.text documentation> 
 setText ::
-        (MonadIO m, ToJSString val) =>
-          HTMLScriptElement -> Maybe val -> m ()
-setText self val = liftIO (js_setText (self) (toMaybeJSString val))
+        (MonadIO m, ToJSString val) => HTMLScriptElement -> val -> m ()
+setText self val = liftIO (js_setText self (toJSString val))
  
 foreign import javascript unsafe "$1[\"text\"]" js_getText ::
-        HTMLScriptElement -> IO (Nullable JSString)
+        HTMLScriptElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.text Mozilla HTMLScriptElement.text documentation> 
 getText ::
-        (MonadIO m, FromJSString result) =>
-          HTMLScriptElement -> m (Maybe result)
-getText self = liftIO (fromMaybeJSString <$> (js_getText (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.text Mozilla HTMLScriptElement.text documentation> 
-getTextUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                HTMLScriptElement -> m result
-getTextUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getText (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.text Mozilla HTMLScriptElement.text documentation> 
-getTextUnchecked ::
-                 (MonadIO m, FromJSString result) => HTMLScriptElement -> m result
-getTextUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getText (self)))
+        (MonadIO m, FromJSString result) => HTMLScriptElement -> m result
+getText self = liftIO (fromJSString <$> (js_getText self))
  
 foreign import javascript unsafe "$1[\"htmlFor\"] = $2;"
         js_setHtmlFor :: HTMLScriptElement -> JSString -> IO ()
@@ -72,8 +57,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.htmlFor Mozilla HTMLScriptElement.htmlFor documentation> 
 setHtmlFor ::
            (MonadIO m, ToJSString val) => HTMLScriptElement -> val -> m ()
-setHtmlFor self val
-  = liftIO (js_setHtmlFor (self) (toJSString val))
+setHtmlFor self val = liftIO (js_setHtmlFor self (toJSString val))
  
 foreign import javascript unsafe "$1[\"htmlFor\"]" js_getHtmlFor ::
         HTMLScriptElement -> IO JSString
@@ -81,7 +65,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.htmlFor Mozilla HTMLScriptElement.htmlFor documentation> 
 getHtmlFor ::
            (MonadIO m, FromJSString result) => HTMLScriptElement -> m result
-getHtmlFor self = liftIO (fromJSString <$> (js_getHtmlFor (self)))
+getHtmlFor self = liftIO (fromJSString <$> (js_getHtmlFor self))
  
 foreign import javascript unsafe "$1[\"event\"] = $2;" js_setEvent
         :: HTMLScriptElement -> JSString -> IO ()
@@ -89,7 +73,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.event Mozilla HTMLScriptElement.event documentation> 
 setEvent ::
          (MonadIO m, ToJSString val) => HTMLScriptElement -> val -> m ()
-setEvent self val = liftIO (js_setEvent (self) (toJSString val))
+setEvent self val = liftIO (js_setEvent self (toJSString val))
  
 foreign import javascript unsafe "$1[\"event\"]" js_getEvent ::
         HTMLScriptElement -> IO JSString
@@ -97,7 +81,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.event Mozilla HTMLScriptElement.event documentation> 
 getEvent ::
          (MonadIO m, FromJSString result) => HTMLScriptElement -> m result
-getEvent self = liftIO (fromJSString <$> (js_getEvent (self)))
+getEvent self = liftIO (fromJSString <$> (js_getEvent self))
  
 foreign import javascript unsafe "$1[\"charset\"] = $2;"
         js_setCharset :: HTMLScriptElement -> JSString -> IO ()
@@ -105,8 +89,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.charset Mozilla HTMLScriptElement.charset documentation> 
 setCharset ::
            (MonadIO m, ToJSString val) => HTMLScriptElement -> val -> m ()
-setCharset self val
-  = liftIO (js_setCharset (self) (toJSString val))
+setCharset self val = liftIO (js_setCharset self (toJSString val))
  
 foreign import javascript unsafe "$1[\"charset\"]" js_getCharset ::
         HTMLScriptElement -> IO JSString
@@ -114,35 +97,35 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.charset Mozilla HTMLScriptElement.charset documentation> 
 getCharset ::
            (MonadIO m, FromJSString result) => HTMLScriptElement -> m result
-getCharset self = liftIO (fromJSString <$> (js_getCharset (self)))
+getCharset self = liftIO (fromJSString <$> (js_getCharset self))
  
 foreign import javascript unsafe "$1[\"async\"] = $2;" js_setAsync
         :: HTMLScriptElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.async Mozilla HTMLScriptElement.async documentation> 
 setAsync :: (MonadIO m) => HTMLScriptElement -> Bool -> m ()
-setAsync self val = liftIO (js_setAsync (self) val)
+setAsync self val = liftIO (js_setAsync self val)
  
 foreign import javascript unsafe "($1[\"async\"] ? 1 : 0)"
         js_getAsync :: HTMLScriptElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.async Mozilla HTMLScriptElement.async documentation> 
 getAsync :: (MonadIO m) => HTMLScriptElement -> m Bool
-getAsync self = liftIO (js_getAsync (self))
+getAsync self = liftIO (js_getAsync self)
  
 foreign import javascript unsafe "$1[\"defer\"] = $2;" js_setDefer
         :: HTMLScriptElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.defer Mozilla HTMLScriptElement.defer documentation> 
 setDefer :: (MonadIO m) => HTMLScriptElement -> Bool -> m ()
-setDefer self val = liftIO (js_setDefer (self) val)
+setDefer self val = liftIO (js_setDefer self val)
  
 foreign import javascript unsafe "($1[\"defer\"] ? 1 : 0)"
         js_getDefer :: HTMLScriptElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.defer Mozilla HTMLScriptElement.defer documentation> 
 getDefer :: (MonadIO m) => HTMLScriptElement -> m Bool
-getDefer self = liftIO (js_getDefer (self))
+getDefer self = liftIO (js_getDefer self)
  
 foreign import javascript unsafe "$1[\"src\"] = $2;" js_setSrc ::
         HTMLScriptElement -> JSString -> IO ()
@@ -150,7 +133,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.src Mozilla HTMLScriptElement.src documentation> 
 setSrc ::
        (MonadIO m, ToJSString val) => HTMLScriptElement -> val -> m ()
-setSrc self val = liftIO (js_setSrc (self) (toJSString val))
+setSrc self val = liftIO (js_setSrc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"src\"]" js_getSrc ::
         HTMLScriptElement -> IO JSString
@@ -158,7 +141,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.src Mozilla HTMLScriptElement.src documentation> 
 getSrc ::
        (MonadIO m, FromJSString result) => HTMLScriptElement -> m result
-getSrc self = liftIO (fromJSString <$> (js_getSrc (self)))
+getSrc self = liftIO (fromJSString <$> (js_getSrc self))
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         HTMLScriptElement -> JSString -> IO ()
@@ -166,7 +149,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.type Mozilla HTMLScriptElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLScriptElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLScriptElement -> IO JSString
@@ -174,25 +157,44 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.type Mozilla HTMLScriptElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLScriptElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"crossOrigin\"] = $2;"
-        js_setCrossOrigin :: HTMLScriptElement -> JSString -> IO ()
+        js_setCrossOrigin ::
+        HTMLScriptElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.crossOrigin Mozilla HTMLScriptElement.crossOrigin documentation> 
 setCrossOrigin ::
-               (MonadIO m, ToJSString val) => HTMLScriptElement -> val -> m ()
+               (MonadIO m, ToJSString val) =>
+                 HTMLScriptElement -> Maybe val -> m ()
 setCrossOrigin self val
-  = liftIO (js_setCrossOrigin (self) (toJSString val))
+  = liftIO (js_setCrossOrigin self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"crossOrigin\"]"
-        js_getCrossOrigin :: HTMLScriptElement -> IO JSString
+        js_getCrossOrigin :: HTMLScriptElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.crossOrigin Mozilla HTMLScriptElement.crossOrigin documentation> 
 getCrossOrigin ::
-               (MonadIO m, FromJSString result) => HTMLScriptElement -> m result
+               (MonadIO m, FromJSString result) =>
+                 HTMLScriptElement -> m (Maybe result)
 getCrossOrigin self
-  = liftIO (fromJSString <$> (js_getCrossOrigin (self)))
+  = liftIO (fromMaybeJSString <$> (js_getCrossOrigin self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.crossOrigin Mozilla HTMLScriptElement.crossOrigin documentation> 
+getCrossOriginUnsafe ::
+                     (MonadIO m, HasCallStack, FromJSString result) =>
+                       HTMLScriptElement -> m result
+getCrossOriginUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getCrossOrigin self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.crossOrigin Mozilla HTMLScriptElement.crossOrigin documentation> 
+getCrossOriginUnchecked ::
+                        (MonadIO m, FromJSString result) => HTMLScriptElement -> m result
+getCrossOriginUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_getCrossOrigin self))
  
 foreign import javascript unsafe "$1[\"nonce\"] = $2;" js_setNonce
         :: HTMLScriptElement -> JSString -> IO ()
@@ -200,7 +202,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.nonce Mozilla HTMLScriptElement.nonce documentation> 
 setNonce ::
          (MonadIO m, ToJSString val) => HTMLScriptElement -> val -> m ()
-setNonce self val = liftIO (js_setNonce (self) (toJSString val))
+setNonce self val = liftIO (js_setNonce self (toJSString val))
  
 foreign import javascript unsafe "$1[\"nonce\"]" js_getNonce ::
         HTMLScriptElement -> IO JSString
@@ -208,4 +210,18 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.nonce Mozilla HTMLScriptElement.nonce documentation> 
 getNonce ::
          (MonadIO m, FromJSString result) => HTMLScriptElement -> m result
-getNonce self = liftIO (fromJSString <$> (js_getNonce (self)))
+getNonce self = liftIO (fromJSString <$> (js_getNonce self))
+ 
+foreign import javascript unsafe "$1[\"noModule\"] = $2;"
+        js_setNoModule :: HTMLScriptElement -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.noModule Mozilla HTMLScriptElement.noModule documentation> 
+setNoModule :: (MonadIO m) => HTMLScriptElement -> Bool -> m ()
+setNoModule self val = liftIO (js_setNoModule self val)
+ 
+foreign import javascript unsafe "($1[\"noModule\"] ? 1 : 0)"
+        js_getNoModule :: HTMLScriptElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement.noModule Mozilla HTMLScriptElement.noModule documentation> 
+getNoModule :: (MonadIO m) => HTMLScriptElement -> m Bool
+getNoModule self = liftIO (js_getNoModule self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLSelectElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLSelectElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLSelectElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLSelectElement.hs
@@ -6,32 +6,31 @@
 module GHCJS.DOM.JSFFI.Generated.HTMLSelectElement
        (js_item, item, item_, itemUnsafe, itemUnchecked, js_namedItem,
         namedItem, namedItem_, namedItemUnsafe, namedItemUnchecked,
-        js_addBefore, addBefore, js_add, add, js_remove, remove,
-        js_checkValidity, checkValidity, checkValidity_,
-        js_setCustomValidity, setCustomValidity, js_setAutofocus,
-        setAutofocus, js_getAutofocus, getAutofocus, js_setDisabled,
-        setDisabled, js_getDisabled, getDisabled, js_getForm, getForm,
-        getFormUnsafe, getFormUnchecked, js_setMultiple, setMultiple,
-        js_getMultiple, getMultiple, js_setName, setName, js_getName,
-        getName, js_setRequired, setRequired, js_getRequired, getRequired,
-        js_setSize, setSize, js_getSize, getSize, js_getType, getType,
-        js_getOptions, getOptions, getOptionsUnsafe, getOptionsUnchecked,
-        js_setLength, setLength, js_getLength, getLength,
-        js_getSelectedOptions, getSelectedOptions,
-        getSelectedOptionsUnsafe, getSelectedOptionsUnchecked,
-        js_setSelectedIndex, setSelectedIndex, js_getSelectedIndex,
-        getSelectedIndex, js_setValue, setValue, js_getValue, getValue,
-        getValueUnsafe, getValueUnchecked, js_getWillValidate,
-        getWillValidate, js_getValidity, getValidity, getValidityUnsafe,
-        getValidityUnchecked, js_getValidationMessage,
-        getValidationMessage, js_getLabels, getLabels, getLabelsUnsafe,
-        getLabelsUnchecked, HTMLSelectElement(..), gTypeHTMLSelectElement)
+        js_addBefore, addBefore, js_removeThis, removeThis,
+        js_removeElement, removeElement, js_remove, remove,
+        js_checkValidity, checkValidity, checkValidity_, js_reportValidity,
+        reportValidity, reportValidity_, js_setCustomValidity,
+        setCustomValidity, js_setAutofocus, setAutofocus, js_getAutofocus,
+        getAutofocus, js_setDisabled, setDisabled, js_getDisabled,
+        getDisabled, js_getForm, getForm, getFormUnsafe, getFormUnchecked,
+        js_setMultiple, setMultiple, js_getMultiple, getMultiple,
+        js_setName, setName, js_getName, getName, js_setRequired,
+        setRequired, js_getRequired, getRequired, js_setSize, setSize,
+        js_getSize, getSize, js_getType, getType, js_getOptions,
+        getOptions, js_setLength, setLength, js_getLength, getLength,
+        js_getSelectedOptions, getSelectedOptions, js_setSelectedIndex,
+        setSelectedIndex, js_getSelectedIndex, getSelectedIndex,
+        js_setValue, setValue, js_getValue, getValue, js_getWillValidate,
+        getWillValidate, js_getValidity, getValidity,
+        js_getValidationMessage, getValidationMessage, js_getLabels,
+        getLabels, js_setAutocomplete, setAutocomplete, js_getAutocomplete,
+        getAutocomplete, HTMLSelectElement(..), gTypeHTMLSelectElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -40,153 +39,176 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        HTMLSelectElement -> Word -> IO (Nullable Node)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        HTMLSelectElement -> Word -> IO (Nullable HTMLOptionElement)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.item Mozilla HTMLSelectElement.item documentation> 
-item :: (MonadIO m) => HTMLSelectElement -> Word -> m (Maybe Node)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item ::
+     (MonadIO m) =>
+       HTMLSelectElement -> Word -> m (Maybe HTMLOptionElement)
+item self index = liftIO (nullableToMaybe <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.item Mozilla HTMLSelectElement.item documentation> 
 item_ :: (MonadIO m) => HTMLSelectElement -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.item Mozilla HTMLSelectElement.item documentation> 
 itemUnsafe ::
-           (MonadIO m, HasCallStack) => HTMLSelectElement -> Word -> m Node
+           (MonadIO m, HasCallStack) =>
+             HTMLSelectElement -> Word -> m HTMLOptionElement
 itemUnsafe self index
   = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
+      ((nullableToMaybe <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.item Mozilla HTMLSelectElement.item documentation> 
-itemUnchecked :: (MonadIO m) => HTMLSelectElement -> Word -> m Node
+itemUnchecked ::
+              (MonadIO m) => HTMLSelectElement -> Word -> m HTMLOptionElement
 itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+  = liftIO (fromJust . nullableToMaybe <$> (js_item self index))
  
 foreign import javascript unsafe "$1[\"namedItem\"]($2)"
-        js_namedItem :: HTMLSelectElement -> JSString -> IO (Nullable Node)
+        js_namedItem ::
+        HTMLSelectElement -> JSString -> IO (Nullable HTMLOptionElement)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.namedItem Mozilla HTMLSelectElement.namedItem documentation> 
 namedItem ::
           (MonadIO m, ToJSString name) =>
-            HTMLSelectElement -> name -> m (Maybe Node)
+            HTMLSelectElement -> name -> m (Maybe HTMLOptionElement)
 namedItem self name
   = liftIO
-      (nullableToMaybe <$> (js_namedItem (self) (toJSString name)))
+      (nullableToMaybe <$> (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.namedItem Mozilla HTMLSelectElement.namedItem documentation> 
 namedItem_ ::
            (MonadIO m, ToJSString name) => HTMLSelectElement -> name -> m ()
 namedItem_ self name
-  = liftIO (void (js_namedItem (self) (toJSString name)))
+  = liftIO (void (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.namedItem Mozilla HTMLSelectElement.namedItem documentation> 
 namedItemUnsafe ::
                 (MonadIO m, ToJSString name, HasCallStack) =>
-                  HTMLSelectElement -> name -> m Node
+                  HTMLSelectElement -> name -> m HTMLOptionElement
 namedItemUnsafe self name
   = liftIO
-      ((nullableToMaybe <$> (js_namedItem (self) (toJSString name))) >>=
+      ((nullableToMaybe <$> (js_namedItem self (toJSString name))) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.namedItem Mozilla HTMLSelectElement.namedItem documentation> 
 namedItemUnchecked ::
-                   (MonadIO m, ToJSString name) => HTMLSelectElement -> name -> m Node
+                   (MonadIO m, ToJSString name) =>
+                     HTMLSelectElement -> name -> m HTMLOptionElement
 namedItemUnchecked self name
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_namedItem (self) (toJSString name)))
+         (js_namedItem self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"add\"]($2, $3)" js_addBefore
         ::
         HTMLSelectElement ->
-          Nullable HTMLElement -> Nullable HTMLElement -> IO ()
+          HTMLOptionElementOrGroup -> Optional HTMLElementOrLong -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.add Mozilla HTMLSelectElement.add documentation> 
 addBefore ::
-          (MonadIO m, IsHTMLElement element, IsHTMLElement before) =>
-            HTMLSelectElement -> Maybe element -> Maybe before -> m ()
+          (MonadIO m, IsHTMLOptionElementOrGroup element,
+           IsHTMLElementOrLong before) =>
+            HTMLSelectElement -> element -> Maybe before -> m ()
 addBefore self element before
   = liftIO
-      (js_addBefore (self) (maybeToNullable (fmap toHTMLElement element))
-         (maybeToNullable (fmap toHTMLElement before)))
+      (mapM toJSVal before >>=
+         \ before' ->
+           toJSVal element >>=
+             \ element' -> js_addBefore self (HTMLOptionElementOrGroup element')
+             (maybeToOptional (fmap HTMLElementOrLong before')))
  
-foreign import javascript unsafe "$1[\"add\"]($2, $3)" js_add ::
-        HTMLSelectElement -> Nullable HTMLElement -> Int -> IO ()
+foreign import javascript unsafe "$1[\"remove\"]()" js_removeThis
+        :: HTMLSelectElement -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.add Mozilla HTMLSelectElement.add documentation> 
-add ::
-    (MonadIO m, IsHTMLElement element) =>
-      HTMLSelectElement -> Maybe element -> Int -> m ()
-add self element index
-  = liftIO
-      (js_add (self) (maybeToNullable (fmap toHTMLElement element))
-         index)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.remove Mozilla HTMLSelectElement.remove documentation> 
+removeThis :: (MonadIO m) => HTMLSelectElement -> m ()
+removeThis self = liftIO (js_removeThis self)
  
-foreign import javascript unsafe "$1[\"remove\"]()" js_remove ::
-        HTMLSelectElement -> IO ()
+foreign import javascript unsafe "$1[\"remove\"]($2)"
+        js_removeElement :: HTMLSelectElement -> HTMLOptionElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.remove Mozilla HTMLSelectElement.remove documentation> 
-remove :: (MonadIO m) => HTMLSelectElement -> m ()
-remove self = liftIO (js_remove (self))
+removeElement ::
+              (MonadIO m) => HTMLSelectElement -> HTMLOptionElement -> m ()
+removeElement self option = liftIO (js_removeElement self option)
  
+foreign import javascript unsafe "$1[\"remove\"]($2)" js_remove ::
+        HTMLSelectElement -> Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.remove Mozilla HTMLSelectElement.remove documentation> 
+remove :: (MonadIO m) => HTMLSelectElement -> Int -> m ()
+remove self index = liftIO (js_remove self index)
+ 
 foreign import javascript unsafe
         "($1[\"checkValidity\"]() ? 1 : 0)" js_checkValidity ::
         HTMLSelectElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.checkValidity Mozilla HTMLSelectElement.checkValidity documentation> 
 checkValidity :: (MonadIO m) => HTMLSelectElement -> m Bool
-checkValidity self = liftIO (js_checkValidity (self))
+checkValidity self = liftIO (js_checkValidity self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.checkValidity Mozilla HTMLSelectElement.checkValidity documentation> 
 checkValidity_ :: (MonadIO m) => HTMLSelectElement -> m ()
-checkValidity_ self = liftIO (void (js_checkValidity (self)))
+checkValidity_ self = liftIO (void (js_checkValidity self))
  
+foreign import javascript unsafe
+        "($1[\"reportValidity\"]() ? 1 : 0)" js_reportValidity ::
+        HTMLSelectElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.reportValidity Mozilla HTMLSelectElement.reportValidity documentation> 
+reportValidity :: (MonadIO m) => HTMLSelectElement -> m Bool
+reportValidity self = liftIO (js_reportValidity self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.reportValidity Mozilla HTMLSelectElement.reportValidity documentation> 
+reportValidity_ :: (MonadIO m) => HTMLSelectElement -> m ()
+reportValidity_ self = liftIO (void (js_reportValidity self))
+ 
 foreign import javascript unsafe "$1[\"setCustomValidity\"]($2)"
-        js_setCustomValidity ::
-        HTMLSelectElement -> Nullable JSString -> IO ()
+        js_setCustomValidity :: HTMLSelectElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.setCustomValidity Mozilla HTMLSelectElement.setCustomValidity documentation> 
 setCustomValidity ::
-                  (MonadIO m, ToJSString error) =>
-                    HTMLSelectElement -> Maybe error -> m ()
+                  (MonadIO m, ToJSString error) => HTMLSelectElement -> error -> m ()
 setCustomValidity self error
-  = liftIO (js_setCustomValidity (self) (toMaybeJSString error))
+  = liftIO (js_setCustomValidity self (toJSString error))
  
 foreign import javascript unsafe "$1[\"autofocus\"] = $2;"
         js_setAutofocus :: HTMLSelectElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.autofocus Mozilla HTMLSelectElement.autofocus documentation> 
 setAutofocus :: (MonadIO m) => HTMLSelectElement -> Bool -> m ()
-setAutofocus self val = liftIO (js_setAutofocus (self) val)
+setAutofocus self val = liftIO (js_setAutofocus self val)
  
 foreign import javascript unsafe "($1[\"autofocus\"] ? 1 : 0)"
         js_getAutofocus :: HTMLSelectElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.autofocus Mozilla HTMLSelectElement.autofocus documentation> 
 getAutofocus :: (MonadIO m) => HTMLSelectElement -> m Bool
-getAutofocus self = liftIO (js_getAutofocus (self))
+getAutofocus self = liftIO (js_getAutofocus self)
  
 foreign import javascript unsafe "$1[\"disabled\"] = $2;"
         js_setDisabled :: HTMLSelectElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.disabled Mozilla HTMLSelectElement.disabled documentation> 
 setDisabled :: (MonadIO m) => HTMLSelectElement -> Bool -> m ()
-setDisabled self val = liftIO (js_setDisabled (self) val)
+setDisabled self val = liftIO (js_setDisabled self val)
  
 foreign import javascript unsafe "($1[\"disabled\"] ? 1 : 0)"
         js_getDisabled :: HTMLSelectElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.disabled Mozilla HTMLSelectElement.disabled documentation> 
 getDisabled :: (MonadIO m) => HTMLSelectElement -> m Bool
-getDisabled self = liftIO (js_getDisabled (self))
+getDisabled self = liftIO (js_getDisabled self)
  
 foreign import javascript unsafe "$1[\"form\"]" js_getForm ::
         HTMLSelectElement -> IO (Nullable HTMLFormElement)
@@ -194,35 +216,35 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.form Mozilla HTMLSelectElement.form documentation> 
 getForm ::
         (MonadIO m) => HTMLSelectElement -> m (Maybe HTMLFormElement)
-getForm self = liftIO (nullableToMaybe <$> (js_getForm (self)))
+getForm self = liftIO (nullableToMaybe <$> (js_getForm self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.form Mozilla HTMLSelectElement.form documentation> 
 getFormUnsafe ::
               (MonadIO m, HasCallStack) => HTMLSelectElement -> m HTMLFormElement
 getFormUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getForm (self))) >>=
+      ((nullableToMaybe <$> (js_getForm self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.form Mozilla HTMLSelectElement.form documentation> 
 getFormUnchecked ::
                  (MonadIO m) => HTMLSelectElement -> m HTMLFormElement
 getFormUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getForm (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getForm self))
  
 foreign import javascript unsafe "$1[\"multiple\"] = $2;"
         js_setMultiple :: HTMLSelectElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.multiple Mozilla HTMLSelectElement.multiple documentation> 
 setMultiple :: (MonadIO m) => HTMLSelectElement -> Bool -> m ()
-setMultiple self val = liftIO (js_setMultiple (self) val)
+setMultiple self val = liftIO (js_setMultiple self val)
  
 foreign import javascript unsafe "($1[\"multiple\"] ? 1 : 0)"
         js_getMultiple :: HTMLSelectElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.multiple Mozilla HTMLSelectElement.multiple documentation> 
 getMultiple :: (MonadIO m) => HTMLSelectElement -> m Bool
-getMultiple self = liftIO (js_getMultiple (self))
+getMultiple self = liftIO (js_getMultiple self)
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLSelectElement -> JSString -> IO ()
@@ -230,7 +252,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.name Mozilla HTMLSelectElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLSelectElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLSelectElement -> IO JSString
@@ -238,35 +260,35 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.name Mozilla HTMLSelectElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLSelectElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"required\"] = $2;"
         js_setRequired :: HTMLSelectElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.required Mozilla HTMLSelectElement.required documentation> 
 setRequired :: (MonadIO m) => HTMLSelectElement -> Bool -> m ()
-setRequired self val = liftIO (js_setRequired (self) val)
+setRequired self val = liftIO (js_setRequired self val)
  
 foreign import javascript unsafe "($1[\"required\"] ? 1 : 0)"
         js_getRequired :: HTMLSelectElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.required Mozilla HTMLSelectElement.required documentation> 
 getRequired :: (MonadIO m) => HTMLSelectElement -> m Bool
-getRequired self = liftIO (js_getRequired (self))
+getRequired self = liftIO (js_getRequired self)
  
 foreign import javascript unsafe "$1[\"size\"] = $2;" js_setSize ::
-        HTMLSelectElement -> Int -> IO ()
+        HTMLSelectElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.size Mozilla HTMLSelectElement.size documentation> 
-setSize :: (MonadIO m) => HTMLSelectElement -> Int -> m ()
-setSize self val = liftIO (js_setSize (self) val)
+setSize :: (MonadIO m) => HTMLSelectElement -> Word -> m ()
+setSize self val = liftIO (js_setSize self val)
  
 foreign import javascript unsafe "$1[\"size\"]" js_getSize ::
-        HTMLSelectElement -> IO Int
+        HTMLSelectElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.size Mozilla HTMLSelectElement.size documentation> 
-getSize :: (MonadIO m) => HTMLSelectElement -> m Int
-getSize self = liftIO (js_getSize (self))
+getSize :: (MonadIO m) => HTMLSelectElement -> m Word
+getSize self = liftIO (js_getSize self)
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLSelectElement -> IO JSString
@@ -274,148 +296,81 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.type Mozilla HTMLSelectElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLSelectElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"options\"]" js_getOptions ::
-        HTMLSelectElement -> IO (Nullable HTMLOptionsCollection)
+        HTMLSelectElement -> IO HTMLOptionsCollection
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.options Mozilla HTMLSelectElement.options documentation> 
 getOptions ::
-           (MonadIO m) => HTMLSelectElement -> m (Maybe HTMLOptionsCollection)
-getOptions self
-  = liftIO (nullableToMaybe <$> (js_getOptions (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.options Mozilla HTMLSelectElement.options documentation> 
-getOptionsUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   HTMLSelectElement -> m HTMLOptionsCollection
-getOptionsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOptions (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.options Mozilla HTMLSelectElement.options documentation> 
-getOptionsUnchecked ::
-                    (MonadIO m) => HTMLSelectElement -> m HTMLOptionsCollection
-getOptionsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getOptions (self)))
+           (MonadIO m) => HTMLSelectElement -> m HTMLOptionsCollection
+getOptions self = liftIO (js_getOptions self)
  
 foreign import javascript unsafe "$1[\"length\"] = $2;"
         js_setLength :: HTMLSelectElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.length Mozilla HTMLSelectElement.length documentation> 
 setLength :: (MonadIO m) => HTMLSelectElement -> Word -> m ()
-setLength self val = liftIO (js_setLength (self) val)
+setLength self val = liftIO (js_setLength self val)
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         HTMLSelectElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.length Mozilla HTMLSelectElement.length documentation> 
 getLength :: (MonadIO m) => HTMLSelectElement -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
  
 foreign import javascript unsafe "$1[\"selectedOptions\"]"
-        js_getSelectedOptions ::
-        HTMLSelectElement -> IO (Nullable HTMLCollection)
+        js_getSelectedOptions :: HTMLSelectElement -> IO HTMLCollection
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.selectedOptions Mozilla HTMLSelectElement.selectedOptions documentation> 
 getSelectedOptions ::
-                   (MonadIO m) => HTMLSelectElement -> m (Maybe HTMLCollection)
-getSelectedOptions self
-  = liftIO (nullableToMaybe <$> (js_getSelectedOptions (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.selectedOptions Mozilla HTMLSelectElement.selectedOptions documentation> 
-getSelectedOptionsUnsafe ::
-                         (MonadIO m, HasCallStack) => HTMLSelectElement -> m HTMLCollection
-getSelectedOptionsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSelectedOptions (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.selectedOptions Mozilla HTMLSelectElement.selectedOptions documentation> 
-getSelectedOptionsUnchecked ::
-                            (MonadIO m) => HTMLSelectElement -> m HTMLCollection
-getSelectedOptionsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSelectedOptions (self)))
+                   (MonadIO m) => HTMLSelectElement -> m HTMLCollection
+getSelectedOptions self = liftIO (js_getSelectedOptions self)
  
 foreign import javascript unsafe "$1[\"selectedIndex\"] = $2;"
         js_setSelectedIndex :: HTMLSelectElement -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.selectedIndex Mozilla HTMLSelectElement.selectedIndex documentation> 
 setSelectedIndex :: (MonadIO m) => HTMLSelectElement -> Int -> m ()
-setSelectedIndex self val = liftIO (js_setSelectedIndex (self) val)
+setSelectedIndex self val = liftIO (js_setSelectedIndex self val)
  
 foreign import javascript unsafe "$1[\"selectedIndex\"]"
         js_getSelectedIndex :: HTMLSelectElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.selectedIndex Mozilla HTMLSelectElement.selectedIndex documentation> 
 getSelectedIndex :: (MonadIO m) => HTMLSelectElement -> m Int
-getSelectedIndex self = liftIO (js_getSelectedIndex (self))
+getSelectedIndex self = liftIO (js_getSelectedIndex self)
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
-        :: HTMLSelectElement -> Nullable JSString -> IO ()
+        :: HTMLSelectElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.value Mozilla HTMLSelectElement.value documentation> 
 setValue ::
-         (MonadIO m, ToJSString val) =>
-           HTMLSelectElement -> Maybe val -> m ()
-setValue self val
-  = liftIO (js_setValue (self) (toMaybeJSString val))
+         (MonadIO m, ToJSString val) => HTMLSelectElement -> val -> m ()
+setValue self val = liftIO (js_setValue self (toJSString val))
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
-        HTMLSelectElement -> IO (Nullable JSString)
+        HTMLSelectElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.value Mozilla HTMLSelectElement.value documentation> 
 getValue ::
-         (MonadIO m, FromJSString result) =>
-           HTMLSelectElement -> m (Maybe result)
-getValue self = liftIO (fromMaybeJSString <$> (js_getValue (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.value Mozilla HTMLSelectElement.value documentation> 
-getValueUnsafe ::
-               (MonadIO m, HasCallStack, FromJSString result) =>
-                 HTMLSelectElement -> m result
-getValueUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getValue (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.value Mozilla HTMLSelectElement.value documentation> 
-getValueUnchecked ::
-                  (MonadIO m, FromJSString result) => HTMLSelectElement -> m result
-getValueUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getValue (self)))
+         (MonadIO m, FromJSString result) => HTMLSelectElement -> m result
+getValue self = liftIO (fromJSString <$> (js_getValue self))
  
 foreign import javascript unsafe "($1[\"willValidate\"] ? 1 : 0)"
         js_getWillValidate :: HTMLSelectElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.willValidate Mozilla HTMLSelectElement.willValidate documentation> 
 getWillValidate :: (MonadIO m) => HTMLSelectElement -> m Bool
-getWillValidate self = liftIO (js_getWillValidate (self))
+getWillValidate self = liftIO (js_getWillValidate self)
  
 foreign import javascript unsafe "$1[\"validity\"]" js_getValidity
-        :: HTMLSelectElement -> IO (Nullable ValidityState)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.validity Mozilla HTMLSelectElement.validity documentation> 
-getValidity ::
-            (MonadIO m) => HTMLSelectElement -> m (Maybe ValidityState)
-getValidity self
-  = liftIO (nullableToMaybe <$> (js_getValidity (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.validity Mozilla HTMLSelectElement.validity documentation> 
-getValidityUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLSelectElement -> m ValidityState
-getValidityUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getValidity (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: HTMLSelectElement -> IO ValidityState
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.validity Mozilla HTMLSelectElement.validity documentation> 
-getValidityUnchecked ::
-                     (MonadIO m) => HTMLSelectElement -> m ValidityState
-getValidityUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getValidity (self)))
+getValidity :: (MonadIO m) => HTMLSelectElement -> m ValidityState
+getValidity self = liftIO (js_getValidity self)
  
 foreign import javascript unsafe "$1[\"validationMessage\"]"
         js_getValidationMessage :: HTMLSelectElement -> IO JSString
@@ -424,25 +379,29 @@
 getValidationMessage ::
                      (MonadIO m, FromJSString result) => HTMLSelectElement -> m result
 getValidationMessage self
-  = liftIO (fromJSString <$> (js_getValidationMessage (self)))
+  = liftIO (fromJSString <$> (js_getValidationMessage self))
  
 foreign import javascript unsafe "$1[\"labels\"]" js_getLabels ::
-        HTMLSelectElement -> IO (Nullable NodeList)
+        HTMLSelectElement -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.labels Mozilla HTMLSelectElement.labels documentation> 
-getLabels :: (MonadIO m) => HTMLSelectElement -> m (Maybe NodeList)
-getLabels self = liftIO (nullableToMaybe <$> (js_getLabels (self)))
+getLabels :: (MonadIO m) => HTMLSelectElement -> m NodeList
+getLabels self = liftIO (js_getLabels self)
+ 
+foreign import javascript unsafe "$1[\"autocomplete\"] = $2;"
+        js_setAutocomplete :: HTMLSelectElement -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.labels Mozilla HTMLSelectElement.labels documentation> 
-getLabelsUnsafe ::
-                (MonadIO m, HasCallStack) => HTMLSelectElement -> m NodeList
-getLabelsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLabels (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.autocomplete Mozilla HTMLSelectElement.autocomplete documentation> 
+setAutocomplete ::
+                (MonadIO m, ToJSString val) => HTMLSelectElement -> val -> m ()
+setAutocomplete self val
+  = liftIO (js_setAutocomplete self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"autocomplete\"]"
+        js_getAutocomplete :: HTMLSelectElement -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.labels Mozilla HTMLSelectElement.labels documentation> 
-getLabelsUnchecked ::
-                   (MonadIO m) => HTMLSelectElement -> m NodeList
-getLabelsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getLabels (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.autocomplete Mozilla HTMLSelectElement.autocomplete documentation> 
+getAutocomplete ::
+                (MonadIO m, FromJSString result) => HTMLSelectElement -> m result
+getAutocomplete self
+  = liftIO (fromJSString <$> (js_getAutocomplete self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLSlotElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLSlotElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLSlotElement.hs
@@ -0,0 +1,64 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.HTMLSlotElement
+       (js_assignedNodes, assignedNodes, assignedNodes_, js_setName,
+        setName, js_getName, getName, HTMLSlotElement(..),
+        gTypeHTMLSlotElement)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"assignedNodes\"]($2)"
+        js_assignedNodes ::
+        HTMLSlotElement -> Optional AssignedNodesOptions -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement.assignedNodes Mozilla HTMLSlotElement.assignedNodes documentation> 
+assignedNodes ::
+              (MonadIO m) =>
+                HTMLSlotElement -> Maybe AssignedNodesOptions -> m [Node]
+assignedNodes self options
+  = liftIO
+      ((js_assignedNodes self (maybeToOptional options)) >>=
+         fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement.assignedNodes Mozilla HTMLSlotElement.assignedNodes documentation> 
+assignedNodes_ ::
+               (MonadIO m) =>
+                 HTMLSlotElement -> Maybe AssignedNodesOptions -> m ()
+assignedNodes_ self options
+  = liftIO (void (js_assignedNodes self (maybeToOptional options)))
+ 
+foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
+        HTMLSlotElement -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement.name Mozilla HTMLSlotElement.name documentation> 
+setName ::
+        (MonadIO m, ToJSString val) => HTMLSlotElement -> val -> m ()
+setName self val = liftIO (js_setName self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"name\"]" js_getName ::
+        HTMLSlotElement -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement.name Mozilla HTMLSlotElement.name documentation> 
+getName ::
+        (MonadIO m, FromJSString result) => HTMLSlotElement -> m result
+getName self = liftIO (fromJSString <$> (js_getName self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLSourceElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLSourceElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLSourceElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLSourceElement.hs
@@ -5,14 +5,16 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLSourceElement
        (js_setSrc, setSrc, js_getSrc, getSrc, js_setType, setType,
-        js_getType, getType, js_setMedia, setMedia, js_getMedia, getMedia,
+        js_getType, getType, js_setSrcset, setSrcset, js_getSrcset,
+        getSrcset, js_setSizes, setSizes, js_getSizes, getSizes,
+        js_setMedia, setMedia, js_getMedia, getMedia,
         HTMLSourceElement(..), gTypeHTMLSourceElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,7 +35,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement.src Mozilla HTMLSourceElement.src documentation> 
 setSrc ::
        (MonadIO m, ToJSString val) => HTMLSourceElement -> val -> m ()
-setSrc self val = liftIO (js_setSrc (self) (toJSString val))
+setSrc self val = liftIO (js_setSrc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"src\"]" js_getSrc ::
         HTMLSourceElement -> IO JSString
@@ -40,7 +43,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement.src Mozilla HTMLSourceElement.src documentation> 
 getSrc ::
        (MonadIO m, FromJSString result) => HTMLSourceElement -> m result
-getSrc self = liftIO (fromJSString <$> (js_getSrc (self)))
+getSrc self = liftIO (fromJSString <$> (js_getSrc self))
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         HTMLSourceElement -> JSString -> IO ()
@@ -48,7 +51,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement.type Mozilla HTMLSourceElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLSourceElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLSourceElement -> IO JSString
@@ -56,15 +59,47 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement.type Mozilla HTMLSourceElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLSourceElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
+foreign import javascript unsafe "$1[\"srcset\"] = $2;"
+        js_setSrcset :: HTMLSourceElement -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement.srcset Mozilla HTMLSourceElement.srcset documentation> 
+setSrcset ::
+          (MonadIO m, ToJSString val) => HTMLSourceElement -> val -> m ()
+setSrcset self val = liftIO (js_setSrcset self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"srcset\"]" js_getSrcset ::
+        HTMLSourceElement -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement.srcset Mozilla HTMLSourceElement.srcset documentation> 
+getSrcset ::
+          (MonadIO m, FromJSString result) => HTMLSourceElement -> m result
+getSrcset self = liftIO (fromJSString <$> (js_getSrcset self))
+ 
+foreign import javascript unsafe "$1[\"sizes\"] = $2;" js_setSizes
+        :: HTMLSourceElement -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement.sizes Mozilla HTMLSourceElement.sizes documentation> 
+setSizes ::
+         (MonadIO m, ToJSString val) => HTMLSourceElement -> val -> m ()
+setSizes self val = liftIO (js_setSizes self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"sizes\"]" js_getSizes ::
+        HTMLSourceElement -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement.sizes Mozilla HTMLSourceElement.sizes documentation> 
+getSizes ::
+         (MonadIO m, FromJSString result) => HTMLSourceElement -> m result
+getSizes self = liftIO (fromJSString <$> (js_getSizes self))
+ 
 foreign import javascript unsafe "$1[\"media\"] = $2;" js_setMedia
         :: HTMLSourceElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement.media Mozilla HTMLSourceElement.media documentation> 
 setMedia ::
          (MonadIO m, ToJSString val) => HTMLSourceElement -> val -> m ()
-setMedia self val = liftIO (js_setMedia (self) (toJSString val))
+setMedia self val = liftIO (js_setMedia self (toJSString val))
  
 foreign import javascript unsafe "$1[\"media\"]" js_getMedia ::
         HTMLSourceElement -> IO JSString
@@ -72,4 +107,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement.media Mozilla HTMLSourceElement.media documentation> 
 getMedia ::
          (MonadIO m, FromJSString result) => HTMLSourceElement -> m result
-getMedia self = liftIO (fromJSString <$> (js_getMedia (self)))
+getMedia self = liftIO (fromJSString <$> (js_getMedia self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLStyleElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLStyleElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLStyleElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLStyleElement.hs
@@ -6,14 +6,14 @@
 module GHCJS.DOM.JSFFI.Generated.HTMLStyleElement
        (js_setDisabled, setDisabled, js_getDisabled, getDisabled,
         js_setMedia, setMedia, js_getMedia, getMedia, js_setType, setType,
-        js_getType, getType, js_getSheet, getSheet, getSheetUnsafe,
-        getSheetUnchecked, HTMLStyleElement(..), gTypeHTMLStyleElement)
+        js_getType, getType, js_getSheet, getSheet, js_setNonce, setNonce,
+        js_getNonce, getNonce, HTMLStyleElement(..), gTypeHTMLStyleElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,14 +33,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.disabled Mozilla HTMLStyleElement.disabled documentation> 
 setDisabled :: (MonadIO m) => HTMLStyleElement -> Bool -> m ()
-setDisabled self val = liftIO (js_setDisabled (self) val)
+setDisabled self val = liftIO (js_setDisabled self val)
  
 foreign import javascript unsafe "($1[\"disabled\"] ? 1 : 0)"
         js_getDisabled :: HTMLStyleElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.disabled Mozilla HTMLStyleElement.disabled documentation> 
 getDisabled :: (MonadIO m) => HTMLStyleElement -> m Bool
-getDisabled self = liftIO (js_getDisabled (self))
+getDisabled self = liftIO (js_getDisabled self)
  
 foreign import javascript unsafe "$1[\"media\"] = $2;" js_setMedia
         :: HTMLStyleElement -> JSString -> IO ()
@@ -47,7 +48,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.media Mozilla HTMLStyleElement.media documentation> 
 setMedia ::
          (MonadIO m, ToJSString val) => HTMLStyleElement -> val -> m ()
-setMedia self val = liftIO (js_setMedia (self) (toJSString val))
+setMedia self val = liftIO (js_setMedia self (toJSString val))
  
 foreign import javascript unsafe "$1[\"media\"]" js_getMedia ::
         HTMLStyleElement -> IO JSString
@@ -55,7 +56,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.media Mozilla HTMLStyleElement.media documentation> 
 getMedia ::
          (MonadIO m, FromJSString result) => HTMLStyleElement -> m result
-getMedia self = liftIO (fromJSString <$> (js_getMedia (self)))
+getMedia self = liftIO (fromJSString <$> (js_getMedia self))
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         HTMLStyleElement -> JSString -> IO ()
@@ -63,7 +64,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.type Mozilla HTMLStyleElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLStyleElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLStyleElement -> IO JSString
@@ -71,25 +72,27 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.type Mozilla HTMLStyleElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLStyleElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"sheet\"]" js_getSheet ::
-        HTMLStyleElement -> IO (Nullable StyleSheet)
+        HTMLStyleElement -> IO StyleSheet
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.sheet Mozilla HTMLStyleElement.sheet documentation> 
-getSheet :: (MonadIO m) => HTMLStyleElement -> m (Maybe StyleSheet)
-getSheet self = liftIO (nullableToMaybe <$> (js_getSheet (self)))
+getSheet :: (MonadIO m) => HTMLStyleElement -> m StyleSheet
+getSheet self = liftIO (js_getSheet self)
+ 
+foreign import javascript unsafe "$1[\"nonce\"] = $2;" js_setNonce
+        :: HTMLStyleElement -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.sheet Mozilla HTMLStyleElement.sheet documentation> 
-getSheetUnsafe ::
-               (MonadIO m, HasCallStack) => HTMLStyleElement -> m StyleSheet
-getSheetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSheet (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.nonce Mozilla HTMLStyleElement.nonce documentation> 
+setNonce ::
+         (MonadIO m, ToJSString val) => HTMLStyleElement -> val -> m ()
+setNonce self val = liftIO (js_setNonce self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"nonce\"]" js_getNonce ::
+        HTMLStyleElement -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.sheet Mozilla HTMLStyleElement.sheet documentation> 
-getSheetUnchecked ::
-                  (MonadIO m) => HTMLStyleElement -> m StyleSheet
-getSheetUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getSheet (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.nonce Mozilla HTMLStyleElement.nonce documentation> 
+getNonce ::
+         (MonadIO m, FromJSString result) => HTMLStyleElement -> m result
+getNonce self = liftIO (fromJSString <$> (js_getNonce self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableCaptionElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableCaptionElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableCaptionElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableCaptionElement.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,7 +33,7 @@
 setAlign ::
          (MonadIO m, ToJSString val) =>
            HTMLTableCaptionElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLTableCaptionElement -> IO JSString
@@ -41,4 +42,4 @@
 getAlign ::
          (MonadIO m, FromJSString result) =>
            HTMLTableCaptionElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableCellElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableCellElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableCellElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableCellElement.hs
@@ -4,24 +4,25 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLTableCellElement
-       (js_getCellIndex, getCellIndex, js_setAbbr, setAbbr, js_getAbbr,
-        getAbbr, js_setAlign, setAlign, js_getAlign, getAlign, js_setAxis,
-        setAxis, js_getAxis, getAxis, js_setBgColor, setBgColor,
-        js_getBgColor, getBgColor, js_setCh, setCh, js_getCh, getCh,
-        js_setChOff, setChOff, js_getChOff, getChOff, js_setColSpan,
-        setColSpan, js_getColSpan, getColSpan, js_setHeaders, setHeaders,
+       (js_getCellIndex, getCellIndex, js_setAlign, setAlign, js_getAlign,
+        getAlign, js_setAxis, setAxis, js_getAxis, getAxis, js_setBgColor,
+        setBgColor, js_getBgColor, getBgColor, getBgColorUnsafe,
+        getBgColorUnchecked, js_setCh, setCh, js_getCh, getCh, js_setChOff,
+        setChOff, js_getChOff, getChOff, js_setColSpan, setColSpan,
+        js_getColSpan, getColSpan, js_setRowSpan, setRowSpan,
+        js_getRowSpan, getRowSpan, js_setHeaders, setHeaders,
         js_getHeaders, getHeaders, js_setHeight, setHeight, js_getHeight,
         getHeight, js_setNoWrap, setNoWrap, js_getNoWrap, getNoWrap,
-        js_setRowSpan, setRowSpan, js_getRowSpan, getRowSpan, js_setScope,
-        setScope, js_getScope, getScope, js_setVAlign, setVAlign,
-        js_getVAlign, getVAlign, js_setWidth, setWidth, js_getWidth,
-        getWidth, HTMLTableCellElement(..), gTypeHTMLTableCellElement)
+        js_setVAlign, setVAlign, js_getVAlign, getVAlign, js_setWidth,
+        setWidth, js_getWidth, getWidth, js_setAbbr, setAbbr, js_getAbbr,
+        getAbbr, js_setScope, setScope, js_getScope, getScope,
+        HTMLTableCellElement(..), gTypeHTMLTableCellElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -30,6 +31,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -40,24 +42,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.cellIndex Mozilla HTMLTableCellElement.cellIndex documentation> 
 getCellIndex :: (MonadIO m) => HTMLTableCellElement -> m Int
-getCellIndex self = liftIO (js_getCellIndex (self))
- 
-foreign import javascript unsafe "$1[\"abbr\"] = $2;" js_setAbbr ::
-        HTMLTableCellElement -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.abbr Mozilla HTMLTableCellElement.abbr documentation> 
-setAbbr ::
-        (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
-setAbbr self val = liftIO (js_setAbbr (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"abbr\"]" js_getAbbr ::
-        HTMLTableCellElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.abbr Mozilla HTMLTableCellElement.abbr documentation> 
-getAbbr ::
-        (MonadIO m, FromJSString result) =>
-          HTMLTableCellElement -> m result
-getAbbr self = liftIO (fromJSString <$> (js_getAbbr (self)))
+getCellIndex self = liftIO (js_getCellIndex self)
  
 foreign import javascript unsafe "$1[\"align\"] = $2;" js_setAlign
         :: HTMLTableCellElement -> JSString -> IO ()
@@ -65,7 +50,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.align Mozilla HTMLTableCellElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLTableCellElement -> IO JSString
@@ -74,7 +59,7 @@
 getAlign ::
          (MonadIO m, FromJSString result) =>
            HTMLTableCellElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"axis\"] = $2;" js_setAxis ::
         HTMLTableCellElement -> JSString -> IO ()
@@ -82,7 +67,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.axis Mozilla HTMLTableCellElement.axis documentation> 
 setAxis ::
         (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
-setAxis self val = liftIO (js_setAxis (self) (toJSString val))
+setAxis self val = liftIO (js_setAxis self (toJSString val))
  
 foreign import javascript unsafe "$1[\"axis\"]" js_getAxis ::
         HTMLTableCellElement -> IO JSString
@@ -91,25 +76,43 @@
 getAxis ::
         (MonadIO m, FromJSString result) =>
           HTMLTableCellElement -> m result
-getAxis self = liftIO (fromJSString <$> (js_getAxis (self)))
+getAxis self = liftIO (fromJSString <$> (js_getAxis self))
  
 foreign import javascript unsafe "$1[\"bgColor\"] = $2;"
-        js_setBgColor :: HTMLTableCellElement -> JSString -> IO ()
+        js_setBgColor :: HTMLTableCellElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.bgColor Mozilla HTMLTableCellElement.bgColor documentation> 
 setBgColor ::
-           (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
+           (MonadIO m, ToJSString val) =>
+             HTMLTableCellElement -> Maybe val -> m ()
 setBgColor self val
-  = liftIO (js_setBgColor (self) (toJSString val))
+  = liftIO (js_setBgColor self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"bgColor\"]" js_getBgColor ::
-        HTMLTableCellElement -> IO JSString
+        HTMLTableCellElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.bgColor Mozilla HTMLTableCellElement.bgColor documentation> 
 getBgColor ::
            (MonadIO m, FromJSString result) =>
-             HTMLTableCellElement -> m result
-getBgColor self = liftIO (fromJSString <$> (js_getBgColor (self)))
+             HTMLTableCellElement -> m (Maybe result)
+getBgColor self
+  = liftIO (fromMaybeJSString <$> (js_getBgColor self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.bgColor Mozilla HTMLTableCellElement.bgColor documentation> 
+getBgColorUnsafe ::
+                 (MonadIO m, HasCallStack, FromJSString result) =>
+                   HTMLTableCellElement -> m result
+getBgColorUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getBgColor self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.bgColor Mozilla HTMLTableCellElement.bgColor documentation> 
+getBgColorUnchecked ::
+                    (MonadIO m, FromJSString result) =>
+                      HTMLTableCellElement -> m result
+getBgColorUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getBgColor self))
  
 foreign import javascript unsafe "$1[\"ch\"] = $2;" js_setCh ::
         HTMLTableCellElement -> JSString -> IO ()
@@ -117,7 +120,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.ch Mozilla HTMLTableCellElement.ch documentation> 
 setCh ::
       (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
-setCh self val = liftIO (js_setCh (self) (toJSString val))
+setCh self val = liftIO (js_setCh self (toJSString val))
  
 foreign import javascript unsafe "$1[\"ch\"]" js_getCh ::
         HTMLTableCellElement -> IO JSString
@@ -126,7 +129,7 @@
 getCh ::
       (MonadIO m, FromJSString result) =>
         HTMLTableCellElement -> m result
-getCh self = liftIO (fromJSString <$> (js_getCh (self)))
+getCh self = liftIO (fromJSString <$> (js_getCh self))
  
 foreign import javascript unsafe "$1[\"chOff\"] = $2;" js_setChOff
         :: HTMLTableCellElement -> JSString -> IO ()
@@ -134,7 +137,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.chOff Mozilla HTMLTableCellElement.chOff documentation> 
 setChOff ::
          (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
-setChOff self val = liftIO (js_setChOff (self) (toJSString val))
+setChOff self val = liftIO (js_setChOff self (toJSString val))
  
 foreign import javascript unsafe "$1[\"chOff\"]" js_getChOff ::
         HTMLTableCellElement -> IO JSString
@@ -143,30 +146,43 @@
 getChOff ::
          (MonadIO m, FromJSString result) =>
            HTMLTableCellElement -> m result
-getChOff self = liftIO (fromJSString <$> (js_getChOff (self)))
+getChOff self = liftIO (fromJSString <$> (js_getChOff self))
  
 foreign import javascript unsafe "$1[\"colSpan\"] = $2;"
-        js_setColSpan :: HTMLTableCellElement -> Int -> IO ()
+        js_setColSpan :: HTMLTableCellElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.colSpan Mozilla HTMLTableCellElement.colSpan documentation> 
-setColSpan :: (MonadIO m) => HTMLTableCellElement -> Int -> m ()
-setColSpan self val = liftIO (js_setColSpan (self) val)
+setColSpan :: (MonadIO m) => HTMLTableCellElement -> Word -> m ()
+setColSpan self val = liftIO (js_setColSpan self val)
  
 foreign import javascript unsafe "$1[\"colSpan\"]" js_getColSpan ::
-        HTMLTableCellElement -> IO Int
+        HTMLTableCellElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.colSpan Mozilla HTMLTableCellElement.colSpan documentation> 
-getColSpan :: (MonadIO m) => HTMLTableCellElement -> m Int
-getColSpan self = liftIO (js_getColSpan (self))
+getColSpan :: (MonadIO m) => HTMLTableCellElement -> m Word
+getColSpan self = liftIO (js_getColSpan self)
  
+foreign import javascript unsafe "$1[\"rowSpan\"] = $2;"
+        js_setRowSpan :: HTMLTableCellElement -> Word -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.rowSpan Mozilla HTMLTableCellElement.rowSpan documentation> 
+setRowSpan :: (MonadIO m) => HTMLTableCellElement -> Word -> m ()
+setRowSpan self val = liftIO (js_setRowSpan self val)
+ 
+foreign import javascript unsafe "$1[\"rowSpan\"]" js_getRowSpan ::
+        HTMLTableCellElement -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.rowSpan Mozilla HTMLTableCellElement.rowSpan documentation> 
+getRowSpan :: (MonadIO m) => HTMLTableCellElement -> m Word
+getRowSpan self = liftIO (js_getRowSpan self)
+ 
 foreign import javascript unsafe "$1[\"headers\"] = $2;"
         js_setHeaders :: HTMLTableCellElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.headers Mozilla HTMLTableCellElement.headers documentation> 
 setHeaders ::
            (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
-setHeaders self val
-  = liftIO (js_setHeaders (self) (toJSString val))
+setHeaders self val = liftIO (js_setHeaders self (toJSString val))
  
 foreign import javascript unsafe "$1[\"headers\"]" js_getHeaders ::
         HTMLTableCellElement -> IO JSString
@@ -175,7 +191,7 @@
 getHeaders ::
            (MonadIO m, FromJSString result) =>
              HTMLTableCellElement -> m result
-getHeaders self = liftIO (fromJSString <$> (js_getHeaders (self)))
+getHeaders self = liftIO (fromJSString <$> (js_getHeaders self))
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
         js_setHeight :: HTMLTableCellElement -> JSString -> IO ()
@@ -183,7 +199,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.height Mozilla HTMLTableCellElement.height documentation> 
 setHeight ::
           (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
-setHeight self val = liftIO (js_setHeight (self) (toJSString val))
+setHeight self val = liftIO (js_setHeight self (toJSString val))
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
         HTMLTableCellElement -> IO JSString
@@ -192,52 +208,21 @@
 getHeight ::
           (MonadIO m, FromJSString result) =>
             HTMLTableCellElement -> m result
-getHeight self = liftIO (fromJSString <$> (js_getHeight (self)))
+getHeight self = liftIO (fromJSString <$> (js_getHeight self))
  
 foreign import javascript unsafe "$1[\"noWrap\"] = $2;"
         js_setNoWrap :: HTMLTableCellElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.noWrap Mozilla HTMLTableCellElement.noWrap documentation> 
 setNoWrap :: (MonadIO m) => HTMLTableCellElement -> Bool -> m ()
-setNoWrap self val = liftIO (js_setNoWrap (self) val)
+setNoWrap self val = liftIO (js_setNoWrap self val)
  
 foreign import javascript unsafe "($1[\"noWrap\"] ? 1 : 0)"
         js_getNoWrap :: HTMLTableCellElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.noWrap Mozilla HTMLTableCellElement.noWrap documentation> 
 getNoWrap :: (MonadIO m) => HTMLTableCellElement -> m Bool
-getNoWrap self = liftIO (js_getNoWrap (self))
- 
-foreign import javascript unsafe "$1[\"rowSpan\"] = $2;"
-        js_setRowSpan :: HTMLTableCellElement -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.rowSpan Mozilla HTMLTableCellElement.rowSpan documentation> 
-setRowSpan :: (MonadIO m) => HTMLTableCellElement -> Int -> m ()
-setRowSpan self val = liftIO (js_setRowSpan (self) val)
- 
-foreign import javascript unsafe "$1[\"rowSpan\"]" js_getRowSpan ::
-        HTMLTableCellElement -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.rowSpan Mozilla HTMLTableCellElement.rowSpan documentation> 
-getRowSpan :: (MonadIO m) => HTMLTableCellElement -> m Int
-getRowSpan self = liftIO (js_getRowSpan (self))
- 
-foreign import javascript unsafe "$1[\"scope\"] = $2;" js_setScope
-        :: HTMLTableCellElement -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.scope Mozilla HTMLTableCellElement.scope documentation> 
-setScope ::
-         (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
-setScope self val = liftIO (js_setScope (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"scope\"]" js_getScope ::
-        HTMLTableCellElement -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.scope Mozilla HTMLTableCellElement.scope documentation> 
-getScope ::
-         (MonadIO m, FromJSString result) =>
-           HTMLTableCellElement -> m result
-getScope self = liftIO (fromJSString <$> (js_getScope (self)))
+getNoWrap self = liftIO (js_getNoWrap self)
  
 foreign import javascript unsafe "$1[\"vAlign\"] = $2;"
         js_setVAlign :: HTMLTableCellElement -> JSString -> IO ()
@@ -245,7 +230,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.vAlign Mozilla HTMLTableCellElement.vAlign documentation> 
 setVAlign ::
           (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
-setVAlign self val = liftIO (js_setVAlign (self) (toJSString val))
+setVAlign self val = liftIO (js_setVAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"vAlign\"]" js_getVAlign ::
         HTMLTableCellElement -> IO JSString
@@ -254,7 +239,7 @@
 getVAlign ::
           (MonadIO m, FromJSString result) =>
             HTMLTableCellElement -> m result
-getVAlign self = liftIO (fromJSString <$> (js_getVAlign (self)))
+getVAlign self = liftIO (fromJSString <$> (js_getVAlign self))
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: HTMLTableCellElement -> JSString -> IO ()
@@ -262,7 +247,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.width Mozilla HTMLTableCellElement.width documentation> 
 setWidth ::
          (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
-setWidth self val = liftIO (js_setWidth (self) (toJSString val))
+setWidth self val = liftIO (js_setWidth self (toJSString val))
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLTableCellElement -> IO JSString
@@ -271,4 +256,38 @@
 getWidth ::
          (MonadIO m, FromJSString result) =>
            HTMLTableCellElement -> m result
-getWidth self = liftIO (fromJSString <$> (js_getWidth (self)))
+getWidth self = liftIO (fromJSString <$> (js_getWidth self))
+ 
+foreign import javascript unsafe "$1[\"abbr\"] = $2;" js_setAbbr ::
+        HTMLTableCellElement -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.abbr Mozilla HTMLTableCellElement.abbr documentation> 
+setAbbr ::
+        (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
+setAbbr self val = liftIO (js_setAbbr self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"abbr\"]" js_getAbbr ::
+        HTMLTableCellElement -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.abbr Mozilla HTMLTableCellElement.abbr documentation> 
+getAbbr ::
+        (MonadIO m, FromJSString result) =>
+          HTMLTableCellElement -> m result
+getAbbr self = liftIO (fromJSString <$> (js_getAbbr self))
+ 
+foreign import javascript unsafe "$1[\"scope\"] = $2;" js_setScope
+        :: HTMLTableCellElement -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.scope Mozilla HTMLTableCellElement.scope documentation> 
+setScope ::
+         (MonadIO m, ToJSString val) => HTMLTableCellElement -> val -> m ()
+setScope self val = liftIO (js_setScope self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"scope\"]" js_getScope ::
+        HTMLTableCellElement -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement.scope Mozilla HTMLTableCellElement.scope documentation> 
+getScope ::
+         (MonadIO m, FromJSString result) =>
+           HTMLTableCellElement -> m result
+getScope self = liftIO (fromJSString <$> (js_getScope self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableColElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableColElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableColElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableColElement.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,7 +35,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.align Mozilla HTMLTableColElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLTableColElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLTableColElement -> IO JSString
@@ -42,7 +43,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.align Mozilla HTMLTableColElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLTableColElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"ch\"] = $2;" js_setCh ::
         HTMLTableColElement -> JSString -> IO ()
@@ -50,7 +51,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.ch Mozilla HTMLTableColElement.ch documentation> 
 setCh ::
       (MonadIO m, ToJSString val) => HTMLTableColElement -> val -> m ()
-setCh self val = liftIO (js_setCh (self) (toJSString val))
+setCh self val = liftIO (js_setCh self (toJSString val))
  
 foreign import javascript unsafe "$1[\"ch\"]" js_getCh ::
         HTMLTableColElement -> IO JSString
@@ -58,7 +59,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.ch Mozilla HTMLTableColElement.ch documentation> 
 getCh ::
       (MonadIO m, FromJSString result) => HTMLTableColElement -> m result
-getCh self = liftIO (fromJSString <$> (js_getCh (self)))
+getCh self = liftIO (fromJSString <$> (js_getCh self))
  
 foreign import javascript unsafe "$1[\"chOff\"] = $2;" js_setChOff
         :: HTMLTableColElement -> JSString -> IO ()
@@ -66,7 +67,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.chOff Mozilla HTMLTableColElement.chOff documentation> 
 setChOff ::
          (MonadIO m, ToJSString val) => HTMLTableColElement -> val -> m ()
-setChOff self val = liftIO (js_setChOff (self) (toJSString val))
+setChOff self val = liftIO (js_setChOff self (toJSString val))
  
 foreign import javascript unsafe "$1[\"chOff\"]" js_getChOff ::
         HTMLTableColElement -> IO JSString
@@ -74,21 +75,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.chOff Mozilla HTMLTableColElement.chOff documentation> 
 getChOff ::
          (MonadIO m, FromJSString result) => HTMLTableColElement -> m result
-getChOff self = liftIO (fromJSString <$> (js_getChOff (self)))
+getChOff self = liftIO (fromJSString <$> (js_getChOff self))
  
 foreign import javascript unsafe "$1[\"span\"] = $2;" js_setSpan ::
-        HTMLTableColElement -> Int -> IO ()
+        HTMLTableColElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.span Mozilla HTMLTableColElement.span documentation> 
-setSpan :: (MonadIO m) => HTMLTableColElement -> Int -> m ()
-setSpan self val = liftIO (js_setSpan (self) val)
+setSpan :: (MonadIO m) => HTMLTableColElement -> Word -> m ()
+setSpan self val = liftIO (js_setSpan self val)
  
 foreign import javascript unsafe "$1[\"span\"]" js_getSpan ::
-        HTMLTableColElement -> IO Int
+        HTMLTableColElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.span Mozilla HTMLTableColElement.span documentation> 
-getSpan :: (MonadIO m) => HTMLTableColElement -> m Int
-getSpan self = liftIO (js_getSpan (self))
+getSpan :: (MonadIO m) => HTMLTableColElement -> m Word
+getSpan self = liftIO (js_getSpan self)
  
 foreign import javascript unsafe "$1[\"vAlign\"] = $2;"
         js_setVAlign :: HTMLTableColElement -> JSString -> IO ()
@@ -96,7 +97,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.vAlign Mozilla HTMLTableColElement.vAlign documentation> 
 setVAlign ::
           (MonadIO m, ToJSString val) => HTMLTableColElement -> val -> m ()
-setVAlign self val = liftIO (js_setVAlign (self) (toJSString val))
+setVAlign self val = liftIO (js_setVAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"vAlign\"]" js_getVAlign ::
         HTMLTableColElement -> IO JSString
@@ -104,7 +105,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.vAlign Mozilla HTMLTableColElement.vAlign documentation> 
 getVAlign ::
           (MonadIO m, FromJSString result) => HTMLTableColElement -> m result
-getVAlign self = liftIO (fromJSString <$> (js_getVAlign (self)))
+getVAlign self = liftIO (fromJSString <$> (js_getVAlign self))
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: HTMLTableColElement -> JSString -> IO ()
@@ -112,7 +113,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.width Mozilla HTMLTableColElement.width documentation> 
 setWidth ::
          (MonadIO m, ToJSString val) => HTMLTableColElement -> val -> m ()
-setWidth self val = liftIO (js_setWidth (self) (toJSString val))
+setWidth self val = liftIO (js_setWidth self (toJSString val))
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLTableColElement -> IO JSString
@@ -120,4 +121,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement.width Mozilla HTMLTableColElement.width documentation> 
 getWidth ::
          (MonadIO m, FromJSString result) => HTMLTableColElement -> m result
-getWidth self = liftIO (fromJSString <$> (js_getWidth (self)))
+getWidth self = liftIO (fromJSString <$> (js_getWidth self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableElement.hs
@@ -4,36 +4,34 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLTableElement
-       (js_createTHead, createTHead, createTHead_, createTHeadUnsafe,
-        createTHeadUnchecked, js_deleteTHead, deleteTHead, js_createTFoot,
-        createTFoot, createTFoot_, createTFootUnsafe, createTFootUnchecked,
+       (js_createTHead, createTHead, createTHead_, js_deleteTHead,
+        deleteTHead, js_createTFoot, createTFoot, createTFoot_,
         js_deleteTFoot, deleteTFoot, js_createTBody, createTBody,
-        createTBody_, createTBodyUnsafe, createTBodyUnchecked,
-        js_createCaption, createCaption, createCaption_,
-        createCaptionUnsafe, createCaptionUnchecked, js_deleteCaption,
-        deleteCaption, js_insertRow, insertRow, insertRow_,
-        insertRowUnsafe, insertRowUnchecked, js_deleteRow, deleteRow,
-        js_setCaption, setCaption, js_getCaption, getCaption,
-        getCaptionUnsafe, getCaptionUnchecked, js_setTHead, setTHead,
-        js_getTHead, getTHead, getTHeadUnsafe, getTHeadUnchecked,
-        js_setTFoot, setTFoot, js_getTFoot, getTFoot, getTFootUnsafe,
-        getTFootUnchecked, js_getRows, getRows, getRowsUnsafe,
-        getRowsUnchecked, js_getTBodies, getTBodies, getTBodiesUnsafe,
-        getTBodiesUnchecked, js_setAlign, setAlign, js_getAlign, getAlign,
-        js_setBgColor, setBgColor, js_getBgColor, getBgColor, js_setBorder,
-        setBorder, js_getBorder, getBorder, js_setCellPadding,
-        setCellPadding, js_getCellPadding, getCellPadding,
-        js_setCellSpacing, setCellSpacing, js_getCellSpacing,
-        getCellSpacing, js_setFrame, setFrame, js_getFrame, getFrame,
-        js_setRules, setRules, js_getRules, getRules, js_setSummary,
-        setSummary, js_getSummary, getSummary, js_setWidth, setWidth,
-        js_getWidth, getWidth, HTMLTableElement(..), gTypeHTMLTableElement)
+        createTBody_, js_createCaption, createCaption, createCaption_,
+        js_deleteCaption, deleteCaption, js_insertRow, insertRow,
+        insertRow_, js_deleteRow, deleteRow, js_setCaption, setCaption,
+        js_getCaption, getCaption, getCaptionUnsafe, getCaptionUnchecked,
+        js_setTHead, setTHead, js_getTHead, getTHead, getTHeadUnsafe,
+        getTHeadUnchecked, js_setTFoot, setTFoot, js_getTFoot, getTFoot,
+        getTFootUnsafe, getTFootUnchecked, js_getRows, getRows,
+        js_getTBodies, getTBodies, js_setAlign, setAlign, js_getAlign,
+        getAlign, js_setBgColor, setBgColor, js_getBgColor, getBgColor,
+        getBgColorUnsafe, getBgColorUnchecked, js_setBorder, setBorder,
+        js_getBorder, getBorder, js_setCellPadding, setCellPadding,
+        js_getCellPadding, getCellPadding, getCellPaddingUnsafe,
+        getCellPaddingUnchecked, js_setCellSpacing, setCellSpacing,
+        js_getCellSpacing, getCellSpacing, getCellSpacingUnsafe,
+        getCellSpacingUnchecked, js_setFrame, setFrame, js_getFrame,
+        getFrame, js_setRules, setRules, js_getRules, getRules,
+        js_setSummary, setSummary, js_getSummary, getSummary, js_setWidth,
+        setWidth, js_getWidth, getWidth, HTMLTableElement(..),
+        gTypeHTMLTableElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -42,187 +40,108 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"createTHead\"]()"
-        js_createTHead :: HTMLTableElement -> IO (Nullable HTMLElement)
+        js_createTHead :: HTMLTableElement -> IO HTMLElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTHead Mozilla HTMLTableElement.createTHead documentation> 
-createTHead ::
-            (MonadIO m) => HTMLTableElement -> m (Maybe HTMLElement)
-createTHead self
-  = liftIO (nullableToMaybe <$> (js_createTHead (self)))
+createTHead :: (MonadIO m) => HTMLTableElement -> m HTMLElement
+createTHead self = liftIO (js_createTHead self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTHead Mozilla HTMLTableElement.createTHead documentation> 
 createTHead_ :: (MonadIO m) => HTMLTableElement -> m ()
-createTHead_ self = liftIO (void (js_createTHead (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTHead Mozilla HTMLTableElement.createTHead documentation> 
-createTHeadUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLTableElement -> m HTMLElement
-createTHeadUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createTHead (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTHead Mozilla HTMLTableElement.createTHead documentation> 
-createTHeadUnchecked ::
-                     (MonadIO m) => HTMLTableElement -> m HTMLElement
-createTHeadUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_createTHead (self)))
+createTHead_ self = liftIO (void (js_createTHead self))
  
 foreign import javascript unsafe "$1[\"deleteTHead\"]()"
         js_deleteTHead :: HTMLTableElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.deleteTHead Mozilla HTMLTableElement.deleteTHead documentation> 
 deleteTHead :: (MonadIO m) => HTMLTableElement -> m ()
-deleteTHead self = liftIO (js_deleteTHead (self))
+deleteTHead self = liftIO (js_deleteTHead self)
  
 foreign import javascript unsafe "$1[\"createTFoot\"]()"
-        js_createTFoot :: HTMLTableElement -> IO (Nullable HTMLElement)
+        js_createTFoot :: HTMLTableElement -> IO HTMLElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTFoot Mozilla HTMLTableElement.createTFoot documentation> 
-createTFoot ::
-            (MonadIO m) => HTMLTableElement -> m (Maybe HTMLElement)
-createTFoot self
-  = liftIO (nullableToMaybe <$> (js_createTFoot (self)))
+createTFoot :: (MonadIO m) => HTMLTableElement -> m HTMLElement
+createTFoot self = liftIO (js_createTFoot self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTFoot Mozilla HTMLTableElement.createTFoot documentation> 
 createTFoot_ :: (MonadIO m) => HTMLTableElement -> m ()
-createTFoot_ self = liftIO (void (js_createTFoot (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTFoot Mozilla HTMLTableElement.createTFoot documentation> 
-createTFootUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLTableElement -> m HTMLElement
-createTFootUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createTFoot (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTFoot Mozilla HTMLTableElement.createTFoot documentation> 
-createTFootUnchecked ::
-                     (MonadIO m) => HTMLTableElement -> m HTMLElement
-createTFootUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_createTFoot (self)))
+createTFoot_ self = liftIO (void (js_createTFoot self))
  
 foreign import javascript unsafe "$1[\"deleteTFoot\"]()"
         js_deleteTFoot :: HTMLTableElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.deleteTFoot Mozilla HTMLTableElement.deleteTFoot documentation> 
 deleteTFoot :: (MonadIO m) => HTMLTableElement -> m ()
-deleteTFoot self = liftIO (js_deleteTFoot (self))
+deleteTFoot self = liftIO (js_deleteTFoot self)
  
 foreign import javascript unsafe "$1[\"createTBody\"]()"
-        js_createTBody :: HTMLTableElement -> IO (Nullable HTMLElement)
+        js_createTBody :: HTMLTableElement -> IO HTMLElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTBody Mozilla HTMLTableElement.createTBody documentation> 
-createTBody ::
-            (MonadIO m) => HTMLTableElement -> m (Maybe HTMLElement)
-createTBody self
-  = liftIO (nullableToMaybe <$> (js_createTBody (self)))
+createTBody :: (MonadIO m) => HTMLTableElement -> m HTMLElement
+createTBody self = liftIO (js_createTBody self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTBody Mozilla HTMLTableElement.createTBody documentation> 
 createTBody_ :: (MonadIO m) => HTMLTableElement -> m ()
-createTBody_ self = liftIO (void (js_createTBody (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTBody Mozilla HTMLTableElement.createTBody documentation> 
-createTBodyUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLTableElement -> m HTMLElement
-createTBodyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createTBody (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createTBody Mozilla HTMLTableElement.createTBody documentation> 
-createTBodyUnchecked ::
-                     (MonadIO m) => HTMLTableElement -> m HTMLElement
-createTBodyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_createTBody (self)))
+createTBody_ self = liftIO (void (js_createTBody self))
  
 foreign import javascript unsafe "$1[\"createCaption\"]()"
-        js_createCaption :: HTMLTableElement -> IO (Nullable HTMLElement)
+        js_createCaption :: HTMLTableElement -> IO HTMLElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createCaption Mozilla HTMLTableElement.createCaption documentation> 
-createCaption ::
-              (MonadIO m) => HTMLTableElement -> m (Maybe HTMLElement)
-createCaption self
-  = liftIO (nullableToMaybe <$> (js_createCaption (self)))
+createCaption :: (MonadIO m) => HTMLTableElement -> m HTMLElement
+createCaption self = liftIO (js_createCaption self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createCaption Mozilla HTMLTableElement.createCaption documentation> 
 createCaption_ :: (MonadIO m) => HTMLTableElement -> m ()
-createCaption_ self = liftIO (void (js_createCaption (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createCaption Mozilla HTMLTableElement.createCaption documentation> 
-createCaptionUnsafe ::
-                    (MonadIO m, HasCallStack) => HTMLTableElement -> m HTMLElement
-createCaptionUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createCaption (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.createCaption Mozilla HTMLTableElement.createCaption documentation> 
-createCaptionUnchecked ::
-                       (MonadIO m) => HTMLTableElement -> m HTMLElement
-createCaptionUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_createCaption (self)))
+createCaption_ self = liftIO (void (js_createCaption self))
  
 foreign import javascript unsafe "$1[\"deleteCaption\"]()"
         js_deleteCaption :: HTMLTableElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.deleteCaption Mozilla HTMLTableElement.deleteCaption documentation> 
 deleteCaption :: (MonadIO m) => HTMLTableElement -> m ()
-deleteCaption self = liftIO (js_deleteCaption (self))
+deleteCaption self = liftIO (js_deleteCaption self)
  
 foreign import javascript unsafe "$1[\"insertRow\"]($2)"
-        js_insertRow ::
-        HTMLTableElement -> Int -> IO (Nullable HTMLElement)
+        js_insertRow :: HTMLTableElement -> Optional Int -> IO HTMLElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.insertRow Mozilla HTMLTableElement.insertRow documentation> 
 insertRow ::
-          (MonadIO m) => HTMLTableElement -> Int -> m (Maybe HTMLElement)
+          (MonadIO m) => HTMLTableElement -> Maybe Int -> m HTMLElement
 insertRow self index
-  = liftIO (nullableToMaybe <$> (js_insertRow (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.insertRow Mozilla HTMLTableElement.insertRow documentation> 
-insertRow_ :: (MonadIO m) => HTMLTableElement -> Int -> m ()
-insertRow_ self index = liftIO (void (js_insertRow (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.insertRow Mozilla HTMLTableElement.insertRow documentation> 
-insertRowUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  HTMLTableElement -> Int -> m HTMLElement
-insertRowUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_insertRow (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+  = liftIO (js_insertRow self (maybeToOptional index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.insertRow Mozilla HTMLTableElement.insertRow documentation> 
-insertRowUnchecked ::
-                   (MonadIO m) => HTMLTableElement -> Int -> m HTMLElement
-insertRowUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_insertRow (self) index))
+insertRow_ :: (MonadIO m) => HTMLTableElement -> Maybe Int -> m ()
+insertRow_ self index
+  = liftIO (void (js_insertRow self (maybeToOptional index)))
  
 foreign import javascript unsafe "$1[\"deleteRow\"]($2)"
         js_deleteRow :: HTMLTableElement -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.deleteRow Mozilla HTMLTableElement.deleteRow documentation> 
 deleteRow :: (MonadIO m) => HTMLTableElement -> Int -> m ()
-deleteRow self index = liftIO (js_deleteRow (self) index)
+deleteRow self index = liftIO (js_deleteRow self index)
  
 foreign import javascript unsafe "$1[\"caption\"] = $2;"
         js_setCaption ::
-        HTMLTableElement -> Nullable HTMLTableCaptionElement -> IO ()
+        HTMLTableElement -> Optional HTMLTableCaptionElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.caption Mozilla HTMLTableElement.caption documentation> 
 setCaption ::
            (MonadIO m) =>
              HTMLTableElement -> Maybe HTMLTableCaptionElement -> m ()
 setCaption self val
-  = liftIO (js_setCaption (self) (maybeToNullable val))
+  = liftIO (js_setCaption self (maybeToOptional val))
  
 foreign import javascript unsafe "$1[\"caption\"]" js_getCaption ::
         HTMLTableElement -> IO (Nullable HTMLTableCaptionElement)
@@ -231,8 +150,7 @@
 getCaption ::
            (MonadIO m) =>
              HTMLTableElement -> m (Maybe HTMLTableCaptionElement)
-getCaption self
-  = liftIO (nullableToMaybe <$> (js_getCaption (self)))
+getCaption self = liftIO (nullableToMaybe <$> (js_getCaption self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.caption Mozilla HTMLTableElement.caption documentation> 
 getCaptionUnsafe ::
@@ -240,24 +158,23 @@
                    HTMLTableElement -> m HTMLTableCaptionElement
 getCaptionUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getCaption (self))) >>=
+      ((nullableToMaybe <$> (js_getCaption self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.caption Mozilla HTMLTableElement.caption documentation> 
 getCaptionUnchecked ::
                     (MonadIO m) => HTMLTableElement -> m HTMLTableCaptionElement
 getCaptionUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCaption (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getCaption self))
  
 foreign import javascript unsafe "$1[\"tHead\"] = $2;" js_setTHead
-        :: HTMLTableElement -> Nullable HTMLTableSectionElement -> IO ()
+        :: HTMLTableElement -> Optional HTMLTableSectionElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.tHead Mozilla HTMLTableElement.tHead documentation> 
 setTHead ::
          (MonadIO m) =>
            HTMLTableElement -> Maybe HTMLTableSectionElement -> m ()
-setTHead self val
-  = liftIO (js_setTHead (self) (maybeToNullable val))
+setTHead self val = liftIO (js_setTHead self (maybeToOptional val))
  
 foreign import javascript unsafe "$1[\"tHead\"]" js_getTHead ::
         HTMLTableElement -> IO (Nullable HTMLTableSectionElement)
@@ -266,7 +183,7 @@
 getTHead ::
          (MonadIO m) =>
            HTMLTableElement -> m (Maybe HTMLTableSectionElement)
-getTHead self = liftIO (nullableToMaybe <$> (js_getTHead (self)))
+getTHead self = liftIO (nullableToMaybe <$> (js_getTHead self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.tHead Mozilla HTMLTableElement.tHead documentation> 
 getTHeadUnsafe ::
@@ -274,24 +191,23 @@
                  HTMLTableElement -> m HTMLTableSectionElement
 getTHeadUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getTHead (self))) >>=
+      ((nullableToMaybe <$> (js_getTHead self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.tHead Mozilla HTMLTableElement.tHead documentation> 
 getTHeadUnchecked ::
                   (MonadIO m) => HTMLTableElement -> m HTMLTableSectionElement
 getTHeadUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTHead (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getTHead self))
  
 foreign import javascript unsafe "$1[\"tFoot\"] = $2;" js_setTFoot
-        :: HTMLTableElement -> Nullable HTMLTableSectionElement -> IO ()
+        :: HTMLTableElement -> Optional HTMLTableSectionElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.tFoot Mozilla HTMLTableElement.tFoot documentation> 
 setTFoot ::
          (MonadIO m) =>
            HTMLTableElement -> Maybe HTMLTableSectionElement -> m ()
-setTFoot self val
-  = liftIO (js_setTFoot (self) (maybeToNullable val))
+setTFoot self val = liftIO (js_setTFoot self (maybeToOptional val))
  
 foreign import javascript unsafe "$1[\"tFoot\"]" js_getTFoot ::
         HTMLTableElement -> IO (Nullable HTMLTableSectionElement)
@@ -300,7 +216,7 @@
 getTFoot ::
          (MonadIO m) =>
            HTMLTableElement -> m (Maybe HTMLTableSectionElement)
-getTFoot self = liftIO (nullableToMaybe <$> (js_getTFoot (self)))
+getTFoot self = liftIO (nullableToMaybe <$> (js_getTFoot self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.tFoot Mozilla HTMLTableElement.tFoot documentation> 
 getTFootUnsafe ::
@@ -308,59 +224,28 @@
                  HTMLTableElement -> m HTMLTableSectionElement
 getTFootUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getTFoot (self))) >>=
+      ((nullableToMaybe <$> (js_getTFoot self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.tFoot Mozilla HTMLTableElement.tFoot documentation> 
 getTFootUnchecked ::
                   (MonadIO m) => HTMLTableElement -> m HTMLTableSectionElement
 getTFootUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTFoot (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getTFoot self))
  
 foreign import javascript unsafe "$1[\"rows\"]" js_getRows ::
-        HTMLTableElement -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.rows Mozilla HTMLTableElement.rows documentation> 
-getRows ::
-        (MonadIO m) => HTMLTableElement -> m (Maybe HTMLCollection)
-getRows self = liftIO (nullableToMaybe <$> (js_getRows (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.rows Mozilla HTMLTableElement.rows documentation> 
-getRowsUnsafe ::
-              (MonadIO m, HasCallStack) => HTMLTableElement -> m HTMLCollection
-getRowsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRows (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLTableElement -> IO HTMLCollection
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.rows Mozilla HTMLTableElement.rows documentation> 
-getRowsUnchecked ::
-                 (MonadIO m) => HTMLTableElement -> m HTMLCollection
-getRowsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRows (self)))
+getRows :: (MonadIO m) => HTMLTableElement -> m HTMLCollection
+getRows self = liftIO (js_getRows self)
  
 foreign import javascript unsafe "$1[\"tBodies\"]" js_getTBodies ::
-        HTMLTableElement -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.tBodies Mozilla HTMLTableElement.tBodies documentation> 
-getTBodies ::
-           (MonadIO m) => HTMLTableElement -> m (Maybe HTMLCollection)
-getTBodies self
-  = liftIO (nullableToMaybe <$> (js_getTBodies (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.tBodies Mozilla HTMLTableElement.tBodies documentation> 
-getTBodiesUnsafe ::
-                 (MonadIO m, HasCallStack) => HTMLTableElement -> m HTMLCollection
-getTBodiesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTBodies (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLTableElement -> IO HTMLCollection
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.tBodies Mozilla HTMLTableElement.tBodies documentation> 
-getTBodiesUnchecked ::
-                    (MonadIO m) => HTMLTableElement -> m HTMLCollection
-getTBodiesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTBodies (self)))
+getTBodies :: (MonadIO m) => HTMLTableElement -> m HTMLCollection
+getTBodies self = liftIO (js_getTBodies self)
  
 foreign import javascript unsafe "$1[\"align\"] = $2;" js_setAlign
         :: HTMLTableElement -> JSString -> IO ()
@@ -368,7 +253,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.align Mozilla HTMLTableElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLTableElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLTableElement -> IO JSString
@@ -376,24 +261,42 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.align Mozilla HTMLTableElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLTableElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"bgColor\"] = $2;"
-        js_setBgColor :: HTMLTableElement -> JSString -> IO ()
+        js_setBgColor :: HTMLTableElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.bgColor Mozilla HTMLTableElement.bgColor documentation> 
 setBgColor ::
-           (MonadIO m, ToJSString val) => HTMLTableElement -> val -> m ()
+           (MonadIO m, ToJSString val) =>
+             HTMLTableElement -> Maybe val -> m ()
 setBgColor self val
-  = liftIO (js_setBgColor (self) (toJSString val))
+  = liftIO (js_setBgColor self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"bgColor\"]" js_getBgColor ::
-        HTMLTableElement -> IO JSString
+        HTMLTableElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.bgColor Mozilla HTMLTableElement.bgColor documentation> 
 getBgColor ::
-           (MonadIO m, FromJSString result) => HTMLTableElement -> m result
-getBgColor self = liftIO (fromJSString <$> (js_getBgColor (self)))
+           (MonadIO m, FromJSString result) =>
+             HTMLTableElement -> m (Maybe result)
+getBgColor self
+  = liftIO (fromMaybeJSString <$> (js_getBgColor self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.bgColor Mozilla HTMLTableElement.bgColor documentation> 
+getBgColorUnsafe ::
+                 (MonadIO m, HasCallStack, FromJSString result) =>
+                   HTMLTableElement -> m result
+getBgColorUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getBgColor self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.bgColor Mozilla HTMLTableElement.bgColor documentation> 
+getBgColorUnchecked ::
+                    (MonadIO m, FromJSString result) => HTMLTableElement -> m result
+getBgColorUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getBgColor self))
  
 foreign import javascript unsafe "$1[\"border\"] = $2;"
         js_setBorder :: HTMLTableElement -> JSString -> IO ()
@@ -401,7 +304,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.border Mozilla HTMLTableElement.border documentation> 
 setBorder ::
           (MonadIO m, ToJSString val) => HTMLTableElement -> val -> m ()
-setBorder self val = liftIO (js_setBorder (self) (toJSString val))
+setBorder self val = liftIO (js_setBorder self (toJSString val))
  
 foreign import javascript unsafe "$1[\"border\"]" js_getBorder ::
         HTMLTableElement -> IO JSString
@@ -409,43 +312,79 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.border Mozilla HTMLTableElement.border documentation> 
 getBorder ::
           (MonadIO m, FromJSString result) => HTMLTableElement -> m result
-getBorder self = liftIO (fromJSString <$> (js_getBorder (self)))
+getBorder self = liftIO (fromJSString <$> (js_getBorder self))
  
 foreign import javascript unsafe "$1[\"cellPadding\"] = $2;"
-        js_setCellPadding :: HTMLTableElement -> JSString -> IO ()
+        js_setCellPadding :: HTMLTableElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.cellPadding Mozilla HTMLTableElement.cellPadding documentation> 
 setCellPadding ::
-               (MonadIO m, ToJSString val) => HTMLTableElement -> val -> m ()
+               (MonadIO m, ToJSString val) =>
+                 HTMLTableElement -> Maybe val -> m ()
 setCellPadding self val
-  = liftIO (js_setCellPadding (self) (toJSString val))
+  = liftIO (js_setCellPadding self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"cellPadding\"]"
-        js_getCellPadding :: HTMLTableElement -> IO JSString
+        js_getCellPadding :: HTMLTableElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.cellPadding Mozilla HTMLTableElement.cellPadding documentation> 
 getCellPadding ::
-               (MonadIO m, FromJSString result) => HTMLTableElement -> m result
+               (MonadIO m, FromJSString result) =>
+                 HTMLTableElement -> m (Maybe result)
 getCellPadding self
-  = liftIO (fromJSString <$> (js_getCellPadding (self)))
+  = liftIO (fromMaybeJSString <$> (js_getCellPadding self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.cellPadding Mozilla HTMLTableElement.cellPadding documentation> 
+getCellPaddingUnsafe ::
+                     (MonadIO m, HasCallStack, FromJSString result) =>
+                       HTMLTableElement -> m result
+getCellPaddingUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getCellPadding self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.cellPadding Mozilla HTMLTableElement.cellPadding documentation> 
+getCellPaddingUnchecked ::
+                        (MonadIO m, FromJSString result) => HTMLTableElement -> m result
+getCellPaddingUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_getCellPadding self))
  
 foreign import javascript unsafe "$1[\"cellSpacing\"] = $2;"
-        js_setCellSpacing :: HTMLTableElement -> JSString -> IO ()
+        js_setCellSpacing :: HTMLTableElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.cellSpacing Mozilla HTMLTableElement.cellSpacing documentation> 
 setCellSpacing ::
-               (MonadIO m, ToJSString val) => HTMLTableElement -> val -> m ()
+               (MonadIO m, ToJSString val) =>
+                 HTMLTableElement -> Maybe val -> m ()
 setCellSpacing self val
-  = liftIO (js_setCellSpacing (self) (toJSString val))
+  = liftIO (js_setCellSpacing self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"cellSpacing\"]"
-        js_getCellSpacing :: HTMLTableElement -> IO JSString
+        js_getCellSpacing :: HTMLTableElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.cellSpacing Mozilla HTMLTableElement.cellSpacing documentation> 
 getCellSpacing ::
-               (MonadIO m, FromJSString result) => HTMLTableElement -> m result
+               (MonadIO m, FromJSString result) =>
+                 HTMLTableElement -> m (Maybe result)
 getCellSpacing self
-  = liftIO (fromJSString <$> (js_getCellSpacing (self)))
+  = liftIO (fromMaybeJSString <$> (js_getCellSpacing self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.cellSpacing Mozilla HTMLTableElement.cellSpacing documentation> 
+getCellSpacingUnsafe ::
+                     (MonadIO m, HasCallStack, FromJSString result) =>
+                       HTMLTableElement -> m result
+getCellSpacingUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getCellSpacing self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.cellSpacing Mozilla HTMLTableElement.cellSpacing documentation> 
+getCellSpacingUnchecked ::
+                        (MonadIO m, FromJSString result) => HTMLTableElement -> m result
+getCellSpacingUnchecked self
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_getCellSpacing self))
  
 foreign import javascript unsafe "$1[\"frame\"] = $2;" js_setFrame
         :: HTMLTableElement -> JSString -> IO ()
@@ -453,7 +392,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.frame Mozilla HTMLTableElement.frame documentation> 
 setFrame ::
          (MonadIO m, ToJSString val) => HTMLTableElement -> val -> m ()
-setFrame self val = liftIO (js_setFrame (self) (toJSString val))
+setFrame self val = liftIO (js_setFrame self (toJSString val))
  
 foreign import javascript unsafe "$1[\"frame\"]" js_getFrame ::
         HTMLTableElement -> IO JSString
@@ -461,7 +400,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.frame Mozilla HTMLTableElement.frame documentation> 
 getFrame ::
          (MonadIO m, FromJSString result) => HTMLTableElement -> m result
-getFrame self = liftIO (fromJSString <$> (js_getFrame (self)))
+getFrame self = liftIO (fromJSString <$> (js_getFrame self))
  
 foreign import javascript unsafe "$1[\"rules\"] = $2;" js_setRules
         :: HTMLTableElement -> JSString -> IO ()
@@ -469,7 +408,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.rules Mozilla HTMLTableElement.rules documentation> 
 setRules ::
          (MonadIO m, ToJSString val) => HTMLTableElement -> val -> m ()
-setRules self val = liftIO (js_setRules (self) (toJSString val))
+setRules self val = liftIO (js_setRules self (toJSString val))
  
 foreign import javascript unsafe "$1[\"rules\"]" js_getRules ::
         HTMLTableElement -> IO JSString
@@ -477,7 +416,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.rules Mozilla HTMLTableElement.rules documentation> 
 getRules ::
          (MonadIO m, FromJSString result) => HTMLTableElement -> m result
-getRules self = liftIO (fromJSString <$> (js_getRules (self)))
+getRules self = liftIO (fromJSString <$> (js_getRules self))
  
 foreign import javascript unsafe "$1[\"summary\"] = $2;"
         js_setSummary :: HTMLTableElement -> JSString -> IO ()
@@ -485,8 +424,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.summary Mozilla HTMLTableElement.summary documentation> 
 setSummary ::
            (MonadIO m, ToJSString val) => HTMLTableElement -> val -> m ()
-setSummary self val
-  = liftIO (js_setSummary (self) (toJSString val))
+setSummary self val = liftIO (js_setSummary self (toJSString val))
  
 foreign import javascript unsafe "$1[\"summary\"]" js_getSummary ::
         HTMLTableElement -> IO JSString
@@ -494,7 +432,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.summary Mozilla HTMLTableElement.summary documentation> 
 getSummary ::
            (MonadIO m, FromJSString result) => HTMLTableElement -> m result
-getSummary self = liftIO (fromJSString <$> (js_getSummary (self)))
+getSummary self = liftIO (fromJSString <$> (js_getSummary self))
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: HTMLTableElement -> JSString -> IO ()
@@ -502,7 +440,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.width Mozilla HTMLTableElement.width documentation> 
 setWidth ::
          (MonadIO m, ToJSString val) => HTMLTableElement -> val -> m ()
-setWidth self val = liftIO (js_setWidth (self) (toJSString val))
+setWidth self val = liftIO (js_setWidth self (toJSString val))
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLTableElement -> IO JSString
@@ -510,4 +448,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement.width Mozilla HTMLTableElement.width documentation> 
 getWidth ::
          (MonadIO m, FromJSString result) => HTMLTableElement -> m result
-getWidth self = liftIO (fromJSString <$> (js_getWidth (self)))
+getWidth self = liftIO (fromJSString <$> (js_getWidth self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableRowElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableRowElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableRowElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableRowElement.hs
@@ -4,21 +4,20 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLTableRowElement
-       (js_insertCell, insertCell, insertCell_, insertCellUnsafe,
-        insertCellUnchecked, js_deleteCell, deleteCell, js_getRowIndex,
-        getRowIndex, js_getSectionRowIndex, getSectionRowIndex,
-        js_getCells, getCells, getCellsUnsafe, getCellsUnchecked,
-        js_setAlign, setAlign, js_getAlign, getAlign, js_setBgColor,
-        setBgColor, js_getBgColor, getBgColor, js_setCh, setCh, js_getCh,
-        getCh, js_setChOff, setChOff, js_getChOff, getChOff, js_setVAlign,
-        setVAlign, js_getVAlign, getVAlign, HTMLTableRowElement(..),
-        gTypeHTMLTableRowElement)
+       (js_insertCell, insertCell, insertCell_, js_deleteCell, deleteCell,
+        js_getRowIndex, getRowIndex, js_getSectionRowIndex,
+        getSectionRowIndex, js_getCells, getCells, js_setAlign, setAlign,
+        js_getAlign, getAlign, js_setBgColor, setBgColor, js_getBgColor,
+        getBgColor, getBgColorUnsafe, getBgColorUnchecked, js_setCh, setCh,
+        js_getCh, getCh, js_setChOff, setChOff, js_getChOff, getChOff,
+        js_setVAlign, setVAlign, js_getVAlign, getVAlign,
+        HTMLTableRowElement(..), gTypeHTMLTableRowElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,6 +26,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,77 +34,47 @@
  
 foreign import javascript unsafe "$1[\"insertCell\"]($2)"
         js_insertCell ::
-        HTMLTableRowElement -> Int -> IO (Nullable HTMLElement)
+        HTMLTableRowElement -> Optional Int -> IO HTMLElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.insertCell Mozilla HTMLTableRowElement.insertCell documentation> 
 insertCell ::
-           (MonadIO m) => HTMLTableRowElement -> Int -> m (Maybe HTMLElement)
+           (MonadIO m) => HTMLTableRowElement -> Maybe Int -> m HTMLElement
 insertCell self index
-  = liftIO (nullableToMaybe <$> (js_insertCell (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.insertCell Mozilla HTMLTableRowElement.insertCell documentation> 
-insertCell_ :: (MonadIO m) => HTMLTableRowElement -> Int -> m ()
-insertCell_ self index = liftIO (void (js_insertCell (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.insertCell Mozilla HTMLTableRowElement.insertCell documentation> 
-insertCellUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   HTMLTableRowElement -> Int -> m HTMLElement
-insertCellUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_insertCell (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+  = liftIO (js_insertCell self (maybeToOptional index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.insertCell Mozilla HTMLTableRowElement.insertCell documentation> 
-insertCellUnchecked ::
-                    (MonadIO m) => HTMLTableRowElement -> Int -> m HTMLElement
-insertCellUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_insertCell (self) index))
+insertCell_ ::
+            (MonadIO m) => HTMLTableRowElement -> Maybe Int -> m ()
+insertCell_ self index
+  = liftIO (void (js_insertCell self (maybeToOptional index)))
  
 foreign import javascript unsafe "$1[\"deleteCell\"]($2)"
         js_deleteCell :: HTMLTableRowElement -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.deleteCell Mozilla HTMLTableRowElement.deleteCell documentation> 
 deleteCell :: (MonadIO m) => HTMLTableRowElement -> Int -> m ()
-deleteCell self index = liftIO (js_deleteCell (self) index)
+deleteCell self index = liftIO (js_deleteCell self index)
  
 foreign import javascript unsafe "$1[\"rowIndex\"]" js_getRowIndex
         :: HTMLTableRowElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.rowIndex Mozilla HTMLTableRowElement.rowIndex documentation> 
 getRowIndex :: (MonadIO m) => HTMLTableRowElement -> m Int
-getRowIndex self = liftIO (js_getRowIndex (self))
+getRowIndex self = liftIO (js_getRowIndex self)
  
 foreign import javascript unsafe "$1[\"sectionRowIndex\"]"
         js_getSectionRowIndex :: HTMLTableRowElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.sectionRowIndex Mozilla HTMLTableRowElement.sectionRowIndex documentation> 
 getSectionRowIndex :: (MonadIO m) => HTMLTableRowElement -> m Int
-getSectionRowIndex self = liftIO (js_getSectionRowIndex (self))
+getSectionRowIndex self = liftIO (js_getSectionRowIndex self)
  
 foreign import javascript unsafe "$1[\"cells\"]" js_getCells ::
-        HTMLTableRowElement -> IO (Nullable HTMLCollection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.cells Mozilla HTMLTableRowElement.cells documentation> 
-getCells ::
-         (MonadIO m) => HTMLTableRowElement -> m (Maybe HTMLCollection)
-getCells self = liftIO (nullableToMaybe <$> (js_getCells (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.cells Mozilla HTMLTableRowElement.cells documentation> 
-getCellsUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 HTMLTableRowElement -> m HTMLCollection
-getCellsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCells (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLTableRowElement -> IO HTMLCollection
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.cells Mozilla HTMLTableRowElement.cells documentation> 
-getCellsUnchecked ::
-                  (MonadIO m) => HTMLTableRowElement -> m HTMLCollection
-getCellsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCells (self)))
+getCells :: (MonadIO m) => HTMLTableRowElement -> m HTMLCollection
+getCells self = liftIO (js_getCells self)
  
 foreign import javascript unsafe "$1[\"align\"] = $2;" js_setAlign
         :: HTMLTableRowElement -> JSString -> IO ()
@@ -112,7 +82,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.align Mozilla HTMLTableRowElement.align documentation> 
 setAlign ::
          (MonadIO m, ToJSString val) => HTMLTableRowElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLTableRowElement -> IO JSString
@@ -120,24 +90,42 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.align Mozilla HTMLTableRowElement.align documentation> 
 getAlign ::
          (MonadIO m, FromJSString result) => HTMLTableRowElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"bgColor\"] = $2;"
-        js_setBgColor :: HTMLTableRowElement -> JSString -> IO ()
+        js_setBgColor :: HTMLTableRowElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.bgColor Mozilla HTMLTableRowElement.bgColor documentation> 
 setBgColor ::
-           (MonadIO m, ToJSString val) => HTMLTableRowElement -> val -> m ()
+           (MonadIO m, ToJSString val) =>
+             HTMLTableRowElement -> Maybe val -> m ()
 setBgColor self val
-  = liftIO (js_setBgColor (self) (toJSString val))
+  = liftIO (js_setBgColor self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"bgColor\"]" js_getBgColor ::
-        HTMLTableRowElement -> IO JSString
+        HTMLTableRowElement -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.bgColor Mozilla HTMLTableRowElement.bgColor documentation> 
 getBgColor ::
-           (MonadIO m, FromJSString result) => HTMLTableRowElement -> m result
-getBgColor self = liftIO (fromJSString <$> (js_getBgColor (self)))
+           (MonadIO m, FromJSString result) =>
+             HTMLTableRowElement -> m (Maybe result)
+getBgColor self
+  = liftIO (fromMaybeJSString <$> (js_getBgColor self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.bgColor Mozilla HTMLTableRowElement.bgColor documentation> 
+getBgColorUnsafe ::
+                 (MonadIO m, HasCallStack, FromJSString result) =>
+                   HTMLTableRowElement -> m result
+getBgColorUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getBgColor self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.bgColor Mozilla HTMLTableRowElement.bgColor documentation> 
+getBgColorUnchecked ::
+                    (MonadIO m, FromJSString result) => HTMLTableRowElement -> m result
+getBgColorUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getBgColor self))
  
 foreign import javascript unsafe "$1[\"ch\"] = $2;" js_setCh ::
         HTMLTableRowElement -> JSString -> IO ()
@@ -145,7 +133,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.ch Mozilla HTMLTableRowElement.ch documentation> 
 setCh ::
       (MonadIO m, ToJSString val) => HTMLTableRowElement -> val -> m ()
-setCh self val = liftIO (js_setCh (self) (toJSString val))
+setCh self val = liftIO (js_setCh self (toJSString val))
  
 foreign import javascript unsafe "$1[\"ch\"]" js_getCh ::
         HTMLTableRowElement -> IO JSString
@@ -153,7 +141,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.ch Mozilla HTMLTableRowElement.ch documentation> 
 getCh ::
       (MonadIO m, FromJSString result) => HTMLTableRowElement -> m result
-getCh self = liftIO (fromJSString <$> (js_getCh (self)))
+getCh self = liftIO (fromJSString <$> (js_getCh self))
  
 foreign import javascript unsafe "$1[\"chOff\"] = $2;" js_setChOff
         :: HTMLTableRowElement -> JSString -> IO ()
@@ -161,7 +149,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.chOff Mozilla HTMLTableRowElement.chOff documentation> 
 setChOff ::
          (MonadIO m, ToJSString val) => HTMLTableRowElement -> val -> m ()
-setChOff self val = liftIO (js_setChOff (self) (toJSString val))
+setChOff self val = liftIO (js_setChOff self (toJSString val))
  
 foreign import javascript unsafe "$1[\"chOff\"]" js_getChOff ::
         HTMLTableRowElement -> IO JSString
@@ -169,7 +157,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.chOff Mozilla HTMLTableRowElement.chOff documentation> 
 getChOff ::
          (MonadIO m, FromJSString result) => HTMLTableRowElement -> m result
-getChOff self = liftIO (fromJSString <$> (js_getChOff (self)))
+getChOff self = liftIO (fromJSString <$> (js_getChOff self))
  
 foreign import javascript unsafe "$1[\"vAlign\"] = $2;"
         js_setVAlign :: HTMLTableRowElement -> JSString -> IO ()
@@ -177,7 +165,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.vAlign Mozilla HTMLTableRowElement.vAlign documentation> 
 setVAlign ::
           (MonadIO m, ToJSString val) => HTMLTableRowElement -> val -> m ()
-setVAlign self val = liftIO (js_setVAlign (self) (toJSString val))
+setVAlign self val = liftIO (js_setVAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"vAlign\"]" js_getVAlign ::
         HTMLTableRowElement -> IO JSString
@@ -185,4 +173,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement.vAlign Mozilla HTMLTableRowElement.vAlign documentation> 
 getVAlign ::
           (MonadIO m, FromJSString result) => HTMLTableRowElement -> m result
-getVAlign self = liftIO (fromJSString <$> (js_getVAlign (self)))
+getVAlign self = liftIO (fromJSString <$> (js_getVAlign self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableSectionElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableSectionElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLTableSectionElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLTableSectionElement.hs
@@ -4,19 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLTableSectionElement
-       (js_insertRow, insertRow, insertRow_, insertRowUnsafe,
-        insertRowUnchecked, js_deleteRow, deleteRow, js_setAlign, setAlign,
-        js_getAlign, getAlign, js_setCh, setCh, js_getCh, getCh,
-        js_setChOff, setChOff, js_getChOff, getChOff, js_setVAlign,
-        setVAlign, js_getVAlign, getVAlign, js_getRows, getRows,
-        getRowsUnsafe, getRowsUnchecked, HTMLTableSectionElement(..),
-        gTypeHTMLTableSectionElement)
+       (js_insertRow, insertRow, insertRow_, js_deleteRow, deleteRow,
+        js_setAlign, setAlign, js_getAlign, getAlign, js_setCh, setCh,
+        js_getCh, getCh, js_setChOff, setChOff, js_getChOff, getChOff,
+        js_setVAlign, setVAlign, js_getVAlign, getVAlign, js_getRows,
+        getRows, HTMLTableSectionElement(..), gTypeHTMLTableSectionElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,41 +31,27 @@
  
 foreign import javascript unsafe "$1[\"insertRow\"]($2)"
         js_insertRow ::
-        HTMLTableSectionElement -> Int -> IO (Nullable HTMLElement)
+        HTMLTableSectionElement -> Optional Int -> IO HTMLElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement.insertRow Mozilla HTMLTableSectionElement.insertRow documentation> 
 insertRow ::
           (MonadIO m) =>
-            HTMLTableSectionElement -> Int -> m (Maybe HTMLElement)
+            HTMLTableSectionElement -> Maybe Int -> m HTMLElement
 insertRow self index
-  = liftIO (nullableToMaybe <$> (js_insertRow (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement.insertRow Mozilla HTMLTableSectionElement.insertRow documentation> 
-insertRow_ :: (MonadIO m) => HTMLTableSectionElement -> Int -> m ()
-insertRow_ self index = liftIO (void (js_insertRow (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement.insertRow Mozilla HTMLTableSectionElement.insertRow documentation> 
-insertRowUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  HTMLTableSectionElement -> Int -> m HTMLElement
-insertRowUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_insertRow (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+  = liftIO (js_insertRow self (maybeToOptional index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement.insertRow Mozilla HTMLTableSectionElement.insertRow documentation> 
-insertRowUnchecked ::
-                   (MonadIO m) => HTMLTableSectionElement -> Int -> m HTMLElement
-insertRowUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_insertRow (self) index))
+insertRow_ ::
+           (MonadIO m) => HTMLTableSectionElement -> Maybe Int -> m ()
+insertRow_ self index
+  = liftIO (void (js_insertRow self (maybeToOptional index)))
  
 foreign import javascript unsafe "$1[\"deleteRow\"]($2)"
         js_deleteRow :: HTMLTableSectionElement -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement.deleteRow Mozilla HTMLTableSectionElement.deleteRow documentation> 
 deleteRow :: (MonadIO m) => HTMLTableSectionElement -> Int -> m ()
-deleteRow self index = liftIO (js_deleteRow (self) index)
+deleteRow self index = liftIO (js_deleteRow self index)
  
 foreign import javascript unsafe "$1[\"align\"] = $2;" js_setAlign
         :: HTMLTableSectionElement -> JSString -> IO ()
@@ -75,7 +60,7 @@
 setAlign ::
          (MonadIO m, ToJSString val) =>
            HTMLTableSectionElement -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         HTMLTableSectionElement -> IO JSString
@@ -84,7 +69,7 @@
 getAlign ::
          (MonadIO m, FromJSString result) =>
            HTMLTableSectionElement -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"ch\"] = $2;" js_setCh ::
         HTMLTableSectionElement -> JSString -> IO ()
@@ -93,7 +78,7 @@
 setCh ::
       (MonadIO m, ToJSString val) =>
         HTMLTableSectionElement -> val -> m ()
-setCh self val = liftIO (js_setCh (self) (toJSString val))
+setCh self val = liftIO (js_setCh self (toJSString val))
  
 foreign import javascript unsafe "$1[\"ch\"]" js_getCh ::
         HTMLTableSectionElement -> IO JSString
@@ -102,7 +87,7 @@
 getCh ::
       (MonadIO m, FromJSString result) =>
         HTMLTableSectionElement -> m result
-getCh self = liftIO (fromJSString <$> (js_getCh (self)))
+getCh self = liftIO (fromJSString <$> (js_getCh self))
  
 foreign import javascript unsafe "$1[\"chOff\"] = $2;" js_setChOff
         :: HTMLTableSectionElement -> JSString -> IO ()
@@ -111,7 +96,7 @@
 setChOff ::
          (MonadIO m, ToJSString val) =>
            HTMLTableSectionElement -> val -> m ()
-setChOff self val = liftIO (js_setChOff (self) (toJSString val))
+setChOff self val = liftIO (js_setChOff self (toJSString val))
  
 foreign import javascript unsafe "$1[\"chOff\"]" js_getChOff ::
         HTMLTableSectionElement -> IO JSString
@@ -120,7 +105,7 @@
 getChOff ::
          (MonadIO m, FromJSString result) =>
            HTMLTableSectionElement -> m result
-getChOff self = liftIO (fromJSString <$> (js_getChOff (self)))
+getChOff self = liftIO (fromJSString <$> (js_getChOff self))
  
 foreign import javascript unsafe "$1[\"vAlign\"] = $2;"
         js_setVAlign :: HTMLTableSectionElement -> JSString -> IO ()
@@ -129,7 +114,7 @@
 setVAlign ::
           (MonadIO m, ToJSString val) =>
             HTMLTableSectionElement -> val -> m ()
-setVAlign self val = liftIO (js_setVAlign (self) (toJSString val))
+setVAlign self val = liftIO (js_setVAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"vAlign\"]" js_getVAlign ::
         HTMLTableSectionElement -> IO JSString
@@ -138,27 +123,12 @@
 getVAlign ::
           (MonadIO m, FromJSString result) =>
             HTMLTableSectionElement -> m result
-getVAlign self = liftIO (fromJSString <$> (js_getVAlign (self)))
+getVAlign self = liftIO (fromJSString <$> (js_getVAlign self))
  
 foreign import javascript unsafe "$1[\"rows\"]" js_getRows ::
-        HTMLTableSectionElement -> IO (Nullable HTMLCollection)
+        HTMLTableSectionElement -> IO HTMLCollection
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement.rows Mozilla HTMLTableSectionElement.rows documentation> 
 getRows ::
-        (MonadIO m) => HTMLTableSectionElement -> m (Maybe HTMLCollection)
-getRows self = liftIO (nullableToMaybe <$> (js_getRows (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement.rows Mozilla HTMLTableSectionElement.rows documentation> 
-getRowsUnsafe ::
-              (MonadIO m, HasCallStack) =>
-                HTMLTableSectionElement -> m HTMLCollection
-getRowsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRows (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement.rows Mozilla HTMLTableSectionElement.rows documentation> 
-getRowsUnchecked ::
-                 (MonadIO m) => HTMLTableSectionElement -> m HTMLCollection
-getRowsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRows (self)))
+        (MonadIO m) => HTMLTableSectionElement -> m HTMLCollection
+getRows self = liftIO (js_getRows self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLTemplateElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLTemplateElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLTemplateElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLTemplateElement.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLTemplateElement
-       (js_getContent, getContent, getContentUnsafe, getContentUnchecked,
-        HTMLTemplateElement(..), gTypeHTMLTemplateElement)
+       (js_getContent, getContent, HTMLTemplateElement(..),
+        gTypeHTMLTemplateElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,31 +20,16 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"content\"]" js_getContent ::
-        HTMLTemplateElement -> IO (Nullable DocumentFragment)
+        HTMLTemplateElement -> IO DocumentFragment
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement.content Mozilla HTMLTemplateElement.content documentation> 
 getContent ::
-           (MonadIO m) => HTMLTemplateElement -> m (Maybe DocumentFragment)
-getContent self
-  = liftIO (nullableToMaybe <$> (js_getContent (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement.content Mozilla HTMLTemplateElement.content documentation> 
-getContentUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   HTMLTemplateElement -> m DocumentFragment
-getContentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getContent (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement.content Mozilla HTMLTemplateElement.content documentation> 
-getContentUnchecked ::
-                    (MonadIO m) => HTMLTemplateElement -> m DocumentFragment
-getContentUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getContent (self)))
+           (MonadIO m) => HTMLTemplateElement -> m DocumentFragment
+getContent self = liftIO (js_getContent self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLTextAreaElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLTextAreaElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLTextAreaElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLTextAreaElement.hs
@@ -5,42 +5,39 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLTextAreaElement
        (js_checkValidity, checkValidity, checkValidity_,
+        js_reportValidity, reportValidity, reportValidity_,
         js_setCustomValidity, setCustomValidity, js_select, select,
         js_setRangeText, setRangeText, js_setRangeText4, setRangeText4,
         js_setSelectionRange, setSelectionRange, js_setAutofocus,
-        setAutofocus, js_getAutofocus, getAutofocus, js_setCols, setCols,
-        js_getCols, getCols, js_setDirName, setDirName, js_getDirName,
-        getDirName, js_setDisabled, setDisabled, js_getDisabled,
-        getDisabled, js_getForm, getForm, getFormUnsafe, getFormUnchecked,
-        js_setMaxLength, setMaxLength, js_getMaxLength, getMaxLength,
-        js_setName, setName, js_getName, getName, js_setPlaceholder,
-        setPlaceholder, js_getPlaceholder, getPlaceholder, js_setReadOnly,
-        setReadOnly, js_getReadOnly, getReadOnly, js_setRequired,
-        setRequired, js_getRequired, getRequired, js_setRows, setRows,
-        js_getRows, getRows, js_setWrap, setWrap, js_getWrap, getWrap,
-        js_getType, getType, js_setDefaultValue, setDefaultValue,
-        js_getDefaultValue, getDefaultValue, getDefaultValueUnsafe,
-        getDefaultValueUnchecked, js_setValue, setValue, js_getValue,
-        getValue, getValueUnsafe, getValueUnchecked, js_getTextLength,
-        getTextLength, js_getWillValidate, getWillValidate, js_getValidity,
-        getValidity, getValidityUnsafe, getValidityUnchecked,
+        setAutofocus, js_getAutofocus, getAutofocus, js_setDirName,
+        setDirName, js_getDirName, getDirName, js_setDisabled, setDisabled,
+        js_getDisabled, getDisabled, js_getForm, getForm, js_setMinLength,
+        setMinLength, js_getMinLength, getMinLength, js_setMaxLength,
+        setMaxLength, js_getMaxLength, getMaxLength, js_setName, setName,
+        js_getName, getName, js_setPlaceholder, setPlaceholder,
+        js_getPlaceholder, getPlaceholder, js_setReadOnly, setReadOnly,
+        js_getReadOnly, getReadOnly, js_setRequired, setRequired,
+        js_getRequired, getRequired, js_setRows, setRows, js_getRows,
+        getRows, js_setCols, setCols, js_getCols, getCols, js_setWrap,
+        setWrap, js_getWrap, getWrap, js_getType, getType,
+        js_setDefaultValue, setDefaultValue, js_getDefaultValue,
+        getDefaultValue, js_setValue, setValue, js_getValue, getValue,
+        getValueUnsafe, getValueUnchecked, js_getTextLength, getTextLength,
+        js_getWillValidate, getWillValidate, js_getValidity, getValidity,
         js_getValidationMessage, getValidationMessage, js_getLabels,
-        getLabels, getLabelsUnsafe, getLabelsUnchecked,
-        js_setSelectionStart, setSelectionStart, js_getSelectionStart,
-        getSelectionStart, js_setSelectionEnd, setSelectionEnd,
-        js_getSelectionEnd, getSelectionEnd, js_setSelectionDirection,
-        setSelectionDirection, js_getSelectionDirection,
-        getSelectionDirection, js_setAutocorrect, setAutocorrect,
-        js_getAutocorrect, getAutocorrect, js_setAutocapitalize,
-        setAutocapitalize, js_getAutocapitalize, getAutocapitalize,
-        getAutocapitalizeUnsafe, getAutocapitalizeUnchecked,
-        HTMLTextAreaElement(..), gTypeHTMLTextAreaElement)
+        getLabels, js_setSelectionStart, setSelectionStart,
+        js_getSelectionStart, getSelectionStart, js_setSelectionEnd,
+        setSelectionEnd, js_getSelectionEnd, getSelectionEnd,
+        js_setSelectionDirection, setSelectionDirection,
+        js_getSelectionDirection, getSelectionDirection,
+        js_setAutocomplete, setAutocomplete, js_getAutocomplete,
+        getAutocomplete, HTMLTextAreaElement(..), gTypeHTMLTextAreaElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -49,6 +46,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -60,29 +58,40 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.checkValidity Mozilla HTMLTextAreaElement.checkValidity documentation> 
 checkValidity :: (MonadIO m) => HTMLTextAreaElement -> m Bool
-checkValidity self = liftIO (js_checkValidity (self))
+checkValidity self = liftIO (js_checkValidity self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.checkValidity Mozilla HTMLTextAreaElement.checkValidity documentation> 
 checkValidity_ :: (MonadIO m) => HTMLTextAreaElement -> m ()
-checkValidity_ self = liftIO (void (js_checkValidity (self)))
+checkValidity_ self = liftIO (void (js_checkValidity self))
  
+foreign import javascript unsafe
+        "($1[\"reportValidity\"]() ? 1 : 0)" js_reportValidity ::
+        HTMLTextAreaElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.reportValidity Mozilla HTMLTextAreaElement.reportValidity documentation> 
+reportValidity :: (MonadIO m) => HTMLTextAreaElement -> m Bool
+reportValidity self = liftIO (js_reportValidity self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.reportValidity Mozilla HTMLTextAreaElement.reportValidity documentation> 
+reportValidity_ :: (MonadIO m) => HTMLTextAreaElement -> m ()
+reportValidity_ self = liftIO (void (js_reportValidity self))
+ 
 foreign import javascript unsafe "$1[\"setCustomValidity\"]($2)"
-        js_setCustomValidity ::
-        HTMLTextAreaElement -> Nullable JSString -> IO ()
+        js_setCustomValidity :: HTMLTextAreaElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.setCustomValidity Mozilla HTMLTextAreaElement.setCustomValidity documentation> 
 setCustomValidity ::
                   (MonadIO m, ToJSString error) =>
-                    HTMLTextAreaElement -> Maybe error -> m ()
+                    HTMLTextAreaElement -> error -> m ()
 setCustomValidity self error
-  = liftIO (js_setCustomValidity (self) (toMaybeJSString error))
+  = liftIO (js_setCustomValidity self (toJSString error))
  
 foreign import javascript unsafe "$1[\"select\"]()" js_select ::
         HTMLTextAreaElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.select Mozilla HTMLTextAreaElement.select documentation> 
 select :: (MonadIO m) => HTMLTextAreaElement -> m ()
-select self = liftIO (js_select (self))
+select self = liftIO (js_select self)
  
 foreign import javascript unsafe "$1[\"setRangeText\"]($2)"
         js_setRangeText :: HTMLTextAreaElement -> JSString -> IO ()
@@ -92,62 +101,52 @@
              (MonadIO m, ToJSString replacement) =>
                HTMLTextAreaElement -> replacement -> m ()
 setRangeText self replacement
-  = liftIO (js_setRangeText (self) (toJSString replacement))
+  = liftIO (js_setRangeText self (toJSString replacement))
  
 foreign import javascript unsafe
         "$1[\"setRangeText\"]($2, $3, $4,\n$5)" js_setRangeText4 ::
         HTMLTextAreaElement ->
-          JSString -> Word -> Word -> JSString -> IO ()
+          JSString -> Word -> Word -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.setRangeText Mozilla HTMLTextAreaElement.setRangeText documentation> 
 setRangeText4 ::
               (MonadIO m, ToJSString replacement, ToJSString selectionMode) =>
                 HTMLTextAreaElement ->
-                  replacement -> Word -> Word -> selectionMode -> m ()
+                  replacement -> Word -> Word -> Maybe selectionMode -> m ()
 setRangeText4 self replacement start end selectionMode
   = liftIO
-      (js_setRangeText4 (self) (toJSString replacement) start end
-         (toJSString selectionMode))
+      (js_setRangeText4 self (toJSString replacement) start end
+         (toOptionalJSString selectionMode))
  
 foreign import javascript unsafe
         "$1[\"setSelectionRange\"]($2, $3,\n$4)" js_setSelectionRange ::
-        HTMLTextAreaElement -> Int -> Int -> JSString -> IO ()
+        HTMLTextAreaElement ->
+          Optional Int -> Optional Int -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.setSelectionRange Mozilla HTMLTextAreaElement.setSelectionRange documentation> 
 setSelectionRange ::
                   (MonadIO m, ToJSString direction) =>
-                    HTMLTextAreaElement -> Int -> Int -> direction -> m ()
+                    HTMLTextAreaElement ->
+                      Maybe Int -> Maybe Int -> Maybe direction -> m ()
 setSelectionRange self start end direction
   = liftIO
-      (js_setSelectionRange (self) start end (toJSString direction))
+      (js_setSelectionRange self (maybeToOptional start)
+         (maybeToOptional end)
+         (toOptionalJSString direction))
  
 foreign import javascript unsafe "$1[\"autofocus\"] = $2;"
         js_setAutofocus :: HTMLTextAreaElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.autofocus Mozilla HTMLTextAreaElement.autofocus documentation> 
 setAutofocus :: (MonadIO m) => HTMLTextAreaElement -> Bool -> m ()
-setAutofocus self val = liftIO (js_setAutofocus (self) val)
+setAutofocus self val = liftIO (js_setAutofocus self val)
  
 foreign import javascript unsafe "($1[\"autofocus\"] ? 1 : 0)"
         js_getAutofocus :: HTMLTextAreaElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.autofocus Mozilla HTMLTextAreaElement.autofocus documentation> 
 getAutofocus :: (MonadIO m) => HTMLTextAreaElement -> m Bool
-getAutofocus self = liftIO (js_getAutofocus (self))
- 
-foreign import javascript unsafe "$1[\"cols\"] = $2;" js_setCols ::
-        HTMLTextAreaElement -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.cols Mozilla HTMLTextAreaElement.cols documentation> 
-setCols :: (MonadIO m) => HTMLTextAreaElement -> Int -> m ()
-setCols self val = liftIO (js_setCols (self) val)
- 
-foreign import javascript unsafe "$1[\"cols\"]" js_getCols ::
-        HTMLTextAreaElement -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.cols Mozilla HTMLTextAreaElement.cols documentation> 
-getCols :: (MonadIO m) => HTMLTextAreaElement -> m Int
-getCols self = liftIO (js_getCols (self))
+getAutofocus self = liftIO (js_getAutofocus self)
  
 foreign import javascript unsafe "$1[\"dirName\"] = $2;"
         js_setDirName :: HTMLTextAreaElement -> JSString -> IO ()
@@ -155,8 +154,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.dirName Mozilla HTMLTextAreaElement.dirName documentation> 
 setDirName ::
            (MonadIO m, ToJSString val) => HTMLTextAreaElement -> val -> m ()
-setDirName self val
-  = liftIO (js_setDirName (self) (toJSString val))
+setDirName self val = liftIO (js_setDirName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"dirName\"]" js_getDirName ::
         HTMLTextAreaElement -> IO JSString
@@ -164,58 +162,56 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.dirName Mozilla HTMLTextAreaElement.dirName documentation> 
 getDirName ::
            (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
-getDirName self = liftIO (fromJSString <$> (js_getDirName (self)))
+getDirName self = liftIO (fromJSString <$> (js_getDirName self))
  
 foreign import javascript unsafe "$1[\"disabled\"] = $2;"
         js_setDisabled :: HTMLTextAreaElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.disabled Mozilla HTMLTextAreaElement.disabled documentation> 
 setDisabled :: (MonadIO m) => HTMLTextAreaElement -> Bool -> m ()
-setDisabled self val = liftIO (js_setDisabled (self) val)
+setDisabled self val = liftIO (js_setDisabled self val)
  
 foreign import javascript unsafe "($1[\"disabled\"] ? 1 : 0)"
         js_getDisabled :: HTMLTextAreaElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.disabled Mozilla HTMLTextAreaElement.disabled documentation> 
 getDisabled :: (MonadIO m) => HTMLTextAreaElement -> m Bool
-getDisabled self = liftIO (js_getDisabled (self))
+getDisabled self = liftIO (js_getDisabled self)
  
 foreign import javascript unsafe "$1[\"form\"]" js_getForm ::
-        HTMLTextAreaElement -> IO (Nullable HTMLFormElement)
+        HTMLTextAreaElement -> IO HTMLFormElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.form Mozilla HTMLTextAreaElement.form documentation> 
-getForm ::
-        (MonadIO m) => HTMLTextAreaElement -> m (Maybe HTMLFormElement)
-getForm self = liftIO (nullableToMaybe <$> (js_getForm (self)))
+getForm :: (MonadIO m) => HTMLTextAreaElement -> m HTMLFormElement
+getForm self = liftIO (js_getForm self)
+ 
+foreign import javascript unsafe "$1[\"minLength\"] = $2;"
+        js_setMinLength :: HTMLTextAreaElement -> Int -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.form Mozilla HTMLTextAreaElement.form documentation> 
-getFormUnsafe ::
-              (MonadIO m, HasCallStack) =>
-                HTMLTextAreaElement -> m HTMLFormElement
-getFormUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getForm (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.minLength Mozilla HTMLTextAreaElement.minLength documentation> 
+setMinLength :: (MonadIO m) => HTMLTextAreaElement -> Int -> m ()
+setMinLength self val = liftIO (js_setMinLength self val)
+ 
+foreign import javascript unsafe "$1[\"minLength\"]"
+        js_getMinLength :: HTMLTextAreaElement -> IO Int
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.form Mozilla HTMLTextAreaElement.form documentation> 
-getFormUnchecked ::
-                 (MonadIO m) => HTMLTextAreaElement -> m HTMLFormElement
-getFormUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getForm (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.minLength Mozilla HTMLTextAreaElement.minLength documentation> 
+getMinLength :: (MonadIO m) => HTMLTextAreaElement -> m Int
+getMinLength self = liftIO (js_getMinLength self)
  
 foreign import javascript unsafe "$1[\"maxLength\"] = $2;"
         js_setMaxLength :: HTMLTextAreaElement -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.maxLength Mozilla HTMLTextAreaElement.maxLength documentation> 
 setMaxLength :: (MonadIO m) => HTMLTextAreaElement -> Int -> m ()
-setMaxLength self val = liftIO (js_setMaxLength (self) val)
+setMaxLength self val = liftIO (js_setMaxLength self val)
  
 foreign import javascript unsafe "$1[\"maxLength\"]"
         js_getMaxLength :: HTMLTextAreaElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.maxLength Mozilla HTMLTextAreaElement.maxLength documentation> 
 getMaxLength :: (MonadIO m) => HTMLTextAreaElement -> m Int
-getMaxLength self = liftIO (js_getMaxLength (self))
+getMaxLength self = liftIO (js_getMaxLength self)
  
 foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
         HTMLTextAreaElement -> JSString -> IO ()
@@ -223,7 +219,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.name Mozilla HTMLTextAreaElement.name documentation> 
 setName ::
         (MonadIO m, ToJSString val) => HTMLTextAreaElement -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         HTMLTextAreaElement -> IO JSString
@@ -231,7 +227,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.name Mozilla HTMLTextAreaElement.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"placeholder\"] = $2;"
         js_setPlaceholder :: HTMLTextAreaElement -> JSString -> IO ()
@@ -240,7 +236,7 @@
 setPlaceholder ::
                (MonadIO m, ToJSString val) => HTMLTextAreaElement -> val -> m ()
 setPlaceholder self val
-  = liftIO (js_setPlaceholder (self) (toJSString val))
+  = liftIO (js_setPlaceholder self (toJSString val))
  
 foreign import javascript unsafe "$1[\"placeholder\"]"
         js_getPlaceholder :: HTMLTextAreaElement -> IO JSString
@@ -249,57 +245,71 @@
 getPlaceholder ::
                (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
 getPlaceholder self
-  = liftIO (fromJSString <$> (js_getPlaceholder (self)))
+  = liftIO (fromJSString <$> (js_getPlaceholder self))
  
 foreign import javascript unsafe "$1[\"readOnly\"] = $2;"
         js_setReadOnly :: HTMLTextAreaElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.readOnly Mozilla HTMLTextAreaElement.readOnly documentation> 
 setReadOnly :: (MonadIO m) => HTMLTextAreaElement -> Bool -> m ()
-setReadOnly self val = liftIO (js_setReadOnly (self) val)
+setReadOnly self val = liftIO (js_setReadOnly self val)
  
 foreign import javascript unsafe "($1[\"readOnly\"] ? 1 : 0)"
         js_getReadOnly :: HTMLTextAreaElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.readOnly Mozilla HTMLTextAreaElement.readOnly documentation> 
 getReadOnly :: (MonadIO m) => HTMLTextAreaElement -> m Bool
-getReadOnly self = liftIO (js_getReadOnly (self))
+getReadOnly self = liftIO (js_getReadOnly self)
  
 foreign import javascript unsafe "$1[\"required\"] = $2;"
         js_setRequired :: HTMLTextAreaElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.required Mozilla HTMLTextAreaElement.required documentation> 
 setRequired :: (MonadIO m) => HTMLTextAreaElement -> Bool -> m ()
-setRequired self val = liftIO (js_setRequired (self) val)
+setRequired self val = liftIO (js_setRequired self val)
  
 foreign import javascript unsafe "($1[\"required\"] ? 1 : 0)"
         js_getRequired :: HTMLTextAreaElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.required Mozilla HTMLTextAreaElement.required documentation> 
 getRequired :: (MonadIO m) => HTMLTextAreaElement -> m Bool
-getRequired self = liftIO (js_getRequired (self))
+getRequired self = liftIO (js_getRequired self)
  
 foreign import javascript unsafe "$1[\"rows\"] = $2;" js_setRows ::
-        HTMLTextAreaElement -> Int -> IO ()
+        HTMLTextAreaElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.rows Mozilla HTMLTextAreaElement.rows documentation> 
-setRows :: (MonadIO m) => HTMLTextAreaElement -> Int -> m ()
-setRows self val = liftIO (js_setRows (self) val)
+setRows :: (MonadIO m) => HTMLTextAreaElement -> Word -> m ()
+setRows self val = liftIO (js_setRows self val)
  
 foreign import javascript unsafe "$1[\"rows\"]" js_getRows ::
-        HTMLTextAreaElement -> IO Int
+        HTMLTextAreaElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.rows Mozilla HTMLTextAreaElement.rows documentation> 
-getRows :: (MonadIO m) => HTMLTextAreaElement -> m Int
-getRows self = liftIO (js_getRows (self))
+getRows :: (MonadIO m) => HTMLTextAreaElement -> m Word
+getRows self = liftIO (js_getRows self)
  
+foreign import javascript unsafe "$1[\"cols\"] = $2;" js_setCols ::
+        HTMLTextAreaElement -> Word -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.cols Mozilla HTMLTextAreaElement.cols documentation> 
+setCols :: (MonadIO m) => HTMLTextAreaElement -> Word -> m ()
+setCols self val = liftIO (js_setCols self val)
+ 
+foreign import javascript unsafe "$1[\"cols\"]" js_getCols ::
+        HTMLTextAreaElement -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.cols Mozilla HTMLTextAreaElement.cols documentation> 
+getCols :: (MonadIO m) => HTMLTextAreaElement -> m Word
+getCols self = liftIO (js_getCols self)
+ 
 foreign import javascript unsafe "$1[\"wrap\"] = $2;" js_setWrap ::
         HTMLTextAreaElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.wrap Mozilla HTMLTextAreaElement.wrap documentation> 
 setWrap ::
         (MonadIO m, ToJSString val) => HTMLTextAreaElement -> val -> m ()
-setWrap self val = liftIO (js_setWrap (self) (toJSString val))
+setWrap self val = liftIO (js_setWrap self (toJSString val))
  
 foreign import javascript unsafe "$1[\"wrap\"]" js_getWrap ::
         HTMLTextAreaElement -> IO JSString
@@ -307,7 +317,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.wrap Mozilla HTMLTextAreaElement.wrap documentation> 
 getWrap ::
         (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
-getWrap self = liftIO (fromJSString <$> (js_getWrap (self)))
+getWrap self = liftIO (fromJSString <$> (js_getWrap self))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLTextAreaElement -> IO JSString
@@ -315,54 +325,35 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.type Mozilla HTMLTextAreaElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"defaultValue\"] = $2;"
-        js_setDefaultValue ::
-        HTMLTextAreaElement -> Nullable JSString -> IO ()
+        js_setDefaultValue :: HTMLTextAreaElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.defaultValue Mozilla HTMLTextAreaElement.defaultValue documentation> 
 setDefaultValue ::
-                (MonadIO m, ToJSString val) =>
-                  HTMLTextAreaElement -> Maybe val -> m ()
+                (MonadIO m, ToJSString val) => HTMLTextAreaElement -> val -> m ()
 setDefaultValue self val
-  = liftIO (js_setDefaultValue (self) (toMaybeJSString val))
+  = liftIO (js_setDefaultValue self (toJSString val))
  
 foreign import javascript unsafe "$1[\"defaultValue\"]"
-        js_getDefaultValue :: HTMLTextAreaElement -> IO (Nullable JSString)
+        js_getDefaultValue :: HTMLTextAreaElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.defaultValue Mozilla HTMLTextAreaElement.defaultValue documentation> 
 getDefaultValue ::
-                (MonadIO m, FromJSString result) =>
-                  HTMLTextAreaElement -> m (Maybe result)
+                (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
 getDefaultValue self
-  = liftIO (fromMaybeJSString <$> (js_getDefaultValue (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.defaultValue Mozilla HTMLTextAreaElement.defaultValue documentation> 
-getDefaultValueUnsafe ::
-                      (MonadIO m, HasCallStack, FromJSString result) =>
-                        HTMLTextAreaElement -> m result
-getDefaultValueUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getDefaultValue (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.defaultValue Mozilla HTMLTextAreaElement.defaultValue documentation> 
-getDefaultValueUnchecked ::
-                         (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
-getDefaultValueUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getDefaultValue (self)))
+  = liftIO (fromJSString <$> (js_getDefaultValue self))
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
-        :: HTMLTextAreaElement -> Nullable JSString -> IO ()
+        :: HTMLTextAreaElement -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.value Mozilla HTMLTextAreaElement.value documentation> 
 setValue ::
          (MonadIO m, ToJSString val) =>
            HTMLTextAreaElement -> Maybe val -> m ()
 setValue self val
-  = liftIO (js_setValue (self) (toMaybeJSString val))
+  = liftIO (js_setValue self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         HTMLTextAreaElement -> IO (Nullable JSString)
@@ -371,7 +362,7 @@
 getValue ::
          (MonadIO m, FromJSString result) =>
            HTMLTextAreaElement -> m (Maybe result)
-getValue self = liftIO (fromMaybeJSString <$> (js_getValue (self)))
+getValue self = liftIO (fromMaybeJSString <$> (js_getValue self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.value Mozilla HTMLTextAreaElement.value documentation> 
 getValueUnsafe ::
@@ -379,51 +370,36 @@
                  HTMLTextAreaElement -> m result
 getValueUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getValue (self))) >>=
+      ((fromMaybeJSString <$> (js_getValue self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.value Mozilla HTMLTextAreaElement.value documentation> 
 getValueUnchecked ::
                   (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
 getValueUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getValue (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getValue self))
  
 foreign import javascript unsafe "$1[\"textLength\"]"
         js_getTextLength :: HTMLTextAreaElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.textLength Mozilla HTMLTextAreaElement.textLength documentation> 
 getTextLength :: (MonadIO m) => HTMLTextAreaElement -> m Word
-getTextLength self = liftIO (js_getTextLength (self))
+getTextLength self = liftIO (js_getTextLength self)
  
 foreign import javascript unsafe "($1[\"willValidate\"] ? 1 : 0)"
         js_getWillValidate :: HTMLTextAreaElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.willValidate Mozilla HTMLTextAreaElement.willValidate documentation> 
 getWillValidate :: (MonadIO m) => HTMLTextAreaElement -> m Bool
-getWillValidate self = liftIO (js_getWillValidate (self))
+getWillValidate self = liftIO (js_getWillValidate self)
  
 foreign import javascript unsafe "$1[\"validity\"]" js_getValidity
-        :: HTMLTextAreaElement -> IO (Nullable ValidityState)
+        :: HTMLTextAreaElement -> IO ValidityState
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.validity Mozilla HTMLTextAreaElement.validity documentation> 
 getValidity ::
-            (MonadIO m) => HTMLTextAreaElement -> m (Maybe ValidityState)
-getValidity self
-  = liftIO (nullableToMaybe <$> (js_getValidity (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.validity Mozilla HTMLTextAreaElement.validity documentation> 
-getValidityUnsafe ::
-                  (MonadIO m, HasCallStack) => HTMLTextAreaElement -> m ValidityState
-getValidityUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getValidity (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.validity Mozilla HTMLTextAreaElement.validity documentation> 
-getValidityUnchecked ::
-                     (MonadIO m) => HTMLTextAreaElement -> m ValidityState
-getValidityUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getValidity (self)))
+            (MonadIO m) => HTMLTextAreaElement -> m ValidityState
+getValidity self = liftIO (js_getValidity self)
  
 foreign import javascript unsafe "$1[\"validationMessage\"]"
         js_getValidationMessage :: HTMLTextAreaElement -> IO JSString
@@ -432,29 +408,14 @@
 getValidationMessage ::
                      (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
 getValidationMessage self
-  = liftIO (fromJSString <$> (js_getValidationMessage (self)))
+  = liftIO (fromJSString <$> (js_getValidationMessage self))
  
 foreign import javascript unsafe "$1[\"labels\"]" js_getLabels ::
-        HTMLTextAreaElement -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.labels Mozilla HTMLTextAreaElement.labels documentation> 
-getLabels ::
-          (MonadIO m) => HTMLTextAreaElement -> m (Maybe NodeList)
-getLabels self = liftIO (nullableToMaybe <$> (js_getLabels (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.labels Mozilla HTMLTextAreaElement.labels documentation> 
-getLabelsUnsafe ::
-                (MonadIO m, HasCallStack) => HTMLTextAreaElement -> m NodeList
-getLabelsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLabels (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLTextAreaElement -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.labels Mozilla HTMLTextAreaElement.labels documentation> 
-getLabelsUnchecked ::
-                   (MonadIO m) => HTMLTextAreaElement -> m NodeList
-getLabelsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getLabels (self)))
+getLabels :: (MonadIO m) => HTMLTextAreaElement -> m NodeList
+getLabels self = liftIO (js_getLabels self)
  
 foreign import javascript unsafe "$1[\"selectionStart\"] = $2;"
         js_setSelectionStart :: HTMLTextAreaElement -> Int -> IO ()
@@ -462,15 +423,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.selectionStart Mozilla HTMLTextAreaElement.selectionStart documentation> 
 setSelectionStart ::
                   (MonadIO m) => HTMLTextAreaElement -> Int -> m ()
-setSelectionStart self val
-  = liftIO (js_setSelectionStart (self) val)
+setSelectionStart self val = liftIO (js_setSelectionStart self val)
  
 foreign import javascript unsafe "$1[\"selectionStart\"]"
         js_getSelectionStart :: HTMLTextAreaElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.selectionStart Mozilla HTMLTextAreaElement.selectionStart documentation> 
 getSelectionStart :: (MonadIO m) => HTMLTextAreaElement -> m Int
-getSelectionStart self = liftIO (js_getSelectionStart (self))
+getSelectionStart self = liftIO (js_getSelectionStart self)
  
 foreign import javascript unsafe "$1[\"selectionEnd\"] = $2;"
         js_setSelectionEnd :: HTMLTextAreaElement -> Int -> IO ()
@@ -478,14 +438,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.selectionEnd Mozilla HTMLTextAreaElement.selectionEnd documentation> 
 setSelectionEnd ::
                 (MonadIO m) => HTMLTextAreaElement -> Int -> m ()
-setSelectionEnd self val = liftIO (js_setSelectionEnd (self) val)
+setSelectionEnd self val = liftIO (js_setSelectionEnd self val)
  
 foreign import javascript unsafe "$1[\"selectionEnd\"]"
         js_getSelectionEnd :: HTMLTextAreaElement -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.selectionEnd Mozilla HTMLTextAreaElement.selectionEnd documentation> 
 getSelectionEnd :: (MonadIO m) => HTMLTextAreaElement -> m Int
-getSelectionEnd self = liftIO (js_getSelectionEnd (self))
+getSelectionEnd self = liftIO (js_getSelectionEnd self)
  
 foreign import javascript unsafe "$1[\"selectionDirection\"] = $2;"
         js_setSelectionDirection ::
@@ -495,7 +455,7 @@
 setSelectionDirection ::
                       (MonadIO m, ToJSString val) => HTMLTextAreaElement -> val -> m ()
 setSelectionDirection self val
-  = liftIO (js_setSelectionDirection (self) (toJSString val))
+  = liftIO (js_setSelectionDirection self (toJSString val))
  
 foreign import javascript unsafe "$1[\"selectionDirection\"]"
         js_getSelectionDirection :: HTMLTextAreaElement -> IO JSString
@@ -504,57 +464,22 @@
 getSelectionDirection ::
                       (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
 getSelectionDirection self
-  = liftIO (fromJSString <$> (js_getSelectionDirection (self)))
- 
-foreign import javascript unsafe "$1[\"autocorrect\"] = $2;"
-        js_setAutocorrect :: HTMLTextAreaElement -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.autocorrect Mozilla HTMLTextAreaElement.autocorrect documentation> 
-setAutocorrect ::
-               (MonadIO m) => HTMLTextAreaElement -> Bool -> m ()
-setAutocorrect self val = liftIO (js_setAutocorrect (self) val)
- 
-foreign import javascript unsafe "($1[\"autocorrect\"] ? 1 : 0)"
-        js_getAutocorrect :: HTMLTextAreaElement -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.autocorrect Mozilla HTMLTextAreaElement.autocorrect documentation> 
-getAutocorrect :: (MonadIO m) => HTMLTextAreaElement -> m Bool
-getAutocorrect self = liftIO (js_getAutocorrect (self))
+  = liftIO (fromJSString <$> (js_getSelectionDirection self))
  
-foreign import javascript unsafe "$1[\"autocapitalize\"] = $2;"
-        js_setAutocapitalize ::
-        HTMLTextAreaElement -> Nullable JSString -> IO ()
+foreign import javascript unsafe "$1[\"autocomplete\"] = $2;"
+        js_setAutocomplete :: HTMLTextAreaElement -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.autocapitalize Mozilla HTMLTextAreaElement.autocapitalize documentation> 
-setAutocapitalize ::
-                  (MonadIO m, ToJSString val) =>
-                    HTMLTextAreaElement -> Maybe val -> m ()
-setAutocapitalize self val
-  = liftIO (js_setAutocapitalize (self) (toMaybeJSString val))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.autocomplete Mozilla HTMLTextAreaElement.autocomplete documentation> 
+setAutocomplete ::
+                (MonadIO m, ToJSString val) => HTMLTextAreaElement -> val -> m ()
+setAutocomplete self val
+  = liftIO (js_setAutocomplete self (toJSString val))
  
-foreign import javascript unsafe "$1[\"autocapitalize\"]"
-        js_getAutocapitalize ::
-        HTMLTextAreaElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.autocapitalize Mozilla HTMLTextAreaElement.autocapitalize documentation> 
-getAutocapitalize ::
-                  (MonadIO m, FromJSString result) =>
-                    HTMLTextAreaElement -> m (Maybe result)
-getAutocapitalize self
-  = liftIO (fromMaybeJSString <$> (js_getAutocapitalize (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.autocapitalize Mozilla HTMLTextAreaElement.autocapitalize documentation> 
-getAutocapitalizeUnsafe ::
-                        (MonadIO m, HasCallStack, FromJSString result) =>
-                          HTMLTextAreaElement -> m result
-getAutocapitalizeUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getAutocapitalize (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+foreign import javascript unsafe "$1[\"autocomplete\"]"
+        js_getAutocomplete :: HTMLTextAreaElement -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.autocapitalize Mozilla HTMLTextAreaElement.autocapitalize documentation> 
-getAutocapitalizeUnchecked ::
-                           (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
-getAutocapitalizeUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getAutocapitalize (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.autocomplete Mozilla HTMLTextAreaElement.autocomplete documentation> 
+getAutocomplete ::
+                (MonadIO m, FromJSString result) => HTMLTextAreaElement -> m result
+getAutocomplete self
+  = liftIO (fromJSString <$> (js_getAutocomplete self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLTimeElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLTimeElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLTimeElement.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.HTMLTimeElement
+       (js_setDateTime, setDateTime, js_getDateTime, getDateTime,
+        HTMLTimeElement(..), gTypeHTMLTimeElement)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"dateTime\"] = $2;"
+        js_setDateTime :: HTMLTimeElement -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTimeElement.dateTime Mozilla HTMLTimeElement.dateTime documentation> 
+setDateTime ::
+            (MonadIO m, ToJSString val) => HTMLTimeElement -> val -> m ()
+setDateTime self val
+  = liftIO (js_setDateTime self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"dateTime\"]" js_getDateTime
+        :: HTMLTimeElement -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTimeElement.dateTime Mozilla HTMLTimeElement.dateTime documentation> 
+getDateTime ::
+            (MonadIO m, FromJSString result) => HTMLTimeElement -> m result
+getDateTime self = liftIO (fromJSString <$> (js_getDateTime self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLTitleElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLTitleElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLTitleElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLTitleElement.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HTMLTitleElement
-       (js_setText, setText, js_getText, getText, getTextUnsafe,
-        getTextUnchecked, HTMLTitleElement(..), gTypeHTMLTitleElement)
+       (js_setText, setText, js_getText, getText, HTMLTitleElement(..),
+        gTypeHTMLTitleElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,40 +20,24 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"text\"] = $2;" js_setText ::
-        HTMLTitleElement -> Nullable JSString -> IO ()
+        HTMLTitleElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTitleElement.text Mozilla HTMLTitleElement.text documentation> 
 setText ::
-        (MonadIO m, ToJSString val) =>
-          HTMLTitleElement -> Maybe val -> m ()
-setText self val = liftIO (js_setText (self) (toMaybeJSString val))
+        (MonadIO m, ToJSString val) => HTMLTitleElement -> val -> m ()
+setText self val = liftIO (js_setText self (toJSString val))
  
 foreign import javascript unsafe "$1[\"text\"]" js_getText ::
-        HTMLTitleElement -> IO (Nullable JSString)
+        HTMLTitleElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTitleElement.text Mozilla HTMLTitleElement.text documentation> 
 getText ::
-        (MonadIO m, FromJSString result) =>
-          HTMLTitleElement -> m (Maybe result)
-getText self = liftIO (fromMaybeJSString <$> (js_getText (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTitleElement.text Mozilla HTMLTitleElement.text documentation> 
-getTextUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                HTMLTitleElement -> m result
-getTextUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getText (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTitleElement.text Mozilla HTMLTitleElement.text documentation> 
-getTextUnchecked ::
-                 (MonadIO m, FromJSString result) => HTMLTitleElement -> m result
-getTextUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getText (self)))
+        (MonadIO m, FromJSString result) => HTMLTitleElement -> m result
+getText self = liftIO (fromJSString <$> (js_getText self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLTrackElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLTrackElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLTrackElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLTrackElement.hs
@@ -10,14 +10,13 @@
         getSrclang, js_setLabel, setLabel, js_getLabel, getLabel,
         js_setDefault, setDefault, js_getDefault, getDefault,
         js_getReadyState, getReadyState, js_getTrack, getTrack,
-        getTrackUnsafe, getTrackUnchecked, HTMLTrackElement(..),
-        gTypeHTMLTrackElement)
+        HTMLTrackElement(..), gTypeHTMLTrackElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,6 +25,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -41,7 +41,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.kind Mozilla HTMLTrackElement.kind documentation> 
 setKind ::
         (MonadIO m, ToJSString val) => HTMLTrackElement -> val -> m ()
-setKind self val = liftIO (js_setKind (self) (toJSString val))
+setKind self val = liftIO (js_setKind self (toJSString val))
  
 foreign import javascript unsafe "$1[\"kind\"]" js_getKind ::
         HTMLTrackElement -> IO JSString
@@ -49,7 +49,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.kind Mozilla HTMLTrackElement.kind documentation> 
 getKind ::
         (MonadIO m, FromJSString result) => HTMLTrackElement -> m result
-getKind self = liftIO (fromJSString <$> (js_getKind (self)))
+getKind self = liftIO (fromJSString <$> (js_getKind self))
  
 foreign import javascript unsafe "$1[\"src\"] = $2;" js_setSrc ::
         HTMLTrackElement -> JSString -> IO ()
@@ -57,7 +57,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.src Mozilla HTMLTrackElement.src documentation> 
 setSrc ::
        (MonadIO m, ToJSString val) => HTMLTrackElement -> val -> m ()
-setSrc self val = liftIO (js_setSrc (self) (toJSString val))
+setSrc self val = liftIO (js_setSrc self (toJSString val))
  
 foreign import javascript unsafe "$1[\"src\"]" js_getSrc ::
         HTMLTrackElement -> IO JSString
@@ -65,7 +65,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.src Mozilla HTMLTrackElement.src documentation> 
 getSrc ::
        (MonadIO m, FromJSString result) => HTMLTrackElement -> m result
-getSrc self = liftIO (fromJSString <$> (js_getSrc (self)))
+getSrc self = liftIO (fromJSString <$> (js_getSrc self))
  
 foreign import javascript unsafe "$1[\"srclang\"] = $2;"
         js_setSrclang :: HTMLTrackElement -> JSString -> IO ()
@@ -73,8 +73,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.srclang Mozilla HTMLTrackElement.srclang documentation> 
 setSrclang ::
            (MonadIO m, ToJSString val) => HTMLTrackElement -> val -> m ()
-setSrclang self val
-  = liftIO (js_setSrclang (self) (toJSString val))
+setSrclang self val = liftIO (js_setSrclang self (toJSString val))
  
 foreign import javascript unsafe "$1[\"srclang\"]" js_getSrclang ::
         HTMLTrackElement -> IO JSString
@@ -82,7 +81,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.srclang Mozilla HTMLTrackElement.srclang documentation> 
 getSrclang ::
            (MonadIO m, FromJSString result) => HTMLTrackElement -> m result
-getSrclang self = liftIO (fromJSString <$> (js_getSrclang (self)))
+getSrclang self = liftIO (fromJSString <$> (js_getSrclang self))
  
 foreign import javascript unsafe "$1[\"label\"] = $2;" js_setLabel
         :: HTMLTrackElement -> JSString -> IO ()
@@ -90,7 +89,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.label Mozilla HTMLTrackElement.label documentation> 
 setLabel ::
          (MonadIO m, ToJSString val) => HTMLTrackElement -> val -> m ()
-setLabel self val = liftIO (js_setLabel (self) (toJSString val))
+setLabel self val = liftIO (js_setLabel self (toJSString val))
  
 foreign import javascript unsafe "$1[\"label\"]" js_getLabel ::
         HTMLTrackElement -> IO JSString
@@ -98,45 +97,32 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.label Mozilla HTMLTrackElement.label documentation> 
 getLabel ::
          (MonadIO m, FromJSString result) => HTMLTrackElement -> m result
-getLabel self = liftIO (fromJSString <$> (js_getLabel (self)))
+getLabel self = liftIO (fromJSString <$> (js_getLabel self))
  
 foreign import javascript unsafe "$1[\"default\"] = $2;"
         js_setDefault :: HTMLTrackElement -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.default Mozilla HTMLTrackElement.default documentation> 
 setDefault :: (MonadIO m) => HTMLTrackElement -> Bool -> m ()
-setDefault self val = liftIO (js_setDefault (self) val)
+setDefault self val = liftIO (js_setDefault self val)
  
 foreign import javascript unsafe "($1[\"default\"] ? 1 : 0)"
         js_getDefault :: HTMLTrackElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.default Mozilla HTMLTrackElement.default documentation> 
 getDefault :: (MonadIO m) => HTMLTrackElement -> m Bool
-getDefault self = liftIO (js_getDefault (self))
+getDefault self = liftIO (js_getDefault self)
  
 foreign import javascript unsafe "$1[\"readyState\"]"
         js_getReadyState :: HTMLTrackElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.readyState Mozilla HTMLTrackElement.readyState documentation> 
 getReadyState :: (MonadIO m) => HTMLTrackElement -> m Word
-getReadyState self = liftIO (js_getReadyState (self))
+getReadyState self = liftIO (js_getReadyState self)
  
 foreign import javascript unsafe "$1[\"track\"]" js_getTrack ::
-        HTMLTrackElement -> IO (Nullable TextTrack)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.track Mozilla HTMLTrackElement.track documentation> 
-getTrack :: (MonadIO m) => HTMLTrackElement -> m (Maybe TextTrack)
-getTrack self = liftIO (nullableToMaybe <$> (js_getTrack (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.track Mozilla HTMLTrackElement.track documentation> 
-getTrackUnsafe ::
-               (MonadIO m, HasCallStack) => HTMLTrackElement -> m TextTrack
-getTrackUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTrack (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        HTMLTrackElement -> IO TextTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement.track Mozilla HTMLTrackElement.track documentation> 
-getTrackUnchecked :: (MonadIO m) => HTMLTrackElement -> m TextTrack
-getTrackUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTrack (self)))
+getTrack :: (MonadIO m) => HTMLTrackElement -> m TextTrack
+getTrack self = liftIO (js_getTrack self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLUListElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLUListElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLUListElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLUListElement.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,14 +32,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUListElement.compact Mozilla HTMLUListElement.compact documentation> 
 setCompact :: (MonadIO m) => HTMLUListElement -> Bool -> m ()
-setCompact self val = liftIO (js_setCompact (self) val)
+setCompact self val = liftIO (js_setCompact self val)
  
 foreign import javascript unsafe "($1[\"compact\"] ? 1 : 0)"
         js_getCompact :: HTMLUListElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUListElement.compact Mozilla HTMLUListElement.compact documentation> 
 getCompact :: (MonadIO m) => HTMLUListElement -> m Bool
-getCompact self = liftIO (js_getCompact (self))
+getCompact self = liftIO (js_getCompact self)
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         HTMLUListElement -> JSString -> IO ()
@@ -46,7 +47,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUListElement.type Mozilla HTMLUListElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => HTMLUListElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         HTMLUListElement -> IO JSString
@@ -54,4 +55,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUListElement.type Mozilla HTMLUListElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => HTMLUListElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HTMLVideoElement.hs b/src/GHCJS/DOM/JSFFI/Generated/HTMLVideoElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HTMLVideoElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HTMLVideoElement.hs
@@ -14,8 +14,10 @@
         getWidth, js_setHeight, setHeight, js_getHeight, getHeight,
         js_getVideoWidth, getVideoWidth, js_getVideoHeight, getVideoHeight,
         js_setPoster, setPoster, js_getPoster, getPoster,
-        js_getWebkitSupportsFullscreen, getWebkitSupportsFullscreen,
-        js_getWebkitDisplayingFullscreen, getWebkitDisplayingFullscreen,
+        js_setPlaysInline, setPlaysInline, js_getPlaysInline,
+        getPlaysInline, js_getWebkitSupportsFullscreen,
+        getWebkitSupportsFullscreen, js_getWebkitDisplayingFullscreen,
+        getWebkitDisplayingFullscreen,
         js_setWebkitWirelessVideoPlaybackDisabled,
         setWebkitWirelessVideoPlaybackDisabled,
         js_getWebkitWirelessVideoPlaybackDisabled,
@@ -23,14 +25,13 @@
         js_getWebkitDecodedFrameCount, getWebkitDecodedFrameCount,
         js_getWebkitDroppedFrameCount, getWebkitDroppedFrameCount,
         js_getWebkitPresentationMode, getWebkitPresentationMode,
-        webKitPresentationModeChanged, HTMLVideoElement(..),
-        gTypeHTMLVideoElement)
+        HTMLVideoElement(..), gTypeHTMLVideoElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -39,6 +40,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -49,30 +51,28 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.webkitEnterFullscreen Mozilla HTMLVideoElement.webkitEnterFullscreen documentation> 
 webkitEnterFullscreen :: (MonadIO m) => HTMLVideoElement -> m ()
-webkitEnterFullscreen self
-  = liftIO (js_webkitEnterFullscreen (self))
+webkitEnterFullscreen self = liftIO (js_webkitEnterFullscreen self)
  
 foreign import javascript unsafe "$1[\"webkitExitFullscreen\"]()"
         js_webkitExitFullscreen :: HTMLVideoElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.webkitExitFullscreen Mozilla HTMLVideoElement.webkitExitFullscreen documentation> 
 webkitExitFullscreen :: (MonadIO m) => HTMLVideoElement -> m ()
-webkitExitFullscreen self = liftIO (js_webkitExitFullscreen (self))
+webkitExitFullscreen self = liftIO (js_webkitExitFullscreen self)
  
 foreign import javascript unsafe "$1[\"webkitEnterFullScreen\"]()"
         js_webkitEnterFullScreen :: HTMLVideoElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.webkitEnterFullScreen Mozilla HTMLVideoElement.webkitEnterFullScreen documentation> 
 webkitEnterFullScreen :: (MonadIO m) => HTMLVideoElement -> m ()
-webkitEnterFullScreen self
-  = liftIO (js_webkitEnterFullScreen (self))
+webkitEnterFullScreen self = liftIO (js_webkitEnterFullScreen self)
  
 foreign import javascript unsafe "$1[\"webkitExitFullScreen\"]()"
         js_webkitExitFullScreen :: HTMLVideoElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.webkitExitFullScreen Mozilla HTMLVideoElement.webkitExitFullScreen documentation> 
 webkitExitFullScreen :: (MonadIO m) => HTMLVideoElement -> m ()
-webkitExitFullScreen self = liftIO (js_webkitExitFullScreen (self))
+webkitExitFullScreen self = liftIO (js_webkitExitFullScreen self)
  
 foreign import javascript unsafe
         "($1[\"webkitSupportsPresentationMode\"]($2) ? 1 : 0)"
@@ -83,14 +83,14 @@
 webkitSupportsPresentationMode ::
                                (MonadIO m) => HTMLVideoElement -> VideoPresentationMode -> m Bool
 webkitSupportsPresentationMode self mode
-  = liftIO (js_webkitSupportsPresentationMode (self) (pToJSVal mode))
+  = liftIO (js_webkitSupportsPresentationMode self (pToJSVal mode))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.webkitSupportsPresentationMode Mozilla HTMLVideoElement.webkitSupportsPresentationMode documentation> 
 webkitSupportsPresentationMode_ ::
                                 (MonadIO m) => HTMLVideoElement -> VideoPresentationMode -> m ()
 webkitSupportsPresentationMode_ self mode
   = liftIO
-      (void (js_webkitSupportsPresentationMode (self) (pToJSVal mode)))
+      (void (js_webkitSupportsPresentationMode self (pToJSVal mode)))
  
 foreign import javascript unsafe
         "$1[\"webkitSetPresentationMode\"]($2)"
@@ -100,49 +100,49 @@
 webkitSetPresentationMode ::
                           (MonadIO m) => HTMLVideoElement -> VideoPresentationMode -> m ()
 webkitSetPresentationMode self mode
-  = liftIO (js_webkitSetPresentationMode (self) (pToJSVal mode))
+  = liftIO (js_webkitSetPresentationMode self (pToJSVal mode))
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: HTMLVideoElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.width Mozilla HTMLVideoElement.width documentation> 
 setWidth :: (MonadIO m) => HTMLVideoElement -> Word -> m ()
-setWidth self val = liftIO (js_setWidth (self) val)
+setWidth self val = liftIO (js_setWidth self val)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         HTMLVideoElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.width Mozilla HTMLVideoElement.width documentation> 
 getWidth :: (MonadIO m) => HTMLVideoElement -> m Word
-getWidth self = liftIO (js_getWidth (self))
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
         js_setHeight :: HTMLVideoElement -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.height Mozilla HTMLVideoElement.height documentation> 
 setHeight :: (MonadIO m) => HTMLVideoElement -> Word -> m ()
-setHeight self val = liftIO (js_setHeight (self) val)
+setHeight self val = liftIO (js_setHeight self val)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
         HTMLVideoElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.height Mozilla HTMLVideoElement.height documentation> 
 getHeight :: (MonadIO m) => HTMLVideoElement -> m Word
-getHeight self = liftIO (js_getHeight (self))
+getHeight self = liftIO (js_getHeight self)
  
 foreign import javascript unsafe "$1[\"videoWidth\"]"
         js_getVideoWidth :: HTMLVideoElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.videoWidth Mozilla HTMLVideoElement.videoWidth documentation> 
 getVideoWidth :: (MonadIO m) => HTMLVideoElement -> m Word
-getVideoWidth self = liftIO (js_getVideoWidth (self))
+getVideoWidth self = liftIO (js_getVideoWidth self)
  
 foreign import javascript unsafe "$1[\"videoHeight\"]"
         js_getVideoHeight :: HTMLVideoElement -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.videoHeight Mozilla HTMLVideoElement.videoHeight documentation> 
 getVideoHeight :: (MonadIO m) => HTMLVideoElement -> m Word
-getVideoHeight self = liftIO (js_getVideoHeight (self))
+getVideoHeight self = liftIO (js_getVideoHeight self)
  
 foreign import javascript unsafe "$1[\"poster\"] = $2;"
         js_setPoster :: HTMLVideoElement -> JSString -> IO ()
@@ -150,7 +150,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.poster Mozilla HTMLVideoElement.poster documentation> 
 setPoster ::
           (MonadIO m, ToJSString val) => HTMLVideoElement -> val -> m ()
-setPoster self val = liftIO (js_setPoster (self) (toJSString val))
+setPoster self val = liftIO (js_setPoster self (toJSString val))
  
 foreign import javascript unsafe "$1[\"poster\"]" js_getPoster ::
         HTMLVideoElement -> IO JSString
@@ -158,8 +158,22 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.poster Mozilla HTMLVideoElement.poster documentation> 
 getPoster ::
           (MonadIO m, FromJSString result) => HTMLVideoElement -> m result
-getPoster self = liftIO (fromJSString <$> (js_getPoster (self)))
+getPoster self = liftIO (fromJSString <$> (js_getPoster self))
  
+foreign import javascript unsafe "$1[\"playsInline\"] = $2;"
+        js_setPlaysInline :: HTMLVideoElement -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.playsInline Mozilla HTMLVideoElement.playsInline documentation> 
+setPlaysInline :: (MonadIO m) => HTMLVideoElement -> Bool -> m ()
+setPlaysInline self val = liftIO (js_setPlaysInline self val)
+ 
+foreign import javascript unsafe "($1[\"playsInline\"] ? 1 : 0)"
+        js_getPlaysInline :: HTMLVideoElement -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.playsInline Mozilla HTMLVideoElement.playsInline documentation> 
+getPlaysInline :: (MonadIO m) => HTMLVideoElement -> m Bool
+getPlaysInline self = liftIO (js_getPlaysInline self)
+ 
 foreign import javascript unsafe
         "($1[\"webkitSupportsFullscreen\"] ? 1 : 0)"
         js_getWebkitSupportsFullscreen :: HTMLVideoElement -> IO Bool
@@ -168,7 +182,7 @@
 getWebkitSupportsFullscreen ::
                             (MonadIO m) => HTMLVideoElement -> m Bool
 getWebkitSupportsFullscreen self
-  = liftIO (js_getWebkitSupportsFullscreen (self))
+  = liftIO (js_getWebkitSupportsFullscreen self)
  
 foreign import javascript unsafe
         "($1[\"webkitDisplayingFullscreen\"] ? 1 : 0)"
@@ -178,7 +192,7 @@
 getWebkitDisplayingFullscreen ::
                               (MonadIO m) => HTMLVideoElement -> m Bool
 getWebkitDisplayingFullscreen self
-  = liftIO (js_getWebkitDisplayingFullscreen (self))
+  = liftIO (js_getWebkitDisplayingFullscreen self)
  
 foreign import javascript unsafe
         "$1[\"webkitWirelessVideoPlaybackDisabled\"] = $2;"
@@ -189,7 +203,7 @@
 setWebkitWirelessVideoPlaybackDisabled ::
                                        (MonadIO m) => HTMLVideoElement -> Bool -> m ()
 setWebkitWirelessVideoPlaybackDisabled self val
-  = liftIO (js_setWebkitWirelessVideoPlaybackDisabled (self) val)
+  = liftIO (js_setWebkitWirelessVideoPlaybackDisabled self val)
  
 foreign import javascript unsafe
         "($1[\"webkitWirelessVideoPlaybackDisabled\"] ? 1 : 0)"
@@ -200,7 +214,7 @@
 getWebkitWirelessVideoPlaybackDisabled ::
                                        (MonadIO m) => HTMLVideoElement -> m Bool
 getWebkitWirelessVideoPlaybackDisabled self
-  = liftIO (js_getWebkitWirelessVideoPlaybackDisabled (self))
+  = liftIO (js_getWebkitWirelessVideoPlaybackDisabled self)
  
 foreign import javascript unsafe "$1[\"webkitDecodedFrameCount\"]"
         js_getWebkitDecodedFrameCount :: HTMLVideoElement -> IO Word
@@ -209,7 +223,7 @@
 getWebkitDecodedFrameCount ::
                            (MonadIO m) => HTMLVideoElement -> m Word
 getWebkitDecodedFrameCount self
-  = liftIO (js_getWebkitDecodedFrameCount (self))
+  = liftIO (js_getWebkitDecodedFrameCount self)
  
 foreign import javascript unsafe "$1[\"webkitDroppedFrameCount\"]"
         js_getWebkitDroppedFrameCount :: HTMLVideoElement -> IO Word
@@ -218,7 +232,7 @@
 getWebkitDroppedFrameCount ::
                            (MonadIO m) => HTMLVideoElement -> m Word
 getWebkitDroppedFrameCount self
-  = liftIO (js_getWebkitDroppedFrameCount (self))
+  = liftIO (js_getWebkitDroppedFrameCount self)
  
 foreign import javascript unsafe "$1[\"webkitPresentationMode\"]"
         js_getWebkitPresentationMode :: HTMLVideoElement -> IO JSVal
@@ -228,9 +242,4 @@
                           (MonadIO m) => HTMLVideoElement -> m VideoPresentationMode
 getWebkitPresentationMode self
   = liftIO
-      ((js_getWebkitPresentationMode (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement.onwebkitpresentationmodechanged Mozilla HTMLVideoElement.onwebkitpresentationmodechanged documentation> 
-webKitPresentationModeChanged :: EventName HTMLVideoElement Event
-webKitPresentationModeChanged
-  = unsafeEventName (toJSString "webkitpresentationmodechanged")
+      ((js_getWebkitPresentationMode self) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/HashChangeEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/HashChangeEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/HashChangeEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/HashChangeEvent.hs
@@ -4,15 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.HashChangeEvent
-       (js_initHashChangeEvent, initHashChangeEvent, js_getOldURL,
-        getOldURL, js_getNewURL, getNewURL, HashChangeEvent(..),
-        gTypeHashChangeEvent)
+       (js_newHashChangeEvent, newHashChangeEvent, js_initHashChangeEvent,
+        initHashChangeEvent, js_getOldURL, getOldURL, js_getNewURL,
+        getNewURL, HashChangeEvent(..), gTypeHashChangeEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,29 +21,44 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
+        "new window[\"HashChangeEvent\"]($1,\n$2)" js_newHashChangeEvent ::
+        JSString -> Optional HashChangeEventInit -> IO HashChangeEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/HashChangeEvent Mozilla HashChangeEvent documentation> 
+newHashChangeEvent ::
+                   (MonadIO m, ToJSString type') =>
+                     type' -> Maybe HashChangeEventInit -> m HashChangeEvent
+newHashChangeEvent type' eventInitDict
+  = liftIO
+      (js_newHashChangeEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe
         "$1[\"initHashChangeEvent\"]($2,\n$3, $4, $5, $6)"
         js_initHashChangeEvent ::
         HashChangeEvent ->
-          JSString -> Bool -> Bool -> JSString -> JSString -> IO ()
+          Optional JSString ->
+            Bool -> Bool -> Optional JSString -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HashChangeEvent.initHashChangeEvent Mozilla HashChangeEvent.initHashChangeEvent documentation> 
 initHashChangeEvent ::
                     (MonadIO m, ToJSString type', ToJSString oldURL,
                      ToJSString newURL) =>
                       HashChangeEvent ->
-                        type' -> Bool -> Bool -> oldURL -> newURL -> m ()
+                        Maybe type' -> Bool -> Bool -> Maybe oldURL -> Maybe newURL -> m ()
 initHashChangeEvent self type' canBubble cancelable oldURL newURL
   = liftIO
-      (js_initHashChangeEvent (self) (toJSString type') canBubble
+      (js_initHashChangeEvent self (toOptionalJSString type') canBubble
          cancelable
-         (toJSString oldURL)
-         (toJSString newURL))
+         (toOptionalJSString oldURL)
+         (toOptionalJSString newURL))
  
 foreign import javascript unsafe "$1[\"oldURL\"]" js_getOldURL ::
         HashChangeEvent -> IO JSString
@@ -51,7 +66,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HashChangeEvent.oldURL Mozilla HashChangeEvent.oldURL documentation> 
 getOldURL ::
           (MonadIO m, FromJSString result) => HashChangeEvent -> m result
-getOldURL self = liftIO (fromJSString <$> (js_getOldURL (self)))
+getOldURL self = liftIO (fromJSString <$> (js_getOldURL self))
  
 foreign import javascript unsafe "$1[\"newURL\"]" js_getNewURL ::
         HashChangeEvent -> IO JSString
@@ -59,4 +74,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/HashChangeEvent.newURL Mozilla HashChangeEvent.newURL documentation> 
 getNewURL ::
           (MonadIO m, FromJSString result) => HashChangeEvent -> m result
-getNewURL self = liftIO (fromJSString <$> (js_getNewURL (self)))
+getNewURL self = liftIO (fromJSString <$> (js_getNewURL self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Headers.hs b/src/GHCJS/DOM/JSFFI/Generated/Headers.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/Headers.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.Headers
+       (js_append, append, js_delete, delete, js_get, get, get_,
+        getUnsafe, getUnchecked, js_has, has, has_, js_set, set,
+        Headers(..), gTypeHeaders)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"append\"]($2, $3)" js_append
+        :: Headers -> JSString -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Headers.append Mozilla Headers.append documentation> 
+append ::
+       (MonadIO m, ToJSString name, ToJSString value) =>
+         Headers -> name -> value -> m ()
+append self name value
+  = liftIO (js_append self (toJSString name) (toJSString value))
+ 
+foreign import javascript unsafe "$1[\"delete\"]($2)" js_delete ::
+        Headers -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Headers.delete Mozilla Headers.delete documentation> 
+delete :: (MonadIO m, ToJSString name) => Headers -> name -> m ()
+delete self name = liftIO (js_delete self (toJSString name))
+ 
+foreign import javascript unsafe "$1[\"get\"]($2)" js_get ::
+        Headers -> JSString -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Headers.get Mozilla Headers.get documentation> 
+get ::
+    (MonadIO m, ToJSString name, FromJSString result) =>
+      Headers -> name -> m (Maybe result)
+get self name
+  = liftIO (fromMaybeJSString <$> (js_get self (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Headers.get Mozilla Headers.get documentation> 
+get_ :: (MonadIO m, ToJSString name) => Headers -> name -> m ()
+get_ self name = liftIO (void (js_get self (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Headers.get Mozilla Headers.get documentation> 
+getUnsafe ::
+          (MonadIO m, ToJSString name, HasCallStack, FromJSString result) =>
+            Headers -> name -> m result
+getUnsafe self name
+  = liftIO
+      ((fromMaybeJSString <$> (js_get self (toJSString name))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Headers.get Mozilla Headers.get documentation> 
+getUnchecked ::
+             (MonadIO m, ToJSString name, FromJSString result) =>
+               Headers -> name -> m result
+getUnchecked self name
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_get self (toJSString name)))
+ 
+foreign import javascript unsafe "($1[\"has\"]($2) ? 1 : 0)" js_has
+        :: Headers -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Headers.has Mozilla Headers.has documentation> 
+has :: (MonadIO m, ToJSString name) => Headers -> name -> m Bool
+has self name = liftIO (js_has self (toJSString name))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Headers.has Mozilla Headers.has documentation> 
+has_ :: (MonadIO m, ToJSString name) => Headers -> name -> m ()
+has_ self name = liftIO (void (js_has self (toJSString name)))
+ 
+foreign import javascript unsafe "$1[\"set\"]($2, $3)" js_set ::
+        Headers -> JSString -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Headers.set Mozilla Headers.set documentation> 
+set ::
+    (MonadIO m, ToJSString name, ToJSString value) =>
+      Headers -> name -> value -> m ()
+set self name value
+  = liftIO (js_set self (toJSString name) (toJSString value))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/History.hs b/src/GHCJS/DOM/JSFFI/Generated/History.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/History.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/History.hs
@@ -6,14 +6,13 @@
 module GHCJS.DOM.JSFFI.Generated.History
        (js_back, back, js_forward, forward, js_go, go, js_pushState,
         pushState, js_replaceState, replaceState, js_getLength, getLength,
-        js_getState, getState, getStateUnsafe, getStateUnchecked,
-        History(..), gTypeHistory)
+        js_getState, getState, History(..), gTypeHistory)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,70 +32,60 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/History.back Mozilla History.back documentation> 
 back :: (MonadIO m) => History -> m ()
-back self = liftIO (js_back (self))
+back self = liftIO (js_back self)
  
 foreign import javascript unsafe "$1[\"forward\"]()" js_forward ::
         History -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/History.forward Mozilla History.forward documentation> 
 forward :: (MonadIO m) => History -> m ()
-forward self = liftIO (js_forward (self))
+forward self = liftIO (js_forward self)
  
 foreign import javascript unsafe "$1[\"go\"]($2)" js_go ::
-        History -> Int -> IO ()
+        History -> Optional Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/History.go Mozilla History.go documentation> 
-go :: (MonadIO m) => History -> Int -> m ()
-go self distance = liftIO (js_go (self) distance)
+go :: (MonadIO m) => History -> Maybe Int -> m ()
+go self distance = liftIO (js_go self (maybeToOptional distance))
  
 foreign import javascript unsafe "$1[\"pushState\"]($2, $3, $4)"
-        js_pushState :: History -> JSVal -> JSString -> JSString -> IO ()
+        js_pushState ::
+        History -> JSVal -> JSString -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/History.pushState Mozilla History.pushState documentation> 
 pushState ::
-          (MonadIO m, ToJSString title, ToJSString url) =>
-            History -> JSVal -> title -> url -> m ()
+          (MonadIO m, ToJSVal data', ToJSString title, ToJSString url) =>
+            History -> data' -> title -> Maybe url -> m ()
 pushState self data' title url
   = liftIO
-      (js_pushState (self) data' (toJSString title) (toJSString url))
+      (toJSVal data' >>= \ data'' -> js_pushState self data''
+         (toJSString title)
+         (toOptionalJSString url))
  
 foreign import javascript unsafe "$1[\"replaceState\"]($2, $3, $4)"
         js_replaceState ::
-        History -> JSVal -> JSString -> JSString -> IO ()
+        History -> JSVal -> JSString -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/History.replaceState Mozilla History.replaceState documentation> 
 replaceState ::
-             (MonadIO m, ToJSString title, ToJSString url) =>
-               History -> JSVal -> title -> url -> m ()
+             (MonadIO m, ToJSVal data', ToJSString title, ToJSString url) =>
+               History -> data' -> title -> Maybe url -> m ()
 replaceState self data' title url
   = liftIO
-      (js_replaceState (self) data' (toJSString title) (toJSString url))
+      (toJSVal data' >>= \ data'' -> js_replaceState self data''
+         (toJSString title)
+         (toOptionalJSString url))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         History -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/History.length Mozilla History.length documentation> 
 getLength :: (MonadIO m) => History -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
  
 foreign import javascript unsafe "$1[\"state\"]" js_getState ::
-        History -> IO (Nullable SerializedScriptValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/History.state Mozilla History.state documentation> 
-getState ::
-         (MonadIO m) => History -> m (Maybe SerializedScriptValue)
-getState self = liftIO (nullableToMaybe <$> (js_getState (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/History.state Mozilla History.state documentation> 
-getStateUnsafe ::
-               (MonadIO m, HasCallStack) => History -> m SerializedScriptValue
-getStateUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getState (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        History -> IO SerializedScriptValue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/History.state Mozilla History.state documentation> 
-getStateUnchecked ::
-                  (MonadIO m) => History -> m SerializedScriptValue
-getStateUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getState (self)))
+getState :: (MonadIO m) => History -> m SerializedScriptValue
+getState self = liftIO (js_getState self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IDBCursor.hs b/src/GHCJS/DOM/JSFFI/Generated/IDBCursor.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/IDBCursor.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/IDBCursor.hs
@@ -4,18 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.IDBCursor
-       (js_update, update, update_, updateUnsafe, updateUnchecked,
-        js_advance, advance, js_continue, continue, js_delete, delete,
-        delete_, deleteUnsafe, deleteUnchecked, js_getSource, getSource,
-        getSourceUnsafe, getSourceUnchecked, js_getDirection, getDirection,
-        js_getKey, getKey, js_getPrimaryKey, getPrimaryKey, IDBCursor(..),
-        gTypeIDBCursor, IsIDBCursor, toIDBCursor)
+       (js_update, update, update_, js_advance, advance, js_continue,
+        continue, js_continuePrimaryKey, continuePrimaryKey, js_delete,
+        delete, delete_, js_getSource, getSource, js_getDirection,
+        getDirection, js_getKey, getKey, js_getPrimaryKey, getPrimaryKey,
+        IDBCursor(..), gTypeIDBCursor, IsIDBCursor, toIDBCursor)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,42 +23,32 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"update\"]($2)" js_update ::
-        IDBCursor -> JSVal -> IO (Nullable IDBRequest)
+        IDBCursor -> JSVal -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.update Mozilla IDBCursor.update documentation> 
 update ::
-       (MonadIO m, IsIDBCursor self) =>
-         self -> JSVal -> m (Maybe IDBRequest)
+       (MonadIO m, IsIDBCursor self, ToJSVal value) =>
+         self -> value -> m IDBRequest
 update self value
-  = liftIO (nullableToMaybe <$> (js_update (toIDBCursor self) value))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.update Mozilla IDBCursor.update documentation> 
-update_ :: (MonadIO m, IsIDBCursor self) => self -> JSVal -> m ()
-update_ self value
-  = liftIO (void (js_update (toIDBCursor self) value))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.update Mozilla IDBCursor.update documentation> 
-updateUnsafe ::
-             (MonadIO m, IsIDBCursor self, HasCallStack) =>
-               self -> JSVal -> m IDBRequest
-updateUnsafe self value
   = liftIO
-      ((nullableToMaybe <$> (js_update (toIDBCursor self) value)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (toJSVal value >>= \ value' -> js_update (toIDBCursor self) value')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.update Mozilla IDBCursor.update documentation> 
-updateUnchecked ::
-                (MonadIO m, IsIDBCursor self) => self -> JSVal -> m IDBRequest
-updateUnchecked self value
+update_ ::
+        (MonadIO m, IsIDBCursor self, ToJSVal value) =>
+          self -> value -> m ()
+update_ self value
   = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_update (toIDBCursor self) value))
+      (void
+         (toJSVal value >>=
+            \ value' -> js_update (toIDBCursor self) value'))
  
 foreign import javascript unsafe "$1[\"advance\"]($2)" js_advance
         :: IDBCursor -> Word -> IO ()
@@ -69,73 +58,61 @@
 advance self count = liftIO (js_advance (toIDBCursor self) count)
  
 foreign import javascript unsafe "$1[\"continue\"]($2)" js_continue
-        :: IDBCursor -> JSVal -> IO ()
+        :: IDBCursor -> Optional JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.continue Mozilla IDBCursor.continue documentation> 
-continue :: (MonadIO m, IsIDBCursor self) => self -> JSVal -> m ()
-continue self key = liftIO (js_continue (toIDBCursor self) key)
+continue ::
+         (MonadIO m, IsIDBCursor self, ToJSVal key) =>
+           self -> Maybe key -> m ()
+continue self key
+  = liftIO
+      (mapM toJSVal key >>=
+         \ key' -> js_continue (toIDBCursor self) (maybeToOptional key'))
  
+foreign import javascript unsafe
+        "$1[\"continuePrimaryKey\"]($2, $3)" js_continuePrimaryKey ::
+        IDBCursor -> JSVal -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.continuePrimaryKey Mozilla IDBCursor.continuePrimaryKey documentation> 
+continuePrimaryKey ::
+                   (MonadIO m, IsIDBCursor self, ToJSVal key, ToJSVal primaryKey) =>
+                     self -> key -> primaryKey -> m ()
+continuePrimaryKey self key primaryKey
+  = liftIO
+      (toJSVal primaryKey >>=
+         \ primaryKey' ->
+           toJSVal key >>=
+             \ key' -> js_continuePrimaryKey (toIDBCursor self) key'
+             primaryKey')
+ 
 foreign import javascript unsafe "$1[\"delete\"]()" js_delete ::
-        IDBCursor -> IO (Nullable IDBRequest)
+        IDBCursor -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.delete Mozilla IDBCursor.delete documentation> 
-delete ::
-       (MonadIO m, IsIDBCursor self) => self -> m (Maybe IDBRequest)
-delete self
-  = liftIO (nullableToMaybe <$> (js_delete (toIDBCursor self)))
+delete :: (MonadIO m, IsIDBCursor self) => self -> m IDBRequest
+delete self = liftIO (js_delete (toIDBCursor self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.delete Mozilla IDBCursor.delete documentation> 
 delete_ :: (MonadIO m, IsIDBCursor self) => self -> m ()
 delete_ self = liftIO (void (js_delete (toIDBCursor self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.delete Mozilla IDBCursor.delete documentation> 
-deleteUnsafe ::
-             (MonadIO m, IsIDBCursor self, HasCallStack) => self -> m IDBRequest
-deleteUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_delete (toIDBCursor self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.delete Mozilla IDBCursor.delete documentation> 
-deleteUnchecked ::
-                (MonadIO m, IsIDBCursor self) => self -> m IDBRequest
-deleteUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_delete (toIDBCursor self)))
  
 foreign import javascript unsafe "$1[\"source\"]" js_getSource ::
-        IDBCursor -> IO (Nullable IDBAny)
+        IDBCursor -> IO IDBCursorSource
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.source Mozilla IDBCursor.source documentation> 
 getSource ::
-          (MonadIO m, IsIDBCursor self) => self -> m (Maybe IDBAny)
-getSource self
-  = liftIO (nullableToMaybe <$> (js_getSource (toIDBCursor self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.source Mozilla IDBCursor.source documentation> 
-getSourceUnsafe ::
-                (MonadIO m, IsIDBCursor self, HasCallStack) => self -> m IDBAny
-getSourceUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSource (toIDBCursor self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.source Mozilla IDBCursor.source documentation> 
-getSourceUnchecked ::
-                   (MonadIO m, IsIDBCursor self) => self -> m IDBAny
-getSourceUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSource (toIDBCursor self)))
+          (MonadIO m, IsIDBCursor self) => self -> m IDBCursorSource
+getSource self = liftIO (js_getSource (toIDBCursor self))
  
 foreign import javascript unsafe "$1[\"direction\"]"
-        js_getDirection :: IDBCursor -> IO JSString
+        js_getDirection :: IDBCursor -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.direction Mozilla IDBCursor.direction documentation> 
 getDirection ::
-             (MonadIO m, IsIDBCursor self, FromJSString result) =>
-               self -> m result
+             (MonadIO m, IsIDBCursor self) => self -> m IDBCursorDirection
 getDirection self
-  = liftIO (fromJSString <$> (js_getDirection (toIDBCursor self)))
+  = liftIO
+      ((js_getDirection (toIDBCursor self)) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "$1[\"key\"]" js_getKey ::
         IDBCursor -> IO JSVal
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IDBCursorWithValue.hs b/src/GHCJS/DOM/JSFFI/Generated/IDBCursorWithValue.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/IDBCursorWithValue.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/IDBCursorWithValue.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,4 +31,4 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursorWithValue.value Mozilla IDBCursorWithValue.value documentation> 
 getValue :: (MonadIO m) => IDBCursorWithValue -> m JSVal
-getValue self = liftIO (js_getValue (self))
+getValue self = liftIO (js_getValue self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IDBDatabase.hs b/src/GHCJS/DOM/JSFFI/Generated/IDBDatabase.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/IDBDatabase.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/IDBDatabase.hs
@@ -5,21 +5,17 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.IDBDatabase
        (js_createObjectStore, createObjectStore, createObjectStore_,
-        createObjectStoreUnsafe, createObjectStoreUnchecked,
         js_deleteObjectStore, deleteObjectStore, js_transaction,
-        transaction, transaction_, transactionUnsafe, transactionUnchecked,
-        js_transaction', transaction', transaction'_, transaction'Unsafe,
-        transaction'Unchecked, js_close, close, js_getName, getName,
+        transaction, transaction_, js_close, close, js_getName, getName,
         js_getVersion, getVersion, js_getObjectStoreNames,
-        getObjectStoreNames, getObjectStoreNamesUnsafe,
-        getObjectStoreNamesUnchecked, abort, error, versionChange,
+        getObjectStoreNames, abort, closeEvent, error, versionChange,
         IDBDatabase(..), gTypeIDBDatabase)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -36,48 +33,27 @@
 foreign import javascript unsafe
         "$1[\"createObjectStore\"]($2, $3)" js_createObjectStore ::
         IDBDatabase ->
-          JSString -> Nullable Dictionary -> IO (Nullable IDBObjectStore)
+          JSString -> Optional IDBObjectStoreParameters -> IO IDBObjectStore
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.createObjectStore Mozilla IDBDatabase.createObjectStore documentation> 
 createObjectStore ::
-                  (MonadIO m, ToJSString name, IsDictionary options) =>
-                    IDBDatabase -> name -> Maybe options -> m (Maybe IDBObjectStore)
-createObjectStore self name options
+                  (MonadIO m, ToJSString name) =>
+                    IDBDatabase ->
+                      name -> Maybe IDBObjectStoreParameters -> m IDBObjectStore
+createObjectStore self name parameters
   = liftIO
-      (nullableToMaybe <$>
-         (js_createObjectStore (self) (toJSString name)
-            (maybeToNullable (fmap toDictionary options))))
+      (js_createObjectStore self (toJSString name)
+         (maybeToOptional parameters))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.createObjectStore Mozilla IDBDatabase.createObjectStore documentation> 
 createObjectStore_ ::
-                   (MonadIO m, ToJSString name, IsDictionary options) =>
-                     IDBDatabase -> name -> Maybe options -> m ()
-createObjectStore_ self name options
+                   (MonadIO m, ToJSString name) =>
+                     IDBDatabase -> name -> Maybe IDBObjectStoreParameters -> m ()
+createObjectStore_ self name parameters
   = liftIO
       (void
-         (js_createObjectStore (self) (toJSString name)
-            (maybeToNullable (fmap toDictionary options))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.createObjectStore Mozilla IDBDatabase.createObjectStore documentation> 
-createObjectStoreUnsafe ::
-                        (MonadIO m, ToJSString name, IsDictionary options, HasCallStack) =>
-                          IDBDatabase -> name -> Maybe options -> m IDBObjectStore
-createObjectStoreUnsafe self name options
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createObjectStore (self) (toJSString name)
-             (maybeToNullable (fmap toDictionary options))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.createObjectStore Mozilla IDBDatabase.createObjectStore documentation> 
-createObjectStoreUnchecked ::
-                           (MonadIO m, ToJSString name, IsDictionary options) =>
-                             IDBDatabase -> name -> Maybe options -> m IDBObjectStore
-createObjectStoreUnchecked self name options
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createObjectStore (self) (toJSString name)
-            (maybeToNullable (fmap toDictionary options))))
+         (js_createObjectStore self (toJSString name)
+            (maybeToOptional parameters)))
  
 foreign import javascript unsafe "$1[\"deleteObjectStore\"]($2)"
         js_deleteObjectStore :: IDBDatabase -> JSString -> IO ()
@@ -86,105 +62,41 @@
 deleteObjectStore ::
                   (MonadIO m, ToJSString name) => IDBDatabase -> name -> m ()
 deleteObjectStore self name
-  = liftIO (js_deleteObjectStore (self) (toJSString name))
+  = liftIO (js_deleteObjectStore self (toJSString name))
  
 foreign import javascript unsafe "$1[\"transaction\"]($2, $3)"
         js_transaction ::
-        IDBDatabase -> JSString -> JSString -> IO (Nullable IDBTransaction)
+        IDBDatabase ->
+          StringOrStrings -> Optional IDBTransactionMode -> IO IDBTransaction
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.transaction Mozilla IDBDatabase.transaction documentation> 
 transaction ::
-            (MonadIO m, ToJSString storeName, ToJSString mode) =>
-              IDBDatabase -> storeName -> mode -> m (Maybe IDBTransaction)
-transaction self storeName mode
+            (MonadIO m, IsStringOrStrings storeNames) =>
+              IDBDatabase ->
+                storeNames -> Maybe IDBTransactionMode -> m IDBTransaction
+transaction self storeNames mode
   = liftIO
-      (nullableToMaybe <$>
-         (js_transaction (self) (toJSString storeName) (toJSString mode)))
+      (toJSVal storeNames >>=
+         \ storeNames' -> js_transaction self (StringOrStrings storeNames')
+         (maybeToOptional mode))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.transaction Mozilla IDBDatabase.transaction documentation> 
 transaction_ ::
-             (MonadIO m, ToJSString storeName, ToJSString mode) =>
-               IDBDatabase -> storeName -> mode -> m ()
-transaction_ self storeName mode
-  = liftIO
-      (void
-         (js_transaction (self) (toJSString storeName) (toJSString mode)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.transaction Mozilla IDBDatabase.transaction documentation> 
-transactionUnsafe ::
-                  (MonadIO m, ToJSString storeName, ToJSString mode, HasCallStack) =>
-                    IDBDatabase -> storeName -> mode -> m IDBTransaction
-transactionUnsafe self storeName mode
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_transaction (self) (toJSString storeName) (toJSString mode)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.transaction Mozilla IDBDatabase.transaction documentation> 
-transactionUnchecked ::
-                     (MonadIO m, ToJSString storeName, ToJSString mode) =>
-                       IDBDatabase -> storeName -> mode -> m IDBTransaction
-transactionUnchecked self storeName mode
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_transaction (self) (toJSString storeName) (toJSString mode)))
- 
-foreign import javascript unsafe "$1[\"transaction\"]($2, $3)"
-        js_transaction' ::
-        IDBDatabase -> JSVal -> JSString -> IO (Nullable IDBTransaction)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.transaction Mozilla IDBDatabase.transaction documentation> 
-transaction' ::
-             (MonadIO m, ToJSString storeNames, ToJSString mode) =>
-               IDBDatabase -> [storeNames] -> mode -> m (Maybe IDBTransaction)
-transaction' self storeNames mode
-  = liftIO
-      (nullableToMaybe <$>
-         (toJSVal storeNames >>=
-            \ storeNames' -> js_transaction' (self) storeNames'
-            (toJSString mode)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.transaction Mozilla IDBDatabase.transaction documentation> 
-transaction'_ ::
-              (MonadIO m, ToJSString storeNames, ToJSString mode) =>
-                IDBDatabase -> [storeNames] -> mode -> m ()
-transaction'_ self storeNames mode
+             (MonadIO m, IsStringOrStrings storeNames) =>
+               IDBDatabase -> storeNames -> Maybe IDBTransactionMode -> m ()
+transaction_ self storeNames mode
   = liftIO
       (void
          (toJSVal storeNames >>=
-            \ storeNames' -> js_transaction' (self) storeNames'
-            (toJSString mode)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.transaction Mozilla IDBDatabase.transaction documentation> 
-transaction'Unsafe ::
-                   (MonadIO m, ToJSString storeNames, ToJSString mode,
-                    HasCallStack) =>
-                     IDBDatabase -> [storeNames] -> mode -> m IDBTransaction
-transaction'Unsafe self storeNames mode
-  = liftIO
-      ((nullableToMaybe <$>
-          (toJSVal storeNames >>=
-             \ storeNames' -> js_transaction' (self) storeNames'
-             (toJSString mode)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.transaction Mozilla IDBDatabase.transaction documentation> 
-transaction'Unchecked ::
-                      (MonadIO m, ToJSString storeNames, ToJSString mode) =>
-                        IDBDatabase -> [storeNames] -> mode -> m IDBTransaction
-transaction'Unchecked self storeNames mode
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (toJSVal storeNames >>=
-            \ storeNames' -> js_transaction' (self) storeNames'
-            (toJSString mode)))
+            \ storeNames' -> js_transaction self (StringOrStrings storeNames')
+            (maybeToOptional mode)))
  
 foreign import javascript unsafe "$1[\"close\"]()" js_close ::
         IDBDatabase -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.close Mozilla IDBDatabase.close documentation> 
 close :: (MonadIO m) => IDBDatabase -> m ()
-close self = liftIO (js_close (self))
+close self = liftIO (js_close self)
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         IDBDatabase -> IO JSString
@@ -192,43 +104,30 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.name Mozilla IDBDatabase.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => IDBDatabase -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"version\"]" js_getVersion ::
         IDBDatabase -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.version Mozilla IDBDatabase.version documentation> 
 getVersion :: (MonadIO m) => IDBDatabase -> m Word64
-getVersion self = liftIO (round <$> (js_getVersion (self)))
+getVersion self = liftIO (round <$> (js_getVersion self))
  
 foreign import javascript unsafe "$1[\"objectStoreNames\"]"
-        js_getObjectStoreNames ::
-        IDBDatabase -> IO (Nullable DOMStringList)
+        js_getObjectStoreNames :: IDBDatabase -> IO DOMStringList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.objectStoreNames Mozilla IDBDatabase.objectStoreNames documentation> 
 getObjectStoreNames ::
-                    (MonadIO m) => IDBDatabase -> m (Maybe DOMStringList)
-getObjectStoreNames self
-  = liftIO (nullableToMaybe <$> (js_getObjectStoreNames (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.objectStoreNames Mozilla IDBDatabase.objectStoreNames documentation> 
-getObjectStoreNamesUnsafe ::
-                          (MonadIO m, HasCallStack) => IDBDatabase -> m DOMStringList
-getObjectStoreNamesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getObjectStoreNames (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.objectStoreNames Mozilla IDBDatabase.objectStoreNames documentation> 
-getObjectStoreNamesUnchecked ::
-                             (MonadIO m) => IDBDatabase -> m DOMStringList
-getObjectStoreNamesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getObjectStoreNames (self)))
+                    (MonadIO m) => IDBDatabase -> m DOMStringList
+getObjectStoreNames self = liftIO (js_getObjectStoreNames self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.onabort Mozilla IDBDatabase.onabort documentation> 
 abort :: EventName IDBDatabase Event
 abort = unsafeEventName (toJSString "abort")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.onclose Mozilla IDBDatabase.onclose documentation> 
+closeEvent :: EventName IDBDatabase CloseEvent
+closeEvent = unsafeEventName (toJSString "close")
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.onerror Mozilla IDBDatabase.onerror documentation> 
 error :: EventName IDBDatabase Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IDBFactory.hs b/src/GHCJS/DOM/JSFFI/Generated/IDBFactory.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/IDBFactory.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/IDBFactory.hs
@@ -4,16 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.IDBFactory
-       (js_open, open, open_, openUnsafe, openUnchecked,
-        js_deleteDatabase, deleteDatabase, deleteDatabase_,
-        deleteDatabaseUnsafe, deleteDatabaseUnchecked, js_cmp, cmp, cmp_,
-        IDBFactory(..), gTypeIDBFactory)
+       (js_open, open, open_, js_deleteDatabase, deleteDatabase,
+        deleteDatabase_, js_cmp, cmp, cmp_, IDBFactory(..),
+        gTypeIDBFactory)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,93 +21,70 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"open\"]($2, $3)" js_open ::
-        IDBFactory -> JSString -> Double -> IO (Nullable IDBOpenDBRequest)
+        IDBFactory -> JSString -> Optional Double -> IO IDBOpenDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory.open Mozilla IDBFactory.open documentation> 
 open ::
      (MonadIO m, ToJSString name) =>
-       IDBFactory -> name -> Word64 -> m (Maybe IDBOpenDBRequest)
+       IDBFactory -> name -> Maybe Word64 -> m IDBOpenDBRequest
 open self name version
   = liftIO
-      (nullableToMaybe <$>
-         (js_open (self) (toJSString name) (fromIntegral version)))
+      (js_open self (toJSString name)
+         (maybeToOptional (fmap fromIntegral version)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory.open Mozilla IDBFactory.open documentation> 
 open_ ::
       (MonadIO m, ToJSString name) =>
-        IDBFactory -> name -> Word64 -> m ()
+        IDBFactory -> name -> Maybe Word64 -> m ()
 open_ self name version
   = liftIO
-      (void (js_open (self) (toJSString name) (fromIntegral version)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory.open Mozilla IDBFactory.open documentation> 
-openUnsafe ::
-           (MonadIO m, ToJSString name, HasCallStack) =>
-             IDBFactory -> name -> Word64 -> m IDBOpenDBRequest
-openUnsafe self name version
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_open (self) (toJSString name) (fromIntegral version)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory.open Mozilla IDBFactory.open documentation> 
-openUnchecked ::
-              (MonadIO m, ToJSString name) =>
-                IDBFactory -> name -> Word64 -> m IDBOpenDBRequest
-openUnchecked self name version
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_open (self) (toJSString name) (fromIntegral version)))
+      (void
+         (js_open self (toJSString name)
+            (maybeToOptional (fmap fromIntegral version))))
  
 foreign import javascript unsafe "$1[\"deleteDatabase\"]($2)"
-        js_deleteDatabase ::
-        IDBFactory -> JSString -> IO (Nullable IDBOpenDBRequest)
+        js_deleteDatabase :: IDBFactory -> JSString -> IO IDBOpenDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory.deleteDatabase Mozilla IDBFactory.deleteDatabase documentation> 
 deleteDatabase ::
                (MonadIO m, ToJSString name) =>
-                 IDBFactory -> name -> m (Maybe IDBOpenDBRequest)
+                 IDBFactory -> name -> m IDBOpenDBRequest
 deleteDatabase self name
-  = liftIO
-      (nullableToMaybe <$> (js_deleteDatabase (self) (toJSString name)))
+  = liftIO (js_deleteDatabase self (toJSString name))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory.deleteDatabase Mozilla IDBFactory.deleteDatabase documentation> 
 deleteDatabase_ ::
                 (MonadIO m, ToJSString name) => IDBFactory -> name -> m ()
 deleteDatabase_ self name
-  = liftIO (void (js_deleteDatabase (self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory.deleteDatabase Mozilla IDBFactory.deleteDatabase documentation> 
-deleteDatabaseUnsafe ::
-                     (MonadIO m, ToJSString name, HasCallStack) =>
-                       IDBFactory -> name -> m IDBOpenDBRequest
-deleteDatabaseUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$> (js_deleteDatabase (self) (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory.deleteDatabase Mozilla IDBFactory.deleteDatabase documentation> 
-deleteDatabaseUnchecked ::
-                        (MonadIO m, ToJSString name) =>
-                          IDBFactory -> name -> m IDBOpenDBRequest
-deleteDatabaseUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_deleteDatabase (self) (toJSString name)))
+  = liftIO (void (js_deleteDatabase self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"cmp\"]($2, $3)" js_cmp ::
         IDBFactory -> JSVal -> JSVal -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory.cmp Mozilla IDBFactory.cmp documentation> 
-cmp :: (MonadIO m) => IDBFactory -> JSVal -> JSVal -> m Int
-cmp self first second = liftIO (js_cmp (self) first second)
+cmp ::
+    (MonadIO m, ToJSVal first, ToJSVal second) =>
+      IDBFactory -> first -> second -> m Int
+cmp self first second
+  = liftIO
+      (toJSVal second >>=
+         \ second' ->
+           toJSVal first >>= \ first' -> js_cmp self first' second')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory.cmp Mozilla IDBFactory.cmp documentation> 
-cmp_ :: (MonadIO m) => IDBFactory -> JSVal -> JSVal -> m ()
-cmp_ self first second = liftIO (void (js_cmp (self) first second))
+cmp_ ::
+     (MonadIO m, ToJSVal first, ToJSVal second) =>
+       IDBFactory -> first -> second -> m ()
+cmp_ self first second
+  = liftIO
+      (void
+         (toJSVal second >>=
+            \ second' ->
+              toJSVal first >>= \ first' -> js_cmp self first' second'))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IDBIndex.hs b/src/GHCJS/DOM/JSFFI/Generated/IDBIndex.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/IDBIndex.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/IDBIndex.hs
@@ -5,20 +5,16 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.IDBIndex
        (js_openCursorRange, openCursorRange, openCursorRange_,
-        openCursorRangeUnsafe, openCursorRangeUnchecked, js_openCursor,
-        openCursor, openCursor_, openCursorUnsafe, openCursorUnchecked,
-        js_openKeyCursorRange, openKeyCursorRange, openKeyCursorRange_,
-        openKeyCursorRangeUnsafe, openKeyCursorRangeUnchecked,
-        js_openKeyCursor, openKeyCursor, openKeyCursor_,
-        openKeyCursorUnsafe, openKeyCursorUnchecked, js_getRange, getRange,
-        getRange_, getRangeUnsafe, getRangeUnchecked, js_get, get, get_,
-        getUnsafe, getUnchecked, js_getKeyRange, getKeyRange, getKeyRange_,
-        getKeyRangeUnsafe, getKeyRangeUnchecked, js_getKey, getKey,
-        getKey_, getKeyUnsafe, getKeyUnchecked, js_countRange, countRange,
-        countRange_, countRangeUnsafe, countRangeUnchecked, js_count,
-        count, count_, countUnsafe, countUnchecked, js_getName, getName,
-        js_getObjectStore, getObjectStore, getObjectStoreUnsafe,
-        getObjectStoreUnchecked, js_getKeyPath, getKeyPath,
+        js_openCursor, openCursor, openCursor_, js_openKeyCursorRange,
+        openKeyCursorRange, openKeyCursorRange_, js_openKeyCursor,
+        openKeyCursor, openKeyCursor_, js_getRange, getRange, getRange_,
+        js_get, get, get_, js_getKeyRange, getKeyRange, getKeyRange_,
+        js_getKey, getKey, getKey_, js_getAllRange, getAllRange,
+        getAllRange_, js_getAll, getAll, getAll_, js_getAllKeysRange,
+        getAllKeysRange, getAllKeysRange_, js_getAllKeys, getAllKeys,
+        getAllKeys_, js_countRange, countRange, countRange_, js_count,
+        count, count_, js_setName, setName, js_getName, getName,
+        js_getObjectStore, getObjectStore, js_getKeyPath, getKeyPath,
         getKeyPathUnsafe, getKeyPathUnchecked, js_getMultiEntry,
         getMultiEntry, js_getUnique, getUnique, IDBIndex(..),
         gTypeIDBIndex)
@@ -27,7 +23,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -36,6 +32,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -44,413 +41,321 @@
 foreign import javascript unsafe "$1[\"openCursor\"]($2, $3)"
         js_openCursorRange ::
         IDBIndex ->
-          Nullable IDBKeyRange -> JSString -> IO (Nullable IDBRequest)
+          Optional IDBKeyRange ->
+            Optional IDBCursorDirection -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openCursor Mozilla IDBIndex.openCursor documentation> 
 openCursorRange ::
-                (MonadIO m, ToJSString direction) =>
-                  IDBIndex -> Maybe IDBKeyRange -> direction -> m (Maybe IDBRequest)
+                (MonadIO m) =>
+                  IDBIndex ->
+                    Maybe IDBKeyRange -> Maybe IDBCursorDirection -> m IDBRequest
 openCursorRange self range direction
   = liftIO
-      (nullableToMaybe <$>
-         (js_openCursorRange (self) (maybeToNullable range)
-            (toJSString direction)))
+      (js_openCursorRange self (maybeToOptional range)
+         (maybeToOptional direction))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openCursor Mozilla IDBIndex.openCursor documentation> 
 openCursorRange_ ::
-                 (MonadIO m, ToJSString direction) =>
-                   IDBIndex -> Maybe IDBKeyRange -> direction -> m ()
+                 (MonadIO m) =>
+                   IDBIndex -> Maybe IDBKeyRange -> Maybe IDBCursorDirection -> m ()
 openCursorRange_ self range direction
   = liftIO
       (void
-         (js_openCursorRange (self) (maybeToNullable range)
-            (toJSString direction)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openCursor Mozilla IDBIndex.openCursor documentation> 
-openCursorRangeUnsafe ::
-                      (MonadIO m, ToJSString direction, HasCallStack) =>
-                        IDBIndex -> Maybe IDBKeyRange -> direction -> m IDBRequest
-openCursorRangeUnsafe self range direction
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_openCursorRange (self) (maybeToNullable range)
-             (toJSString direction)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openCursor Mozilla IDBIndex.openCursor documentation> 
-openCursorRangeUnchecked ::
-                         (MonadIO m, ToJSString direction) =>
-                           IDBIndex -> Maybe IDBKeyRange -> direction -> m IDBRequest
-openCursorRangeUnchecked self range direction
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_openCursorRange (self) (maybeToNullable range)
-            (toJSString direction)))
+         (js_openCursorRange self (maybeToOptional range)
+            (maybeToOptional direction)))
  
 foreign import javascript unsafe "$1[\"openCursor\"]($2, $3)"
         js_openCursor ::
-        IDBIndex -> JSVal -> JSString -> IO (Nullable IDBRequest)
+        IDBIndex -> JSVal -> Optional IDBCursorDirection -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openCursor Mozilla IDBIndex.openCursor documentation> 
 openCursor ::
-           (MonadIO m, ToJSString direction) =>
-             IDBIndex -> JSVal -> direction -> m (Maybe IDBRequest)
+           (MonadIO m, ToJSVal key) =>
+             IDBIndex -> key -> Maybe IDBCursorDirection -> m IDBRequest
 openCursor self key direction
   = liftIO
-      (nullableToMaybe <$>
-         (js_openCursor (self) key (toJSString direction)))
+      (toJSVal key >>= \ key' -> js_openCursor self key'
+         (maybeToOptional direction))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openCursor Mozilla IDBIndex.openCursor documentation> 
 openCursor_ ::
-            (MonadIO m, ToJSString direction) =>
-              IDBIndex -> JSVal -> direction -> m ()
+            (MonadIO m, ToJSVal key) =>
+              IDBIndex -> key -> Maybe IDBCursorDirection -> m ()
 openCursor_ self key direction
-  = liftIO (void (js_openCursor (self) key (toJSString direction)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openCursor Mozilla IDBIndex.openCursor documentation> 
-openCursorUnsafe ::
-                 (MonadIO m, ToJSString direction, HasCallStack) =>
-                   IDBIndex -> JSVal -> direction -> m IDBRequest
-openCursorUnsafe self key direction
   = liftIO
-      ((nullableToMaybe <$>
-          (js_openCursor (self) key (toJSString direction)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openCursor Mozilla IDBIndex.openCursor documentation> 
-openCursorUnchecked ::
-                    (MonadIO m, ToJSString direction) =>
-                      IDBIndex -> JSVal -> direction -> m IDBRequest
-openCursorUnchecked self key direction
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_openCursor (self) key (toJSString direction)))
+      (void
+         (toJSVal key >>= \ key' -> js_openCursor self key'
+            (maybeToOptional direction)))
  
 foreign import javascript unsafe "$1[\"openKeyCursor\"]($2, $3)"
         js_openKeyCursorRange ::
         IDBIndex ->
-          Nullable IDBKeyRange -> JSString -> IO (Nullable IDBRequest)
+          Optional IDBKeyRange ->
+            Optional IDBCursorDirection -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openKeyCursor Mozilla IDBIndex.openKeyCursor documentation> 
 openKeyCursorRange ::
-                   (MonadIO m, ToJSString direction) =>
-                     IDBIndex -> Maybe IDBKeyRange -> direction -> m (Maybe IDBRequest)
+                   (MonadIO m) =>
+                     IDBIndex ->
+                       Maybe IDBKeyRange -> Maybe IDBCursorDirection -> m IDBRequest
 openKeyCursorRange self range direction
   = liftIO
-      (nullableToMaybe <$>
-         (js_openKeyCursorRange (self) (maybeToNullable range)
-            (toJSString direction)))
+      (js_openKeyCursorRange self (maybeToOptional range)
+         (maybeToOptional direction))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openKeyCursor Mozilla IDBIndex.openKeyCursor documentation> 
 openKeyCursorRange_ ::
-                    (MonadIO m, ToJSString direction) =>
-                      IDBIndex -> Maybe IDBKeyRange -> direction -> m ()
+                    (MonadIO m) =>
+                      IDBIndex -> Maybe IDBKeyRange -> Maybe IDBCursorDirection -> m ()
 openKeyCursorRange_ self range direction
   = liftIO
       (void
-         (js_openKeyCursorRange (self) (maybeToNullable range)
-            (toJSString direction)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openKeyCursor Mozilla IDBIndex.openKeyCursor documentation> 
-openKeyCursorRangeUnsafe ::
-                         (MonadIO m, ToJSString direction, HasCallStack) =>
-                           IDBIndex -> Maybe IDBKeyRange -> direction -> m IDBRequest
-openKeyCursorRangeUnsafe self range direction
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_openKeyCursorRange (self) (maybeToNullable range)
-             (toJSString direction)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openKeyCursor Mozilla IDBIndex.openKeyCursor documentation> 
-openKeyCursorRangeUnchecked ::
-                            (MonadIO m, ToJSString direction) =>
-                              IDBIndex -> Maybe IDBKeyRange -> direction -> m IDBRequest
-openKeyCursorRangeUnchecked self range direction
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_openKeyCursorRange (self) (maybeToNullable range)
-            (toJSString direction)))
+         (js_openKeyCursorRange self (maybeToOptional range)
+            (maybeToOptional direction)))
  
 foreign import javascript unsafe "$1[\"openKeyCursor\"]($2, $3)"
         js_openKeyCursor ::
-        IDBIndex -> JSVal -> JSString -> IO (Nullable IDBRequest)
+        IDBIndex -> JSVal -> Optional IDBCursorDirection -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openKeyCursor Mozilla IDBIndex.openKeyCursor documentation> 
 openKeyCursor ::
-              (MonadIO m, ToJSString direction) =>
-                IDBIndex -> JSVal -> direction -> m (Maybe IDBRequest)
+              (MonadIO m, ToJSVal key) =>
+                IDBIndex -> key -> Maybe IDBCursorDirection -> m IDBRequest
 openKeyCursor self key direction
   = liftIO
-      (nullableToMaybe <$>
-         (js_openKeyCursor (self) key (toJSString direction)))
+      (toJSVal key >>= \ key' -> js_openKeyCursor self key'
+         (maybeToOptional direction))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openKeyCursor Mozilla IDBIndex.openKeyCursor documentation> 
 openKeyCursor_ ::
-               (MonadIO m, ToJSString direction) =>
-                 IDBIndex -> JSVal -> direction -> m ()
+               (MonadIO m, ToJSVal key) =>
+                 IDBIndex -> key -> Maybe IDBCursorDirection -> m ()
 openKeyCursor_ self key direction
   = liftIO
-      (void (js_openKeyCursor (self) key (toJSString direction)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openKeyCursor Mozilla IDBIndex.openKeyCursor documentation> 
-openKeyCursorUnsafe ::
-                    (MonadIO m, ToJSString direction, HasCallStack) =>
-                      IDBIndex -> JSVal -> direction -> m IDBRequest
-openKeyCursorUnsafe self key direction
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_openKeyCursor (self) key (toJSString direction)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.openKeyCursor Mozilla IDBIndex.openKeyCursor documentation> 
-openKeyCursorUnchecked ::
-                       (MonadIO m, ToJSString direction) =>
-                         IDBIndex -> JSVal -> direction -> m IDBRequest
-openKeyCursorUnchecked self key direction
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_openKeyCursor (self) key (toJSString direction)))
+      (void
+         (toJSVal key >>= \ key' -> js_openKeyCursor self key'
+            (maybeToOptional direction)))
  
 foreign import javascript unsafe "$1[\"get\"]($2)" js_getRange ::
-        IDBIndex -> Nullable IDBKeyRange -> IO (Nullable IDBRequest)
+        IDBIndex -> Optional IDBKeyRange -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.get Mozilla IDBIndex.get documentation> 
 getRange ::
-         (MonadIO m) =>
-           IDBIndex -> Maybe IDBKeyRange -> m (Maybe IDBRequest)
-getRange self key
-  = liftIO
-      (nullableToMaybe <$> (js_getRange (self) (maybeToNullable key)))
+         (MonadIO m) => IDBIndex -> Maybe IDBKeyRange -> m IDBRequest
+getRange self key = liftIO (js_getRange self (maybeToOptional key))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.get Mozilla IDBIndex.get documentation> 
 getRange_ :: (MonadIO m) => IDBIndex -> Maybe IDBKeyRange -> m ()
 getRange_ self key
-  = liftIO (void (js_getRange (self) (maybeToNullable key)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.get Mozilla IDBIndex.get documentation> 
-getRangeUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 IDBIndex -> Maybe IDBKeyRange -> m IDBRequest
-getRangeUnsafe self key
-  = liftIO
-      ((nullableToMaybe <$> (js_getRange (self) (maybeToNullable key)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.get Mozilla IDBIndex.get documentation> 
-getRangeUnchecked ::
-                  (MonadIO m) => IDBIndex -> Maybe IDBKeyRange -> m IDBRequest
-getRangeUnchecked self key
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getRange (self) (maybeToNullable key)))
+  = liftIO (void (js_getRange self (maybeToOptional key)))
  
 foreign import javascript unsafe "$1[\"get\"]($2)" js_get ::
-        IDBIndex -> JSVal -> IO (Nullable IDBRequest)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.get Mozilla IDBIndex.get documentation> 
-get :: (MonadIO m) => IDBIndex -> JSVal -> m (Maybe IDBRequest)
-get self key = liftIO (nullableToMaybe <$> (js_get (self) key))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.get Mozilla IDBIndex.get documentation> 
-get_ :: (MonadIO m) => IDBIndex -> JSVal -> m ()
-get_ self key = liftIO (void (js_get (self) key))
+        IDBIndex -> JSVal -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.get Mozilla IDBIndex.get documentation> 
-getUnsafe ::
-          (MonadIO m, HasCallStack) => IDBIndex -> JSVal -> m IDBRequest
-getUnsafe self key
-  = liftIO
-      ((nullableToMaybe <$> (js_get (self) key)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+get :: (MonadIO m, ToJSVal key) => IDBIndex -> key -> m IDBRequest
+get self key = liftIO (toJSVal key >>= \ key' -> js_get self key')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.get Mozilla IDBIndex.get documentation> 
-getUnchecked :: (MonadIO m) => IDBIndex -> JSVal -> m IDBRequest
-getUnchecked self key
-  = liftIO (fromJust . nullableToMaybe <$> (js_get (self) key))
+get_ :: (MonadIO m, ToJSVal key) => IDBIndex -> key -> m ()
+get_ self key
+  = liftIO (void (toJSVal key >>= \ key' -> js_get self key'))
  
 foreign import javascript unsafe "$1[\"getKey\"]($2)"
-        js_getKeyRange ::
-        IDBIndex -> Nullable IDBKeyRange -> IO (Nullable IDBRequest)
+        js_getKeyRange :: IDBIndex -> Optional IDBKeyRange -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getKey Mozilla IDBIndex.getKey documentation> 
 getKeyRange ::
-            (MonadIO m) =>
-              IDBIndex -> Maybe IDBKeyRange -> m (Maybe IDBRequest)
+            (MonadIO m) => IDBIndex -> Maybe IDBKeyRange -> m IDBRequest
 getKeyRange self key
-  = liftIO
-      (nullableToMaybe <$> (js_getKeyRange (self) (maybeToNullable key)))
+  = liftIO (js_getKeyRange self (maybeToOptional key))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getKey Mozilla IDBIndex.getKey documentation> 
 getKeyRange_ ::
              (MonadIO m) => IDBIndex -> Maybe IDBKeyRange -> m ()
 getKeyRange_ self key
-  = liftIO (void (js_getKeyRange (self) (maybeToNullable key)))
+  = liftIO (void (js_getKeyRange self (maybeToOptional key)))
+ 
+foreign import javascript unsafe "$1[\"getKey\"]($2)" js_getKey ::
+        IDBIndex -> JSVal -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getKey Mozilla IDBIndex.getKey documentation> 
-getKeyRangeUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    IDBIndex -> Maybe IDBKeyRange -> m IDBRequest
-getKeyRangeUnsafe self key
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getKeyRange (self) (maybeToNullable key)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+getKey ::
+       (MonadIO m, ToJSVal key) => IDBIndex -> key -> m IDBRequest
+getKey self key
+  = liftIO (toJSVal key >>= \ key' -> js_getKey self key')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getKey Mozilla IDBIndex.getKey documentation> 
-getKeyRangeUnchecked ::
-                     (MonadIO m) => IDBIndex -> Maybe IDBKeyRange -> m IDBRequest
-getKeyRangeUnchecked self key
+getKey_ :: (MonadIO m, ToJSVal key) => IDBIndex -> key -> m ()
+getKey_ self key
+  = liftIO (void (toJSVal key >>= \ key' -> js_getKey self key'))
+ 
+foreign import javascript unsafe "$1[\"getAll\"]($2, $3)"
+        js_getAllRange ::
+        IDBIndex -> Optional IDBKeyRange -> Optional Word -> IO IDBRequest
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getAll Mozilla IDBIndex.getAll documentation> 
+getAllRange ::
+            (MonadIO m) =>
+              IDBIndex -> Maybe IDBKeyRange -> Maybe Word -> m IDBRequest
+getAllRange self range count
   = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getKeyRange (self) (maybeToNullable key)))
+      (js_getAllRange self (maybeToOptional range)
+         (maybeToOptional count))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getAll Mozilla IDBIndex.getAll documentation> 
+getAllRange_ ::
+             (MonadIO m) => IDBIndex -> Maybe IDBKeyRange -> Maybe Word -> m ()
+getAllRange_ self range count
+  = liftIO
+      (void
+         (js_getAllRange self (maybeToOptional range)
+            (maybeToOptional count)))
  
-foreign import javascript unsafe "$1[\"getKey\"]($2)" js_getKey ::
-        IDBIndex -> JSVal -> IO (Nullable IDBRequest)
+foreign import javascript unsafe "$1[\"getAll\"]($2, $3)" js_getAll
+        :: IDBIndex -> JSVal -> Optional Word -> IO IDBRequest
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getKey Mozilla IDBIndex.getKey documentation> 
-getKey :: (MonadIO m) => IDBIndex -> JSVal -> m (Maybe IDBRequest)
-getKey self key
-  = liftIO (nullableToMaybe <$> (js_getKey (self) key))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getAll Mozilla IDBIndex.getAll documentation> 
+getAll ::
+       (MonadIO m, ToJSVal key) =>
+         IDBIndex -> key -> Maybe Word -> m IDBRequest
+getAll self key count
+  = liftIO
+      (toJSVal key >>= \ key' -> js_getAll self key'
+         (maybeToOptional count))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getKey Mozilla IDBIndex.getKey documentation> 
-getKey_ :: (MonadIO m) => IDBIndex -> JSVal -> m ()
-getKey_ self key = liftIO (void (js_getKey (self) key))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getAll Mozilla IDBIndex.getAll documentation> 
+getAll_ ::
+        (MonadIO m, ToJSVal key) => IDBIndex -> key -> Maybe Word -> m ()
+getAll_ self key count
+  = liftIO
+      (void
+         (toJSVal key >>= \ key' -> js_getAll self key'
+            (maybeToOptional count)))
+ 
+foreign import javascript unsafe "$1[\"getAllKeys\"]($2, $3)"
+        js_getAllKeysRange ::
+        IDBIndex -> Optional IDBKeyRange -> Optional Word -> IO IDBRequest
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getKey Mozilla IDBIndex.getKey documentation> 
-getKeyUnsafe ::
-             (MonadIO m, HasCallStack) => IDBIndex -> JSVal -> m IDBRequest
-getKeyUnsafe self key
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getAllKeys Mozilla IDBIndex.getAllKeys documentation> 
+getAllKeysRange ::
+                (MonadIO m) =>
+                  IDBIndex -> Maybe IDBKeyRange -> Maybe Word -> m IDBRequest
+getAllKeysRange self range count
   = liftIO
-      ((nullableToMaybe <$> (js_getKey (self) key)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (js_getAllKeysRange self (maybeToOptional range)
+         (maybeToOptional count))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getKey Mozilla IDBIndex.getKey documentation> 
-getKeyUnchecked :: (MonadIO m) => IDBIndex -> JSVal -> m IDBRequest
-getKeyUnchecked self key
-  = liftIO (fromJust . nullableToMaybe <$> (js_getKey (self) key))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getAllKeys Mozilla IDBIndex.getAllKeys documentation> 
+getAllKeysRange_ ::
+                 (MonadIO m) => IDBIndex -> Maybe IDBKeyRange -> Maybe Word -> m ()
+getAllKeysRange_ self range count
+  = liftIO
+      (void
+         (js_getAllKeysRange self (maybeToOptional range)
+            (maybeToOptional count)))
  
+foreign import javascript unsafe "$1[\"getAllKeys\"]($2, $3)"
+        js_getAllKeys ::
+        IDBIndex -> JSVal -> Optional Word -> IO IDBRequest
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getAllKeys Mozilla IDBIndex.getAllKeys documentation> 
+getAllKeys ::
+           (MonadIO m, ToJSVal key) =>
+             IDBIndex -> key -> Maybe Word -> m IDBRequest
+getAllKeys self key count
+  = liftIO
+      (toJSVal key >>= \ key' -> js_getAllKeys self key'
+         (maybeToOptional count))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.getAllKeys Mozilla IDBIndex.getAllKeys documentation> 
+getAllKeys_ ::
+            (MonadIO m, ToJSVal key) => IDBIndex -> key -> Maybe Word -> m ()
+getAllKeys_ self key count
+  = liftIO
+      (void
+         (toJSVal key >>= \ key' -> js_getAllKeys self key'
+            (maybeToOptional count)))
+ 
 foreign import javascript unsafe "$1[\"count\"]($2)" js_countRange
-        :: IDBIndex -> Nullable IDBKeyRange -> IO (Nullable IDBRequest)
+        :: IDBIndex -> Optional IDBKeyRange -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.count Mozilla IDBIndex.count documentation> 
 countRange ::
-           (MonadIO m) =>
-             IDBIndex -> Maybe IDBKeyRange -> m (Maybe IDBRequest)
+           (MonadIO m) => IDBIndex -> Maybe IDBKeyRange -> m IDBRequest
 countRange self range
-  = liftIO
-      (nullableToMaybe <$>
-         (js_countRange (self) (maybeToNullable range)))
+  = liftIO (js_countRange self (maybeToOptional range))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.count Mozilla IDBIndex.count documentation> 
 countRange_ :: (MonadIO m) => IDBIndex -> Maybe IDBKeyRange -> m ()
 countRange_ self range
-  = liftIO (void (js_countRange (self) (maybeToNullable range)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.count Mozilla IDBIndex.count documentation> 
-countRangeUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   IDBIndex -> Maybe IDBKeyRange -> m IDBRequest
-countRangeUnsafe self range
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_countRange (self) (maybeToNullable range)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.count Mozilla IDBIndex.count documentation> 
-countRangeUnchecked ::
-                    (MonadIO m) => IDBIndex -> Maybe IDBKeyRange -> m IDBRequest
-countRangeUnchecked self range
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_countRange (self) (maybeToNullable range)))
+  = liftIO (void (js_countRange self (maybeToOptional range)))
  
 foreign import javascript unsafe "$1[\"count\"]($2)" js_count ::
-        IDBIndex -> JSVal -> IO (Nullable IDBRequest)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.count Mozilla IDBIndex.count documentation> 
-count :: (MonadIO m) => IDBIndex -> JSVal -> m (Maybe IDBRequest)
-count self key = liftIO (nullableToMaybe <$> (js_count (self) key))
+        IDBIndex -> JSVal -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.count Mozilla IDBIndex.count documentation> 
-count_ :: (MonadIO m) => IDBIndex -> JSVal -> m ()
-count_ self key = liftIO (void (js_count (self) key))
+count ::
+      (MonadIO m, ToJSVal key) => IDBIndex -> key -> m IDBRequest
+count self key
+  = liftIO (toJSVal key >>= \ key' -> js_count self key')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.count Mozilla IDBIndex.count documentation> 
-countUnsafe ::
-            (MonadIO m, HasCallStack) => IDBIndex -> JSVal -> m IDBRequest
-countUnsafe self key
-  = liftIO
-      ((nullableToMaybe <$> (js_count (self) key)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+count_ :: (MonadIO m, ToJSVal key) => IDBIndex -> key -> m ()
+count_ self key
+  = liftIO (void (toJSVal key >>= \ key' -> js_count self key'))
+ 
+foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
+        IDBIndex -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.count Mozilla IDBIndex.count documentation> 
-countUnchecked :: (MonadIO m) => IDBIndex -> JSVal -> m IDBRequest
-countUnchecked self key
-  = liftIO (fromJust . nullableToMaybe <$> (js_count (self) key))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.name Mozilla IDBIndex.name documentation> 
+setName :: (MonadIO m, ToJSString val) => IDBIndex -> val -> m ()
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         IDBIndex -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.name Mozilla IDBIndex.name documentation> 
 getName :: (MonadIO m, FromJSString result) => IDBIndex -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"objectStore\"]"
-        js_getObjectStore :: IDBIndex -> IO (Nullable IDBObjectStore)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.objectStore Mozilla IDBIndex.objectStore documentation> 
-getObjectStore ::
-               (MonadIO m) => IDBIndex -> m (Maybe IDBObjectStore)
-getObjectStore self
-  = liftIO (nullableToMaybe <$> (js_getObjectStore (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.objectStore Mozilla IDBIndex.objectStore documentation> 
-getObjectStoreUnsafe ::
-                     (MonadIO m, HasCallStack) => IDBIndex -> m IDBObjectStore
-getObjectStoreUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getObjectStore (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getObjectStore :: IDBIndex -> IO IDBObjectStore
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.objectStore Mozilla IDBIndex.objectStore documentation> 
-getObjectStoreUnchecked ::
-                        (MonadIO m) => IDBIndex -> m IDBObjectStore
-getObjectStoreUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getObjectStore (self)))
+getObjectStore :: (MonadIO m) => IDBIndex -> m IDBObjectStore
+getObjectStore self = liftIO (js_getObjectStore self)
  
 foreign import javascript unsafe "$1[\"keyPath\"]" js_getKeyPath ::
-        IDBIndex -> IO (Nullable IDBAny)
+        IDBIndex -> IO (Nullable IDBKeyPath)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.keyPath Mozilla IDBIndex.keyPath documentation> 
-getKeyPath :: (MonadIO m) => IDBIndex -> m (Maybe IDBAny)
-getKeyPath self
-  = liftIO (nullableToMaybe <$> (js_getKeyPath (self)))
+getKeyPath :: (MonadIO m) => IDBIndex -> m (Maybe IDBKeyPath)
+getKeyPath self = liftIO (nullableToMaybe <$> (js_getKeyPath self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.keyPath Mozilla IDBIndex.keyPath documentation> 
 getKeyPathUnsafe ::
-                 (MonadIO m, HasCallStack) => IDBIndex -> m IDBAny
+                 (MonadIO m, HasCallStack) => IDBIndex -> m IDBKeyPath
 getKeyPathUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getKeyPath (self))) >>=
+      ((nullableToMaybe <$> (js_getKeyPath self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.keyPath Mozilla IDBIndex.keyPath documentation> 
-getKeyPathUnchecked :: (MonadIO m) => IDBIndex -> m IDBAny
+getKeyPathUnchecked :: (MonadIO m) => IDBIndex -> m IDBKeyPath
 getKeyPathUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getKeyPath (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getKeyPath self))
  
 foreign import javascript unsafe "($1[\"multiEntry\"] ? 1 : 0)"
         js_getMultiEntry :: IDBIndex -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.multiEntry Mozilla IDBIndex.multiEntry documentation> 
 getMultiEntry :: (MonadIO m) => IDBIndex -> m Bool
-getMultiEntry self = liftIO (js_getMultiEntry (self))
+getMultiEntry self = liftIO (js_getMultiEntry self)
  
 foreign import javascript unsafe "($1[\"unique\"] ? 1 : 0)"
         js_getUnique :: IDBIndex -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex.unique Mozilla IDBIndex.unique documentation> 
 getUnique :: (MonadIO m) => IDBIndex -> m Bool
-getUnique self = liftIO (js_getUnique (self))
+getUnique self = liftIO (js_getUnique self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IDBKeyRange.hs b/src/GHCJS/DOM/JSFFI/Generated/IDBKeyRange.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/IDBKeyRange.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/IDBKeyRange.hs
@@ -4,19 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.IDBKeyRange
-       (js_only, only, only_, onlyUnsafe, onlyUnchecked, js_lowerBound,
-        lowerBound, lowerBound_, lowerBoundUnsafe, lowerBoundUnchecked,
-        js_upperBound, upperBound, upperBound_, upperBoundUnsafe,
-        upperBoundUnchecked, js_bound, bound, bound_, boundUnsafe,
-        boundUnchecked, js_getLower, getLower, js_getUpper, getUpper,
-        js_getLowerOpen, getLowerOpen, js_getUpperOpen, getUpperOpen,
-        IDBKeyRange(..), gTypeIDBKeyRange)
+       (js_only, only, only_, js_lowerBound, lowerBound, lowerBound_,
+        js_upperBound, upperBound, upperBound_, js_bound, bound, bound_,
+        js_includes, includes, includes_, js_getLower, getLower,
+        js_getUpper, getUpper, js_getLowerOpen, getLowerOpen,
+        js_getUpperOpen, getUpperOpen, IDBKeyRange(..), gTypeIDBKeyRange)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,167 +23,131 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"only\"]($2)" js_only ::
-        IDBKeyRange -> JSVal -> IO (Nullable IDBKeyRange)
+        IDBKeyRange -> JSVal -> IO IDBKeyRange
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.only Mozilla IDBKeyRange.only documentation> 
 only ::
-     (MonadIO m) => IDBKeyRange -> JSVal -> m (Maybe IDBKeyRange)
+     (MonadIO m, ToJSVal value) => IDBKeyRange -> value -> m IDBKeyRange
 only self value
-  = liftIO (nullableToMaybe <$> (js_only (self) value))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.only Mozilla IDBKeyRange.only documentation> 
-only_ :: (MonadIO m) => IDBKeyRange -> JSVal -> m ()
-only_ self value = liftIO (void (js_only (self) value))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.only Mozilla IDBKeyRange.only documentation> 
-onlyUnsafe ::
-           (MonadIO m, HasCallStack) => IDBKeyRange -> JSVal -> m IDBKeyRange
-onlyUnsafe self value
-  = liftIO
-      ((nullableToMaybe <$> (js_only (self) value)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+  = liftIO (toJSVal value >>= \ value' -> js_only self value')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.only Mozilla IDBKeyRange.only documentation> 
-onlyUnchecked ::
-              (MonadIO m) => IDBKeyRange -> JSVal -> m IDBKeyRange
-onlyUnchecked self value
-  = liftIO (fromJust . nullableToMaybe <$> (js_only (self) value))
+only_ :: (MonadIO m, ToJSVal value) => IDBKeyRange -> value -> m ()
+only_ self value
+  = liftIO (void (toJSVal value >>= \ value' -> js_only self value'))
  
 foreign import javascript unsafe "$1[\"lowerBound\"]($2, $3)"
-        js_lowerBound ::
-        IDBKeyRange -> JSVal -> Bool -> IO (Nullable IDBKeyRange)
+        js_lowerBound :: IDBKeyRange -> JSVal -> Bool -> IO IDBKeyRange
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.lowerBound Mozilla IDBKeyRange.lowerBound documentation> 
 lowerBound ::
-           (MonadIO m) =>
-             IDBKeyRange -> JSVal -> Bool -> m (Maybe IDBKeyRange)
+           (MonadIO m, ToJSVal lower) =>
+             IDBKeyRange -> lower -> Bool -> m IDBKeyRange
 lowerBound self lower open
-  = liftIO (nullableToMaybe <$> (js_lowerBound (self) lower open))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.lowerBound Mozilla IDBKeyRange.lowerBound documentation> 
-lowerBound_ :: (MonadIO m) => IDBKeyRange -> JSVal -> Bool -> m ()
-lowerBound_ self lower open
-  = liftIO (void (js_lowerBound (self) lower open))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.lowerBound Mozilla IDBKeyRange.lowerBound documentation> 
-lowerBoundUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   IDBKeyRange -> JSVal -> Bool -> m IDBKeyRange
-lowerBoundUnsafe self lower open
   = liftIO
-      ((nullableToMaybe <$> (js_lowerBound (self) lower open)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (toJSVal lower >>= \ lower' -> js_lowerBound self lower' open)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.lowerBound Mozilla IDBKeyRange.lowerBound documentation> 
-lowerBoundUnchecked ::
-                    (MonadIO m) => IDBKeyRange -> JSVal -> Bool -> m IDBKeyRange
-lowerBoundUnchecked self lower open
+lowerBound_ ::
+            (MonadIO m, ToJSVal lower) => IDBKeyRange -> lower -> Bool -> m ()
+lowerBound_ self lower open
   = liftIO
-      (fromJust . nullableToMaybe <$> (js_lowerBound (self) lower open))
+      (void
+         (toJSVal lower >>= \ lower' -> js_lowerBound self lower' open))
  
 foreign import javascript unsafe "$1[\"upperBound\"]($2, $3)"
-        js_upperBound ::
-        IDBKeyRange -> JSVal -> Bool -> IO (Nullable IDBKeyRange)
+        js_upperBound :: IDBKeyRange -> JSVal -> Bool -> IO IDBKeyRange
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.upperBound Mozilla IDBKeyRange.upperBound documentation> 
 upperBound ::
-           (MonadIO m) =>
-             IDBKeyRange -> JSVal -> Bool -> m (Maybe IDBKeyRange)
+           (MonadIO m, ToJSVal upper) =>
+             IDBKeyRange -> upper -> Bool -> m IDBKeyRange
 upperBound self upper open
-  = liftIO (nullableToMaybe <$> (js_upperBound (self) upper open))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.upperBound Mozilla IDBKeyRange.upperBound documentation> 
-upperBound_ :: (MonadIO m) => IDBKeyRange -> JSVal -> Bool -> m ()
-upperBound_ self upper open
-  = liftIO (void (js_upperBound (self) upper open))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.upperBound Mozilla IDBKeyRange.upperBound documentation> 
-upperBoundUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   IDBKeyRange -> JSVal -> Bool -> m IDBKeyRange
-upperBoundUnsafe self upper open
   = liftIO
-      ((nullableToMaybe <$> (js_upperBound (self) upper open)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (toJSVal upper >>= \ upper' -> js_upperBound self upper' open)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.upperBound Mozilla IDBKeyRange.upperBound documentation> 
-upperBoundUnchecked ::
-                    (MonadIO m) => IDBKeyRange -> JSVal -> Bool -> m IDBKeyRange
-upperBoundUnchecked self upper open
+upperBound_ ::
+            (MonadIO m, ToJSVal upper) => IDBKeyRange -> upper -> Bool -> m ()
+upperBound_ self upper open
   = liftIO
-      (fromJust . nullableToMaybe <$> (js_upperBound (self) upper open))
+      (void
+         (toJSVal upper >>= \ upper' -> js_upperBound self upper' open))
  
 foreign import javascript unsafe "$1[\"bound\"]($2, $3, $4, $5)"
         js_bound ::
-        IDBKeyRange ->
-          JSVal -> JSVal -> Bool -> Bool -> IO (Nullable IDBKeyRange)
+        IDBKeyRange -> JSVal -> JSVal -> Bool -> Bool -> IO IDBKeyRange
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.bound Mozilla IDBKeyRange.bound documentation> 
 bound ::
-      (MonadIO m) =>
-        IDBKeyRange ->
-          JSVal -> JSVal -> Bool -> Bool -> m (Maybe IDBKeyRange)
+      (MonadIO m, ToJSVal lower, ToJSVal upper) =>
+        IDBKeyRange -> lower -> upper -> Bool -> Bool -> m IDBKeyRange
 bound self lower upper lowerOpen upperOpen
   = liftIO
-      (nullableToMaybe <$>
-         (js_bound (self) lower upper lowerOpen upperOpen))
+      (toJSVal upper >>=
+         \ upper' ->
+           toJSVal lower >>= \ lower' -> js_bound self lower' upper'
+         lowerOpen
+         upperOpen)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.bound Mozilla IDBKeyRange.bound documentation> 
 bound_ ::
-       (MonadIO m) =>
-         IDBKeyRange -> JSVal -> JSVal -> Bool -> Bool -> m ()
+       (MonadIO m, ToJSVal lower, ToJSVal upper) =>
+         IDBKeyRange -> lower -> upper -> Bool -> Bool -> m ()
 bound_ self lower upper lowerOpen upperOpen
-  = liftIO (void (js_bound (self) lower upper lowerOpen upperOpen))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.bound Mozilla IDBKeyRange.bound documentation> 
-boundUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              IDBKeyRange -> JSVal -> JSVal -> Bool -> Bool -> m IDBKeyRange
-boundUnsafe self lower upper lowerOpen upperOpen
   = liftIO
-      ((nullableToMaybe <$>
-          (js_bound (self) lower upper lowerOpen upperOpen))
-         >>= maybe (Prelude.error "Nothing to return") return)
+      (void
+         (toJSVal upper >>=
+            \ upper' ->
+              toJSVal lower >>= \ lower' -> js_bound self lower' upper'
+            lowerOpen
+            upperOpen))
+ 
+foreign import javascript unsafe "($1[\"includes\"]($2) ? 1 : 0)"
+        js_includes :: IDBKeyRange -> JSVal -> IO Bool
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.bound Mozilla IDBKeyRange.bound documentation> 
-boundUnchecked ::
-               (MonadIO m) =>
-                 IDBKeyRange -> JSVal -> JSVal -> Bool -> Bool -> m IDBKeyRange
-boundUnchecked self lower upper lowerOpen upperOpen
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_bound (self) lower upper lowerOpen upperOpen))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.includes Mozilla IDBKeyRange.includes documentation> 
+includes ::
+         (MonadIO m, ToJSVal key) => IDBKeyRange -> key -> m Bool
+includes self key
+  = liftIO (toJSVal key >>= \ key' -> js_includes self key')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.includes Mozilla IDBKeyRange.includes documentation> 
+includes_ :: (MonadIO m, ToJSVal key) => IDBKeyRange -> key -> m ()
+includes_ self key
+  = liftIO (void (toJSVal key >>= \ key' -> js_includes self key'))
  
 foreign import javascript unsafe "$1[\"lower\"]" js_getLower ::
         IDBKeyRange -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.lower Mozilla IDBKeyRange.lower documentation> 
 getLower :: (MonadIO m) => IDBKeyRange -> m JSVal
-getLower self = liftIO (js_getLower (self))
+getLower self = liftIO (js_getLower self)
  
 foreign import javascript unsafe "$1[\"upper\"]" js_getUpper ::
         IDBKeyRange -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.upper Mozilla IDBKeyRange.upper documentation> 
 getUpper :: (MonadIO m) => IDBKeyRange -> m JSVal
-getUpper self = liftIO (js_getUpper (self))
+getUpper self = liftIO (js_getUpper self)
  
 foreign import javascript unsafe "($1[\"lowerOpen\"] ? 1 : 0)"
         js_getLowerOpen :: IDBKeyRange -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.lowerOpen Mozilla IDBKeyRange.lowerOpen documentation> 
 getLowerOpen :: (MonadIO m) => IDBKeyRange -> m Bool
-getLowerOpen self = liftIO (js_getLowerOpen (self))
+getLowerOpen self = liftIO (js_getLowerOpen self)
  
 foreign import javascript unsafe "($1[\"upperOpen\"] ? 1 : 0)"
         js_getUpperOpen :: IDBKeyRange -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange.upperOpen Mozilla IDBKeyRange.upperOpen documentation> 
 getUpperOpen :: (MonadIO m) => IDBKeyRange -> m Bool
-getUpperOpen self = liftIO (js_getUpperOpen (self))
+getUpperOpen self = liftIO (js_getUpperOpen self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IDBObjectStore.hs b/src/GHCJS/DOM/JSFFI/Generated/IDBObjectStore.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/IDBObjectStore.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/IDBObjectStore.hs
@@ -4,34 +4,30 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.IDBObjectStore
-       (js_put, put, put_, putUnsafe, putUnchecked, js_add, add, add_,
-        addUnsafe, addUnchecked, js_deleteRange, deleteRange, deleteRange_,
-        deleteRangeUnsafe, deleteRangeUnchecked, js_delete, delete,
-        delete_, deleteUnsafe, deleteUnchecked, js_getRange, getRange,
-        getRange_, getRangeUnsafe, getRangeUnchecked, js_get, get, get_,
-        getUnsafe, getUnchecked, js_clear, clear, clear_, clearUnsafe,
-        clearUnchecked, js_openCursorRange, openCursorRange,
-        openCursorRange_, openCursorRangeUnsafe, openCursorRangeUnchecked,
-        js_openCursor, openCursor, openCursor_, openCursorUnsafe,
-        openCursorUnchecked, js_createIndex', createIndex', createIndex'_,
-        createIndex'Unsafe, createIndex'Unchecked, js_createIndex,
-        createIndex, createIndex_, createIndexUnsafe, createIndexUnchecked,
-        js_index, index, index_, indexUnsafe, indexUnchecked,
-        js_deleteIndex, deleteIndex, js_countRange, countRange,
-        countRange_, countRangeUnsafe, countRangeUnchecked, js_count,
-        count, count_, countUnsafe, countUnchecked, js_getName, getName,
-        getNameUnsafe, getNameUnchecked, js_getKeyPath, getKeyPath,
+       (js_put, put, put_, js_add, add, add_, js_deleteRange, deleteRange,
+        deleteRange_, js_delete, delete, delete_, js_getRange, getRange,
+        getRange_, js_get, get, get_, js_getKeyRange, getKeyRange,
+        getKeyRange_, js_getKey, getKey, getKey_, js_clear, clear, clear_,
+        js_openCursorRange, openCursorRange, openCursorRange_,
+        js_openCursor, openCursor, openCursor_, js_openKeyCursorRange,
+        openKeyCursorRange, openKeyCursorRange_, js_openKeyCursor,
+        openKeyCursor, openKeyCursor_, js_getAllRange, getAllRange,
+        getAllRange_, js_getAll, getAll, getAll_, js_getAllKeysRange,
+        getAllKeysRange, getAllKeysRange_, js_getAllKeys, getAllKeys,
+        getAllKeys_, js_createIndex, createIndex, createIndex_, js_index,
+        index, index_, js_deleteIndex, deleteIndex, js_countRange,
+        countRange, countRange_, js_count, count, count_, js_setName,
+        setName, js_getName, getName, js_getKeyPath, getKeyPath,
         getKeyPathUnsafe, getKeyPathUnchecked, js_getIndexNames,
-        getIndexNames, getIndexNamesUnsafe, getIndexNamesUnchecked,
-        js_getTransaction, getTransaction, getTransactionUnsafe,
-        getTransactionUnchecked, js_getAutoIncrement, getAutoIncrement,
-        IDBObjectStore(..), gTypeIDBObjectStore)
+        getIndexNames, js_getTransaction, getTransaction,
+        js_getAutoIncrement, getAutoIncrement, IDBObjectStore(..),
+        gTypeIDBObjectStore)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -40,445 +36,403 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"put\"]($2, $3)" js_put ::
-        IDBObjectStore -> JSVal -> JSVal -> IO (Nullable IDBRequest)
+        IDBObjectStore -> JSVal -> Optional JSVal -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.put Mozilla IDBObjectStore.put documentation> 
 put ::
-    (MonadIO m) =>
-      IDBObjectStore -> JSVal -> JSVal -> m (Maybe IDBRequest)
+    (MonadIO m, ToJSVal value, ToJSVal key) =>
+      IDBObjectStore -> value -> Maybe key -> m IDBRequest
 put self value key
-  = liftIO (nullableToMaybe <$> (js_put (self) value key))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.put Mozilla IDBObjectStore.put documentation> 
-put_ :: (MonadIO m) => IDBObjectStore -> JSVal -> JSVal -> m ()
-put_ self value key = liftIO (void (js_put (self) value key))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.put Mozilla IDBObjectStore.put documentation> 
-putUnsafe ::
-          (MonadIO m, HasCallStack) =>
-            IDBObjectStore -> JSVal -> JSVal -> m IDBRequest
-putUnsafe self value key
   = liftIO
-      ((nullableToMaybe <$> (js_put (self) value key)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (mapM toJSVal key >>=
+         \ key' ->
+           toJSVal value >>= \ value' -> js_put self value'
+             (maybeToOptional key'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.put Mozilla IDBObjectStore.put documentation> 
-putUnchecked ::
-             (MonadIO m) => IDBObjectStore -> JSVal -> JSVal -> m IDBRequest
-putUnchecked self value key
-  = liftIO (fromJust . nullableToMaybe <$> (js_put (self) value key))
+put_ ::
+     (MonadIO m, ToJSVal value, ToJSVal key) =>
+       IDBObjectStore -> value -> Maybe key -> m ()
+put_ self value key
+  = liftIO
+      (void
+         (mapM toJSVal key >>=
+            \ key' ->
+              toJSVal value >>= \ value' -> js_put self value'
+                (maybeToOptional key')))
  
 foreign import javascript unsafe "$1[\"add\"]($2, $3)" js_add ::
-        IDBObjectStore -> JSVal -> JSVal -> IO (Nullable IDBRequest)
+        IDBObjectStore -> JSVal -> Optional JSVal -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.add Mozilla IDBObjectStore.add documentation> 
 add ::
-    (MonadIO m) =>
-      IDBObjectStore -> JSVal -> JSVal -> m (Maybe IDBRequest)
+    (MonadIO m, ToJSVal value, ToJSVal key) =>
+      IDBObjectStore -> value -> Maybe key -> m IDBRequest
 add self value key
-  = liftIO (nullableToMaybe <$> (js_add (self) value key))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.add Mozilla IDBObjectStore.add documentation> 
-add_ :: (MonadIO m) => IDBObjectStore -> JSVal -> JSVal -> m ()
-add_ self value key = liftIO (void (js_add (self) value key))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.add Mozilla IDBObjectStore.add documentation> 
-addUnsafe ::
-          (MonadIO m, HasCallStack) =>
-            IDBObjectStore -> JSVal -> JSVal -> m IDBRequest
-addUnsafe self value key
   = liftIO
-      ((nullableToMaybe <$> (js_add (self) value key)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (mapM toJSVal key >>=
+         \ key' ->
+           toJSVal value >>= \ value' -> js_add self value'
+             (maybeToOptional key'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.add Mozilla IDBObjectStore.add documentation> 
-addUnchecked ::
-             (MonadIO m) => IDBObjectStore -> JSVal -> JSVal -> m IDBRequest
-addUnchecked self value key
-  = liftIO (fromJust . nullableToMaybe <$> (js_add (self) value key))
+add_ ::
+     (MonadIO m, ToJSVal value, ToJSVal key) =>
+       IDBObjectStore -> value -> Maybe key -> m ()
+add_ self value key
+  = liftIO
+      (void
+         (mapM toJSVal key >>=
+            \ key' ->
+              toJSVal value >>= \ value' -> js_add self value'
+                (maybeToOptional key')))
  
 foreign import javascript unsafe "$1[\"delete\"]($2)"
         js_deleteRange ::
-        IDBObjectStore -> Nullable IDBKeyRange -> IO (Nullable IDBRequest)
+        IDBObjectStore -> Optional IDBKeyRange -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.delete Mozilla IDBObjectStore.delete documentation> 
 deleteRange ::
-            (MonadIO m) =>
-              IDBObjectStore -> Maybe IDBKeyRange -> m (Maybe IDBRequest)
+            (MonadIO m) => IDBObjectStore -> Maybe IDBKeyRange -> m IDBRequest
 deleteRange self keyRange
-  = liftIO
-      (nullableToMaybe <$>
-         (js_deleteRange (self) (maybeToNullable keyRange)))
+  = liftIO (js_deleteRange self (maybeToOptional keyRange))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.delete Mozilla IDBObjectStore.delete documentation> 
 deleteRange_ ::
              (MonadIO m) => IDBObjectStore -> Maybe IDBKeyRange -> m ()
 deleteRange_ self keyRange
-  = liftIO (void (js_deleteRange (self) (maybeToNullable keyRange)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.delete Mozilla IDBObjectStore.delete documentation> 
-deleteRangeUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    IDBObjectStore -> Maybe IDBKeyRange -> m IDBRequest
-deleteRangeUnsafe self keyRange
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_deleteRange (self) (maybeToNullable keyRange)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.delete Mozilla IDBObjectStore.delete documentation> 
-deleteRangeUnchecked ::
-                     (MonadIO m) => IDBObjectStore -> Maybe IDBKeyRange -> m IDBRequest
-deleteRangeUnchecked self keyRange
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_deleteRange (self) (maybeToNullable keyRange)))
+  = liftIO (void (js_deleteRange self (maybeToOptional keyRange)))
  
 foreign import javascript unsafe "$1[\"delete\"]($2)" js_delete ::
-        IDBObjectStore -> JSVal -> IO (Nullable IDBRequest)
+        IDBObjectStore -> JSVal -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.delete Mozilla IDBObjectStore.delete documentation> 
 delete ::
-       (MonadIO m) => IDBObjectStore -> JSVal -> m (Maybe IDBRequest)
+       (MonadIO m, ToJSVal key) => IDBObjectStore -> key -> m IDBRequest
 delete self key
-  = liftIO (nullableToMaybe <$> (js_delete (self) key))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.delete Mozilla IDBObjectStore.delete documentation> 
-delete_ :: (MonadIO m) => IDBObjectStore -> JSVal -> m ()
-delete_ self key = liftIO (void (js_delete (self) key))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.delete Mozilla IDBObjectStore.delete documentation> 
-deleteUnsafe ::
-             (MonadIO m, HasCallStack) =>
-               IDBObjectStore -> JSVal -> m IDBRequest
-deleteUnsafe self key
-  = liftIO
-      ((nullableToMaybe <$> (js_delete (self) key)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+  = liftIO (toJSVal key >>= \ key' -> js_delete self key')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.delete Mozilla IDBObjectStore.delete documentation> 
-deleteUnchecked ::
-                (MonadIO m) => IDBObjectStore -> JSVal -> m IDBRequest
-deleteUnchecked self key
-  = liftIO (fromJust . nullableToMaybe <$> (js_delete (self) key))
+delete_ ::
+        (MonadIO m, ToJSVal key) => IDBObjectStore -> key -> m ()
+delete_ self key
+  = liftIO (void (toJSVal key >>= \ key' -> js_delete self key'))
  
 foreign import javascript unsafe "$1[\"get\"]($2)" js_getRange ::
-        IDBObjectStore -> Nullable IDBKeyRange -> IO (Nullable IDBRequest)
+        IDBObjectStore -> Optional IDBKeyRange -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.get Mozilla IDBObjectStore.get documentation> 
 getRange ::
-         (MonadIO m) =>
-           IDBObjectStore -> Maybe IDBKeyRange -> m (Maybe IDBRequest)
-getRange self key
-  = liftIO
-      (nullableToMaybe <$> (js_getRange (self) (maybeToNullable key)))
+         (MonadIO m) => IDBObjectStore -> Maybe IDBKeyRange -> m IDBRequest
+getRange self key = liftIO (js_getRange self (maybeToOptional key))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.get Mozilla IDBObjectStore.get documentation> 
 getRange_ ::
           (MonadIO m) => IDBObjectStore -> Maybe IDBKeyRange -> m ()
 getRange_ self key
-  = liftIO (void (js_getRange (self) (maybeToNullable key)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.get Mozilla IDBObjectStore.get documentation> 
-getRangeUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 IDBObjectStore -> Maybe IDBKeyRange -> m IDBRequest
-getRangeUnsafe self key
-  = liftIO
-      ((nullableToMaybe <$> (js_getRange (self) (maybeToNullable key)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.get Mozilla IDBObjectStore.get documentation> 
-getRangeUnchecked ::
-                  (MonadIO m) => IDBObjectStore -> Maybe IDBKeyRange -> m IDBRequest
-getRangeUnchecked self key
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getRange (self) (maybeToNullable key)))
+  = liftIO (void (js_getRange self (maybeToOptional key)))
  
 foreign import javascript unsafe "$1[\"get\"]($2)" js_get ::
-        IDBObjectStore -> JSVal -> IO (Nullable IDBRequest)
+        IDBObjectStore -> JSVal -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.get Mozilla IDBObjectStore.get documentation> 
 get ::
-    (MonadIO m) => IDBObjectStore -> JSVal -> m (Maybe IDBRequest)
-get self key = liftIO (nullableToMaybe <$> (js_get (self) key))
+    (MonadIO m, ToJSVal key) => IDBObjectStore -> key -> m IDBRequest
+get self key = liftIO (toJSVal key >>= \ key' -> js_get self key')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.get Mozilla IDBObjectStore.get documentation> 
-get_ :: (MonadIO m) => IDBObjectStore -> JSVal -> m ()
-get_ self key = liftIO (void (js_get (self) key))
+get_ :: (MonadIO m, ToJSVal key) => IDBObjectStore -> key -> m ()
+get_ self key
+  = liftIO (void (toJSVal key >>= \ key' -> js_get self key'))
+ 
+foreign import javascript unsafe "$1[\"getKey\"]($2)"
+        js_getKeyRange ::
+        IDBObjectStore -> Optional IDBKeyRange -> IO IDBRequest
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.get Mozilla IDBObjectStore.get documentation> 
-getUnsafe ::
-          (MonadIO m, HasCallStack) =>
-            IDBObjectStore -> JSVal -> m IDBRequest
-getUnsafe self key
-  = liftIO
-      ((nullableToMaybe <$> (js_get (self) key)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getKey Mozilla IDBObjectStore.getKey documentation> 
+getKeyRange ::
+            (MonadIO m) => IDBObjectStore -> Maybe IDBKeyRange -> m IDBRequest
+getKeyRange self key
+  = liftIO (js_getKeyRange self (maybeToOptional key))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.get Mozilla IDBObjectStore.get documentation> 
-getUnchecked ::
-             (MonadIO m) => IDBObjectStore -> JSVal -> m IDBRequest
-getUnchecked self key
-  = liftIO (fromJust . nullableToMaybe <$> (js_get (self) key))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getKey Mozilla IDBObjectStore.getKey documentation> 
+getKeyRange_ ::
+             (MonadIO m) => IDBObjectStore -> Maybe IDBKeyRange -> m ()
+getKeyRange_ self key
+  = liftIO (void (js_getKeyRange self (maybeToOptional key)))
  
-foreign import javascript unsafe "$1[\"clear\"]()" js_clear ::
-        IDBObjectStore -> IO (Nullable IDBRequest)
+foreign import javascript unsafe "$1[\"getKey\"]($2)" js_getKey ::
+        IDBObjectStore -> JSVal -> IO IDBRequest
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.clear Mozilla IDBObjectStore.clear documentation> 
-clear :: (MonadIO m) => IDBObjectStore -> m (Maybe IDBRequest)
-clear self = liftIO (nullableToMaybe <$> (js_clear (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getKey Mozilla IDBObjectStore.getKey documentation> 
+getKey ::
+       (MonadIO m, ToJSVal key) => IDBObjectStore -> key -> m IDBRequest
+getKey self key
+  = liftIO (toJSVal key >>= \ key' -> js_getKey self key')
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.clear Mozilla IDBObjectStore.clear documentation> 
-clear_ :: (MonadIO m) => IDBObjectStore -> m ()
-clear_ self = liftIO (void (js_clear (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getKey Mozilla IDBObjectStore.getKey documentation> 
+getKey_ ::
+        (MonadIO m, ToJSVal key) => IDBObjectStore -> key -> m ()
+getKey_ self key
+  = liftIO (void (toJSVal key >>= \ key' -> js_getKey self key'))
+ 
+foreign import javascript unsafe "$1[\"clear\"]()" js_clear ::
+        IDBObjectStore -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.clear Mozilla IDBObjectStore.clear documentation> 
-clearUnsafe ::
-            (MonadIO m, HasCallStack) => IDBObjectStore -> m IDBRequest
-clearUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_clear (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+clear :: (MonadIO m) => IDBObjectStore -> m IDBRequest
+clear self = liftIO (js_clear self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.clear Mozilla IDBObjectStore.clear documentation> 
-clearUnchecked :: (MonadIO m) => IDBObjectStore -> m IDBRequest
-clearUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_clear (self)))
+clear_ :: (MonadIO m) => IDBObjectStore -> m ()
+clear_ self = liftIO (void (js_clear self))
  
 foreign import javascript unsafe "$1[\"openCursor\"]($2, $3)"
         js_openCursorRange ::
         IDBObjectStore ->
-          Nullable IDBKeyRange -> JSString -> IO (Nullable IDBRequest)
+          Optional IDBKeyRange ->
+            Optional IDBCursorDirection -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openCursor Mozilla IDBObjectStore.openCursor documentation> 
 openCursorRange ::
-                (MonadIO m, ToJSString direction) =>
+                (MonadIO m) =>
                   IDBObjectStore ->
-                    Maybe IDBKeyRange -> direction -> m (Maybe IDBRequest)
+                    Maybe IDBKeyRange -> Maybe IDBCursorDirection -> m IDBRequest
 openCursorRange self range direction
   = liftIO
-      (nullableToMaybe <$>
-         (js_openCursorRange (self) (maybeToNullable range)
-            (toJSString direction)))
+      (js_openCursorRange self (maybeToOptional range)
+         (maybeToOptional direction))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openCursor Mozilla IDBObjectStore.openCursor documentation> 
 openCursorRange_ ::
-                 (MonadIO m, ToJSString direction) =>
-                   IDBObjectStore -> Maybe IDBKeyRange -> direction -> m ()
+                 (MonadIO m) =>
+                   IDBObjectStore ->
+                     Maybe IDBKeyRange -> Maybe IDBCursorDirection -> m ()
 openCursorRange_ self range direction
   = liftIO
       (void
-         (js_openCursorRange (self) (maybeToNullable range)
-            (toJSString direction)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openCursor Mozilla IDBObjectStore.openCursor documentation> 
-openCursorRangeUnsafe ::
-                      (MonadIO m, ToJSString direction, HasCallStack) =>
-                        IDBObjectStore -> Maybe IDBKeyRange -> direction -> m IDBRequest
-openCursorRangeUnsafe self range direction
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_openCursorRange (self) (maybeToNullable range)
-             (toJSString direction)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openCursor Mozilla IDBObjectStore.openCursor documentation> 
-openCursorRangeUnchecked ::
-                         (MonadIO m, ToJSString direction) =>
-                           IDBObjectStore -> Maybe IDBKeyRange -> direction -> m IDBRequest
-openCursorRangeUnchecked self range direction
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_openCursorRange (self) (maybeToNullable range)
-            (toJSString direction)))
+         (js_openCursorRange self (maybeToOptional range)
+            (maybeToOptional direction)))
  
 foreign import javascript unsafe "$1[\"openCursor\"]($2, $3)"
         js_openCursor ::
-        IDBObjectStore -> JSVal -> JSString -> IO (Nullable IDBRequest)
+        IDBObjectStore ->
+          JSVal -> Optional IDBCursorDirection -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openCursor Mozilla IDBObjectStore.openCursor documentation> 
 openCursor ::
-           (MonadIO m, ToJSString direction) =>
-             IDBObjectStore -> JSVal -> direction -> m (Maybe IDBRequest)
+           (MonadIO m, ToJSVal key) =>
+             IDBObjectStore -> key -> Maybe IDBCursorDirection -> m IDBRequest
 openCursor self key direction
   = liftIO
-      (nullableToMaybe <$>
-         (js_openCursor (self) key (toJSString direction)))
+      (toJSVal key >>= \ key' -> js_openCursor self key'
+         (maybeToOptional direction))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openCursor Mozilla IDBObjectStore.openCursor documentation> 
 openCursor_ ::
-            (MonadIO m, ToJSString direction) =>
-              IDBObjectStore -> JSVal -> direction -> m ()
+            (MonadIO m, ToJSVal key) =>
+              IDBObjectStore -> key -> Maybe IDBCursorDirection -> m ()
 openCursor_ self key direction
-  = liftIO (void (js_openCursor (self) key (toJSString direction)))
+  = liftIO
+      (void
+         (toJSVal key >>= \ key' -> js_openCursor self key'
+            (maybeToOptional direction)))
+ 
+foreign import javascript unsafe "$1[\"openKeyCursor\"]($2, $3)"
+        js_openKeyCursorRange ::
+        IDBObjectStore ->
+          Optional IDBKeyRange ->
+            Optional IDBCursorDirection -> IO IDBRequest
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openCursor Mozilla IDBObjectStore.openCursor documentation> 
-openCursorUnsafe ::
-                 (MonadIO m, ToJSString direction, HasCallStack) =>
-                   IDBObjectStore -> JSVal -> direction -> m IDBRequest
-openCursorUnsafe self key direction
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openKeyCursor Mozilla IDBObjectStore.openKeyCursor documentation> 
+openKeyCursorRange ::
+                   (MonadIO m) =>
+                     IDBObjectStore ->
+                       Maybe IDBKeyRange -> Maybe IDBCursorDirection -> m IDBRequest
+openKeyCursorRange self range direction
   = liftIO
-      ((nullableToMaybe <$>
-          (js_openCursor (self) key (toJSString direction)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+      (js_openKeyCursorRange self (maybeToOptional range)
+         (maybeToOptional direction))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openCursor Mozilla IDBObjectStore.openCursor documentation> 
-openCursorUnchecked ::
-                    (MonadIO m, ToJSString direction) =>
-                      IDBObjectStore -> JSVal -> direction -> m IDBRequest
-openCursorUnchecked self key direction
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openKeyCursor Mozilla IDBObjectStore.openKeyCursor documentation> 
+openKeyCursorRange_ ::
+                    (MonadIO m) =>
+                      IDBObjectStore ->
+                        Maybe IDBKeyRange -> Maybe IDBCursorDirection -> m ()
+openKeyCursorRange_ self range direction
   = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_openCursor (self) key (toJSString direction)))
+      (void
+         (js_openKeyCursorRange self (maybeToOptional range)
+            (maybeToOptional direction)))
  
-foreign import javascript unsafe "$1[\"createIndex\"]($2, $3, $4)"
-        js_createIndex' ::
+foreign import javascript unsafe "$1[\"openKeyCursor\"]($2, $3)"
+        js_openKeyCursor ::
         IDBObjectStore ->
-          JSString -> JSVal -> Nullable Dictionary -> IO (Nullable IDBIndex)
+          JSVal -> Optional IDBCursorDirection -> IO IDBRequest
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.createIndex Mozilla IDBObjectStore.createIndex documentation> 
-createIndex' ::
-             (MonadIO m, ToJSString name, ToJSString keyPath,
-              IsDictionary options) =>
-               IDBObjectStore ->
-                 name -> [keyPath] -> Maybe options -> m (Maybe IDBIndex)
-createIndex' self name keyPath options
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openKeyCursor Mozilla IDBObjectStore.openKeyCursor documentation> 
+openKeyCursor ::
+              (MonadIO m, ToJSVal key) =>
+                IDBObjectStore -> key -> Maybe IDBCursorDirection -> m IDBRequest
+openKeyCursor self key direction
   = liftIO
-      (nullableToMaybe <$>
-         (toJSVal keyPath >>=
-            \ keyPath' -> js_createIndex' (self) (toJSString name) keyPath'
-            (maybeToNullable (fmap toDictionary options))))
+      (toJSVal key >>= \ key' -> js_openKeyCursor self key'
+         (maybeToOptional direction))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.createIndex Mozilla IDBObjectStore.createIndex documentation> 
-createIndex'_ ::
-              (MonadIO m, ToJSString name, ToJSString keyPath,
-               IsDictionary options) =>
-                IDBObjectStore -> name -> [keyPath] -> Maybe options -> m ()
-createIndex'_ self name keyPath options
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.openKeyCursor Mozilla IDBObjectStore.openKeyCursor documentation> 
+openKeyCursor_ ::
+               (MonadIO m, ToJSVal key) =>
+                 IDBObjectStore -> key -> Maybe IDBCursorDirection -> m ()
+openKeyCursor_ self key direction
   = liftIO
       (void
-         (toJSVal keyPath >>=
-            \ keyPath' -> js_createIndex' (self) (toJSString name) keyPath'
-            (maybeToNullable (fmap toDictionary options))))
+         (toJSVal key >>= \ key' -> js_openKeyCursor self key'
+            (maybeToOptional direction)))
+ 
+foreign import javascript unsafe "$1[\"getAll\"]($2, $3)"
+        js_getAllRange ::
+        IDBObjectStore ->
+          Optional IDBKeyRange -> Optional Word -> IO IDBRequest
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.createIndex Mozilla IDBObjectStore.createIndex documentation> 
-createIndex'Unsafe ::
-                   (MonadIO m, ToJSString name, ToJSString keyPath,
-                    IsDictionary options, HasCallStack) =>
-                     IDBObjectStore -> name -> [keyPath] -> Maybe options -> m IDBIndex
-createIndex'Unsafe self name keyPath options
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getAll Mozilla IDBObjectStore.getAll documentation> 
+getAllRange ::
+            (MonadIO m) =>
+              IDBObjectStore -> Maybe IDBKeyRange -> Maybe Word -> m IDBRequest
+getAllRange self range count
   = liftIO
-      ((nullableToMaybe <$>
-          (toJSVal keyPath >>=
-             \ keyPath' -> js_createIndex' (self) (toJSString name) keyPath'
-             (maybeToNullable (fmap toDictionary options))))
-         >>= maybe (Prelude.error "Nothing to return") return)
+      (js_getAllRange self (maybeToOptional range)
+         (maybeToOptional count))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.createIndex Mozilla IDBObjectStore.createIndex documentation> 
-createIndex'Unchecked ::
-                      (MonadIO m, ToJSString name, ToJSString keyPath,
-                       IsDictionary options) =>
-                        IDBObjectStore -> name -> [keyPath] -> Maybe options -> m IDBIndex
-createIndex'Unchecked self name keyPath options
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getAll Mozilla IDBObjectStore.getAll documentation> 
+getAllRange_ ::
+             (MonadIO m) =>
+               IDBObjectStore -> Maybe IDBKeyRange -> Maybe Word -> m ()
+getAllRange_ self range count
   = liftIO
-      (fromJust . nullableToMaybe <$>
-         (toJSVal keyPath >>=
-            \ keyPath' -> js_createIndex' (self) (toJSString name) keyPath'
-            (maybeToNullable (fmap toDictionary options))))
+      (void
+         (js_getAllRange self (maybeToOptional range)
+            (maybeToOptional count)))
  
+foreign import javascript unsafe "$1[\"getAll\"]($2, $3)" js_getAll
+        :: IDBObjectStore -> JSVal -> Optional Word -> IO IDBRequest
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getAll Mozilla IDBObjectStore.getAll documentation> 
+getAll ::
+       (MonadIO m, ToJSVal key) =>
+         IDBObjectStore -> key -> Maybe Word -> m IDBRequest
+getAll self key count
+  = liftIO
+      (toJSVal key >>= \ key' -> js_getAll self key'
+         (maybeToOptional count))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getAll Mozilla IDBObjectStore.getAll documentation> 
+getAll_ ::
+        (MonadIO m, ToJSVal key) =>
+          IDBObjectStore -> key -> Maybe Word -> m ()
+getAll_ self key count
+  = liftIO
+      (void
+         (toJSVal key >>= \ key' -> js_getAll self key'
+            (maybeToOptional count)))
+ 
+foreign import javascript unsafe "$1[\"getAllKeys\"]($2, $3)"
+        js_getAllKeysRange ::
+        IDBObjectStore ->
+          Optional IDBKeyRange -> Optional Word -> IO IDBRequest
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getAllKeys Mozilla IDBObjectStore.getAllKeys documentation> 
+getAllKeysRange ::
+                (MonadIO m) =>
+                  IDBObjectStore -> Maybe IDBKeyRange -> Maybe Word -> m IDBRequest
+getAllKeysRange self range count
+  = liftIO
+      (js_getAllKeysRange self (maybeToOptional range)
+         (maybeToOptional count))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getAllKeys Mozilla IDBObjectStore.getAllKeys documentation> 
+getAllKeysRange_ ::
+                 (MonadIO m) =>
+                   IDBObjectStore -> Maybe IDBKeyRange -> Maybe Word -> m ()
+getAllKeysRange_ self range count
+  = liftIO
+      (void
+         (js_getAllKeysRange self (maybeToOptional range)
+            (maybeToOptional count)))
+ 
+foreign import javascript unsafe "$1[\"getAllKeys\"]($2, $3)"
+        js_getAllKeys ::
+        IDBObjectStore -> JSVal -> Optional Word -> IO IDBRequest
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getAllKeys Mozilla IDBObjectStore.getAllKeys documentation> 
+getAllKeys ::
+           (MonadIO m, ToJSVal key) =>
+             IDBObjectStore -> key -> Maybe Word -> m IDBRequest
+getAllKeys self key count
+  = liftIO
+      (toJSVal key >>= \ key' -> js_getAllKeys self key'
+         (maybeToOptional count))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.getAllKeys Mozilla IDBObjectStore.getAllKeys documentation> 
+getAllKeys_ ::
+            (MonadIO m, ToJSVal key) =>
+              IDBObjectStore -> key -> Maybe Word -> m ()
+getAllKeys_ self key count
+  = liftIO
+      (void
+         (toJSVal key >>= \ key' -> js_getAllKeys self key'
+            (maybeToOptional count)))
+ 
 foreign import javascript unsafe "$1[\"createIndex\"]($2, $3, $4)"
         js_createIndex ::
         IDBObjectStore ->
           JSString ->
-            JSString -> Nullable Dictionary -> IO (Nullable IDBIndex)
+            StringOrStrings -> Optional IDBIndexParameters -> IO IDBIndex
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.createIndex Mozilla IDBObjectStore.createIndex documentation> 
 createIndex ::
-            (MonadIO m, ToJSString name, ToJSString keyPath,
-             IsDictionary options) =>
+            (MonadIO m, ToJSString name, IsStringOrStrings keyPath) =>
               IDBObjectStore ->
-                name -> keyPath -> Maybe options -> m (Maybe IDBIndex)
+                name -> keyPath -> Maybe IDBIndexParameters -> m IDBIndex
 createIndex self name keyPath options
   = liftIO
-      (nullableToMaybe <$>
-         (js_createIndex (self) (toJSString name) (toJSString keyPath)
-            (maybeToNullable (fmap toDictionary options))))
+      (toJSVal keyPath >>=
+         \ keyPath' ->
+           js_createIndex self (toJSString name) (StringOrStrings keyPath')
+         (maybeToOptional options))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.createIndex Mozilla IDBObjectStore.createIndex documentation> 
 createIndex_ ::
-             (MonadIO m, ToJSString name, ToJSString keyPath,
-              IsDictionary options) =>
-               IDBObjectStore -> name -> keyPath -> Maybe options -> m ()
+             (MonadIO m, ToJSString name, IsStringOrStrings keyPath) =>
+               IDBObjectStore ->
+                 name -> keyPath -> Maybe IDBIndexParameters -> m ()
 createIndex_ self name keyPath options
   = liftIO
       (void
-         (js_createIndex (self) (toJSString name) (toJSString keyPath)
-            (maybeToNullable (fmap toDictionary options))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.createIndex Mozilla IDBObjectStore.createIndex documentation> 
-createIndexUnsafe ::
-                  (MonadIO m, ToJSString name, ToJSString keyPath,
-                   IsDictionary options, HasCallStack) =>
-                    IDBObjectStore -> name -> keyPath -> Maybe options -> m IDBIndex
-createIndexUnsafe self name keyPath options
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createIndex (self) (toJSString name) (toJSString keyPath)
-             (maybeToNullable (fmap toDictionary options))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.createIndex Mozilla IDBObjectStore.createIndex documentation> 
-createIndexUnchecked ::
-                     (MonadIO m, ToJSString name, ToJSString keyPath,
-                      IsDictionary options) =>
-                       IDBObjectStore -> name -> keyPath -> Maybe options -> m IDBIndex
-createIndexUnchecked self name keyPath options
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createIndex (self) (toJSString name) (toJSString keyPath)
-            (maybeToNullable (fmap toDictionary options))))
+         (toJSVal keyPath >>=
+            \ keyPath' ->
+              js_createIndex self (toJSString name) (StringOrStrings keyPath')
+            (maybeToOptional options)))
  
 foreign import javascript unsafe "$1[\"index\"]($2)" js_index ::
-        IDBObjectStore -> JSString -> IO (Nullable IDBIndex)
+        IDBObjectStore -> JSString -> IO IDBIndex
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.index Mozilla IDBObjectStore.index documentation> 
 index ::
       (MonadIO m, ToJSString name) =>
-        IDBObjectStore -> name -> m (Maybe IDBIndex)
-index self name
-  = liftIO (nullableToMaybe <$> (js_index (self) (toJSString name)))
+        IDBObjectStore -> name -> m IDBIndex
+index self name = liftIO (js_index self (toJSString name))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.index Mozilla IDBObjectStore.index documentation> 
 index_ ::
        (MonadIO m, ToJSString name) => IDBObjectStore -> name -> m ()
-index_ self name
-  = liftIO (void (js_index (self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.index Mozilla IDBObjectStore.index documentation> 
-indexUnsafe ::
-            (MonadIO m, ToJSString name, HasCallStack) =>
-              IDBObjectStore -> name -> m IDBIndex
-indexUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$> (js_index (self) (toJSString name))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.index Mozilla IDBObjectStore.index documentation> 
-indexUnchecked ::
-               (MonadIO m, ToJSString name) =>
-                 IDBObjectStore -> name -> m IDBIndex
-indexUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_index (self) (toJSString name)))
+index_ self name = liftIO (void (js_index self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"deleteIndex\"]($2)"
         js_deleteIndex :: IDBObjectStore -> JSString -> IO ()
@@ -487,167 +441,91 @@
 deleteIndex ::
             (MonadIO m, ToJSString name) => IDBObjectStore -> name -> m ()
 deleteIndex self name
-  = liftIO (js_deleteIndex (self) (toJSString name))
+  = liftIO (js_deleteIndex self (toJSString name))
  
 foreign import javascript unsafe "$1[\"count\"]($2)" js_countRange
-        ::
-        IDBObjectStore -> Nullable IDBKeyRange -> IO (Nullable IDBRequest)
+        :: IDBObjectStore -> Optional IDBKeyRange -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.count Mozilla IDBObjectStore.count documentation> 
 countRange ::
-           (MonadIO m) =>
-             IDBObjectStore -> Maybe IDBKeyRange -> m (Maybe IDBRequest)
+           (MonadIO m) => IDBObjectStore -> Maybe IDBKeyRange -> m IDBRequest
 countRange self range
-  = liftIO
-      (nullableToMaybe <$>
-         (js_countRange (self) (maybeToNullable range)))
+  = liftIO (js_countRange self (maybeToOptional range))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.count Mozilla IDBObjectStore.count documentation> 
 countRange_ ::
             (MonadIO m) => IDBObjectStore -> Maybe IDBKeyRange -> m ()
 countRange_ self range
-  = liftIO (void (js_countRange (self) (maybeToNullable range)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.count Mozilla IDBObjectStore.count documentation> 
-countRangeUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   IDBObjectStore -> Maybe IDBKeyRange -> m IDBRequest
-countRangeUnsafe self range
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_countRange (self) (maybeToNullable range)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.count Mozilla IDBObjectStore.count documentation> 
-countRangeUnchecked ::
-                    (MonadIO m) => IDBObjectStore -> Maybe IDBKeyRange -> m IDBRequest
-countRangeUnchecked self range
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_countRange (self) (maybeToNullable range)))
+  = liftIO (void (js_countRange self (maybeToOptional range)))
  
 foreign import javascript unsafe "$1[\"count\"]($2)" js_count ::
-        IDBObjectStore -> JSVal -> IO (Nullable IDBRequest)
+        IDBObjectStore -> JSVal -> IO IDBRequest
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.count Mozilla IDBObjectStore.count documentation> 
 count ::
-      (MonadIO m) => IDBObjectStore -> JSVal -> m (Maybe IDBRequest)
-count self key = liftIO (nullableToMaybe <$> (js_count (self) key))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.count Mozilla IDBObjectStore.count documentation> 
-count_ :: (MonadIO m) => IDBObjectStore -> JSVal -> m ()
-count_ self key = liftIO (void (js_count (self) key))
+      (MonadIO m, ToJSVal key) => IDBObjectStore -> key -> m IDBRequest
+count self key
+  = liftIO (toJSVal key >>= \ key' -> js_count self key')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.count Mozilla IDBObjectStore.count documentation> 
-countUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              IDBObjectStore -> JSVal -> m IDBRequest
-countUnsafe self key
-  = liftIO
-      ((nullableToMaybe <$> (js_count (self) key)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+count_ :: (MonadIO m, ToJSVal key) => IDBObjectStore -> key -> m ()
+count_ self key
+  = liftIO (void (toJSVal key >>= \ key' -> js_count self key'))
+ 
+foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
+        IDBObjectStore -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.count Mozilla IDBObjectStore.count documentation> 
-countUnchecked ::
-               (MonadIO m) => IDBObjectStore -> JSVal -> m IDBRequest
-countUnchecked self key
-  = liftIO (fromJust . nullableToMaybe <$> (js_count (self) key))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.name Mozilla IDBObjectStore.name documentation> 
+setName ::
+        (MonadIO m, ToJSString val) => IDBObjectStore -> val -> m ()
+setName self val = liftIO (js_setName self (toJSString val))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
-        IDBObjectStore -> IO (Nullable JSString)
+        IDBObjectStore -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.name Mozilla IDBObjectStore.name documentation> 
 getName ::
-        (MonadIO m, FromJSString result) =>
-          IDBObjectStore -> m (Maybe result)
-getName self = liftIO (fromMaybeJSString <$> (js_getName (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.name Mozilla IDBObjectStore.name documentation> 
-getNameUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                IDBObjectStore -> m result
-getNameUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getName (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.name Mozilla IDBObjectStore.name documentation> 
-getNameUnchecked ::
-                 (MonadIO m, FromJSString result) => IDBObjectStore -> m result
-getNameUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getName (self)))
+        (MonadIO m, FromJSString result) => IDBObjectStore -> m result
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"keyPath\"]" js_getKeyPath ::
-        IDBObjectStore -> IO (Nullable IDBAny)
+        IDBObjectStore -> IO (Nullable IDBKeyPath)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.keyPath Mozilla IDBObjectStore.keyPath documentation> 
-getKeyPath :: (MonadIO m) => IDBObjectStore -> m (Maybe IDBAny)
-getKeyPath self
-  = liftIO (nullableToMaybe <$> (js_getKeyPath (self)))
+getKeyPath :: (MonadIO m) => IDBObjectStore -> m (Maybe IDBKeyPath)
+getKeyPath self = liftIO (nullableToMaybe <$> (js_getKeyPath self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.keyPath Mozilla IDBObjectStore.keyPath documentation> 
 getKeyPathUnsafe ::
-                 (MonadIO m, HasCallStack) => IDBObjectStore -> m IDBAny
+                 (MonadIO m, HasCallStack) => IDBObjectStore -> m IDBKeyPath
 getKeyPathUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getKeyPath (self))) >>=
+      ((nullableToMaybe <$> (js_getKeyPath self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.keyPath Mozilla IDBObjectStore.keyPath documentation> 
-getKeyPathUnchecked :: (MonadIO m) => IDBObjectStore -> m IDBAny
+getKeyPathUnchecked ::
+                    (MonadIO m) => IDBObjectStore -> m IDBKeyPath
 getKeyPathUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getKeyPath (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getKeyPath self))
  
 foreign import javascript unsafe "$1[\"indexNames\"]"
-        js_getIndexNames :: IDBObjectStore -> IO (Nullable DOMStringList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.indexNames Mozilla IDBObjectStore.indexNames documentation> 
-getIndexNames ::
-              (MonadIO m) => IDBObjectStore -> m (Maybe DOMStringList)
-getIndexNames self
-  = liftIO (nullableToMaybe <$> (js_getIndexNames (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.indexNames Mozilla IDBObjectStore.indexNames documentation> 
-getIndexNamesUnsafe ::
-                    (MonadIO m, HasCallStack) => IDBObjectStore -> m DOMStringList
-getIndexNamesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIndexNames (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getIndexNames :: IDBObjectStore -> IO DOMStringList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.indexNames Mozilla IDBObjectStore.indexNames documentation> 
-getIndexNamesUnchecked ::
-                       (MonadIO m) => IDBObjectStore -> m DOMStringList
-getIndexNamesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIndexNames (self)))
+getIndexNames :: (MonadIO m) => IDBObjectStore -> m DOMStringList
+getIndexNames self = liftIO (js_getIndexNames self)
  
 foreign import javascript unsafe "$1[\"transaction\"]"
-        js_getTransaction :: IDBObjectStore -> IO (Nullable IDBTransaction)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.transaction Mozilla IDBObjectStore.transaction documentation> 
-getTransaction ::
-               (MonadIO m) => IDBObjectStore -> m (Maybe IDBTransaction)
-getTransaction self
-  = liftIO (nullableToMaybe <$> (js_getTransaction (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.transaction Mozilla IDBObjectStore.transaction documentation> 
-getTransactionUnsafe ::
-                     (MonadIO m, HasCallStack) => IDBObjectStore -> m IDBTransaction
-getTransactionUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTransaction (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getTransaction :: IDBObjectStore -> IO IDBTransaction
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.transaction Mozilla IDBObjectStore.transaction documentation> 
-getTransactionUnchecked ::
-                        (MonadIO m) => IDBObjectStore -> m IDBTransaction
-getTransactionUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getTransaction (self)))
+getTransaction :: (MonadIO m) => IDBObjectStore -> m IDBTransaction
+getTransaction self = liftIO (js_getTransaction self)
  
 foreign import javascript unsafe "($1[\"autoIncrement\"] ? 1 : 0)"
         js_getAutoIncrement :: IDBObjectStore -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.autoIncrement Mozilla IDBObjectStore.autoIncrement documentation> 
 getAutoIncrement :: (MonadIO m) => IDBObjectStore -> m Bool
-getAutoIncrement self = liftIO (js_getAutoIncrement (self))
+getAutoIncrement self = liftIO (js_getAutoIncrement self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IDBOpenDBRequest.hs b/src/GHCJS/DOM/JSFFI/Generated/IDBOpenDBRequest.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/IDBOpenDBRequest.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/IDBOpenDBRequest.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IDBRequest.hs b/src/GHCJS/DOM/JSFFI/Generated/IDBRequest.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/IDBRequest.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/IDBRequest.hs
@@ -7,15 +7,15 @@
        (js_getResult, getResult, getResultUnsafe, getResultUnchecked,
         js_getError, getError, getErrorUnsafe, getErrorUnchecked,
         js_getSource, getSource, getSourceUnsafe, getSourceUnchecked,
-        js_getTransaction, getTransaction, getTransactionUnsafe,
-        getTransactionUnchecked, js_getReadyState, getReadyState, success,
-        error, IDBRequest(..), gTypeIDBRequest, IsIDBRequest, toIDBRequest)
+        js_getTransaction, getTransaction, js_getReadyState, getReadyState,
+        success, error, IDBRequest(..), gTypeIDBRequest, IsIDBRequest,
+        toIDBRequest)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,23 +24,26 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"result\"]" js_getResult ::
-        IDBRequest -> IO (Nullable IDBAny)
+        IDBRequest -> IO (Nullable IDBRequestResult)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.result Mozilla IDBRequest.result documentation> 
 getResult ::
-          (MonadIO m, IsIDBRequest self) => self -> m (Maybe IDBAny)
+          (MonadIO m, IsIDBRequest self) =>
+            self -> m (Maybe IDBRequestResult)
 getResult self
   = liftIO (nullableToMaybe <$> (js_getResult (toIDBRequest self)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.result Mozilla IDBRequest.result documentation> 
 getResultUnsafe ::
-                (MonadIO m, IsIDBRequest self, HasCallStack) => self -> m IDBAny
+                (MonadIO m, IsIDBRequest self, HasCallStack) =>
+                  self -> m IDBRequestResult
 getResultUnsafe self
   = liftIO
       ((nullableToMaybe <$> (js_getResult (toIDBRequest self))) >>=
@@ -48,7 +51,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.result Mozilla IDBRequest.result documentation> 
 getResultUnchecked ::
-                   (MonadIO m, IsIDBRequest self) => self -> m IDBAny
+                   (MonadIO m, IsIDBRequest self) => self -> m IDBRequestResult
 getResultUnchecked self
   = liftIO
       (fromJust . nullableToMaybe <$> (js_getResult (toIDBRequest self)))
@@ -78,17 +81,19 @@
       (fromJust . nullableToMaybe <$> (js_getError (toIDBRequest self)))
  
 foreign import javascript unsafe "$1[\"source\"]" js_getSource ::
-        IDBRequest -> IO (Nullable IDBAny)
+        IDBRequest -> IO (Nullable IDBRequestSource)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.source Mozilla IDBRequest.source documentation> 
 getSource ::
-          (MonadIO m, IsIDBRequest self) => self -> m (Maybe IDBAny)
+          (MonadIO m, IsIDBRequest self) =>
+            self -> m (Maybe IDBRequestSource)
 getSource self
   = liftIO (nullableToMaybe <$> (js_getSource (toIDBRequest self)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.source Mozilla IDBRequest.source documentation> 
 getSourceUnsafe ::
-                (MonadIO m, IsIDBRequest self, HasCallStack) => self -> m IDBAny
+                (MonadIO m, IsIDBRequest self, HasCallStack) =>
+                  self -> m IDBRequestSource
 getSourceUnsafe self
   = liftIO
       ((nullableToMaybe <$> (js_getSource (toIDBRequest self))) >>=
@@ -96,47 +101,29 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.source Mozilla IDBRequest.source documentation> 
 getSourceUnchecked ::
-                   (MonadIO m, IsIDBRequest self) => self -> m IDBAny
+                   (MonadIO m, IsIDBRequest self) => self -> m IDBRequestSource
 getSourceUnchecked self
   = liftIO
       (fromJust . nullableToMaybe <$> (js_getSource (toIDBRequest self)))
  
 foreign import javascript unsafe "$1[\"transaction\"]"
-        js_getTransaction :: IDBRequest -> IO (Nullable IDBTransaction)
+        js_getTransaction :: IDBRequest -> IO IDBTransaction
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.transaction Mozilla IDBRequest.transaction documentation> 
 getTransaction ::
-               (MonadIO m, IsIDBRequest self) => self -> m (Maybe IDBTransaction)
+               (MonadIO m, IsIDBRequest self) => self -> m IDBTransaction
 getTransaction self
-  = liftIO
-      (nullableToMaybe <$> (js_getTransaction (toIDBRequest self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.transaction Mozilla IDBRequest.transaction documentation> 
-getTransactionUnsafe ::
-                     (MonadIO m, IsIDBRequest self, HasCallStack) =>
-                       self -> m IDBTransaction
-getTransactionUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTransaction (toIDBRequest self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.transaction Mozilla IDBRequest.transaction documentation> 
-getTransactionUnchecked ::
-                        (MonadIO m, IsIDBRequest self) => self -> m IDBTransaction
-getTransactionUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTransaction (toIDBRequest self)))
+  = liftIO (js_getTransaction (toIDBRequest self))
  
 foreign import javascript unsafe "$1[\"readyState\"]"
-        js_getReadyState :: IDBRequest -> IO JSString
+        js_getReadyState :: IDBRequest -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.readyState Mozilla IDBRequest.readyState documentation> 
 getReadyState ::
-              (MonadIO m, IsIDBRequest self, FromJSString result) =>
-                self -> m result
+              (MonadIO m, IsIDBRequest self) => self -> m IDBRequestReadyState
 getReadyState self
-  = liftIO (fromJSString <$> (js_getReadyState (toIDBRequest self)))
+  = liftIO
+      ((js_getReadyState (toIDBRequest self)) >>= fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.onsuccess Mozilla IDBRequest.onsuccess documentation> 
 success ::
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IDBTransaction.hs b/src/GHCJS/DOM/JSFFI/Generated/IDBTransaction.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/IDBTransaction.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/IDBTransaction.hs
@@ -4,17 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.IDBTransaction
-       (js_objectStore, objectStore, objectStore_, objectStoreUnsafe,
-        objectStoreUnchecked, js_abort, abort, js_getMode, getMode,
-        js_getDb, getDb, getDbUnsafe, getDbUnchecked, js_getError,
-        getError, getErrorUnsafe, getErrorUnchecked, abortEvent, complete,
+       (js_objectStore, objectStore, objectStore_, js_abort, abort,
+        js_getObjectStoreNames, getObjectStoreNames, js_getMode, getMode,
+        js_getDb, getDb, js_getError, getError, abortEvent, complete,
         error, IDBTransaction(..), gTypeIDBTransaction)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,101 +22,63 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"objectStore\"]($2)"
-        js_objectStore ::
-        IDBTransaction -> JSString -> IO (Nullable IDBObjectStore)
+        js_objectStore :: IDBTransaction -> JSString -> IO IDBObjectStore
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.objectStore Mozilla IDBTransaction.objectStore documentation> 
 objectStore ::
             (MonadIO m, ToJSString name) =>
-              IDBTransaction -> name -> m (Maybe IDBObjectStore)
+              IDBTransaction -> name -> m IDBObjectStore
 objectStore self name
-  = liftIO
-      (nullableToMaybe <$> (js_objectStore (self) (toJSString name)))
+  = liftIO (js_objectStore self (toJSString name))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.objectStore Mozilla IDBTransaction.objectStore documentation> 
 objectStore_ ::
              (MonadIO m, ToJSString name) => IDBTransaction -> name -> m ()
 objectStore_ self name
-  = liftIO (void (js_objectStore (self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.objectStore Mozilla IDBTransaction.objectStore documentation> 
-objectStoreUnsafe ::
-                  (MonadIO m, ToJSString name, HasCallStack) =>
-                    IDBTransaction -> name -> m IDBObjectStore
-objectStoreUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$> (js_objectStore (self) (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.objectStore Mozilla IDBTransaction.objectStore documentation> 
-objectStoreUnchecked ::
-                     (MonadIO m, ToJSString name) =>
-                       IDBTransaction -> name -> m IDBObjectStore
-objectStoreUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_objectStore (self) (toJSString name)))
+  = liftIO (void (js_objectStore self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"abort\"]()" js_abort ::
         IDBTransaction -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.abort Mozilla IDBTransaction.abort documentation> 
 abort :: (MonadIO m) => IDBTransaction -> m ()
-abort self = liftIO (js_abort (self))
+abort self = liftIO (js_abort self)
  
+foreign import javascript unsafe "$1[\"objectStoreNames\"]"
+        js_getObjectStoreNames :: IDBTransaction -> IO DOMStringList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.objectStoreNames Mozilla IDBTransaction.objectStoreNames documentation> 
+getObjectStoreNames ::
+                    (MonadIO m) => IDBTransaction -> m DOMStringList
+getObjectStoreNames self = liftIO (js_getObjectStoreNames self)
+ 
 foreign import javascript unsafe "$1[\"mode\"]" js_getMode ::
-        IDBTransaction -> IO JSString
+        IDBTransaction -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.mode Mozilla IDBTransaction.mode documentation> 
-getMode ::
-        (MonadIO m, FromJSString result) => IDBTransaction -> m result
-getMode self = liftIO (fromJSString <$> (js_getMode (self)))
+getMode :: (MonadIO m) => IDBTransaction -> m IDBTransactionMode
+getMode self = liftIO ((js_getMode self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "$1[\"db\"]" js_getDb ::
-        IDBTransaction -> IO (Nullable IDBDatabase)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.db Mozilla IDBTransaction.db documentation> 
-getDb :: (MonadIO m) => IDBTransaction -> m (Maybe IDBDatabase)
-getDb self = liftIO (nullableToMaybe <$> (js_getDb (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.db Mozilla IDBTransaction.db documentation> 
-getDbUnsafe ::
-            (MonadIO m, HasCallStack) => IDBTransaction -> m IDBDatabase
-getDbUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDb (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        IDBTransaction -> IO IDBDatabase
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.db Mozilla IDBTransaction.db documentation> 
-getDbUnchecked :: (MonadIO m) => IDBTransaction -> m IDBDatabase
-getDbUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getDb (self)))
+getDb :: (MonadIO m) => IDBTransaction -> m IDBDatabase
+getDb self = liftIO (js_getDb self)
  
 foreign import javascript unsafe "$1[\"error\"]" js_getError ::
-        IDBTransaction -> IO (Nullable DOMError)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.error Mozilla IDBTransaction.error documentation> 
-getError :: (MonadIO m) => IDBTransaction -> m (Maybe DOMError)
-getError self = liftIO (nullableToMaybe <$> (js_getError (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.error Mozilla IDBTransaction.error documentation> 
-getErrorUnsafe ::
-               (MonadIO m, HasCallStack) => IDBTransaction -> m DOMError
-getErrorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getError (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        IDBTransaction -> IO DOMError
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.error Mozilla IDBTransaction.error documentation> 
-getErrorUnchecked :: (MonadIO m) => IDBTransaction -> m DOMError
-getErrorUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getError (self)))
+getError :: (MonadIO m) => IDBTransaction -> m DOMError
+getError self = liftIO (js_getError self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.onabort Mozilla IDBTransaction.onabort documentation> 
 abortEvent :: EventName IDBTransaction Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IDBVersionChangeEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/IDBVersionChangeEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/IDBVersionChangeEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/IDBVersionChangeEvent.hs
@@ -4,7 +4,8 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.IDBVersionChangeEvent
-       (js_getOldVersion, getOldVersion, js_getNewVersion, getNewVersion,
+       (js_newIDBVersionChangeEvent, newIDBVersionChangeEvent,
+        js_getOldVersion, getOldVersion, js_getNewVersion, getNewVersion,
         getNewVersionUnsafe, getNewVersionUnchecked,
         IDBVersionChangeEvent(..), gTypeIDBVersionChangeEvent)
        where
@@ -12,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,17 +22,33 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"IDBVersionChangeEvent\"]($1,\n$2)"
+        js_newIDBVersionChangeEvent ::
+        JSString ->
+          Optional IDBVersionChangeEventInit -> IO IDBVersionChangeEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEvent Mozilla IDBVersionChangeEvent documentation> 
+newIDBVersionChangeEvent ::
+                         (MonadIO m, ToJSString type') =>
+                           type' -> Maybe IDBVersionChangeEventInit -> m IDBVersionChangeEvent
+newIDBVersionChangeEvent type' eventInitDict
+  = liftIO
+      (js_newIDBVersionChangeEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"oldVersion\"]"
         js_getOldVersion :: IDBVersionChangeEvent -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEvent.oldVersion Mozilla IDBVersionChangeEvent.oldVersion documentation> 
 getOldVersion :: (MonadIO m) => IDBVersionChangeEvent -> m Word64
-getOldVersion self = liftIO (round <$> (js_getOldVersion (self)))
+getOldVersion self = liftIO (round <$> (js_getOldVersion self))
  
 foreign import javascript unsafe "$1[\"newVersion\"]"
         js_getNewVersion :: IDBVersionChangeEvent -> IO (Nullable Double)
@@ -40,15 +57,14 @@
 getNewVersion ::
               (MonadIO m) => IDBVersionChangeEvent -> m (Maybe Word64)
 getNewVersion self
-  = liftIO
-      (fmap round . nullableToMaybe <$> (js_getNewVersion (self)))
+  = liftIO (fmap round . nullableToMaybe <$> (js_getNewVersion self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEvent.newVersion Mozilla IDBVersionChangeEvent.newVersion documentation> 
 getNewVersionUnsafe ::
                     (MonadIO m, HasCallStack) => IDBVersionChangeEvent -> m Word64
 getNewVersionUnsafe self
   = liftIO
-      ((fmap round . nullableToMaybe <$> (js_getNewVersion (self))) >>=
+      ((fmap round . nullableToMaybe <$> (js_getNewVersion self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEvent.newVersion Mozilla IDBVersionChangeEvent.newVersion documentation> 
@@ -56,4 +72,4 @@
                        (MonadIO m) => IDBVersionChangeEvent -> m Word64
 getNewVersionUnchecked self
   = liftIO
-      (round . fromJust . nullableToMaybe <$> (js_getNewVersion (self)))
+      (round . fromJust . nullableToMaybe <$> (js_getNewVersion self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ImageData.hs b/src/GHCJS/DOM/JSFFI/Generated/ImageData.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ImageData.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ImageData.hs
@@ -5,14 +5,14 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.ImageData
        (js_newImageData, newImageData, js_newImageData', newImageData',
-        js_getWidth, getWidth, js_getHeight, getHeight, ImageData(..),
-        gTypeImageData)
+        js_getWidth, getWidth, js_getHeight, getHeight, js_getData,
+        getData, ImageData(..), gTypeImageData)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,17 +29,16 @@
  
 foreign import javascript unsafe
         "new window[\"ImageData\"]($1, $2,\n$3)" js_newImageData ::
-        Nullable Uint8ClampedArray -> Word -> Word -> IO ImageData
+        Uint8ClampedArray -> Word -> Optional Word -> IO ImageData
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ImageData Mozilla ImageData documentation> 
 newImageData ::
              (MonadIO m, IsUint8ClampedArray data') =>
-               Maybe data' -> Word -> Word -> m ImageData
+               data' -> Word -> Maybe Word -> m ImageData
 newImageData data' sw sh
   = liftIO
-      (js_newImageData (maybeToNullable (fmap toUint8ClampedArray data'))
-         sw
-         sh)
+      (js_newImageData (toUint8ClampedArray data') sw
+         (maybeToOptional sh))
  
 foreign import javascript unsafe
         "new window[\"ImageData\"]($1, $2)" js_newImageData' ::
@@ -49,15 +49,22 @@
 newImageData' sw sh = liftIO (js_newImageData' sw sh)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        ImageData -> IO Int
+        ImageData -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ImageData.width Mozilla ImageData.width documentation> 
-getWidth :: (MonadIO m) => ImageData -> m Int
-getWidth self = liftIO (js_getWidth (self))
+getWidth :: (MonadIO m) => ImageData -> m Word
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        ImageData -> IO Int
+        ImageData -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ImageData.height Mozilla ImageData.height documentation> 
-getHeight :: (MonadIO m) => ImageData -> m Int
-getHeight self = liftIO (js_getHeight (self))
+getHeight :: (MonadIO m) => ImageData -> m Word
+getHeight self = liftIO (js_getHeight self)
+ 
+foreign import javascript unsafe "$1[\"data\"]" js_getData ::
+        ImageData -> IO Uint8ClampedArray
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ImageData.data Mozilla ImageData.data documentation> 
+getData :: (MonadIO m) => ImageData -> m Uint8ClampedArray
+getData self = liftIO (js_getData self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/InputEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/InputEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/InputEvent.hs
@@ -0,0 +1,110 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.InputEvent
+       (js_newInputEvent, newInputEvent, js_getTargetRanges,
+        getTargetRanges, getTargetRanges_, js_getInputType, getInputType,
+        js_getData, getData, getDataUnsafe, getDataUnchecked,
+        js_getDataTransfer, getDataTransfer, getDataTransferUnsafe,
+        getDataTransferUnchecked, InputEvent(..), gTypeInputEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"InputEvent\"]($1, $2)" js_newInputEvent ::
+        JSString -> Optional InputEventInit -> IO InputEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InputEvent Mozilla InputEvent documentation> 
+newInputEvent ::
+              (MonadIO m, ToJSString type') =>
+                type' -> Maybe InputEventInit -> m InputEvent
+newInputEvent type' eventInitDict
+  = liftIO
+      (js_newInputEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe "$1[\"getTargetRanges\"]()"
+        js_getTargetRanges :: InputEvent -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InputEvent.getTargetRanges Mozilla InputEvent.getTargetRanges documentation> 
+getTargetRanges :: (MonadIO m) => InputEvent -> m [StaticRange]
+getTargetRanges self
+  = liftIO ((js_getTargetRanges self) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InputEvent.getTargetRanges Mozilla InputEvent.getTargetRanges documentation> 
+getTargetRanges_ :: (MonadIO m) => InputEvent -> m ()
+getTargetRanges_ self = liftIO (void (js_getTargetRanges self))
+ 
+foreign import javascript unsafe "$1[\"inputType\"]"
+        js_getInputType :: InputEvent -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InputEvent.inputType Mozilla InputEvent.inputType documentation> 
+getInputType ::
+             (MonadIO m, FromJSString result) => InputEvent -> m result
+getInputType self
+  = liftIO (fromJSString <$> (js_getInputType self))
+ 
+foreign import javascript unsafe "$1[\"data\"]" js_getData ::
+        InputEvent -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InputEvent.data Mozilla InputEvent.data documentation> 
+getData ::
+        (MonadIO m, FromJSString result) => InputEvent -> m (Maybe result)
+getData self = liftIO (fromMaybeJSString <$> (js_getData self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InputEvent.data Mozilla InputEvent.data documentation> 
+getDataUnsafe ::
+              (MonadIO m, HasCallStack, FromJSString result) =>
+                InputEvent -> m result
+getDataUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getData self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InputEvent.data Mozilla InputEvent.data documentation> 
+getDataUnchecked ::
+                 (MonadIO m, FromJSString result) => InputEvent -> m result
+getDataUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getData self))
+ 
+foreign import javascript unsafe "$1[\"dataTransfer\"]"
+        js_getDataTransfer :: InputEvent -> IO (Nullable DataTransfer)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InputEvent.dataTransfer Mozilla InputEvent.dataTransfer documentation> 
+getDataTransfer ::
+                (MonadIO m) => InputEvent -> m (Maybe DataTransfer)
+getDataTransfer self
+  = liftIO (nullableToMaybe <$> (js_getDataTransfer self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InputEvent.dataTransfer Mozilla InputEvent.dataTransfer documentation> 
+getDataTransferUnsafe ::
+                      (MonadIO m, HasCallStack) => InputEvent -> m DataTransfer
+getDataTransferUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getDataTransfer self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InputEvent.dataTransfer Mozilla InputEvent.dataTransfer documentation> 
+getDataTransferUnchecked ::
+                         (MonadIO m) => InputEvent -> m DataTransfer
+getDataTransferUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getDataTransfer self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/InspectorFrontendHost.hs b/src/GHCJS/DOM/JSFFI/Generated/InspectorFrontendHost.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/InspectorFrontendHost.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/InspectorFrontendHost.hs
@@ -5,30 +5,33 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.InspectorFrontendHost
        (js_loaded, loaded, js_closeWindow, closeWindow, js_bringToFront,
-        bringToFront, js_setZoomFactor, setZoomFactor,
-        js_inspectedURLChanged, inspectedURLChanged, js_requestSetDockSide,
-        requestSetDockSide, js_setAttachedWindowHeight,
-        setAttachedWindowHeight, js_setAttachedWindowWidth,
-        setAttachedWindowWidth, js_setToolbarHeight, setToolbarHeight,
-        js_moveWindowBy, moveWindowBy, js_localizedStringsURL,
-        localizedStringsURL, localizedStringsURL_, js_debuggableType,
-        debuggableType, debuggableType_, js_copyText, copyText,
-        js_openInNewTab, openInNewTab, js_canSave, canSave, canSave_,
-        js_save, save, js_append, append, js_close, close, js_platform,
-        platform, platform_, js_port, port, port_, js_showContextMenu,
-        showContextMenu, js_dispatchEventAsContextMenuEvent,
+        bringToFront, js_inspectedURLChanged, inspectedURLChanged,
+        js_setZoomFactor, setZoomFactor, js_zoomFactor, zoomFactor,
+        zoomFactor_, js_userInterfaceLayoutDirection,
+        userInterfaceLayoutDirection, userInterfaceLayoutDirection_,
+        js_requestSetDockSide, requestSetDockSide,
+        js_setAttachedWindowHeight, setAttachedWindowHeight,
+        js_setAttachedWindowWidth, setAttachedWindowWidth,
+        js_startWindowDrag, startWindowDrag, js_moveWindowBy, moveWindowBy,
+        js_localizedStringsURL, localizedStringsURL, localizedStringsURL_,
+        js_backendCommandsURL, backendCommandsURL, backendCommandsURL_,
+        js_debuggableType, debuggableType, debuggableType_,
+        js_inspectionLevel, inspectionLevel, inspectionLevel_, js_copyText,
+        copyText, js_killText, killText, js_openInNewTab, openInNewTab,
+        js_canSave, canSave, canSave_, js_save, save, js_append, append,
+        js_close, close, js_platform, platform, platform_, js_port, port,
+        port_, js_showContextMenu, showContextMenu,
+        js_dispatchEventAsContextMenuEvent,
         dispatchEventAsContextMenuEvent, js_sendMessageToBackend,
         sendMessageToBackend, js_unbufferedLog, unbufferedLog,
         js_isUnderTest, isUnderTest, isUnderTest_, js_beep, beep,
-        js_canInspectWorkers, canInspectWorkers, canInspectWorkers_,
-        js_canSaveAs, canSaveAs, canSaveAs_, InspectorFrontendHost(..),
-        gTypeInspectorFrontendHost)
+        InspectorFrontendHost(..), gTypeInspectorFrontendHost)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -37,6 +40,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -47,29 +51,21 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.loaded Mozilla InspectorFrontendHost.loaded documentation> 
 loaded :: (MonadIO m) => InspectorFrontendHost -> m ()
-loaded self = liftIO (js_loaded (self))
+loaded self = liftIO (js_loaded self)
  
 foreign import javascript unsafe "$1[\"closeWindow\"]()"
         js_closeWindow :: InspectorFrontendHost -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.closeWindow Mozilla InspectorFrontendHost.closeWindow documentation> 
 closeWindow :: (MonadIO m) => InspectorFrontendHost -> m ()
-closeWindow self = liftIO (js_closeWindow (self))
+closeWindow self = liftIO (js_closeWindow self)
  
 foreign import javascript unsafe "$1[\"bringToFront\"]()"
         js_bringToFront :: InspectorFrontendHost -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.bringToFront Mozilla InspectorFrontendHost.bringToFront documentation> 
 bringToFront :: (MonadIO m) => InspectorFrontendHost -> m ()
-bringToFront self = liftIO (js_bringToFront (self))
- 
-foreign import javascript unsafe "$1[\"setZoomFactor\"]($2)"
-        js_setZoomFactor :: InspectorFrontendHost -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.setZoomFactor Mozilla InspectorFrontendHost.setZoomFactor documentation> 
-setZoomFactor ::
-              (MonadIO m) => InspectorFrontendHost -> Float -> m ()
-setZoomFactor self zoom = liftIO (js_setZoomFactor (self) zoom)
+bringToFront self = liftIO (js_bringToFront self)
  
 foreign import javascript unsafe "$1[\"inspectedURLChanged\"]($2)"
         js_inspectedURLChanged ::
@@ -80,8 +76,45 @@
                     (MonadIO m, ToJSString newURL) =>
                       InspectorFrontendHost -> newURL -> m ()
 inspectedURLChanged self newURL
-  = liftIO (js_inspectedURLChanged (self) (toJSString newURL))
+  = liftIO (js_inspectedURLChanged self (toJSString newURL))
  
+foreign import javascript unsafe "$1[\"setZoomFactor\"]($2)"
+        js_setZoomFactor :: InspectorFrontendHost -> Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.setZoomFactor Mozilla InspectorFrontendHost.setZoomFactor documentation> 
+setZoomFactor ::
+              (MonadIO m) => InspectorFrontendHost -> Float -> m ()
+setZoomFactor self zoom = liftIO (js_setZoomFactor self zoom)
+ 
+foreign import javascript unsafe "$1[\"zoomFactor\"]()"
+        js_zoomFactor :: InspectorFrontendHost -> IO Float
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.zoomFactor Mozilla InspectorFrontendHost.zoomFactor documentation> 
+zoomFactor :: (MonadIO m) => InspectorFrontendHost -> m Float
+zoomFactor self = liftIO (js_zoomFactor self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.zoomFactor Mozilla InspectorFrontendHost.zoomFactor documentation> 
+zoomFactor_ :: (MonadIO m) => InspectorFrontendHost -> m ()
+zoomFactor_ self = liftIO (void (js_zoomFactor self))
+ 
+foreign import javascript unsafe
+        "$1[\"userInterfaceLayoutDirection\"]()"
+        js_userInterfaceLayoutDirection ::
+        InspectorFrontendHost -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.userInterfaceLayoutDirection Mozilla InspectorFrontendHost.userInterfaceLayoutDirection documentation> 
+userInterfaceLayoutDirection ::
+                             (MonadIO m, FromJSString result) =>
+                               InspectorFrontendHost -> m result
+userInterfaceLayoutDirection self
+  = liftIO (fromJSString <$> (js_userInterfaceLayoutDirection self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.userInterfaceLayoutDirection Mozilla InspectorFrontendHost.userInterfaceLayoutDirection documentation> 
+userInterfaceLayoutDirection_ ::
+                              (MonadIO m) => InspectorFrontendHost -> m ()
+userInterfaceLayoutDirection_ self
+  = liftIO (void (js_userInterfaceLayoutDirection self))
+ 
 foreign import javascript unsafe "$1[\"requestSetDockSide\"]($2)"
         js_requestSetDockSide :: InspectorFrontendHost -> JSString -> IO ()
 
@@ -90,7 +123,7 @@
                    (MonadIO m, ToJSString side) =>
                      InspectorFrontendHost -> side -> m ()
 requestSetDockSide self side
-  = liftIO (js_requestSetDockSide (self) (toJSString side))
+  = liftIO (js_requestSetDockSide self (toJSString side))
  
 foreign import javascript unsafe
         "$1[\"setAttachedWindowHeight\"]($2)" js_setAttachedWindowHeight ::
@@ -100,7 +133,7 @@
 setAttachedWindowHeight ::
                         (MonadIO m) => InspectorFrontendHost -> Word -> m ()
 setAttachedWindowHeight self height
-  = liftIO (js_setAttachedWindowHeight (self) height)
+  = liftIO (js_setAttachedWindowHeight self height)
  
 foreign import javascript unsafe
         "$1[\"setAttachedWindowWidth\"]($2)" js_setAttachedWindowWidth ::
@@ -110,16 +143,14 @@
 setAttachedWindowWidth ::
                        (MonadIO m) => InspectorFrontendHost -> Word -> m ()
 setAttachedWindowWidth self width
-  = liftIO (js_setAttachedWindowWidth (self) width)
+  = liftIO (js_setAttachedWindowWidth self width)
  
-foreign import javascript unsafe "$1[\"setToolbarHeight\"]($2)"
-        js_setToolbarHeight :: InspectorFrontendHost -> Float -> IO ()
+foreign import javascript unsafe "$1[\"startWindowDrag\"]()"
+        js_startWindowDrag :: InspectorFrontendHost -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.setToolbarHeight Mozilla InspectorFrontendHost.setToolbarHeight documentation> 
-setToolbarHeight ::
-                 (MonadIO m) => InspectorFrontendHost -> Float -> m ()
-setToolbarHeight self height
-  = liftIO (js_setToolbarHeight (self) height)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.startWindowDrag Mozilla InspectorFrontendHost.startWindowDrag documentation> 
+startWindowDrag :: (MonadIO m) => InspectorFrontendHost -> m ()
+startWindowDrag self = liftIO (js_startWindowDrag self)
  
 foreign import javascript unsafe "$1[\"moveWindowBy\"]($2, $3)"
         js_moveWindowBy :: InspectorFrontendHost -> Float -> Float -> IO ()
@@ -127,7 +158,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.moveWindowBy Mozilla InspectorFrontendHost.moveWindowBy documentation> 
 moveWindowBy ::
              (MonadIO m) => InspectorFrontendHost -> Float -> Float -> m ()
-moveWindowBy self x y = liftIO (js_moveWindowBy (self) x y)
+moveWindowBy self x y = liftIO (js_moveWindowBy self x y)
  
 foreign import javascript unsafe "$1[\"localizedStringsURL\"]()"
         js_localizedStringsURL :: InspectorFrontendHost -> IO JSString
@@ -137,14 +168,29 @@
                     (MonadIO m, FromJSString result) =>
                       InspectorFrontendHost -> m result
 localizedStringsURL self
-  = liftIO (fromJSString <$> (js_localizedStringsURL (self)))
+  = liftIO (fromJSString <$> (js_localizedStringsURL self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.localizedStringsURL Mozilla InspectorFrontendHost.localizedStringsURL documentation> 
 localizedStringsURL_ ::
                      (MonadIO m) => InspectorFrontendHost -> m ()
 localizedStringsURL_ self
-  = liftIO (void (js_localizedStringsURL (self)))
+  = liftIO (void (js_localizedStringsURL self))
  
+foreign import javascript unsafe "$1[\"backendCommandsURL\"]()"
+        js_backendCommandsURL :: InspectorFrontendHost -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.backendCommandsURL Mozilla InspectorFrontendHost.backendCommandsURL documentation> 
+backendCommandsURL ::
+                   (MonadIO m, FromJSString result) =>
+                     InspectorFrontendHost -> m result
+backendCommandsURL self
+  = liftIO (fromJSString <$> (js_backendCommandsURL self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.backendCommandsURL Mozilla InspectorFrontendHost.backendCommandsURL documentation> 
+backendCommandsURL_ :: (MonadIO m) => InspectorFrontendHost -> m ()
+backendCommandsURL_ self
+  = liftIO (void (js_backendCommandsURL self))
+ 
 foreign import javascript unsafe "$1[\"debuggableType\"]()"
         js_debuggableType :: InspectorFrontendHost -> IO JSString
 
@@ -153,12 +199,23 @@
                (MonadIO m, FromJSString result) =>
                  InspectorFrontendHost -> m result
 debuggableType self
-  = liftIO (fromJSString <$> (js_debuggableType (self)))
+  = liftIO (fromJSString <$> (js_debuggableType self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.debuggableType Mozilla InspectorFrontendHost.debuggableType documentation> 
 debuggableType_ :: (MonadIO m) => InspectorFrontendHost -> m ()
-debuggableType_ self = liftIO (void (js_debuggableType (self)))
+debuggableType_ self = liftIO (void (js_debuggableType self))
  
+foreign import javascript unsafe "$1[\"inspectionLevel\"]()"
+        js_inspectionLevel :: InspectorFrontendHost -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.inspectionLevel Mozilla InspectorFrontendHost.inspectionLevel documentation> 
+inspectionLevel :: (MonadIO m) => InspectorFrontendHost -> m Word
+inspectionLevel self = liftIO (js_inspectionLevel self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.inspectionLevel Mozilla InspectorFrontendHost.inspectionLevel documentation> 
+inspectionLevel_ :: (MonadIO m) => InspectorFrontendHost -> m ()
+inspectionLevel_ self = liftIO (void (js_inspectionLevel self))
+ 
 foreign import javascript unsafe "$1[\"copyText\"]($2)" js_copyText
         :: InspectorFrontendHost -> JSString -> IO ()
 
@@ -166,8 +223,21 @@
 copyText ::
          (MonadIO m, ToJSString text) =>
            InspectorFrontendHost -> text -> m ()
-copyText self text = liftIO (js_copyText (self) (toJSString text))
+copyText self text = liftIO (js_copyText self (toJSString text))
  
+foreign import javascript unsafe "$1[\"killText\"]($2, $3, $4)"
+        js_killText ::
+        InspectorFrontendHost -> JSString -> Bool -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.killText Mozilla InspectorFrontendHost.killText documentation> 
+killText ::
+         (MonadIO m, ToJSString text) =>
+           InspectorFrontendHost -> text -> Bool -> Bool -> m ()
+killText self text shouldPrependToKillRing shouldStartNewSequence
+  = liftIO
+      (js_killText self (toJSString text) shouldPrependToKillRing
+         shouldStartNewSequence)
+ 
 foreign import javascript unsafe "$1[\"openInNewTab\"]($2)"
         js_openInNewTab :: InspectorFrontendHost -> JSString -> IO ()
 
@@ -175,18 +245,18 @@
 openInNewTab ::
              (MonadIO m, ToJSString url) => InspectorFrontendHost -> url -> m ()
 openInNewTab self url
-  = liftIO (js_openInNewTab (self) (toJSString url))
+  = liftIO (js_openInNewTab self (toJSString url))
  
 foreign import javascript unsafe "($1[\"canSave\"]() ? 1 : 0)"
         js_canSave :: InspectorFrontendHost -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.canSave Mozilla InspectorFrontendHost.canSave documentation> 
 canSave :: (MonadIO m) => InspectorFrontendHost -> m Bool
-canSave self = liftIO (js_canSave (self))
+canSave self = liftIO (js_canSave self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.canSave Mozilla InspectorFrontendHost.canSave documentation> 
 canSave_ :: (MonadIO m) => InspectorFrontendHost -> m ()
-canSave_ self = liftIO (void (js_canSave (self)))
+canSave_ self = liftIO (void (js_canSave self))
  
 foreign import javascript unsafe "$1[\"save\"]($2, $3, $4, $5)"
         js_save ::
@@ -199,7 +269,7 @@
        InspectorFrontendHost -> url -> content -> Bool -> Bool -> m ()
 save self url content base64Encoded forceSaveAs
   = liftIO
-      (js_save (self) (toJSString url) (toJSString content) base64Encoded
+      (js_save self (toJSString url) (toJSString content) base64Encoded
          forceSaveAs)
  
 foreign import javascript unsafe "$1[\"append\"]($2, $3)" js_append
@@ -210,7 +280,7 @@
        (MonadIO m, ToJSString url, ToJSString content) =>
          InspectorFrontendHost -> url -> content -> m ()
 append self url content
-  = liftIO (js_append (self) (toJSString url) (toJSString content))
+  = liftIO (js_append self (toJSString url) (toJSString content))
  
 foreign import javascript unsafe "$1[\"close\"]($2)" js_close ::
         InspectorFrontendHost -> JSString -> IO ()
@@ -218,7 +288,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.close Mozilla InspectorFrontendHost.close documentation> 
 close ::
       (MonadIO m, ToJSString url) => InspectorFrontendHost -> url -> m ()
-close self url = liftIO (js_close (self) (toJSString url))
+close self url = liftIO (js_close self (toJSString url))
  
 foreign import javascript unsafe "$1[\"platform\"]()" js_platform
         :: InspectorFrontendHost -> IO JSString
@@ -227,11 +297,11 @@
 platform ::
          (MonadIO m, FromJSString result) =>
            InspectorFrontendHost -> m result
-platform self = liftIO (fromJSString <$> (js_platform (self)))
+platform self = liftIO (fromJSString <$> (js_platform self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.platform Mozilla InspectorFrontendHost.platform documentation> 
 platform_ :: (MonadIO m) => InspectorFrontendHost -> m ()
-platform_ self = liftIO (void (js_platform (self)))
+platform_ self = liftIO (void (js_platform self))
  
 foreign import javascript unsafe "$1[\"port\"]()" js_port ::
         InspectorFrontendHost -> IO JSString
@@ -240,30 +310,29 @@
 port ::
      (MonadIO m, FromJSString result) =>
        InspectorFrontendHost -> m result
-port self = liftIO (fromJSString <$> (js_port (self)))
+port self = liftIO (fromJSString <$> (js_port self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.port Mozilla InspectorFrontendHost.port documentation> 
 port_ :: (MonadIO m) => InspectorFrontendHost -> m ()
-port_ self = liftIO (void (js_port (self)))
+port_ self = liftIO (void (js_port self))
  
 foreign import javascript unsafe "$1[\"showContextMenu\"]($2, $3)"
         js_showContextMenu ::
-        InspectorFrontendHost -> Nullable MouseEvent -> JSVal -> IO ()
+        InspectorFrontendHost -> MouseEvent -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.showContextMenu Mozilla InspectorFrontendHost.showContextMenu documentation> 
 showContextMenu ::
-                (MonadIO m, IsMouseEvent event) =>
-                  InspectorFrontendHost -> Maybe event -> JSVal -> m ()
+                (MonadIO m, IsMouseEvent event, ToJSVal items) =>
+                  InspectorFrontendHost -> event -> items -> m ()
 showContextMenu self event items
   = liftIO
-      (js_showContextMenu (self)
-         (maybeToNullable (fmap toMouseEvent event))
-         items)
+      (toJSVal items >>=
+         \ items' -> js_showContextMenu self (toMouseEvent event) items')
  
 foreign import javascript unsafe
         "$1[\"dispatchEventAsContextMenuEvent\"]($2)"
         js_dispatchEventAsContextMenuEvent ::
-        InspectorFrontendHost -> Nullable Event -> IO ()
+        InspectorFrontendHost -> Optional Event -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.dispatchEventAsContextMenuEvent Mozilla InspectorFrontendHost.dispatchEventAsContextMenuEvent documentation> 
 dispatchEventAsContextMenuEvent ::
@@ -271,8 +340,8 @@
                                   InspectorFrontendHost -> Maybe event -> m ()
 dispatchEventAsContextMenuEvent self event
   = liftIO
-      (js_dispatchEventAsContextMenuEvent (self)
-         (maybeToNullable (fmap toEvent event)))
+      (js_dispatchEventAsContextMenuEvent self
+         (maybeToOptional (fmap toEvent event)))
  
 foreign import javascript unsafe "$1[\"sendMessageToBackend\"]($2)"
         js_sendMessageToBackend ::
@@ -283,7 +352,7 @@
                      (MonadIO m, ToJSString message) =>
                        InspectorFrontendHost -> message -> m ()
 sendMessageToBackend self message
-  = liftIO (js_sendMessageToBackend (self) (toJSString message))
+  = liftIO (js_sendMessageToBackend self (toJSString message))
  
 foreign import javascript unsafe "$1[\"unbufferedLog\"]($2)"
         js_unbufferedLog :: InspectorFrontendHost -> JSString -> IO ()
@@ -293,46 +362,22 @@
               (MonadIO m, ToJSString message) =>
                 InspectorFrontendHost -> message -> m ()
 unbufferedLog self message
-  = liftIO (js_unbufferedLog (self) (toJSString message))
+  = liftIO (js_unbufferedLog self (toJSString message))
  
 foreign import javascript unsafe "($1[\"isUnderTest\"]() ? 1 : 0)"
         js_isUnderTest :: InspectorFrontendHost -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.isUnderTest Mozilla InspectorFrontendHost.isUnderTest documentation> 
 isUnderTest :: (MonadIO m) => InspectorFrontendHost -> m Bool
-isUnderTest self = liftIO (js_isUnderTest (self))
+isUnderTest self = liftIO (js_isUnderTest self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.isUnderTest Mozilla InspectorFrontendHost.isUnderTest documentation> 
 isUnderTest_ :: (MonadIO m) => InspectorFrontendHost -> m ()
-isUnderTest_ self = liftIO (void (js_isUnderTest (self)))
+isUnderTest_ self = liftIO (void (js_isUnderTest self))
  
 foreign import javascript unsafe "$1[\"beep\"]()" js_beep ::
         InspectorFrontendHost -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.beep Mozilla InspectorFrontendHost.beep documentation> 
 beep :: (MonadIO m) => InspectorFrontendHost -> m ()
-beep self = liftIO (js_beep (self))
- 
-foreign import javascript unsafe
-        "($1[\"canInspectWorkers\"]() ? 1 : 0)" js_canInspectWorkers ::
-        InspectorFrontendHost -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.canInspectWorkers Mozilla InspectorFrontendHost.canInspectWorkers documentation> 
-canInspectWorkers :: (MonadIO m) => InspectorFrontendHost -> m Bool
-canInspectWorkers self = liftIO (js_canInspectWorkers (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.canInspectWorkers Mozilla InspectorFrontendHost.canInspectWorkers documentation> 
-canInspectWorkers_ :: (MonadIO m) => InspectorFrontendHost -> m ()
-canInspectWorkers_ self
-  = liftIO (void (js_canInspectWorkers (self)))
- 
-foreign import javascript unsafe "($1[\"canSaveAs\"]() ? 1 : 0)"
-        js_canSaveAs :: InspectorFrontendHost -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.canSaveAs Mozilla InspectorFrontendHost.canSaveAs documentation> 
-canSaveAs :: (MonadIO m) => InspectorFrontendHost -> m Bool
-canSaveAs self = liftIO (js_canSaveAs (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost.canSaveAs Mozilla InspectorFrontendHost.canSaveAs documentation> 
-canSaveAs_ :: (MonadIO m) => InspectorFrontendHost -> m ()
-canSaveAs_ self = liftIO (void (js_canSaveAs (self)))
+beep self = liftIO (js_beep self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/InternalSettings.hs b/src/GHCJS/DOM/JSFFI/Generated/InternalSettings.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/InternalSettings.hs
+++ /dev/null
@@ -1,414 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.InternalSettings
-       (js_setTouchEventEmulationEnabled, setTouchEventEmulationEnabled,
-        js_setStandardFontFamily, setStandardFontFamily,
-        js_setSerifFontFamily, setSerifFontFamily,
-        js_setSansSerifFontFamily, setSansSerifFontFamily,
-        js_setFixedFontFamily, setFixedFontFamily, js_setCursiveFontFamily,
-        setCursiveFontFamily, js_setFantasyFontFamily,
-        setFantasyFontFamily, js_setPictographFontFamily,
-        setPictographFontFamily, js_setFontFallbackPrefersPictographs,
-        setFontFallbackPrefersPictographs, js_setTextAutosizingEnabled,
-        setTextAutosizingEnabled, js_setTextAutosizingWindowSizeOverride,
-        setTextAutosizingWindowSizeOverride,
-        js_setTextAutosizingFontScaleFactor,
-        setTextAutosizingFontScaleFactor, js_setCSSShapesEnabled,
-        setCSSShapesEnabled, js_setCanStartMedia, setCanStartMedia,
-        js_setShouldDisplayTrackKind, setShouldDisplayTrackKind,
-        js_shouldDisplayTrackKind, shouldDisplayTrackKind,
-        shouldDisplayTrackKind_, js_setDefaultVideoPosterURL,
-        setDefaultVideoPosterURL,
-        js_setTimeWithoutMouseMovementBeforeHidingControls,
-        setTimeWithoutMouseMovementBeforeHidingControls,
-        js_setMediaTypeOverride, setMediaTypeOverride,
-        js_setPluginReplacementEnabled, setPluginReplacementEnabled,
-        js_setEditingBehavior, setEditingBehavior,
-        js_setShouldConvertPositionStyleOnCopy,
-        setShouldConvertPositionStyleOnCopy,
-        js_setLangAttributeAwareFormControlUIEnabled,
-        setLangAttributeAwareFormControlUIEnabled,
-        js_setStorageBlockingPolicy, setStorageBlockingPolicy,
-        js_setImagesEnabled, setImagesEnabled,
-        js_setUseLegacyBackgroundSizeShorthandBehavior,
-        setUseLegacyBackgroundSizeShorthandBehavior,
-        js_setAutoscrollForDragAndDropEnabled,
-        setAutoscrollForDragAndDropEnabled,
-        js_setBackgroundShouldExtendBeyondPage,
-        setBackgroundShouldExtendBeyondPage,
-        js_setScrollingTreeIncludesFrames, setScrollingTreeIncludesFrames,
-        js_setMinimumTimerInterval, setMinimumTimerInterval,
-        InternalSettings(..), gTypeInternalSettings)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe
-        "$1[\"setTouchEventEmulationEnabled\"]($2)"
-        js_setTouchEventEmulationEnabled ::
-        InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setTouchEventEmulationEnabled Mozilla InternalSettings.setTouchEventEmulationEnabled documentation> 
-setTouchEventEmulationEnabled ::
-                              (MonadIO m) => InternalSettings -> Bool -> m ()
-setTouchEventEmulationEnabled self enabled
-  = liftIO (js_setTouchEventEmulationEnabled (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setStandardFontFamily\"]($2,\n$3)" js_setStandardFontFamily
-        :: InternalSettings -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setStandardFontFamily Mozilla InternalSettings.setStandardFontFamily documentation> 
-setStandardFontFamily ::
-                      (MonadIO m, ToJSString family', ToJSString script) =>
-                        InternalSettings -> family' -> script -> m ()
-setStandardFontFamily self family' script
-  = liftIO
-      (js_setStandardFontFamily (self) (toJSString family')
-         (toJSString script))
- 
-foreign import javascript unsafe
-        "$1[\"setSerifFontFamily\"]($2, $3)" js_setSerifFontFamily ::
-        InternalSettings -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setSerifFontFamily Mozilla InternalSettings.setSerifFontFamily documentation> 
-setSerifFontFamily ::
-                   (MonadIO m, ToJSString family', ToJSString script) =>
-                     InternalSettings -> family' -> script -> m ()
-setSerifFontFamily self family' script
-  = liftIO
-      (js_setSerifFontFamily (self) (toJSString family')
-         (toJSString script))
- 
-foreign import javascript unsafe
-        "$1[\"setSansSerifFontFamily\"]($2,\n$3)" js_setSansSerifFontFamily
-        :: InternalSettings -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setSansSerifFontFamily Mozilla InternalSettings.setSansSerifFontFamily documentation> 
-setSansSerifFontFamily ::
-                       (MonadIO m, ToJSString family', ToJSString script) =>
-                         InternalSettings -> family' -> script -> m ()
-setSansSerifFontFamily self family' script
-  = liftIO
-      (js_setSansSerifFontFamily (self) (toJSString family')
-         (toJSString script))
- 
-foreign import javascript unsafe
-        "$1[\"setFixedFontFamily\"]($2, $3)" js_setFixedFontFamily ::
-        InternalSettings -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setFixedFontFamily Mozilla InternalSettings.setFixedFontFamily documentation> 
-setFixedFontFamily ::
-                   (MonadIO m, ToJSString family', ToJSString script) =>
-                     InternalSettings -> family' -> script -> m ()
-setFixedFontFamily self family' script
-  = liftIO
-      (js_setFixedFontFamily (self) (toJSString family')
-         (toJSString script))
- 
-foreign import javascript unsafe
-        "$1[\"setCursiveFontFamily\"]($2,\n$3)" js_setCursiveFontFamily ::
-        InternalSettings -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setCursiveFontFamily Mozilla InternalSettings.setCursiveFontFamily documentation> 
-setCursiveFontFamily ::
-                     (MonadIO m, ToJSString family', ToJSString script) =>
-                       InternalSettings -> family' -> script -> m ()
-setCursiveFontFamily self family' script
-  = liftIO
-      (js_setCursiveFontFamily (self) (toJSString family')
-         (toJSString script))
- 
-foreign import javascript unsafe
-        "$1[\"setFantasyFontFamily\"]($2,\n$3)" js_setFantasyFontFamily ::
-        InternalSettings -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setFantasyFontFamily Mozilla InternalSettings.setFantasyFontFamily documentation> 
-setFantasyFontFamily ::
-                     (MonadIO m, ToJSString family', ToJSString script) =>
-                       InternalSettings -> family' -> script -> m ()
-setFantasyFontFamily self family' script
-  = liftIO
-      (js_setFantasyFontFamily (self) (toJSString family')
-         (toJSString script))
- 
-foreign import javascript unsafe
-        "$1[\"setPictographFontFamily\"]($2,\n$3)"
-        js_setPictographFontFamily ::
-        InternalSettings -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setPictographFontFamily Mozilla InternalSettings.setPictographFontFamily documentation> 
-setPictographFontFamily ::
-                        (MonadIO m, ToJSString family', ToJSString script) =>
-                          InternalSettings -> family' -> script -> m ()
-setPictographFontFamily self family' script
-  = liftIO
-      (js_setPictographFontFamily (self) (toJSString family')
-         (toJSString script))
- 
-foreign import javascript unsafe
-        "$1[\"setFontFallbackPrefersPictographs\"]($2)"
-        js_setFontFallbackPrefersPictographs ::
-        InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setFontFallbackPrefersPictographs Mozilla InternalSettings.setFontFallbackPrefersPictographs documentation> 
-setFontFallbackPrefersPictographs ::
-                                  (MonadIO m) => InternalSettings -> Bool -> m ()
-setFontFallbackPrefersPictographs self preferPictographs
-  = liftIO
-      (js_setFontFallbackPrefersPictographs (self) preferPictographs)
- 
-foreign import javascript unsafe
-        "$1[\"setTextAutosizingEnabled\"]($2)" js_setTextAutosizingEnabled
-        :: InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setTextAutosizingEnabled Mozilla InternalSettings.setTextAutosizingEnabled documentation> 
-setTextAutosizingEnabled ::
-                         (MonadIO m) => InternalSettings -> Bool -> m ()
-setTextAutosizingEnabled self enabled
-  = liftIO (js_setTextAutosizingEnabled (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setTextAutosizingWindowSizeOverride\"]($2,\n$3)"
-        js_setTextAutosizingWindowSizeOverride ::
-        InternalSettings -> Int -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setTextAutosizingWindowSizeOverride Mozilla InternalSettings.setTextAutosizingWindowSizeOverride documentation> 
-setTextAutosizingWindowSizeOverride ::
-                                    (MonadIO m) => InternalSettings -> Int -> Int -> m ()
-setTextAutosizingWindowSizeOverride self width height
-  = liftIO
-      (js_setTextAutosizingWindowSizeOverride (self) width height)
- 
-foreign import javascript unsafe
-        "$1[\"setTextAutosizingFontScaleFactor\"]($2)"
-        js_setTextAutosizingFontScaleFactor ::
-        InternalSettings -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setTextAutosizingFontScaleFactor Mozilla InternalSettings.setTextAutosizingFontScaleFactor documentation> 
-setTextAutosizingFontScaleFactor ::
-                                 (MonadIO m) => InternalSettings -> Float -> m ()
-setTextAutosizingFontScaleFactor self fontScaleFactor
-  = liftIO
-      (js_setTextAutosizingFontScaleFactor (self) fontScaleFactor)
- 
-foreign import javascript unsafe "$1[\"setCSSShapesEnabled\"]($2)"
-        js_setCSSShapesEnabled :: InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setCSSShapesEnabled Mozilla InternalSettings.setCSSShapesEnabled documentation> 
-setCSSShapesEnabled ::
-                    (MonadIO m) => InternalSettings -> Bool -> m ()
-setCSSShapesEnabled self enabled
-  = liftIO (js_setCSSShapesEnabled (self) enabled)
- 
-foreign import javascript unsafe "$1[\"setCanStartMedia\"]($2)"
-        js_setCanStartMedia :: InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setCanStartMedia Mozilla InternalSettings.setCanStartMedia documentation> 
-setCanStartMedia :: (MonadIO m) => InternalSettings -> Bool -> m ()
-setCanStartMedia self enabled
-  = liftIO (js_setCanStartMedia (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setShouldDisplayTrackKind\"]($2,\n$3)"
-        js_setShouldDisplayTrackKind ::
-        InternalSettings -> JSString -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setShouldDisplayTrackKind Mozilla InternalSettings.setShouldDisplayTrackKind documentation> 
-setShouldDisplayTrackKind ::
-                          (MonadIO m, ToJSString kind) =>
-                            InternalSettings -> kind -> Bool -> m ()
-setShouldDisplayTrackKind self kind enabled
-  = liftIO
-      (js_setShouldDisplayTrackKind (self) (toJSString kind) enabled)
- 
-foreign import javascript unsafe
-        "($1[\"shouldDisplayTrackKind\"]($2) ? 1 : 0)"
-        js_shouldDisplayTrackKind ::
-        InternalSettings -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.shouldDisplayTrackKind Mozilla InternalSettings.shouldDisplayTrackKind documentation> 
-shouldDisplayTrackKind ::
-                       (MonadIO m, ToJSString trackKind) =>
-                         InternalSettings -> trackKind -> m Bool
-shouldDisplayTrackKind self trackKind
-  = liftIO (js_shouldDisplayTrackKind (self) (toJSString trackKind))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.shouldDisplayTrackKind Mozilla InternalSettings.shouldDisplayTrackKind documentation> 
-shouldDisplayTrackKind_ ::
-                        (MonadIO m, ToJSString trackKind) =>
-                          InternalSettings -> trackKind -> m ()
-shouldDisplayTrackKind_ self trackKind
-  = liftIO
-      (void (js_shouldDisplayTrackKind (self) (toJSString trackKind)))
- 
-foreign import javascript unsafe
-        "$1[\"setDefaultVideoPosterURL\"]($2)" js_setDefaultVideoPosterURL
-        :: InternalSettings -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setDefaultVideoPosterURL Mozilla InternalSettings.setDefaultVideoPosterURL documentation> 
-setDefaultVideoPosterURL ::
-                         (MonadIO m, ToJSString poster) =>
-                           InternalSettings -> poster -> m ()
-setDefaultVideoPosterURL self poster
-  = liftIO (js_setDefaultVideoPosterURL (self) (toJSString poster))
- 
-foreign import javascript unsafe
-        "$1[\"setTimeWithoutMouseMovementBeforeHidingControls\"]($2)"
-        js_setTimeWithoutMouseMovementBeforeHidingControls ::
-        InternalSettings -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setTimeWithoutMouseMovementBeforeHidingControls Mozilla InternalSettings.setTimeWithoutMouseMovementBeforeHidingControls documentation> 
-setTimeWithoutMouseMovementBeforeHidingControls ::
-                                                (MonadIO m) => InternalSettings -> Double -> m ()
-setTimeWithoutMouseMovementBeforeHidingControls self time
-  = liftIO
-      (js_setTimeWithoutMouseMovementBeforeHidingControls (self) time)
- 
-foreign import javascript unsafe "$1[\"setMediaTypeOverride\"]($2)"
-        js_setMediaTypeOverride :: InternalSettings -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setMediaTypeOverride Mozilla InternalSettings.setMediaTypeOverride documentation> 
-setMediaTypeOverride ::
-                     (MonadIO m, ToJSString mediaTypeOverride) =>
-                       InternalSettings -> mediaTypeOverride -> m ()
-setMediaTypeOverride self mediaTypeOverride
-  = liftIO
-      (js_setMediaTypeOverride (self) (toJSString mediaTypeOverride))
- 
-foreign import javascript unsafe
-        "$1[\"setPluginReplacementEnabled\"]($2)"
-        js_setPluginReplacementEnabled :: InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setPluginReplacementEnabled Mozilla InternalSettings.setPluginReplacementEnabled documentation> 
-setPluginReplacementEnabled ::
-                            (MonadIO m) => InternalSettings -> Bool -> m ()
-setPluginReplacementEnabled self enabled
-  = liftIO (js_setPluginReplacementEnabled (self) enabled)
- 
-foreign import javascript unsafe "$1[\"setEditingBehavior\"]($2)"
-        js_setEditingBehavior :: InternalSettings -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setEditingBehavior Mozilla InternalSettings.setEditingBehavior documentation> 
-setEditingBehavior ::
-                   (MonadIO m, ToJSString behavior) =>
-                     InternalSettings -> behavior -> m ()
-setEditingBehavior self behavior
-  = liftIO (js_setEditingBehavior (self) (toJSString behavior))
- 
-foreign import javascript unsafe
-        "$1[\"setShouldConvertPositionStyleOnCopy\"]($2)"
-        js_setShouldConvertPositionStyleOnCopy ::
-        InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setShouldConvertPositionStyleOnCopy Mozilla InternalSettings.setShouldConvertPositionStyleOnCopy documentation> 
-setShouldConvertPositionStyleOnCopy ::
-                                    (MonadIO m) => InternalSettings -> Bool -> m ()
-setShouldConvertPositionStyleOnCopy self convert
-  = liftIO (js_setShouldConvertPositionStyleOnCopy (self) convert)
- 
-foreign import javascript unsafe
-        "$1[\"setLangAttributeAwareFormControlUIEnabled\"]($2)"
-        js_setLangAttributeAwareFormControlUIEnabled ::
-        InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setLangAttributeAwareFormControlUIEnabled Mozilla InternalSettings.setLangAttributeAwareFormControlUIEnabled documentation> 
-setLangAttributeAwareFormControlUIEnabled ::
-                                          (MonadIO m) => InternalSettings -> Bool -> m ()
-setLangAttributeAwareFormControlUIEnabled self enabled
-  = liftIO
-      (js_setLangAttributeAwareFormControlUIEnabled (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setStorageBlockingPolicy\"]($2)" js_setStorageBlockingPolicy
-        :: InternalSettings -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setStorageBlockingPolicy Mozilla InternalSettings.setStorageBlockingPolicy documentation> 
-setStorageBlockingPolicy ::
-                         (MonadIO m, ToJSString policy) =>
-                           InternalSettings -> policy -> m ()
-setStorageBlockingPolicy self policy
-  = liftIO (js_setStorageBlockingPolicy (self) (toJSString policy))
- 
-foreign import javascript unsafe "$1[\"setImagesEnabled\"]($2)"
-        js_setImagesEnabled :: InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setImagesEnabled Mozilla InternalSettings.setImagesEnabled documentation> 
-setImagesEnabled :: (MonadIO m) => InternalSettings -> Bool -> m ()
-setImagesEnabled self enabled
-  = liftIO (js_setImagesEnabled (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setUseLegacyBackgroundSizeShorthandBehavior\"]($2)"
-        js_setUseLegacyBackgroundSizeShorthandBehavior ::
-        InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setUseLegacyBackgroundSizeShorthandBehavior Mozilla InternalSettings.setUseLegacyBackgroundSizeShorthandBehavior documentation> 
-setUseLegacyBackgroundSizeShorthandBehavior ::
-                                            (MonadIO m) => InternalSettings -> Bool -> m ()
-setUseLegacyBackgroundSizeShorthandBehavior self enabled
-  = liftIO
-      (js_setUseLegacyBackgroundSizeShorthandBehavior (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setAutoscrollForDragAndDropEnabled\"]($2)"
-        js_setAutoscrollForDragAndDropEnabled ::
-        InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setAutoscrollForDragAndDropEnabled Mozilla InternalSettings.setAutoscrollForDragAndDropEnabled documentation> 
-setAutoscrollForDragAndDropEnabled ::
-                                   (MonadIO m) => InternalSettings -> Bool -> m ()
-setAutoscrollForDragAndDropEnabled self enabled
-  = liftIO (js_setAutoscrollForDragAndDropEnabled (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setBackgroundShouldExtendBeyondPage\"]($2)"
-        js_setBackgroundShouldExtendBeyondPage ::
-        InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setBackgroundShouldExtendBeyondPage Mozilla InternalSettings.setBackgroundShouldExtendBeyondPage documentation> 
-setBackgroundShouldExtendBeyondPage ::
-                                    (MonadIO m) => InternalSettings -> Bool -> m ()
-setBackgroundShouldExtendBeyondPage self hasExtendedBackground
-  = liftIO
-      (js_setBackgroundShouldExtendBeyondPage (self)
-         hasExtendedBackground)
- 
-foreign import javascript unsafe
-        "$1[\"setScrollingTreeIncludesFrames\"]($2)"
-        js_setScrollingTreeIncludesFrames ::
-        InternalSettings -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setScrollingTreeIncludesFrames Mozilla InternalSettings.setScrollingTreeIncludesFrames documentation> 
-setScrollingTreeIncludesFrames ::
-                               (MonadIO m) => InternalSettings -> Bool -> m ()
-setScrollingTreeIncludesFrames self enabled
-  = liftIO (js_setScrollingTreeIncludesFrames (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setMinimumTimerInterval\"]($2)" js_setMinimumTimerInterval ::
-        InternalSettings -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings.setMinimumTimerInterval Mozilla InternalSettings.setMinimumTimerInterval documentation> 
-setMinimumTimerInterval ::
-                        (MonadIO m) => InternalSettings -> Double -> m ()
-setMinimumTimerInterval self intervalInSeconds
-  = liftIO (js_setMinimumTimerInterval (self) intervalInSeconds)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Internals.hs b/src/GHCJS/DOM/JSFFI/Generated/Internals.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/Internals.hs
+++ /dev/null
@@ -1,3486 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.Internals
-       (js_address, address, address_, js_nodeNeedsStyleRecalc,
-        nodeNeedsStyleRecalc, nodeNeedsStyleRecalc_, js_description,
-        description, description_, js_hasPausedImageAnimations,
-        hasPausedImageAnimations, hasPausedImageAnimations_,
-        js_elementRenderTreeAsText, elementRenderTreeAsText,
-        elementRenderTreeAsText_, js_isPreloaded, isPreloaded,
-        isPreloaded_, js_isLoadingFromMemoryCache,
-        isLoadingFromMemoryCache, isLoadingFromMemoryCache_,
-        js_xhrResponseSource, xhrResponseSource, xhrResponseSource_,
-        js_clearMemoryCache, clearMemoryCache, js_pruneMemoryCacheToSize,
-        pruneMemoryCacheToSize, js_memoryCacheSize, memoryCacheSize,
-        memoryCacheSize_, js_clearPageCache, clearPageCache,
-        js_pageCacheSize, pageCacheSize, pageCacheSize_,
-        js_computedStyleIncludingVisitedInfo,
-        computedStyleIncludingVisitedInfo,
-        computedStyleIncludingVisitedInfo_,
-        computedStyleIncludingVisitedInfoUnsafe,
-        computedStyleIncludingVisitedInfoUnchecked, js_ensureShadowRoot,
-        ensureShadowRoot, ensureShadowRoot_, ensureShadowRootUnsafe,
-        ensureShadowRootUnchecked, js_createShadowRoot, createShadowRoot,
-        createShadowRoot_, createShadowRootUnsafe,
-        createShadowRootUnchecked, js_shadowRoot, shadowRoot, shadowRoot_,
-        shadowRootUnsafe, shadowRootUnchecked, js_shadowRootType,
-        shadowRootType, shadowRootType_, js_includerFor, includerFor,
-        includerFor_, includerForUnsafe, includerForUnchecked,
-        js_shadowPseudoId, shadowPseudoId, shadowPseudoId_,
-        js_setShadowPseudoId, setShadowPseudoId, js_treeScopeRootNode,
-        treeScopeRootNode, treeScopeRootNode_, treeScopeRootNodeUnsafe,
-        treeScopeRootNodeUnchecked, js_parentTreeScope, parentTreeScope,
-        parentTreeScope_, parentTreeScopeUnsafe, parentTreeScopeUnchecked,
-        js_lastSpatialNavigationCandidateCount,
-        lastSpatialNavigationCandidateCount,
-        lastSpatialNavigationCandidateCount_, js_numberOfActiveAnimations,
-        numberOfActiveAnimations, numberOfActiveAnimations_,
-        js_suspendAnimations, suspendAnimations, js_resumeAnimations,
-        resumeAnimations, js_animationsAreSuspended,
-        animationsAreSuspended, animationsAreSuspended_,
-        js_pauseAnimationAtTimeOnElement, pauseAnimationAtTimeOnElement,
-        pauseAnimationAtTimeOnElement_,
-        js_pauseAnimationAtTimeOnPseudoElement,
-        pauseAnimationAtTimeOnPseudoElement,
-        pauseAnimationAtTimeOnPseudoElement_,
-        js_pauseTransitionAtTimeOnElement, pauseTransitionAtTimeOnElement,
-        pauseTransitionAtTimeOnElement_,
-        js_pauseTransitionAtTimeOnPseudoElement,
-        pauseTransitionAtTimeOnPseudoElement,
-        pauseTransitionAtTimeOnPseudoElement_, js_attached, attached,
-        attached_, js_visiblePlaceholder, visiblePlaceholder,
-        visiblePlaceholder_, js_selectColorInColorChooser,
-        selectColorInColorChooser,
-        js_formControlStateOfPreviousHistoryItem,
-        formControlStateOfPreviousHistoryItem,
-        formControlStateOfPreviousHistoryItem_,
-        js_setFormControlStateOfPreviousHistoryItem,
-        setFormControlStateOfPreviousHistoryItem, js_absoluteCaretBounds,
-        absoluteCaretBounds, absoluteCaretBounds_,
-        absoluteCaretBoundsUnsafe, absoluteCaretBoundsUnchecked,
-        js_boundingBox, boundingBox, boundingBox_, boundingBoxUnsafe,
-        boundingBoxUnchecked, js_inspectorHighlightRects,
-        inspectorHighlightRects, inspectorHighlightRects_,
-        inspectorHighlightRectsUnsafe, inspectorHighlightRectsUnchecked,
-        js_inspectorHighlightObject, inspectorHighlightObject,
-        inspectorHighlightObject_, js_markerCountForNode,
-        markerCountForNode, markerCountForNode_, js_markerRangeForNode,
-        markerRangeForNode, markerRangeForNode_, markerRangeForNodeUnsafe,
-        markerRangeForNodeUnchecked, js_markerDescriptionForNode,
-        markerDescriptionForNode, markerDescriptionForNode_,
-        js_addTextMatchMarker, addTextMatchMarker,
-        js_setMarkedTextMatchesAreHighlighted,
-        setMarkedTextMatchesAreHighlighted, js_invalidateFontCache,
-        invalidateFontCache, js_setScrollViewPosition,
-        setScrollViewPosition, js_setPagination, setPagination,
-        js_configurationForViewport, configurationForViewport,
-        configurationForViewport_, js_wasLastChangeUserEdit,
-        wasLastChangeUserEdit, wasLastChangeUserEdit_,
-        js_elementShouldAutoComplete, elementShouldAutoComplete,
-        elementShouldAutoComplete_, js_setEditingValue, setEditingValue,
-        js_setAutofilled, setAutofilled, js_countMatchesForText,
-        countMatchesForText, countMatchesForText_, js_paintControlTints,
-        paintControlTints, js_scrollElementToRect, scrollElementToRect,
-        js_rangeFromLocationAndLength, rangeFromLocationAndLength,
-        rangeFromLocationAndLength_, rangeFromLocationAndLengthUnsafe,
-        rangeFromLocationAndLengthUnchecked, js_locationFromRange,
-        locationFromRange, locationFromRange_, js_lengthFromRange,
-        lengthFromRange, lengthFromRange_, js_rangeAsText, rangeAsText,
-        rangeAsText_, js_subrange, subrange, subrange_, subrangeUnsafe,
-        subrangeUnchecked, js_rangeForDictionaryLookupAtLocation,
-        rangeForDictionaryLookupAtLocation,
-        rangeForDictionaryLookupAtLocation_,
-        rangeForDictionaryLookupAtLocationUnsafe,
-        rangeForDictionaryLookupAtLocationUnchecked,
-        js_setDelegatesScrolling, setDelegatesScrolling,
-        js_lastSpellCheckRequestSequence, lastSpellCheckRequestSequence,
-        lastSpellCheckRequestSequence_, js_lastSpellCheckProcessedSequence,
-        lastSpellCheckProcessedSequence, lastSpellCheckProcessedSequence_,
-        js_userPreferredLanguages, userPreferredLanguages,
-        userPreferredLanguages_, js_setUserPreferredLanguages,
-        setUserPreferredLanguages, js_wheelEventHandlerCount,
-        wheelEventHandlerCount, wheelEventHandlerCount_,
-        js_touchEventHandlerCount, touchEventHandlerCount,
-        touchEventHandlerCount_, js_nodesFromRect, nodesFromRect,
-        nodesFromRect_, nodesFromRectUnsafe, nodesFromRectUnchecked,
-        js_parserMetaData, parserMetaData, parserMetaData_,
-        js_updateEditorUINowIfScheduled, updateEditorUINowIfScheduled,
-        js_hasSpellingMarker, hasSpellingMarker, hasSpellingMarker_,
-        js_hasGrammarMarker, hasGrammarMarker, hasGrammarMarker_,
-        js_hasAutocorrectedMarker, hasAutocorrectedMarker,
-        hasAutocorrectedMarker_, js_setContinuousSpellCheckingEnabled,
-        setContinuousSpellCheckingEnabled,
-        js_setAutomaticQuoteSubstitutionEnabled,
-        setAutomaticQuoteSubstitutionEnabled,
-        js_setAutomaticLinkDetectionEnabled,
-        setAutomaticLinkDetectionEnabled,
-        js_setAutomaticDashSubstitutionEnabled,
-        setAutomaticDashSubstitutionEnabled,
-        js_setAutomaticTextReplacementEnabled,
-        setAutomaticTextReplacementEnabled,
-        js_setAutomaticSpellingCorrectionEnabled,
-        setAutomaticSpellingCorrectionEnabled, js_isOverwriteModeEnabled,
-        isOverwriteModeEnabled, isOverwriteModeEnabled_,
-        js_toggleOverwriteModeEnabled, toggleOverwriteModeEnabled,
-        js_numberOfScrollableAreas, numberOfScrollableAreas,
-        numberOfScrollableAreas_, js_isPageBoxVisible, isPageBoxVisible,
-        isPageBoxVisible_, js_layerTreeAsText, layerTreeAsText,
-        layerTreeAsText_, js_scrollingStateTreeAsText,
-        scrollingStateTreeAsText, scrollingStateTreeAsText_,
-        js_mainThreadScrollingReasons, mainThreadScrollingReasons,
-        mainThreadScrollingReasons_, js_nonFastScrollableRects,
-        nonFastScrollableRects, nonFastScrollableRects_,
-        nonFastScrollableRectsUnsafe, nonFastScrollableRectsUnchecked,
-        js_repaintRectsAsText, repaintRectsAsText, repaintRectsAsText_,
-        js_garbageCollectDocumentResources,
-        garbageCollectDocumentResources, js_allowRoundingHacks,
-        allowRoundingHacks, js_insertAuthorCSS, insertAuthorCSS,
-        js_insertUserCSS, insertUserCSS, js_setBatteryStatus,
-        setBatteryStatus, js_setDeviceProximity, setDeviceProximity,
-        js_numberOfLiveNodes, numberOfLiveNodes, numberOfLiveNodes_,
-        js_numberOfLiveDocuments, numberOfLiveDocuments,
-        numberOfLiveDocuments_, js_consoleMessageArgumentCounts,
-        consoleMessageArgumentCounts, consoleMessageArgumentCounts_,
-        js_openDummyInspectorFrontend, openDummyInspectorFrontend,
-        openDummyInspectorFrontend_, openDummyInspectorFrontendUnsafe,
-        openDummyInspectorFrontendUnchecked,
-        js_closeDummyInspectorFrontend, closeDummyInspectorFrontend,
-        js_setJavaScriptProfilingEnabled, setJavaScriptProfilingEnabled,
-        js_setInspectorIsUnderTest, setInspectorIsUnderTest,
-        js_counterValue, counterValue, counterValue_, js_pageNumber,
-        pageNumber, pageNumber_, js_shortcutIconURLs, shortcutIconURLs,
-        shortcutIconURLs_, js_allIconURLs, allIconURLs, allIconURLs_,
-        js_numberOfPages, numberOfPages, numberOfPages_, js_pageProperty,
-        pageProperty, pageProperty_, js_pageSizeAndMarginsInPixels,
-        pageSizeAndMarginsInPixels, pageSizeAndMarginsInPixels_,
-        js_setPageScaleFactor, setPageScaleFactor, js_setPageZoomFactor,
-        setPageZoomFactor, js_setHeaderHeight, setHeaderHeight,
-        js_setFooterHeight, setFooterHeight, js_setTopContentInset,
-        setTopContentInset, js_webkitWillEnterFullScreenForElement,
-        webkitWillEnterFullScreenForElement,
-        js_webkitDidEnterFullScreenForElement,
-        webkitDidEnterFullScreenForElement,
-        js_webkitWillExitFullScreenForElement,
-        webkitWillExitFullScreenForElement,
-        js_webkitDidExitFullScreenForElement,
-        webkitDidExitFullScreenForElement,
-        js_setApplicationCacheOriginQuota, setApplicationCacheOriginQuota,
-        js_registerURLSchemeAsBypassingContentSecurityPolicy,
-        registerURLSchemeAsBypassingContentSecurityPolicy,
-        js_removeURLSchemeRegisteredAsBypassingContentSecurityPolicy,
-        removeURLSchemeRegisteredAsBypassingContentSecurityPolicy,
-        js_mallocStatistics, mallocStatistics, mallocStatistics_,
-        mallocStatisticsUnsafe, mallocStatisticsUnchecked,
-        js_typeConversions, typeConversions, typeConversions_,
-        typeConversionsUnsafe, typeConversionsUnchecked, js_memoryInfo,
-        memoryInfo, memoryInfo_, memoryInfoUnsafe, memoryInfoUnchecked,
-        js_getReferencedFilePaths, getReferencedFilePaths,
-        getReferencedFilePaths_, js_startTrackingRepaints,
-        startTrackingRepaints, js_stopTrackingRepaints,
-        stopTrackingRepaints, js_isTimerThrottled, isTimerThrottled,
-        isTimerThrottled_,
-        js_updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks,
-        updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks,
-        js_getCurrentCursorInfo, getCurrentCursorInfo,
-        getCurrentCursorInfo_, js_markerTextForListItem,
-        markerTextForListItem, markerTextForListItem_,
-        js_toolTipFromElement, toolTipFromElement, toolTipFromElement_,
-        js_deserializeBuffer, deserializeBuffer, deserializeBuffer_,
-        deserializeBufferUnsafe, deserializeBufferUnchecked,
-        js_serializeObject, serializeObject, serializeObject_,
-        serializeObjectUnsafe, serializeObjectUnchecked,
-        js_setUsesOverlayScrollbars, setUsesOverlayScrollbars,
-        js_forceReload, forceReload, js_simulateAudioInterruption,
-        simulateAudioInterruption, js_mediaElementHasCharacteristic,
-        mediaElementHasCharacteristic, mediaElementHasCharacteristic_,
-        js_initializeMockCDM, initializeMockCDM,
-        js_enableMockSpeechSynthesizer, enableMockSpeechSynthesizer,
-        js_getImageSourceURL, getImageSourceURL, getImageSourceURL_,
-        js_captionsStyleSheetOverride, captionsStyleSheetOverride,
-        captionsStyleSheetOverride_, js_setCaptionsStyleSheetOverride,
-        setCaptionsStyleSheetOverride,
-        js_setPrimaryAudioTrackLanguageOverride,
-        setPrimaryAudioTrackLanguageOverride, js_setCaptionDisplayMode,
-        setCaptionDisplayMode, js_createTimeRanges, createTimeRanges,
-        createTimeRanges_, createTimeRangesUnsafe,
-        createTimeRangesUnchecked, js_closestTimeToTimeRanges,
-        closestTimeToTimeRanges, closestTimeToTimeRanges_,
-        js_isSelectPopupVisible, isSelectPopupVisible,
-        isSelectPopupVisible_, js_isVibrating, isVibrating, isVibrating_,
-        js_isPluginUnavailabilityIndicatorObscured,
-        isPluginUnavailabilityIndicatorObscured,
-        isPluginUnavailabilityIndicatorObscured_, js_isPluginSnapshotted,
-        isPluginSnapshotted, isPluginSnapshotted_, js_selectionBounds,
-        selectionBounds, selectionBounds_, selectionBoundsUnsafe,
-        selectionBoundsUnchecked, js_initializeMockMediaSource,
-        initializeMockMediaSource, js_bufferedSamplesForTrackID,
-        bufferedSamplesForTrackID, bufferedSamplesForTrackID_,
-        js_beginMediaSessionInterruption, beginMediaSessionInterruption,
-        js_endMediaSessionInterruption, endMediaSessionInterruption,
-        js_applicationWillEnterForeground, applicationWillEnterForeground,
-        js_applicationWillEnterBackground, applicationWillEnterBackground,
-        js_setMediaSessionRestrictions, setMediaSessionRestrictions,
-        js_postRemoteControlCommand, postRemoteControlCommand,
-        js_simulateSystemSleep, simulateSystemSleep, js_simulateSystemWake,
-        simulateSystemWake, js_elementIsBlockingDisplaySleep,
-        elementIsBlockingDisplaySleep, elementIsBlockingDisplaySleep_,
-        js_installMockPageOverlay, installMockPageOverlay,
-        js_pageOverlayLayerTreeAsText, pageOverlayLayerTreeAsText,
-        pageOverlayLayerTreeAsText_, js_setPageMuted, setPageMuted,
-        js_isPagePlayingAudio, isPagePlayingAudio, isPagePlayingAudio_,
-        pattern LAYER_TREE_INCLUDES_VISIBLE_RECTS,
-        pattern LAYER_TREE_INCLUDES_TILE_CACHES,
-        pattern LAYER_TREE_INCLUDES_REPAINT_RECTS,
-        pattern LAYER_TREE_INCLUDES_PAINTING_PHASES,
-        pattern LAYER_TREE_INCLUDES_CONTENT_LAYERS, js_getSettings,
-        getSettings, getSettingsUnsafe, getSettingsUnchecked,
-        js_getWorkerThreadCount, getWorkerThreadCount,
-        js_getConsoleProfiles, getConsoleProfiles, Internals(..),
-        gTypeInternals)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"address\"]($2)" js_address
-        :: Internals -> Nullable Node -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.address Mozilla Internals.address documentation> 
-address ::
-        (MonadIO m, IsNode node, FromJSString result) =>
-          Internals -> Maybe node -> m result
-address self node
-  = liftIO
-      (fromJSString <$>
-         (js_address (self) (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.address Mozilla Internals.address documentation> 
-address_ ::
-         (MonadIO m, IsNode node) => Internals -> Maybe node -> m ()
-address_ self node
-  = liftIO
-      (void (js_address (self) (maybeToNullable (fmap toNode node))))
- 
-foreign import javascript unsafe
-        "($1[\"nodeNeedsStyleRecalc\"]($2) ? 1 : 0)"
-        js_nodeNeedsStyleRecalc :: Internals -> Nullable Node -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.nodeNeedsStyleRecalc Mozilla Internals.nodeNeedsStyleRecalc documentation> 
-nodeNeedsStyleRecalc ::
-                     (MonadIO m, IsNode node) => Internals -> Maybe node -> m Bool
-nodeNeedsStyleRecalc self node
-  = liftIO
-      (js_nodeNeedsStyleRecalc (self)
-         (maybeToNullable (fmap toNode node)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.nodeNeedsStyleRecalc Mozilla Internals.nodeNeedsStyleRecalc documentation> 
-nodeNeedsStyleRecalc_ ::
-                      (MonadIO m, IsNode node) => Internals -> Maybe node -> m ()
-nodeNeedsStyleRecalc_ self node
-  = liftIO
-      (void
-         (js_nodeNeedsStyleRecalc (self)
-            (maybeToNullable (fmap toNode node))))
- 
-foreign import javascript unsafe "$1[\"description\"]($2)"
-        js_description :: Internals -> JSVal -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.description Mozilla Internals.description documentation> 
-description ::
-            (MonadIO m, FromJSString result) => Internals -> JSVal -> m result
-description self value
-  = liftIO (fromJSString <$> (js_description (self) value))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.description Mozilla Internals.description documentation> 
-description_ :: (MonadIO m) => Internals -> JSVal -> m ()
-description_ self value
-  = liftIO (void (js_description (self) value))
- 
-foreign import javascript unsafe
-        "($1[\"hasPausedImageAnimations\"]($2) ? 1 : 0)"
-        js_hasPausedImageAnimations ::
-        Internals -> Nullable Element -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.hasPausedImageAnimations Mozilla Internals.hasPausedImageAnimations documentation> 
-hasPausedImageAnimations ::
-                         (MonadIO m, IsElement element) =>
-                           Internals -> Maybe element -> m Bool
-hasPausedImageAnimations self element
-  = liftIO
-      (js_hasPausedImageAnimations (self)
-         (maybeToNullable (fmap toElement element)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.hasPausedImageAnimations Mozilla Internals.hasPausedImageAnimations documentation> 
-hasPausedImageAnimations_ ::
-                          (MonadIO m, IsElement element) =>
-                            Internals -> Maybe element -> m ()
-hasPausedImageAnimations_ self element
-  = liftIO
-      (void
-         (js_hasPausedImageAnimations (self)
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe
-        "$1[\"elementRenderTreeAsText\"]($2)" js_elementRenderTreeAsText ::
-        Internals -> Nullable Element -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.elementRenderTreeAsText Mozilla Internals.elementRenderTreeAsText documentation> 
-elementRenderTreeAsText ::
-                        (MonadIO m, IsElement element, FromJSString result) =>
-                          Internals -> Maybe element -> m result
-elementRenderTreeAsText self element
-  = liftIO
-      (fromJSString <$>
-         (js_elementRenderTreeAsText (self)
-            (maybeToNullable (fmap toElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.elementRenderTreeAsText Mozilla Internals.elementRenderTreeAsText documentation> 
-elementRenderTreeAsText_ ::
-                         (MonadIO m, IsElement element) =>
-                           Internals -> Maybe element -> m ()
-elementRenderTreeAsText_ self element
-  = liftIO
-      (void
-         (js_elementRenderTreeAsText (self)
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe
-        "($1[\"isPreloaded\"]($2) ? 1 : 0)" js_isPreloaded ::
-        Internals -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isPreloaded Mozilla Internals.isPreloaded documentation> 
-isPreloaded ::
-            (MonadIO m, ToJSString url) => Internals -> url -> m Bool
-isPreloaded self url
-  = liftIO (js_isPreloaded (self) (toJSString url))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isPreloaded Mozilla Internals.isPreloaded documentation> 
-isPreloaded_ ::
-             (MonadIO m, ToJSString url) => Internals -> url -> m ()
-isPreloaded_ self url
-  = liftIO (void (js_isPreloaded (self) (toJSString url)))
- 
-foreign import javascript unsafe
-        "($1[\"isLoadingFromMemoryCache\"]($2) ? 1 : 0)"
-        js_isLoadingFromMemoryCache :: Internals -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isLoadingFromMemoryCache Mozilla Internals.isLoadingFromMemoryCache documentation> 
-isLoadingFromMemoryCache ::
-                         (MonadIO m, ToJSString url) => Internals -> url -> m Bool
-isLoadingFromMemoryCache self url
-  = liftIO (js_isLoadingFromMemoryCache (self) (toJSString url))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isLoadingFromMemoryCache Mozilla Internals.isLoadingFromMemoryCache documentation> 
-isLoadingFromMemoryCache_ ::
-                          (MonadIO m, ToJSString url) => Internals -> url -> m ()
-isLoadingFromMemoryCache_ self url
-  = liftIO
-      (void (js_isLoadingFromMemoryCache (self) (toJSString url)))
- 
-foreign import javascript unsafe "$1[\"xhrResponseSource\"]($2)"
-        js_xhrResponseSource ::
-        Internals -> Nullable XMLHttpRequest -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.xhrResponseSource Mozilla Internals.xhrResponseSource documentation> 
-xhrResponseSource ::
-                  (MonadIO m, FromJSString result) =>
-                    Internals -> Maybe XMLHttpRequest -> m result
-xhrResponseSource self xhr
-  = liftIO
-      (fromJSString <$>
-         (js_xhrResponseSource (self) (maybeToNullable xhr)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.xhrResponseSource Mozilla Internals.xhrResponseSource documentation> 
-xhrResponseSource_ ::
-                   (MonadIO m) => Internals -> Maybe XMLHttpRequest -> m ()
-xhrResponseSource_ self xhr
-  = liftIO (void (js_xhrResponseSource (self) (maybeToNullable xhr)))
- 
-foreign import javascript unsafe "$1[\"clearMemoryCache\"]()"
-        js_clearMemoryCache :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.clearMemoryCache Mozilla Internals.clearMemoryCache documentation> 
-clearMemoryCache :: (MonadIO m) => Internals -> m ()
-clearMemoryCache self = liftIO (js_clearMemoryCache (self))
- 
-foreign import javascript unsafe
-        "$1[\"pruneMemoryCacheToSize\"]($2)" js_pruneMemoryCacheToSize ::
-        Internals -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pruneMemoryCacheToSize Mozilla Internals.pruneMemoryCacheToSize documentation> 
-pruneMemoryCacheToSize :: (MonadIO m) => Internals -> Int -> m ()
-pruneMemoryCacheToSize self size
-  = liftIO (js_pruneMemoryCacheToSize (self) size)
- 
-foreign import javascript unsafe "$1[\"memoryCacheSize\"]()"
-        js_memoryCacheSize :: Internals -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.memoryCacheSize Mozilla Internals.memoryCacheSize documentation> 
-memoryCacheSize :: (MonadIO m) => Internals -> m Int
-memoryCacheSize self = liftIO (js_memoryCacheSize (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.memoryCacheSize Mozilla Internals.memoryCacheSize documentation> 
-memoryCacheSize_ :: (MonadIO m) => Internals -> m ()
-memoryCacheSize_ self = liftIO (void (js_memoryCacheSize (self)))
- 
-foreign import javascript unsafe "$1[\"clearPageCache\"]()"
-        js_clearPageCache :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.clearPageCache Mozilla Internals.clearPageCache documentation> 
-clearPageCache :: (MonadIO m) => Internals -> m ()
-clearPageCache self = liftIO (js_clearPageCache (self))
- 
-foreign import javascript unsafe "$1[\"pageCacheSize\"]()"
-        js_pageCacheSize :: Internals -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pageCacheSize Mozilla Internals.pageCacheSize documentation> 
-pageCacheSize :: (MonadIO m) => Internals -> m Word
-pageCacheSize self = liftIO (js_pageCacheSize (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pageCacheSize Mozilla Internals.pageCacheSize documentation> 
-pageCacheSize_ :: (MonadIO m) => Internals -> m ()
-pageCacheSize_ self = liftIO (void (js_pageCacheSize (self)))
- 
-foreign import javascript unsafe
-        "$1[\"computedStyleIncludingVisitedInfo\"]($2)"
-        js_computedStyleIncludingVisitedInfo ::
-        Internals -> Nullable Node -> IO (Nullable CSSStyleDeclaration)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.computedStyleIncludingVisitedInfo Mozilla Internals.computedStyleIncludingVisitedInfo documentation> 
-computedStyleIncludingVisitedInfo ::
-                                  (MonadIO m, IsNode node) =>
-                                    Internals -> Maybe node -> m (Maybe CSSStyleDeclaration)
-computedStyleIncludingVisitedInfo self node
-  = liftIO
-      (nullableToMaybe <$>
-         (js_computedStyleIncludingVisitedInfo (self)
-            (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.computedStyleIncludingVisitedInfo Mozilla Internals.computedStyleIncludingVisitedInfo documentation> 
-computedStyleIncludingVisitedInfo_ ::
-                                   (MonadIO m, IsNode node) => Internals -> Maybe node -> m ()
-computedStyleIncludingVisitedInfo_ self node
-  = liftIO
-      (void
-         (js_computedStyleIncludingVisitedInfo (self)
-            (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.computedStyleIncludingVisitedInfo Mozilla Internals.computedStyleIncludingVisitedInfo documentation> 
-computedStyleIncludingVisitedInfoUnsafe ::
-                                        (MonadIO m, IsNode node, HasCallStack) =>
-                                          Internals -> Maybe node -> m CSSStyleDeclaration
-computedStyleIncludingVisitedInfoUnsafe self node
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_computedStyleIncludingVisitedInfo (self)
-             (maybeToNullable (fmap toNode node))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.computedStyleIncludingVisitedInfo Mozilla Internals.computedStyleIncludingVisitedInfo documentation> 
-computedStyleIncludingVisitedInfoUnchecked ::
-                                           (MonadIO m, IsNode node) =>
-                                             Internals -> Maybe node -> m CSSStyleDeclaration
-computedStyleIncludingVisitedInfoUnchecked self node
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_computedStyleIncludingVisitedInfo (self)
-            (maybeToNullable (fmap toNode node))))
- 
-foreign import javascript unsafe "$1[\"ensureShadowRoot\"]($2)"
-        js_ensureShadowRoot ::
-        Internals -> Nullable Element -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.ensureShadowRoot Mozilla Internals.ensureShadowRoot documentation> 
-ensureShadowRoot ::
-                 (MonadIO m, IsElement host) =>
-                   Internals -> Maybe host -> m (Maybe Node)
-ensureShadowRoot self host
-  = liftIO
-      (nullableToMaybe <$>
-         (js_ensureShadowRoot (self)
-            (maybeToNullable (fmap toElement host))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.ensureShadowRoot Mozilla Internals.ensureShadowRoot documentation> 
-ensureShadowRoot_ ::
-                  (MonadIO m, IsElement host) => Internals -> Maybe host -> m ()
-ensureShadowRoot_ self host
-  = liftIO
-      (void
-         (js_ensureShadowRoot (self)
-            (maybeToNullable (fmap toElement host))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.ensureShadowRoot Mozilla Internals.ensureShadowRoot documentation> 
-ensureShadowRootUnsafe ::
-                       (MonadIO m, IsElement host, HasCallStack) =>
-                         Internals -> Maybe host -> m Node
-ensureShadowRootUnsafe self host
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_ensureShadowRoot (self)
-             (maybeToNullable (fmap toElement host))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.ensureShadowRoot Mozilla Internals.ensureShadowRoot documentation> 
-ensureShadowRootUnchecked ::
-                          (MonadIO m, IsElement host) => Internals -> Maybe host -> m Node
-ensureShadowRootUnchecked self host
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_ensureShadowRoot (self)
-            (maybeToNullable (fmap toElement host))))
- 
-foreign import javascript unsafe "$1[\"createShadowRoot\"]($2)"
-        js_createShadowRoot ::
-        Internals -> Nullable Element -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.createShadowRoot Mozilla Internals.createShadowRoot documentation> 
-createShadowRoot ::
-                 (MonadIO m, IsElement host) =>
-                   Internals -> Maybe host -> m (Maybe Node)
-createShadowRoot self host
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createShadowRoot (self)
-            (maybeToNullable (fmap toElement host))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.createShadowRoot Mozilla Internals.createShadowRoot documentation> 
-createShadowRoot_ ::
-                  (MonadIO m, IsElement host) => Internals -> Maybe host -> m ()
-createShadowRoot_ self host
-  = liftIO
-      (void
-         (js_createShadowRoot (self)
-            (maybeToNullable (fmap toElement host))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.createShadowRoot Mozilla Internals.createShadowRoot documentation> 
-createShadowRootUnsafe ::
-                       (MonadIO m, IsElement host, HasCallStack) =>
-                         Internals -> Maybe host -> m Node
-createShadowRootUnsafe self host
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createShadowRoot (self)
-             (maybeToNullable (fmap toElement host))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.createShadowRoot Mozilla Internals.createShadowRoot documentation> 
-createShadowRootUnchecked ::
-                          (MonadIO m, IsElement host) => Internals -> Maybe host -> m Node
-createShadowRootUnchecked self host
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createShadowRoot (self)
-            (maybeToNullable (fmap toElement host))))
- 
-foreign import javascript unsafe "$1[\"shadowRoot\"]($2)"
-        js_shadowRoot ::
-        Internals -> Nullable Element -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.shadowRoot Mozilla Internals.shadowRoot documentation> 
-shadowRoot ::
-           (MonadIO m, IsElement host) =>
-             Internals -> Maybe host -> m (Maybe Node)
-shadowRoot self host
-  = liftIO
-      (nullableToMaybe <$>
-         (js_shadowRoot (self) (maybeToNullable (fmap toElement host))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.shadowRoot Mozilla Internals.shadowRoot documentation> 
-shadowRoot_ ::
-            (MonadIO m, IsElement host) => Internals -> Maybe host -> m ()
-shadowRoot_ self host
-  = liftIO
-      (void
-         (js_shadowRoot (self) (maybeToNullable (fmap toElement host))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.shadowRoot Mozilla Internals.shadowRoot documentation> 
-shadowRootUnsafe ::
-                 (MonadIO m, IsElement host, HasCallStack) =>
-                   Internals -> Maybe host -> m Node
-shadowRootUnsafe self host
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_shadowRoot (self) (maybeToNullable (fmap toElement host))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.shadowRoot Mozilla Internals.shadowRoot documentation> 
-shadowRootUnchecked ::
-                    (MonadIO m, IsElement host) => Internals -> Maybe host -> m Node
-shadowRootUnchecked self host
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_shadowRoot (self) (maybeToNullable (fmap toElement host))))
- 
-foreign import javascript unsafe "$1[\"shadowRootType\"]($2)"
-        js_shadowRootType :: Internals -> Nullable Node -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.shadowRootType Mozilla Internals.shadowRootType documentation> 
-shadowRootType ::
-               (MonadIO m, IsNode root, FromJSString result) =>
-                 Internals -> Maybe root -> m result
-shadowRootType self root
-  = liftIO
-      (fromJSString <$>
-         (js_shadowRootType (self) (maybeToNullable (fmap toNode root))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.shadowRootType Mozilla Internals.shadowRootType documentation> 
-shadowRootType_ ::
-                (MonadIO m, IsNode root) => Internals -> Maybe root -> m ()
-shadowRootType_ self root
-  = liftIO
-      (void
-         (js_shadowRootType (self) (maybeToNullable (fmap toNode root))))
- 
-foreign import javascript unsafe "$1[\"includerFor\"]($2)"
-        js_includerFor ::
-        Internals -> Nullable Node -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.includerFor Mozilla Internals.includerFor documentation> 
-includerFor ::
-            (MonadIO m, IsNode node) =>
-              Internals -> Maybe node -> m (Maybe Element)
-includerFor self node
-  = liftIO
-      (nullableToMaybe <$>
-         (js_includerFor (self) (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.includerFor Mozilla Internals.includerFor documentation> 
-includerFor_ ::
-             (MonadIO m, IsNode node) => Internals -> Maybe node -> m ()
-includerFor_ self node
-  = liftIO
-      (void (js_includerFor (self) (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.includerFor Mozilla Internals.includerFor documentation> 
-includerForUnsafe ::
-                  (MonadIO m, IsNode node, HasCallStack) =>
-                    Internals -> Maybe node -> m Element
-includerForUnsafe self node
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_includerFor (self) (maybeToNullable (fmap toNode node))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.includerFor Mozilla Internals.includerFor documentation> 
-includerForUnchecked ::
-                     (MonadIO m, IsNode node) => Internals -> Maybe node -> m Element
-includerForUnchecked self node
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_includerFor (self) (maybeToNullable (fmap toNode node))))
- 
-foreign import javascript unsafe "$1[\"shadowPseudoId\"]($2)"
-        js_shadowPseudoId :: Internals -> Nullable Element -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.shadowPseudoId Mozilla Internals.shadowPseudoId documentation> 
-shadowPseudoId ::
-               (MonadIO m, IsElement element, FromJSString result) =>
-                 Internals -> Maybe element -> m result
-shadowPseudoId self element
-  = liftIO
-      (fromJSString <$>
-         (js_shadowPseudoId (self)
-            (maybeToNullable (fmap toElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.shadowPseudoId Mozilla Internals.shadowPseudoId documentation> 
-shadowPseudoId_ ::
-                (MonadIO m, IsElement element) =>
-                  Internals -> Maybe element -> m ()
-shadowPseudoId_ self element
-  = liftIO
-      (void
-         (js_shadowPseudoId (self)
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe
-        "$1[\"setShadowPseudoId\"]($2, $3)" js_setShadowPseudoId ::
-        Internals -> Nullable Element -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setShadowPseudoId Mozilla Internals.setShadowPseudoId documentation> 
-setShadowPseudoId ::
-                  (MonadIO m, IsElement element, ToJSString id) =>
-                    Internals -> Maybe element -> id -> m ()
-setShadowPseudoId self element id
-  = liftIO
-      (js_setShadowPseudoId (self)
-         (maybeToNullable (fmap toElement element))
-         (toJSString id))
- 
-foreign import javascript unsafe "$1[\"treeScopeRootNode\"]($2)"
-        js_treeScopeRootNode ::
-        Internals -> Nullable Node -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.treeScopeRootNode Mozilla Internals.treeScopeRootNode documentation> 
-treeScopeRootNode ::
-                  (MonadIO m, IsNode node) =>
-                    Internals -> Maybe node -> m (Maybe Node)
-treeScopeRootNode self node
-  = liftIO
-      (nullableToMaybe <$>
-         (js_treeScopeRootNode (self) (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.treeScopeRootNode Mozilla Internals.treeScopeRootNode documentation> 
-treeScopeRootNode_ ::
-                   (MonadIO m, IsNode node) => Internals -> Maybe node -> m ()
-treeScopeRootNode_ self node
-  = liftIO
-      (void
-         (js_treeScopeRootNode (self) (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.treeScopeRootNode Mozilla Internals.treeScopeRootNode documentation> 
-treeScopeRootNodeUnsafe ::
-                        (MonadIO m, IsNode node, HasCallStack) =>
-                          Internals -> Maybe node -> m Node
-treeScopeRootNodeUnsafe self node
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_treeScopeRootNode (self) (maybeToNullable (fmap toNode node))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.treeScopeRootNode Mozilla Internals.treeScopeRootNode documentation> 
-treeScopeRootNodeUnchecked ::
-                           (MonadIO m, IsNode node) => Internals -> Maybe node -> m Node
-treeScopeRootNodeUnchecked self node
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_treeScopeRootNode (self) (maybeToNullable (fmap toNode node))))
- 
-foreign import javascript unsafe "$1[\"parentTreeScope\"]($2)"
-        js_parentTreeScope ::
-        Internals -> Nullable Node -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.parentTreeScope Mozilla Internals.parentTreeScope documentation> 
-parentTreeScope ::
-                (MonadIO m, IsNode node) =>
-                  Internals -> Maybe node -> m (Maybe Node)
-parentTreeScope self node
-  = liftIO
-      (nullableToMaybe <$>
-         (js_parentTreeScope (self) (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.parentTreeScope Mozilla Internals.parentTreeScope documentation> 
-parentTreeScope_ ::
-                 (MonadIO m, IsNode node) => Internals -> Maybe node -> m ()
-parentTreeScope_ self node
-  = liftIO
-      (void
-         (js_parentTreeScope (self) (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.parentTreeScope Mozilla Internals.parentTreeScope documentation> 
-parentTreeScopeUnsafe ::
-                      (MonadIO m, IsNode node, HasCallStack) =>
-                        Internals -> Maybe node -> m Node
-parentTreeScopeUnsafe self node
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_parentTreeScope (self) (maybeToNullable (fmap toNode node))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.parentTreeScope Mozilla Internals.parentTreeScope documentation> 
-parentTreeScopeUnchecked ::
-                         (MonadIO m, IsNode node) => Internals -> Maybe node -> m Node
-parentTreeScopeUnchecked self node
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_parentTreeScope (self) (maybeToNullable (fmap toNode node))))
- 
-foreign import javascript unsafe
-        "$1[\"lastSpatialNavigationCandidateCount\"]()"
-        js_lastSpatialNavigationCandidateCount :: Internals -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.lastSpatialNavigationCandidateCount Mozilla Internals.lastSpatialNavigationCandidateCount documentation> 
-lastSpatialNavigationCandidateCount ::
-                                    (MonadIO m) => Internals -> m Word
-lastSpatialNavigationCandidateCount self
-  = liftIO (js_lastSpatialNavigationCandidateCount (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.lastSpatialNavigationCandidateCount Mozilla Internals.lastSpatialNavigationCandidateCount documentation> 
-lastSpatialNavigationCandidateCount_ ::
-                                     (MonadIO m) => Internals -> m ()
-lastSpatialNavigationCandidateCount_ self
-  = liftIO (void (js_lastSpatialNavigationCandidateCount (self)))
- 
-foreign import javascript unsafe
-        "$1[\"numberOfActiveAnimations\"]()" js_numberOfActiveAnimations ::
-        Internals -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.numberOfActiveAnimations Mozilla Internals.numberOfActiveAnimations documentation> 
-numberOfActiveAnimations :: (MonadIO m) => Internals -> m Word
-numberOfActiveAnimations self
-  = liftIO (js_numberOfActiveAnimations (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.numberOfActiveAnimations Mozilla Internals.numberOfActiveAnimations documentation> 
-numberOfActiveAnimations_ :: (MonadIO m) => Internals -> m ()
-numberOfActiveAnimations_ self
-  = liftIO (void (js_numberOfActiveAnimations (self)))
- 
-foreign import javascript unsafe "$1[\"suspendAnimations\"]()"
-        js_suspendAnimations :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.suspendAnimations Mozilla Internals.suspendAnimations documentation> 
-suspendAnimations :: (MonadIO m) => Internals -> m ()
-suspendAnimations self = liftIO (js_suspendAnimations (self))
- 
-foreign import javascript unsafe "$1[\"resumeAnimations\"]()"
-        js_resumeAnimations :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.resumeAnimations Mozilla Internals.resumeAnimations documentation> 
-resumeAnimations :: (MonadIO m) => Internals -> m ()
-resumeAnimations self = liftIO (js_resumeAnimations (self))
- 
-foreign import javascript unsafe
-        "($1[\"animationsAreSuspended\"]() ? 1 : 0)"
-        js_animationsAreSuspended :: Internals -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.animationsAreSuspended Mozilla Internals.animationsAreSuspended documentation> 
-animationsAreSuspended :: (MonadIO m) => Internals -> m Bool
-animationsAreSuspended self
-  = liftIO (js_animationsAreSuspended (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.animationsAreSuspended Mozilla Internals.animationsAreSuspended documentation> 
-animationsAreSuspended_ :: (MonadIO m) => Internals -> m ()
-animationsAreSuspended_ self
-  = liftIO (void (js_animationsAreSuspended (self)))
- 
-foreign import javascript unsafe
-        "($1[\"pauseAnimationAtTimeOnElement\"]($2,\n$3, $4) ? 1 : 0)"
-        js_pauseAnimationAtTimeOnElement ::
-        Internals -> JSString -> Double -> Nullable Element -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pauseAnimationAtTimeOnElement Mozilla Internals.pauseAnimationAtTimeOnElement documentation> 
-pauseAnimationAtTimeOnElement ::
-                              (MonadIO m, ToJSString animationName, IsElement element) =>
-                                Internals -> animationName -> Double -> Maybe element -> m Bool
-pauseAnimationAtTimeOnElement self animationName pauseTime element
-  = liftIO
-      (js_pauseAnimationAtTimeOnElement (self) (toJSString animationName)
-         pauseTime
-         (maybeToNullable (fmap toElement element)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pauseAnimationAtTimeOnElement Mozilla Internals.pauseAnimationAtTimeOnElement documentation> 
-pauseAnimationAtTimeOnElement_ ::
-                               (MonadIO m, ToJSString animationName, IsElement element) =>
-                                 Internals -> animationName -> Double -> Maybe element -> m ()
-pauseAnimationAtTimeOnElement_ self animationName pauseTime element
-  = liftIO
-      (void
-         (js_pauseAnimationAtTimeOnElement (self) (toJSString animationName)
-            pauseTime
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe
-        "($1[\"pauseAnimationAtTimeOnPseudoElement\"]($2,\n$3, $4, $5) ? 1 : 0)"
-        js_pauseAnimationAtTimeOnPseudoElement ::
-        Internals ->
-          JSString -> Double -> Nullable Element -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pauseAnimationAtTimeOnPseudoElement Mozilla Internals.pauseAnimationAtTimeOnPseudoElement documentation> 
-pauseAnimationAtTimeOnPseudoElement ::
-                                    (MonadIO m, ToJSString animationName, IsElement element,
-                                     ToJSString pseudoId) =>
-                                      Internals ->
-                                        animationName ->
-                                          Double -> Maybe element -> pseudoId -> m Bool
-pauseAnimationAtTimeOnPseudoElement self animationName pauseTime
-  element pseudoId
-  = liftIO
-      (js_pauseAnimationAtTimeOnPseudoElement (self)
-         (toJSString animationName)
-         pauseTime
-         (maybeToNullable (fmap toElement element))
-         (toJSString pseudoId))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pauseAnimationAtTimeOnPseudoElement Mozilla Internals.pauseAnimationAtTimeOnPseudoElement documentation> 
-pauseAnimationAtTimeOnPseudoElement_ ::
-                                     (MonadIO m, ToJSString animationName, IsElement element,
-                                      ToJSString pseudoId) =>
-                                       Internals ->
-                                         animationName ->
-                                           Double -> Maybe element -> pseudoId -> m ()
-pauseAnimationAtTimeOnPseudoElement_ self animationName pauseTime
-  element pseudoId
-  = liftIO
-      (void
-         (js_pauseAnimationAtTimeOnPseudoElement (self)
-            (toJSString animationName)
-            pauseTime
-            (maybeToNullable (fmap toElement element))
-            (toJSString pseudoId)))
- 
-foreign import javascript unsafe
-        "($1[\"pauseTransitionAtTimeOnElement\"]($2,\n$3, $4) ? 1 : 0)"
-        js_pauseTransitionAtTimeOnElement ::
-        Internals -> JSString -> Double -> Nullable Element -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pauseTransitionAtTimeOnElement Mozilla Internals.pauseTransitionAtTimeOnElement documentation> 
-pauseTransitionAtTimeOnElement ::
-                               (MonadIO m, ToJSString propertyName, IsElement element) =>
-                                 Internals -> propertyName -> Double -> Maybe element -> m Bool
-pauseTransitionAtTimeOnElement self propertyName pauseTime element
-  = liftIO
-      (js_pauseTransitionAtTimeOnElement (self) (toJSString propertyName)
-         pauseTime
-         (maybeToNullable (fmap toElement element)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pauseTransitionAtTimeOnElement Mozilla Internals.pauseTransitionAtTimeOnElement documentation> 
-pauseTransitionAtTimeOnElement_ ::
-                                (MonadIO m, ToJSString propertyName, IsElement element) =>
-                                  Internals -> propertyName -> Double -> Maybe element -> m ()
-pauseTransitionAtTimeOnElement_ self propertyName pauseTime element
-  = liftIO
-      (void
-         (js_pauseTransitionAtTimeOnElement (self) (toJSString propertyName)
-            pauseTime
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe
-        "($1[\"pauseTransitionAtTimeOnPseudoElement\"]($2,\n$3, $4, $5) ? 1 : 0)"
-        js_pauseTransitionAtTimeOnPseudoElement ::
-        Internals ->
-          JSString -> Double -> Nullable Element -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pauseTransitionAtTimeOnPseudoElement Mozilla Internals.pauseTransitionAtTimeOnPseudoElement documentation> 
-pauseTransitionAtTimeOnPseudoElement ::
-                                     (MonadIO m, ToJSString property, IsElement element,
-                                      ToJSString pseudoId) =>
-                                       Internals ->
-                                         property -> Double -> Maybe element -> pseudoId -> m Bool
-pauseTransitionAtTimeOnPseudoElement self property pauseTime
-  element pseudoId
-  = liftIO
-      (js_pauseTransitionAtTimeOnPseudoElement (self)
-         (toJSString property)
-         pauseTime
-         (maybeToNullable (fmap toElement element))
-         (toJSString pseudoId))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pauseTransitionAtTimeOnPseudoElement Mozilla Internals.pauseTransitionAtTimeOnPseudoElement documentation> 
-pauseTransitionAtTimeOnPseudoElement_ ::
-                                      (MonadIO m, ToJSString property, IsElement element,
-                                       ToJSString pseudoId) =>
-                                        Internals ->
-                                          property -> Double -> Maybe element -> pseudoId -> m ()
-pauseTransitionAtTimeOnPseudoElement_ self property pauseTime
-  element pseudoId
-  = liftIO
-      (void
-         (js_pauseTransitionAtTimeOnPseudoElement (self)
-            (toJSString property)
-            pauseTime
-            (maybeToNullable (fmap toElement element))
-            (toJSString pseudoId)))
- 
-foreign import javascript unsafe "($1[\"attached\"]($2) ? 1 : 0)"
-        js_attached :: Internals -> Nullable Node -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.attached Mozilla Internals.attached documentation> 
-attached ::
-         (MonadIO m, IsNode node) => Internals -> Maybe node -> m Bool
-attached self node
-  = liftIO (js_attached (self) (maybeToNullable (fmap toNode node)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.attached Mozilla Internals.attached documentation> 
-attached_ ::
-          (MonadIO m, IsNode node) => Internals -> Maybe node -> m ()
-attached_ self node
-  = liftIO
-      (void (js_attached (self) (maybeToNullable (fmap toNode node))))
- 
-foreign import javascript unsafe "$1[\"visiblePlaceholder\"]($2)"
-        js_visiblePlaceholder ::
-        Internals -> Nullable Element -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.visiblePlaceholder Mozilla Internals.visiblePlaceholder documentation> 
-visiblePlaceholder ::
-                   (MonadIO m, IsElement element, FromJSString result) =>
-                     Internals -> Maybe element -> m result
-visiblePlaceholder self element
-  = liftIO
-      (fromJSString <$>
-         (js_visiblePlaceholder (self)
-            (maybeToNullable (fmap toElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.visiblePlaceholder Mozilla Internals.visiblePlaceholder documentation> 
-visiblePlaceholder_ ::
-                    (MonadIO m, IsElement element) =>
-                      Internals -> Maybe element -> m ()
-visiblePlaceholder_ self element
-  = liftIO
-      (void
-         (js_visiblePlaceholder (self)
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe
-        "$1[\"selectColorInColorChooser\"]($2,\n$3)"
-        js_selectColorInColorChooser ::
-        Internals -> Nullable Element -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.selectColorInColorChooser Mozilla Internals.selectColorInColorChooser documentation> 
-selectColorInColorChooser ::
-                          (MonadIO m, IsElement element, ToJSString colorValue) =>
-                            Internals -> Maybe element -> colorValue -> m ()
-selectColorInColorChooser self element colorValue
-  = liftIO
-      (js_selectColorInColorChooser (self)
-         (maybeToNullable (fmap toElement element))
-         (toJSString colorValue))
- 
-foreign import javascript unsafe
-        "$1[\"formControlStateOfPreviousHistoryItem\"]()"
-        js_formControlStateOfPreviousHistoryItem :: Internals -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.formControlStateOfPreviousHistoryItem Mozilla Internals.formControlStateOfPreviousHistoryItem documentation> 
-formControlStateOfPreviousHistoryItem ::
-                                      (MonadIO m, FromJSString result) => Internals -> m [result]
-formControlStateOfPreviousHistoryItem self
-  = liftIO
-      ((js_formControlStateOfPreviousHistoryItem (self)) >>=
-         fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.formControlStateOfPreviousHistoryItem Mozilla Internals.formControlStateOfPreviousHistoryItem documentation> 
-formControlStateOfPreviousHistoryItem_ ::
-                                       (MonadIO m) => Internals -> m ()
-formControlStateOfPreviousHistoryItem_ self
-  = liftIO (void (js_formControlStateOfPreviousHistoryItem (self)))
- 
-foreign import javascript unsafe
-        "$1[\"setFormControlStateOfPreviousHistoryItem\"]($2)"
-        js_setFormControlStateOfPreviousHistoryItem ::
-        Internals -> JSVal -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setFormControlStateOfPreviousHistoryItem Mozilla Internals.setFormControlStateOfPreviousHistoryItem documentation> 
-setFormControlStateOfPreviousHistoryItem ::
-                                         (MonadIO m, ToJSString values) =>
-                                           Internals -> [values] -> m ()
-setFormControlStateOfPreviousHistoryItem self values
-  = liftIO
-      (toJSVal values >>=
-         \ values' ->
-           js_setFormControlStateOfPreviousHistoryItem (self) values')
- 
-foreign import javascript unsafe "$1[\"absoluteCaretBounds\"]()"
-        js_absoluteCaretBounds :: Internals -> IO (Nullable ClientRect)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.absoluteCaretBounds Mozilla Internals.absoluteCaretBounds documentation> 
-absoluteCaretBounds ::
-                    (MonadIO m) => Internals -> m (Maybe ClientRect)
-absoluteCaretBounds self
-  = liftIO (nullableToMaybe <$> (js_absoluteCaretBounds (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.absoluteCaretBounds Mozilla Internals.absoluteCaretBounds documentation> 
-absoluteCaretBounds_ :: (MonadIO m) => Internals -> m ()
-absoluteCaretBounds_ self
-  = liftIO (void (js_absoluteCaretBounds (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.absoluteCaretBounds Mozilla Internals.absoluteCaretBounds documentation> 
-absoluteCaretBoundsUnsafe ::
-                          (MonadIO m, HasCallStack) => Internals -> m ClientRect
-absoluteCaretBoundsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_absoluteCaretBounds (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.absoluteCaretBounds Mozilla Internals.absoluteCaretBounds documentation> 
-absoluteCaretBoundsUnchecked ::
-                             (MonadIO m) => Internals -> m ClientRect
-absoluteCaretBoundsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_absoluteCaretBounds (self)))
- 
-foreign import javascript unsafe "$1[\"boundingBox\"]($2)"
-        js_boundingBox ::
-        Internals -> Nullable Element -> IO (Nullable ClientRect)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.boundingBox Mozilla Internals.boundingBox documentation> 
-boundingBox ::
-            (MonadIO m, IsElement element) =>
-              Internals -> Maybe element -> m (Maybe ClientRect)
-boundingBox self element
-  = liftIO
-      (nullableToMaybe <$>
-         (js_boundingBox (self) (maybeToNullable (fmap toElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.boundingBox Mozilla Internals.boundingBox documentation> 
-boundingBox_ ::
-             (MonadIO m, IsElement element) =>
-               Internals -> Maybe element -> m ()
-boundingBox_ self element
-  = liftIO
-      (void
-         (js_boundingBox (self) (maybeToNullable (fmap toElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.boundingBox Mozilla Internals.boundingBox documentation> 
-boundingBoxUnsafe ::
-                  (MonadIO m, IsElement element, HasCallStack) =>
-                    Internals -> Maybe element -> m ClientRect
-boundingBoxUnsafe self element
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_boundingBox (self) (maybeToNullable (fmap toElement element))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.boundingBox Mozilla Internals.boundingBox documentation> 
-boundingBoxUnchecked ::
-                     (MonadIO m, IsElement element) =>
-                       Internals -> Maybe element -> m ClientRect
-boundingBoxUnchecked self element
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_boundingBox (self) (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe
-        "$1[\"inspectorHighlightRects\"]()" js_inspectorHighlightRects ::
-        Internals -> IO (Nullable ClientRectList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.inspectorHighlightRects Mozilla Internals.inspectorHighlightRects documentation> 
-inspectorHighlightRects ::
-                        (MonadIO m) => Internals -> m (Maybe ClientRectList)
-inspectorHighlightRects self
-  = liftIO (nullableToMaybe <$> (js_inspectorHighlightRects (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.inspectorHighlightRects Mozilla Internals.inspectorHighlightRects documentation> 
-inspectorHighlightRects_ :: (MonadIO m) => Internals -> m ()
-inspectorHighlightRects_ self
-  = liftIO (void (js_inspectorHighlightRects (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.inspectorHighlightRects Mozilla Internals.inspectorHighlightRects documentation> 
-inspectorHighlightRectsUnsafe ::
-                              (MonadIO m, HasCallStack) => Internals -> m ClientRectList
-inspectorHighlightRectsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_inspectorHighlightRects (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.inspectorHighlightRects Mozilla Internals.inspectorHighlightRects documentation> 
-inspectorHighlightRectsUnchecked ::
-                                 (MonadIO m) => Internals -> m ClientRectList
-inspectorHighlightRectsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_inspectorHighlightRects (self)))
- 
-foreign import javascript unsafe
-        "$1[\"inspectorHighlightObject\"]()" js_inspectorHighlightObject ::
-        Internals -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.inspectorHighlightObject Mozilla Internals.inspectorHighlightObject documentation> 
-inspectorHighlightObject ::
-                         (MonadIO m, FromJSString result) => Internals -> m result
-inspectorHighlightObject self
-  = liftIO (fromJSString <$> (js_inspectorHighlightObject (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.inspectorHighlightObject Mozilla Internals.inspectorHighlightObject documentation> 
-inspectorHighlightObject_ :: (MonadIO m) => Internals -> m ()
-inspectorHighlightObject_ self
-  = liftIO (void (js_inspectorHighlightObject (self)))
- 
-foreign import javascript unsafe
-        "$1[\"markerCountForNode\"]($2, $3)" js_markerCountForNode ::
-        Internals -> Nullable Node -> JSString -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.markerCountForNode Mozilla Internals.markerCountForNode documentation> 
-markerCountForNode ::
-                   (MonadIO m, IsNode node, ToJSString markerType) =>
-                     Internals -> Maybe node -> markerType -> m Word
-markerCountForNode self node markerType
-  = liftIO
-      (js_markerCountForNode (self) (maybeToNullable (fmap toNode node))
-         (toJSString markerType))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.markerCountForNode Mozilla Internals.markerCountForNode documentation> 
-markerCountForNode_ ::
-                    (MonadIO m, IsNode node, ToJSString markerType) =>
-                      Internals -> Maybe node -> markerType -> m ()
-markerCountForNode_ self node markerType
-  = liftIO
-      (void
-         (js_markerCountForNode (self) (maybeToNullable (fmap toNode node))
-            (toJSString markerType)))
- 
-foreign import javascript unsafe
-        "$1[\"markerRangeForNode\"]($2, $3,\n$4)" js_markerRangeForNode ::
-        Internals ->
-          Nullable Node -> JSString -> Word -> IO (Nullable Range)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.markerRangeForNode Mozilla Internals.markerRangeForNode documentation> 
-markerRangeForNode ::
-                   (MonadIO m, IsNode node, ToJSString markerType) =>
-                     Internals -> Maybe node -> markerType -> Word -> m (Maybe Range)
-markerRangeForNode self node markerType index
-  = liftIO
-      (nullableToMaybe <$>
-         (js_markerRangeForNode (self) (maybeToNullable (fmap toNode node))
-            (toJSString markerType)
-            index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.markerRangeForNode Mozilla Internals.markerRangeForNode documentation> 
-markerRangeForNode_ ::
-                    (MonadIO m, IsNode node, ToJSString markerType) =>
-                      Internals -> Maybe node -> markerType -> Word -> m ()
-markerRangeForNode_ self node markerType index
-  = liftIO
-      (void
-         (js_markerRangeForNode (self) (maybeToNullable (fmap toNode node))
-            (toJSString markerType)
-            index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.markerRangeForNode Mozilla Internals.markerRangeForNode documentation> 
-markerRangeForNodeUnsafe ::
-                         (MonadIO m, IsNode node, ToJSString markerType, HasCallStack) =>
-                           Internals -> Maybe node -> markerType -> Word -> m Range
-markerRangeForNodeUnsafe self node markerType index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_markerRangeForNode (self) (maybeToNullable (fmap toNode node))
-             (toJSString markerType)
-             index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.markerRangeForNode Mozilla Internals.markerRangeForNode documentation> 
-markerRangeForNodeUnchecked ::
-                            (MonadIO m, IsNode node, ToJSString markerType) =>
-                              Internals -> Maybe node -> markerType -> Word -> m Range
-markerRangeForNodeUnchecked self node markerType index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_markerRangeForNode (self) (maybeToNullable (fmap toNode node))
-            (toJSString markerType)
-            index))
- 
-foreign import javascript unsafe
-        "$1[\"markerDescriptionForNode\"]($2,\n$3, $4)"
-        js_markerDescriptionForNode ::
-        Internals -> Nullable Node -> JSString -> Word -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.markerDescriptionForNode Mozilla Internals.markerDescriptionForNode documentation> 
-markerDescriptionForNode ::
-                         (MonadIO m, IsNode node, ToJSString markerType,
-                          FromJSString result) =>
-                           Internals -> Maybe node -> markerType -> Word -> m result
-markerDescriptionForNode self node markerType index
-  = liftIO
-      (fromJSString <$>
-         (js_markerDescriptionForNode (self)
-            (maybeToNullable (fmap toNode node))
-            (toJSString markerType)
-            index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.markerDescriptionForNode Mozilla Internals.markerDescriptionForNode documentation> 
-markerDescriptionForNode_ ::
-                          (MonadIO m, IsNode node, ToJSString markerType) =>
-                            Internals -> Maybe node -> markerType -> Word -> m ()
-markerDescriptionForNode_ self node markerType index
-  = liftIO
-      (void
-         (js_markerDescriptionForNode (self)
-            (maybeToNullable (fmap toNode node))
-            (toJSString markerType)
-            index))
- 
-foreign import javascript unsafe
-        "$1[\"addTextMatchMarker\"]($2, $3)" js_addTextMatchMarker ::
-        Internals -> Nullable Range -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.addTextMatchMarker Mozilla Internals.addTextMatchMarker documentation> 
-addTextMatchMarker ::
-                   (MonadIO m) => Internals -> Maybe Range -> Bool -> m ()
-addTextMatchMarker self range isActive
-  = liftIO
-      (js_addTextMatchMarker (self) (maybeToNullable range) isActive)
- 
-foreign import javascript unsafe
-        "$1[\"setMarkedTextMatchesAreHighlighted\"]($2)"
-        js_setMarkedTextMatchesAreHighlighted :: Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setMarkedTextMatchesAreHighlighted Mozilla Internals.setMarkedTextMatchesAreHighlighted documentation> 
-setMarkedTextMatchesAreHighlighted ::
-                                   (MonadIO m) => Internals -> Bool -> m ()
-setMarkedTextMatchesAreHighlighted self flag
-  = liftIO (js_setMarkedTextMatchesAreHighlighted (self) flag)
- 
-foreign import javascript unsafe "$1[\"invalidateFontCache\"]()"
-        js_invalidateFontCache :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.invalidateFontCache Mozilla Internals.invalidateFontCache documentation> 
-invalidateFontCache :: (MonadIO m) => Internals -> m ()
-invalidateFontCache self = liftIO (js_invalidateFontCache (self))
- 
-foreign import javascript unsafe
-        "$1[\"setScrollViewPosition\"]($2,\n$3)" js_setScrollViewPosition
-        :: Internals -> Int -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setScrollViewPosition Mozilla Internals.setScrollViewPosition documentation> 
-setScrollViewPosition ::
-                      (MonadIO m) => Internals -> Int -> Int -> m ()
-setScrollViewPosition self x y
-  = liftIO (js_setScrollViewPosition (self) x y)
- 
-foreign import javascript unsafe
-        "$1[\"setPagination\"]($2, $3, $4)" js_setPagination ::
-        Internals -> JSString -> Int -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setPagination Mozilla Internals.setPagination documentation> 
-setPagination ::
-              (MonadIO m, ToJSString mode) =>
-                Internals -> mode -> Int -> Int -> m ()
-setPagination self mode gap pageLength
-  = liftIO (js_setPagination (self) (toJSString mode) gap pageLength)
- 
-foreign import javascript unsafe
-        "$1[\"configurationForViewport\"]($2,\n$3, $4, $5, $6)"
-        js_configurationForViewport ::
-        Internals -> Float -> Int -> Int -> Int -> Int -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.configurationForViewport Mozilla Internals.configurationForViewport documentation> 
-configurationForViewport ::
-                         (MonadIO m, FromJSString result) =>
-                           Internals -> Float -> Int -> Int -> Int -> Int -> m result
-configurationForViewport self devicePixelRatio deviceWidth
-  deviceHeight availableWidth availableHeight
-  = liftIO
-      (fromJSString <$>
-         (js_configurationForViewport (self) devicePixelRatio deviceWidth
-            deviceHeight
-            availableWidth
-            availableHeight))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.configurationForViewport Mozilla Internals.configurationForViewport documentation> 
-configurationForViewport_ ::
-                          (MonadIO m) =>
-                            Internals -> Float -> Int -> Int -> Int -> Int -> m ()
-configurationForViewport_ self devicePixelRatio deviceWidth
-  deviceHeight availableWidth availableHeight
-  = liftIO
-      (void
-         (js_configurationForViewport (self) devicePixelRatio deviceWidth
-            deviceHeight
-            availableWidth
-            availableHeight))
- 
-foreign import javascript unsafe
-        "($1[\"wasLastChangeUserEdit\"]($2) ? 1 : 0)"
-        js_wasLastChangeUserEdit ::
-        Internals -> Nullable Element -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.wasLastChangeUserEdit Mozilla Internals.wasLastChangeUserEdit documentation> 
-wasLastChangeUserEdit ::
-                      (MonadIO m, IsElement textField) =>
-                        Internals -> Maybe textField -> m Bool
-wasLastChangeUserEdit self textField
-  = liftIO
-      (js_wasLastChangeUserEdit (self)
-         (maybeToNullable (fmap toElement textField)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.wasLastChangeUserEdit Mozilla Internals.wasLastChangeUserEdit documentation> 
-wasLastChangeUserEdit_ ::
-                       (MonadIO m, IsElement textField) =>
-                         Internals -> Maybe textField -> m ()
-wasLastChangeUserEdit_ self textField
-  = liftIO
-      (void
-         (js_wasLastChangeUserEdit (self)
-            (maybeToNullable (fmap toElement textField))))
- 
-foreign import javascript unsafe
-        "($1[\"elementShouldAutoComplete\"]($2) ? 1 : 0)"
-        js_elementShouldAutoComplete ::
-        Internals -> Nullable Element -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.elementShouldAutoComplete Mozilla Internals.elementShouldAutoComplete documentation> 
-elementShouldAutoComplete ::
-                          (MonadIO m, IsElement inputElement) =>
-                            Internals -> Maybe inputElement -> m Bool
-elementShouldAutoComplete self inputElement
-  = liftIO
-      (js_elementShouldAutoComplete (self)
-         (maybeToNullable (fmap toElement inputElement)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.elementShouldAutoComplete Mozilla Internals.elementShouldAutoComplete documentation> 
-elementShouldAutoComplete_ ::
-                           (MonadIO m, IsElement inputElement) =>
-                             Internals -> Maybe inputElement -> m ()
-elementShouldAutoComplete_ self inputElement
-  = liftIO
-      (void
-         (js_elementShouldAutoComplete (self)
-            (maybeToNullable (fmap toElement inputElement))))
- 
-foreign import javascript unsafe "$1[\"setEditingValue\"]($2, $3)"
-        js_setEditingValue ::
-        Internals -> Nullable Element -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setEditingValue Mozilla Internals.setEditingValue documentation> 
-setEditingValue ::
-                (MonadIO m, IsElement inputElement, ToJSString value) =>
-                  Internals -> Maybe inputElement -> value -> m ()
-setEditingValue self inputElement value
-  = liftIO
-      (js_setEditingValue (self)
-         (maybeToNullable (fmap toElement inputElement))
-         (toJSString value))
- 
-foreign import javascript unsafe "$1[\"setAutofilled\"]($2, $3)"
-        js_setAutofilled :: Internals -> Nullable Element -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setAutofilled Mozilla Internals.setAutofilled documentation> 
-setAutofilled ::
-              (MonadIO m, IsElement inputElement) =>
-                Internals -> Maybe inputElement -> Bool -> m ()
-setAutofilled self inputElement enabled
-  = liftIO
-      (js_setAutofilled (self)
-         (maybeToNullable (fmap toElement inputElement))
-         enabled)
- 
-foreign import javascript unsafe
-        "$1[\"countMatchesForText\"]($2,\n$3, $4)" js_countMatchesForText
-        :: Internals -> JSString -> Word -> JSString -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.countMatchesForText Mozilla Internals.countMatchesForText documentation> 
-countMatchesForText ::
-                    (MonadIO m, ToJSString text, ToJSString markMatches) =>
-                      Internals -> text -> Word -> markMatches -> m Word
-countMatchesForText self text findOptions markMatches
-  = liftIO
-      (js_countMatchesForText (self) (toJSString text) findOptions
-         (toJSString markMatches))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.countMatchesForText Mozilla Internals.countMatchesForText documentation> 
-countMatchesForText_ ::
-                     (MonadIO m, ToJSString text, ToJSString markMatches) =>
-                       Internals -> text -> Word -> markMatches -> m ()
-countMatchesForText_ self text findOptions markMatches
-  = liftIO
-      (void
-         (js_countMatchesForText (self) (toJSString text) findOptions
-            (toJSString markMatches)))
- 
-foreign import javascript unsafe "$1[\"paintControlTints\"]()"
-        js_paintControlTints :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.paintControlTints Mozilla Internals.paintControlTints documentation> 
-paintControlTints :: (MonadIO m) => Internals -> m ()
-paintControlTints self = liftIO (js_paintControlTints (self))
- 
-foreign import javascript unsafe
-        "$1[\"scrollElementToRect\"]($2,\n$3, $4, $5, $6)"
-        js_scrollElementToRect ::
-        Internals -> Nullable Element -> Int -> Int -> Int -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.scrollElementToRect Mozilla Internals.scrollElementToRect documentation> 
-scrollElementToRect ::
-                    (MonadIO m, IsElement element) =>
-                      Internals -> Maybe element -> Int -> Int -> Int -> Int -> m ()
-scrollElementToRect self element x y w h
-  = liftIO
-      (js_scrollElementToRect (self)
-         (maybeToNullable (fmap toElement element))
-         x
-         y
-         w
-         h)
- 
-foreign import javascript unsafe
-        "$1[\"rangeFromLocationAndLength\"]($2,\n$3, $4)"
-        js_rangeFromLocationAndLength ::
-        Internals -> Nullable Element -> Int -> Int -> IO (Nullable Range)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.rangeFromLocationAndLength Mozilla Internals.rangeFromLocationAndLength documentation> 
-rangeFromLocationAndLength ::
-                           (MonadIO m, IsElement scope) =>
-                             Internals -> Maybe scope -> Int -> Int -> m (Maybe Range)
-rangeFromLocationAndLength self scope rangeLocation rangeLength
-  = liftIO
-      (nullableToMaybe <$>
-         (js_rangeFromLocationAndLength (self)
-            (maybeToNullable (fmap toElement scope))
-            rangeLocation
-            rangeLength))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.rangeFromLocationAndLength Mozilla Internals.rangeFromLocationAndLength documentation> 
-rangeFromLocationAndLength_ ::
-                            (MonadIO m, IsElement scope) =>
-                              Internals -> Maybe scope -> Int -> Int -> m ()
-rangeFromLocationAndLength_ self scope rangeLocation rangeLength
-  = liftIO
-      (void
-         (js_rangeFromLocationAndLength (self)
-            (maybeToNullable (fmap toElement scope))
-            rangeLocation
-            rangeLength))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.rangeFromLocationAndLength Mozilla Internals.rangeFromLocationAndLength documentation> 
-rangeFromLocationAndLengthUnsafe ::
-                                 (MonadIO m, IsElement scope, HasCallStack) =>
-                                   Internals -> Maybe scope -> Int -> Int -> m Range
-rangeFromLocationAndLengthUnsafe self scope rangeLocation
-  rangeLength
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_rangeFromLocationAndLength (self)
-             (maybeToNullable (fmap toElement scope))
-             rangeLocation
-             rangeLength))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.rangeFromLocationAndLength Mozilla Internals.rangeFromLocationAndLength documentation> 
-rangeFromLocationAndLengthUnchecked ::
-                                    (MonadIO m, IsElement scope) =>
-                                      Internals -> Maybe scope -> Int -> Int -> m Range
-rangeFromLocationAndLengthUnchecked self scope rangeLocation
-  rangeLength
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_rangeFromLocationAndLength (self)
-            (maybeToNullable (fmap toElement scope))
-            rangeLocation
-            rangeLength))
- 
-foreign import javascript unsafe
-        "$1[\"locationFromRange\"]($2, $3)" js_locationFromRange ::
-        Internals -> Nullable Element -> Nullable Range -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.locationFromRange Mozilla Internals.locationFromRange documentation> 
-locationFromRange ::
-                  (MonadIO m, IsElement scope) =>
-                    Internals -> Maybe scope -> Maybe Range -> m Word
-locationFromRange self scope range
-  = liftIO
-      (js_locationFromRange (self)
-         (maybeToNullable (fmap toElement scope))
-         (maybeToNullable range))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.locationFromRange Mozilla Internals.locationFromRange documentation> 
-locationFromRange_ ::
-                   (MonadIO m, IsElement scope) =>
-                     Internals -> Maybe scope -> Maybe Range -> m ()
-locationFromRange_ self scope range
-  = liftIO
-      (void
-         (js_locationFromRange (self)
-            (maybeToNullable (fmap toElement scope))
-            (maybeToNullable range)))
- 
-foreign import javascript unsafe "$1[\"lengthFromRange\"]($2, $3)"
-        js_lengthFromRange ::
-        Internals -> Nullable Element -> Nullable Range -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.lengthFromRange Mozilla Internals.lengthFromRange documentation> 
-lengthFromRange ::
-                (MonadIO m, IsElement scope) =>
-                  Internals -> Maybe scope -> Maybe Range -> m Word
-lengthFromRange self scope range
-  = liftIO
-      (js_lengthFromRange (self) (maybeToNullable (fmap toElement scope))
-         (maybeToNullable range))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.lengthFromRange Mozilla Internals.lengthFromRange documentation> 
-lengthFromRange_ ::
-                 (MonadIO m, IsElement scope) =>
-                   Internals -> Maybe scope -> Maybe Range -> m ()
-lengthFromRange_ self scope range
-  = liftIO
-      (void
-         (js_lengthFromRange (self) (maybeToNullable (fmap toElement scope))
-            (maybeToNullable range)))
- 
-foreign import javascript unsafe "$1[\"rangeAsText\"]($2)"
-        js_rangeAsText :: Internals -> Nullable Range -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.rangeAsText Mozilla Internals.rangeAsText documentation> 
-rangeAsText ::
-            (MonadIO m, FromJSString result) =>
-              Internals -> Maybe Range -> m result
-rangeAsText self range
-  = liftIO
-      (fromJSString <$> (js_rangeAsText (self) (maybeToNullable range)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.rangeAsText Mozilla Internals.rangeAsText documentation> 
-rangeAsText_ :: (MonadIO m) => Internals -> Maybe Range -> m ()
-rangeAsText_ self range
-  = liftIO (void (js_rangeAsText (self) (maybeToNullable range)))
- 
-foreign import javascript unsafe "$1[\"subrange\"]($2, $3, $4)"
-        js_subrange ::
-        Internals -> Nullable Range -> Int -> Int -> IO (Nullable Range)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.subrange Mozilla Internals.subrange documentation> 
-subrange ::
-         (MonadIO m) =>
-           Internals -> Maybe Range -> Int -> Int -> m (Maybe Range)
-subrange self range rangeLocation rangeLength
-  = liftIO
-      (nullableToMaybe <$>
-         (js_subrange (self) (maybeToNullable range) rangeLocation
-            rangeLength))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.subrange Mozilla Internals.subrange documentation> 
-subrange_ ::
-          (MonadIO m) => Internals -> Maybe Range -> Int -> Int -> m ()
-subrange_ self range rangeLocation rangeLength
-  = liftIO
-      (void
-         (js_subrange (self) (maybeToNullable range) rangeLocation
-            rangeLength))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.subrange Mozilla Internals.subrange documentation> 
-subrangeUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 Internals -> Maybe Range -> Int -> Int -> m Range
-subrangeUnsafe self range rangeLocation rangeLength
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_subrange (self) (maybeToNullable range) rangeLocation
-             rangeLength))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.subrange Mozilla Internals.subrange documentation> 
-subrangeUnchecked ::
-                  (MonadIO m) => Internals -> Maybe Range -> Int -> Int -> m Range
-subrangeUnchecked self range rangeLocation rangeLength
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_subrange (self) (maybeToNullable range) rangeLocation
-            rangeLength))
- 
-foreign import javascript unsafe
-        "$1[\"rangeForDictionaryLookupAtLocation\"]($2,\n$3)"
-        js_rangeForDictionaryLookupAtLocation ::
-        Internals -> Int -> Int -> IO (Nullable Range)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.rangeForDictionaryLookupAtLocation Mozilla Internals.rangeForDictionaryLookupAtLocation documentation> 
-rangeForDictionaryLookupAtLocation ::
-                                   (MonadIO m) => Internals -> Int -> Int -> m (Maybe Range)
-rangeForDictionaryLookupAtLocation self x y
-  = liftIO
-      (nullableToMaybe <$>
-         (js_rangeForDictionaryLookupAtLocation (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.rangeForDictionaryLookupAtLocation Mozilla Internals.rangeForDictionaryLookupAtLocation documentation> 
-rangeForDictionaryLookupAtLocation_ ::
-                                    (MonadIO m) => Internals -> Int -> Int -> m ()
-rangeForDictionaryLookupAtLocation_ self x y
-  = liftIO (void (js_rangeForDictionaryLookupAtLocation (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.rangeForDictionaryLookupAtLocation Mozilla Internals.rangeForDictionaryLookupAtLocation documentation> 
-rangeForDictionaryLookupAtLocationUnsafe ::
-                                         (MonadIO m, HasCallStack) =>
-                                           Internals -> Int -> Int -> m Range
-rangeForDictionaryLookupAtLocationUnsafe self x y
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_rangeForDictionaryLookupAtLocation (self) x y))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.rangeForDictionaryLookupAtLocation Mozilla Internals.rangeForDictionaryLookupAtLocation documentation> 
-rangeForDictionaryLookupAtLocationUnchecked ::
-                                            (MonadIO m) => Internals -> Int -> Int -> m Range
-rangeForDictionaryLookupAtLocationUnchecked self x y
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_rangeForDictionaryLookupAtLocation (self) x y))
- 
-foreign import javascript unsafe
-        "$1[\"setDelegatesScrolling\"]($2)" js_setDelegatesScrolling ::
-        Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setDelegatesScrolling Mozilla Internals.setDelegatesScrolling documentation> 
-setDelegatesScrolling :: (MonadIO m) => Internals -> Bool -> m ()
-setDelegatesScrolling self enabled
-  = liftIO (js_setDelegatesScrolling (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"lastSpellCheckRequestSequence\"]()"
-        js_lastSpellCheckRequestSequence :: Internals -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.lastSpellCheckRequestSequence Mozilla Internals.lastSpellCheckRequestSequence documentation> 
-lastSpellCheckRequestSequence :: (MonadIO m) => Internals -> m Int
-lastSpellCheckRequestSequence self
-  = liftIO (js_lastSpellCheckRequestSequence (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.lastSpellCheckRequestSequence Mozilla Internals.lastSpellCheckRequestSequence documentation> 
-lastSpellCheckRequestSequence_ :: (MonadIO m) => Internals -> m ()
-lastSpellCheckRequestSequence_ self
-  = liftIO (void (js_lastSpellCheckRequestSequence (self)))
- 
-foreign import javascript unsafe
-        "$1[\"lastSpellCheckProcessedSequence\"]()"
-        js_lastSpellCheckProcessedSequence :: Internals -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.lastSpellCheckProcessedSequence Mozilla Internals.lastSpellCheckProcessedSequence documentation> 
-lastSpellCheckProcessedSequence ::
-                                (MonadIO m) => Internals -> m Int
-lastSpellCheckProcessedSequence self
-  = liftIO (js_lastSpellCheckProcessedSequence (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.lastSpellCheckProcessedSequence Mozilla Internals.lastSpellCheckProcessedSequence documentation> 
-lastSpellCheckProcessedSequence_ ::
-                                 (MonadIO m) => Internals -> m ()
-lastSpellCheckProcessedSequence_ self
-  = liftIO (void (js_lastSpellCheckProcessedSequence (self)))
- 
-foreign import javascript unsafe "$1[\"userPreferredLanguages\"]()"
-        js_userPreferredLanguages :: Internals -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.userPreferredLanguages Mozilla Internals.userPreferredLanguages documentation> 
-userPreferredLanguages ::
-                       (MonadIO m, FromJSString result) => Internals -> m [result]
-userPreferredLanguages self
-  = liftIO
-      ((js_userPreferredLanguages (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.userPreferredLanguages Mozilla Internals.userPreferredLanguages documentation> 
-userPreferredLanguages_ :: (MonadIO m) => Internals -> m ()
-userPreferredLanguages_ self
-  = liftIO (void (js_userPreferredLanguages (self)))
- 
-foreign import javascript unsafe
-        "$1[\"setUserPreferredLanguages\"]($2)"
-        js_setUserPreferredLanguages :: Internals -> JSVal -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setUserPreferredLanguages Mozilla Internals.setUserPreferredLanguages documentation> 
-setUserPreferredLanguages ::
-                          (MonadIO m, ToJSString languages) =>
-                            Internals -> [languages] -> m ()
-setUserPreferredLanguages self languages
-  = liftIO
-      (toJSVal languages >>=
-         \ languages' -> js_setUserPreferredLanguages (self) languages')
- 
-foreign import javascript unsafe "$1[\"wheelEventHandlerCount\"]()"
-        js_wheelEventHandlerCount :: Internals -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.wheelEventHandlerCount Mozilla Internals.wheelEventHandlerCount documentation> 
-wheelEventHandlerCount :: (MonadIO m) => Internals -> m Word
-wheelEventHandlerCount self
-  = liftIO (js_wheelEventHandlerCount (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.wheelEventHandlerCount Mozilla Internals.wheelEventHandlerCount documentation> 
-wheelEventHandlerCount_ :: (MonadIO m) => Internals -> m ()
-wheelEventHandlerCount_ self
-  = liftIO (void (js_wheelEventHandlerCount (self)))
- 
-foreign import javascript unsafe "$1[\"touchEventHandlerCount\"]()"
-        js_touchEventHandlerCount :: Internals -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.touchEventHandlerCount Mozilla Internals.touchEventHandlerCount documentation> 
-touchEventHandlerCount :: (MonadIO m) => Internals -> m Word
-touchEventHandlerCount self
-  = liftIO (js_touchEventHandlerCount (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.touchEventHandlerCount Mozilla Internals.touchEventHandlerCount documentation> 
-touchEventHandlerCount_ :: (MonadIO m) => Internals -> m ()
-touchEventHandlerCount_ self
-  = liftIO (void (js_touchEventHandlerCount (self)))
- 
-foreign import javascript unsafe
-        "$1[\"nodesFromRect\"]($2, $3, $4,\n$5, $6, $7, $8, $9, $10, $11)"
-        js_nodesFromRect ::
-        Internals ->
-          Nullable Document ->
-            Int ->
-              Int ->
-                Word ->
-                  Word ->
-                    Word -> Word -> Bool -> Bool -> Bool -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.nodesFromRect Mozilla Internals.nodesFromRect documentation> 
-nodesFromRect ::
-              (MonadIO m, IsDocument document) =>
-                Internals ->
-                  Maybe document ->
-                    Int ->
-                      Int ->
-                        Word ->
-                          Word -> Word -> Word -> Bool -> Bool -> Bool -> m (Maybe NodeList)
-nodesFromRect self document x y topPadding rightPadding
-  bottomPadding leftPadding ignoreClipping allowShadowContent
-  allowChildFrameContent
-  = liftIO
-      (nullableToMaybe <$>
-         (js_nodesFromRect (self)
-            (maybeToNullable (fmap toDocument document))
-            x
-            y
-            topPadding
-            rightPadding
-            bottomPadding
-            leftPadding
-            ignoreClipping
-            allowShadowContent
-            allowChildFrameContent))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.nodesFromRect Mozilla Internals.nodesFromRect documentation> 
-nodesFromRect_ ::
-               (MonadIO m, IsDocument document) =>
-                 Internals ->
-                   Maybe document ->
-                     Int ->
-                       Int -> Word -> Word -> Word -> Word -> Bool -> Bool -> Bool -> m ()
-nodesFromRect_ self document x y topPadding rightPadding
-  bottomPadding leftPadding ignoreClipping allowShadowContent
-  allowChildFrameContent
-  = liftIO
-      (void
-         (js_nodesFromRect (self)
-            (maybeToNullable (fmap toDocument document))
-            x
-            y
-            topPadding
-            rightPadding
-            bottomPadding
-            leftPadding
-            ignoreClipping
-            allowShadowContent
-            allowChildFrameContent))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.nodesFromRect Mozilla Internals.nodesFromRect documentation> 
-nodesFromRectUnsafe ::
-                    (MonadIO m, IsDocument document, HasCallStack) =>
-                      Internals ->
-                        Maybe document ->
-                          Int ->
-                            Int ->
-                              Word -> Word -> Word -> Word -> Bool -> Bool -> Bool -> m NodeList
-nodesFromRectUnsafe self document x y topPadding rightPadding
-  bottomPadding leftPadding ignoreClipping allowShadowContent
-  allowChildFrameContent
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_nodesFromRect (self)
-             (maybeToNullable (fmap toDocument document))
-             x
-             y
-             topPadding
-             rightPadding
-             bottomPadding
-             leftPadding
-             ignoreClipping
-             allowShadowContent
-             allowChildFrameContent))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.nodesFromRect Mozilla Internals.nodesFromRect documentation> 
-nodesFromRectUnchecked ::
-                       (MonadIO m, IsDocument document) =>
-                         Internals ->
-                           Maybe document ->
-                             Int ->
-                               Int ->
-                                 Word -> Word -> Word -> Word -> Bool -> Bool -> Bool -> m NodeList
-nodesFromRectUnchecked self document x y topPadding rightPadding
-  bottomPadding leftPadding ignoreClipping allowShadowContent
-  allowChildFrameContent
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_nodesFromRect (self)
-            (maybeToNullable (fmap toDocument document))
-            x
-            y
-            topPadding
-            rightPadding
-            bottomPadding
-            leftPadding
-            ignoreClipping
-            allowShadowContent
-            allowChildFrameContent))
- 
-foreign import javascript unsafe "$1[\"parserMetaData\"]($2)"
-        js_parserMetaData :: Internals -> JSVal -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.parserMetaData Mozilla Internals.parserMetaData documentation> 
-parserMetaData ::
-               (MonadIO m, FromJSString result) => Internals -> JSVal -> m result
-parserMetaData self func
-  = liftIO (fromJSString <$> (js_parserMetaData (self) func))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.parserMetaData Mozilla Internals.parserMetaData documentation> 
-parserMetaData_ :: (MonadIO m) => Internals -> JSVal -> m ()
-parserMetaData_ self func
-  = liftIO (void (js_parserMetaData (self) func))
- 
-foreign import javascript unsafe
-        "$1[\"updateEditorUINowIfScheduled\"]()"
-        js_updateEditorUINowIfScheduled :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.updateEditorUINowIfScheduled Mozilla Internals.updateEditorUINowIfScheduled documentation> 
-updateEditorUINowIfScheduled :: (MonadIO m) => Internals -> m ()
-updateEditorUINowIfScheduled self
-  = liftIO (js_updateEditorUINowIfScheduled (self))
- 
-foreign import javascript unsafe
-        "($1[\"hasSpellingMarker\"]($2,\n$3) ? 1 : 0)" js_hasSpellingMarker
-        :: Internals -> Int -> Int -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.hasSpellingMarker Mozilla Internals.hasSpellingMarker documentation> 
-hasSpellingMarker ::
-                  (MonadIO m) => Internals -> Int -> Int -> m Bool
-hasSpellingMarker self from length
-  = liftIO (js_hasSpellingMarker (self) from length)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.hasSpellingMarker Mozilla Internals.hasSpellingMarker documentation> 
-hasSpellingMarker_ ::
-                   (MonadIO m) => Internals -> Int -> Int -> m ()
-hasSpellingMarker_ self from length
-  = liftIO (void (js_hasSpellingMarker (self) from length))
- 
-foreign import javascript unsafe
-        "($1[\"hasGrammarMarker\"]($2,\n$3) ? 1 : 0)" js_hasGrammarMarker
-        :: Internals -> Int -> Int -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.hasGrammarMarker Mozilla Internals.hasGrammarMarker documentation> 
-hasGrammarMarker ::
-                 (MonadIO m) => Internals -> Int -> Int -> m Bool
-hasGrammarMarker self from length
-  = liftIO (js_hasGrammarMarker (self) from length)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.hasGrammarMarker Mozilla Internals.hasGrammarMarker documentation> 
-hasGrammarMarker_ :: (MonadIO m) => Internals -> Int -> Int -> m ()
-hasGrammarMarker_ self from length
-  = liftIO (void (js_hasGrammarMarker (self) from length))
- 
-foreign import javascript unsafe
-        "($1[\"hasAutocorrectedMarker\"]($2,\n$3) ? 1 : 0)"
-        js_hasAutocorrectedMarker :: Internals -> Int -> Int -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.hasAutocorrectedMarker Mozilla Internals.hasAutocorrectedMarker documentation> 
-hasAutocorrectedMarker ::
-                       (MonadIO m) => Internals -> Int -> Int -> m Bool
-hasAutocorrectedMarker self from length
-  = liftIO (js_hasAutocorrectedMarker (self) from length)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.hasAutocorrectedMarker Mozilla Internals.hasAutocorrectedMarker documentation> 
-hasAutocorrectedMarker_ ::
-                        (MonadIO m) => Internals -> Int -> Int -> m ()
-hasAutocorrectedMarker_ self from length
-  = liftIO (void (js_hasAutocorrectedMarker (self) from length))
- 
-foreign import javascript unsafe
-        "$1[\"setContinuousSpellCheckingEnabled\"]($2)"
-        js_setContinuousSpellCheckingEnabled :: Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setContinuousSpellCheckingEnabled Mozilla Internals.setContinuousSpellCheckingEnabled documentation> 
-setContinuousSpellCheckingEnabled ::
-                                  (MonadIO m) => Internals -> Bool -> m ()
-setContinuousSpellCheckingEnabled self enabled
-  = liftIO (js_setContinuousSpellCheckingEnabled (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setAutomaticQuoteSubstitutionEnabled\"]($2)"
-        js_setAutomaticQuoteSubstitutionEnabled ::
-        Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setAutomaticQuoteSubstitutionEnabled Mozilla Internals.setAutomaticQuoteSubstitutionEnabled documentation> 
-setAutomaticQuoteSubstitutionEnabled ::
-                                     (MonadIO m) => Internals -> Bool -> m ()
-setAutomaticQuoteSubstitutionEnabled self enabled
-  = liftIO (js_setAutomaticQuoteSubstitutionEnabled (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setAutomaticLinkDetectionEnabled\"]($2)"
-        js_setAutomaticLinkDetectionEnabled :: Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setAutomaticLinkDetectionEnabled Mozilla Internals.setAutomaticLinkDetectionEnabled documentation> 
-setAutomaticLinkDetectionEnabled ::
-                                 (MonadIO m) => Internals -> Bool -> m ()
-setAutomaticLinkDetectionEnabled self enabled
-  = liftIO (js_setAutomaticLinkDetectionEnabled (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setAutomaticDashSubstitutionEnabled\"]($2)"
-        js_setAutomaticDashSubstitutionEnabled ::
-        Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setAutomaticDashSubstitutionEnabled Mozilla Internals.setAutomaticDashSubstitutionEnabled documentation> 
-setAutomaticDashSubstitutionEnabled ::
-                                    (MonadIO m) => Internals -> Bool -> m ()
-setAutomaticDashSubstitutionEnabled self enabled
-  = liftIO (js_setAutomaticDashSubstitutionEnabled (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setAutomaticTextReplacementEnabled\"]($2)"
-        js_setAutomaticTextReplacementEnabled :: Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setAutomaticTextReplacementEnabled Mozilla Internals.setAutomaticTextReplacementEnabled documentation> 
-setAutomaticTextReplacementEnabled ::
-                                   (MonadIO m) => Internals -> Bool -> m ()
-setAutomaticTextReplacementEnabled self enabled
-  = liftIO (js_setAutomaticTextReplacementEnabled (self) enabled)
- 
-foreign import javascript unsafe
-        "$1[\"setAutomaticSpellingCorrectionEnabled\"]($2)"
-        js_setAutomaticSpellingCorrectionEnabled ::
-        Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setAutomaticSpellingCorrectionEnabled Mozilla Internals.setAutomaticSpellingCorrectionEnabled documentation> 
-setAutomaticSpellingCorrectionEnabled ::
-                                      (MonadIO m) => Internals -> Bool -> m ()
-setAutomaticSpellingCorrectionEnabled self enabled
-  = liftIO (js_setAutomaticSpellingCorrectionEnabled (self) enabled)
- 
-foreign import javascript unsafe
-        "($1[\"isOverwriteModeEnabled\"]() ? 1 : 0)"
-        js_isOverwriteModeEnabled :: Internals -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isOverwriteModeEnabled Mozilla Internals.isOverwriteModeEnabled documentation> 
-isOverwriteModeEnabled :: (MonadIO m) => Internals -> m Bool
-isOverwriteModeEnabled self
-  = liftIO (js_isOverwriteModeEnabled (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isOverwriteModeEnabled Mozilla Internals.isOverwriteModeEnabled documentation> 
-isOverwriteModeEnabled_ :: (MonadIO m) => Internals -> m ()
-isOverwriteModeEnabled_ self
-  = liftIO (void (js_isOverwriteModeEnabled (self)))
- 
-foreign import javascript unsafe
-        "$1[\"toggleOverwriteModeEnabled\"]()"
-        js_toggleOverwriteModeEnabled :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.toggleOverwriteModeEnabled Mozilla Internals.toggleOverwriteModeEnabled documentation> 
-toggleOverwriteModeEnabled :: (MonadIO m) => Internals -> m ()
-toggleOverwriteModeEnabled self
-  = liftIO (js_toggleOverwriteModeEnabled (self))
- 
-foreign import javascript unsafe
-        "$1[\"numberOfScrollableAreas\"]()" js_numberOfScrollableAreas ::
-        Internals -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.numberOfScrollableAreas Mozilla Internals.numberOfScrollableAreas documentation> 
-numberOfScrollableAreas :: (MonadIO m) => Internals -> m Word
-numberOfScrollableAreas self
-  = liftIO (js_numberOfScrollableAreas (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.numberOfScrollableAreas Mozilla Internals.numberOfScrollableAreas documentation> 
-numberOfScrollableAreas_ :: (MonadIO m) => Internals -> m ()
-numberOfScrollableAreas_ self
-  = liftIO (void (js_numberOfScrollableAreas (self)))
- 
-foreign import javascript unsafe
-        "($1[\"isPageBoxVisible\"]($2) ? 1 : 0)" js_isPageBoxVisible ::
-        Internals -> Int -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isPageBoxVisible Mozilla Internals.isPageBoxVisible documentation> 
-isPageBoxVisible :: (MonadIO m) => Internals -> Int -> m Bool
-isPageBoxVisible self pageNumber
-  = liftIO (js_isPageBoxVisible (self) pageNumber)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isPageBoxVisible Mozilla Internals.isPageBoxVisible documentation> 
-isPageBoxVisible_ :: (MonadIO m) => Internals -> Int -> m ()
-isPageBoxVisible_ self pageNumber
-  = liftIO (void (js_isPageBoxVisible (self) pageNumber))
- 
-foreign import javascript unsafe "$1[\"layerTreeAsText\"]($2, $3)"
-        js_layerTreeAsText ::
-        Internals -> Nullable Document -> Word -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.layerTreeAsText Mozilla Internals.layerTreeAsText documentation> 
-layerTreeAsText ::
-                (MonadIO m, IsDocument document, FromJSString result) =>
-                  Internals -> Maybe document -> Word -> m result
-layerTreeAsText self document flags
-  = liftIO
-      (fromJSString <$>
-         (js_layerTreeAsText (self)
-            (maybeToNullable (fmap toDocument document))
-            flags))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.layerTreeAsText Mozilla Internals.layerTreeAsText documentation> 
-layerTreeAsText_ ::
-                 (MonadIO m, IsDocument document) =>
-                   Internals -> Maybe document -> Word -> m ()
-layerTreeAsText_ self document flags
-  = liftIO
-      (void
-         (js_layerTreeAsText (self)
-            (maybeToNullable (fmap toDocument document))
-            flags))
- 
-foreign import javascript unsafe
-        "$1[\"scrollingStateTreeAsText\"]()" js_scrollingStateTreeAsText ::
-        Internals -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.scrollingStateTreeAsText Mozilla Internals.scrollingStateTreeAsText documentation> 
-scrollingStateTreeAsText ::
-                         (MonadIO m, FromJSString result) => Internals -> m result
-scrollingStateTreeAsText self
-  = liftIO (fromJSString <$> (js_scrollingStateTreeAsText (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.scrollingStateTreeAsText Mozilla Internals.scrollingStateTreeAsText documentation> 
-scrollingStateTreeAsText_ :: (MonadIO m) => Internals -> m ()
-scrollingStateTreeAsText_ self
-  = liftIO (void (js_scrollingStateTreeAsText (self)))
- 
-foreign import javascript unsafe
-        "$1[\"mainThreadScrollingReasons\"]()"
-        js_mainThreadScrollingReasons :: Internals -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.mainThreadScrollingReasons Mozilla Internals.mainThreadScrollingReasons documentation> 
-mainThreadScrollingReasons ::
-                           (MonadIO m, FromJSString result) => Internals -> m result
-mainThreadScrollingReasons self
-  = liftIO (fromJSString <$> (js_mainThreadScrollingReasons (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.mainThreadScrollingReasons Mozilla Internals.mainThreadScrollingReasons documentation> 
-mainThreadScrollingReasons_ :: (MonadIO m) => Internals -> m ()
-mainThreadScrollingReasons_ self
-  = liftIO (void (js_mainThreadScrollingReasons (self)))
- 
-foreign import javascript unsafe "$1[\"nonFastScrollableRects\"]()"
-        js_nonFastScrollableRects ::
-        Internals -> IO (Nullable ClientRectList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.nonFastScrollableRects Mozilla Internals.nonFastScrollableRects documentation> 
-nonFastScrollableRects ::
-                       (MonadIO m) => Internals -> m (Maybe ClientRectList)
-nonFastScrollableRects self
-  = liftIO (nullableToMaybe <$> (js_nonFastScrollableRects (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.nonFastScrollableRects Mozilla Internals.nonFastScrollableRects documentation> 
-nonFastScrollableRects_ :: (MonadIO m) => Internals -> m ()
-nonFastScrollableRects_ self
-  = liftIO (void (js_nonFastScrollableRects (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.nonFastScrollableRects Mozilla Internals.nonFastScrollableRects documentation> 
-nonFastScrollableRectsUnsafe ::
-                             (MonadIO m, HasCallStack) => Internals -> m ClientRectList
-nonFastScrollableRectsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_nonFastScrollableRects (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.nonFastScrollableRects Mozilla Internals.nonFastScrollableRects documentation> 
-nonFastScrollableRectsUnchecked ::
-                                (MonadIO m) => Internals -> m ClientRectList
-nonFastScrollableRectsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_nonFastScrollableRects (self)))
- 
-foreign import javascript unsafe "$1[\"repaintRectsAsText\"]()"
-        js_repaintRectsAsText :: Internals -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.repaintRectsAsText Mozilla Internals.repaintRectsAsText documentation> 
-repaintRectsAsText ::
-                   (MonadIO m, FromJSString result) => Internals -> m result
-repaintRectsAsText self
-  = liftIO (fromJSString <$> (js_repaintRectsAsText (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.repaintRectsAsText Mozilla Internals.repaintRectsAsText documentation> 
-repaintRectsAsText_ :: (MonadIO m) => Internals -> m ()
-repaintRectsAsText_ self
-  = liftIO (void (js_repaintRectsAsText (self)))
- 
-foreign import javascript unsafe
-        "$1[\"garbageCollectDocumentResources\"]()"
-        js_garbageCollectDocumentResources :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.garbageCollectDocumentResources Mozilla Internals.garbageCollectDocumentResources documentation> 
-garbageCollectDocumentResources :: (MonadIO m) => Internals -> m ()
-garbageCollectDocumentResources self
-  = liftIO (js_garbageCollectDocumentResources (self))
- 
-foreign import javascript unsafe "$1[\"allowRoundingHacks\"]()"
-        js_allowRoundingHacks :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.allowRoundingHacks Mozilla Internals.allowRoundingHacks documentation> 
-allowRoundingHacks :: (MonadIO m) => Internals -> m ()
-allowRoundingHacks self = liftIO (js_allowRoundingHacks (self))
- 
-foreign import javascript unsafe "$1[\"insertAuthorCSS\"]($2)"
-        js_insertAuthorCSS :: Internals -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.insertAuthorCSS Mozilla Internals.insertAuthorCSS documentation> 
-insertAuthorCSS ::
-                (MonadIO m, ToJSString css) => Internals -> css -> m ()
-insertAuthorCSS self css
-  = liftIO (js_insertAuthorCSS (self) (toJSString css))
- 
-foreign import javascript unsafe "$1[\"insertUserCSS\"]($2)"
-        js_insertUserCSS :: Internals -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.insertUserCSS Mozilla Internals.insertUserCSS documentation> 
-insertUserCSS ::
-              (MonadIO m, ToJSString css) => Internals -> css -> m ()
-insertUserCSS self css
-  = liftIO (js_insertUserCSS (self) (toJSString css))
- 
-foreign import javascript unsafe
-        "$1[\"setBatteryStatus\"]($2, $3,\n$4, $5, $6)" js_setBatteryStatus
-        ::
-        Internals ->
-          JSString -> Bool -> Double -> Double -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setBatteryStatus Mozilla Internals.setBatteryStatus documentation> 
-setBatteryStatus ::
-                 (MonadIO m, ToJSString eventType) =>
-                   Internals ->
-                     eventType -> Bool -> Double -> Double -> Double -> m ()
-setBatteryStatus self eventType charging chargingTime
-  dischargingTime level
-  = liftIO
-      (js_setBatteryStatus (self) (toJSString eventType) charging
-         chargingTime
-         dischargingTime
-         level)
- 
-foreign import javascript unsafe
-        "$1[\"setDeviceProximity\"]($2, $3,\n$4, $5)" js_setDeviceProximity
-        :: Internals -> JSString -> Double -> Double -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setDeviceProximity Mozilla Internals.setDeviceProximity documentation> 
-setDeviceProximity ::
-                   (MonadIO m, ToJSString eventType) =>
-                     Internals -> eventType -> Double -> Double -> Double -> m ()
-setDeviceProximity self eventType value min max
-  = liftIO
-      (js_setDeviceProximity (self) (toJSString eventType) value min max)
- 
-foreign import javascript unsafe "$1[\"numberOfLiveNodes\"]()"
-        js_numberOfLiveNodes :: Internals -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.numberOfLiveNodes Mozilla Internals.numberOfLiveNodes documentation> 
-numberOfLiveNodes :: (MonadIO m) => Internals -> m Word
-numberOfLiveNodes self = liftIO (js_numberOfLiveNodes (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.numberOfLiveNodes Mozilla Internals.numberOfLiveNodes documentation> 
-numberOfLiveNodes_ :: (MonadIO m) => Internals -> m ()
-numberOfLiveNodes_ self
-  = liftIO (void (js_numberOfLiveNodes (self)))
- 
-foreign import javascript unsafe "$1[\"numberOfLiveDocuments\"]()"
-        js_numberOfLiveDocuments :: Internals -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.numberOfLiveDocuments Mozilla Internals.numberOfLiveDocuments documentation> 
-numberOfLiveDocuments :: (MonadIO m) => Internals -> m Word
-numberOfLiveDocuments self
-  = liftIO (js_numberOfLiveDocuments (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.numberOfLiveDocuments Mozilla Internals.numberOfLiveDocuments documentation> 
-numberOfLiveDocuments_ :: (MonadIO m) => Internals -> m ()
-numberOfLiveDocuments_ self
-  = liftIO (void (js_numberOfLiveDocuments (self)))
- 
-foreign import javascript unsafe
-        "$1[\"consoleMessageArgumentCounts\"]()"
-        js_consoleMessageArgumentCounts :: Internals -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.consoleMessageArgumentCounts Mozilla Internals.consoleMessageArgumentCounts documentation> 
-consoleMessageArgumentCounts ::
-                             (MonadIO m, FromJSString result) => Internals -> m [result]
-consoleMessageArgumentCounts self
-  = liftIO
-      ((js_consoleMessageArgumentCounts (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.consoleMessageArgumentCounts Mozilla Internals.consoleMessageArgumentCounts documentation> 
-consoleMessageArgumentCounts_ :: (MonadIO m) => Internals -> m ()
-consoleMessageArgumentCounts_ self
-  = liftIO (void (js_consoleMessageArgumentCounts (self)))
- 
-foreign import javascript unsafe
-        "$1[\"openDummyInspectorFrontend\"]($2)"
-        js_openDummyInspectorFrontend ::
-        Internals -> JSString -> IO (Nullable Window)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.openDummyInspectorFrontend Mozilla Internals.openDummyInspectorFrontend documentation> 
-openDummyInspectorFrontend ::
-                           (MonadIO m, ToJSString url) => Internals -> url -> m (Maybe Window)
-openDummyInspectorFrontend self url
-  = liftIO
-      (nullableToMaybe <$>
-         (js_openDummyInspectorFrontend (self) (toJSString url)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.openDummyInspectorFrontend Mozilla Internals.openDummyInspectorFrontend documentation> 
-openDummyInspectorFrontend_ ::
-                            (MonadIO m, ToJSString url) => Internals -> url -> m ()
-openDummyInspectorFrontend_ self url
-  = liftIO
-      (void (js_openDummyInspectorFrontend (self) (toJSString url)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.openDummyInspectorFrontend Mozilla Internals.openDummyInspectorFrontend documentation> 
-openDummyInspectorFrontendUnsafe ::
-                                 (MonadIO m, ToJSString url, HasCallStack) =>
-                                   Internals -> url -> m Window
-openDummyInspectorFrontendUnsafe self url
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_openDummyInspectorFrontend (self) (toJSString url)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.openDummyInspectorFrontend Mozilla Internals.openDummyInspectorFrontend documentation> 
-openDummyInspectorFrontendUnchecked ::
-                                    (MonadIO m, ToJSString url) => Internals -> url -> m Window
-openDummyInspectorFrontendUnchecked self url
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_openDummyInspectorFrontend (self) (toJSString url)))
- 
-foreign import javascript unsafe
-        "$1[\"closeDummyInspectorFrontend\"]()"
-        js_closeDummyInspectorFrontend :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.closeDummyInspectorFrontend Mozilla Internals.closeDummyInspectorFrontend documentation> 
-closeDummyInspectorFrontend :: (MonadIO m) => Internals -> m ()
-closeDummyInspectorFrontend self
-  = liftIO (js_closeDummyInspectorFrontend (self))
- 
-foreign import javascript unsafe
-        "$1[\"setJavaScriptProfilingEnabled\"]($2)"
-        js_setJavaScriptProfilingEnabled :: Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setJavaScriptProfilingEnabled Mozilla Internals.setJavaScriptProfilingEnabled documentation> 
-setJavaScriptProfilingEnabled ::
-                              (MonadIO m) => Internals -> Bool -> m ()
-setJavaScriptProfilingEnabled self creates
-  = liftIO (js_setJavaScriptProfilingEnabled (self) creates)
- 
-foreign import javascript unsafe
-        "$1[\"setInspectorIsUnderTest\"]($2)" js_setInspectorIsUnderTest ::
-        Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setInspectorIsUnderTest Mozilla Internals.setInspectorIsUnderTest documentation> 
-setInspectorIsUnderTest :: (MonadIO m) => Internals -> Bool -> m ()
-setInspectorIsUnderTest self isUnderTest
-  = liftIO (js_setInspectorIsUnderTest (self) isUnderTest)
- 
-foreign import javascript unsafe "$1[\"counterValue\"]($2)"
-        js_counterValue :: Internals -> Nullable Element -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.counterValue Mozilla Internals.counterValue documentation> 
-counterValue ::
-             (MonadIO m, IsElement element, FromJSString result) =>
-               Internals -> Maybe element -> m result
-counterValue self element
-  = liftIO
-      (fromJSString <$>
-         (js_counterValue (self)
-            (maybeToNullable (fmap toElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.counterValue Mozilla Internals.counterValue documentation> 
-counterValue_ ::
-              (MonadIO m, IsElement element) =>
-                Internals -> Maybe element -> m ()
-counterValue_ self element
-  = liftIO
-      (void
-         (js_counterValue (self)
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe "$1[\"pageNumber\"]($2, $3, $4)"
-        js_pageNumber ::
-        Internals -> Nullable Element -> Float -> Float -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pageNumber Mozilla Internals.pageNumber documentation> 
-pageNumber ::
-           (MonadIO m, IsElement element) =>
-             Internals -> Maybe element -> Float -> Float -> m Int
-pageNumber self element pageWidth pageHeight
-  = liftIO
-      (js_pageNumber (self) (maybeToNullable (fmap toElement element))
-         pageWidth
-         pageHeight)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pageNumber Mozilla Internals.pageNumber documentation> 
-pageNumber_ ::
-            (MonadIO m, IsElement element) =>
-              Internals -> Maybe element -> Float -> Float -> m ()
-pageNumber_ self element pageWidth pageHeight
-  = liftIO
-      (void
-         (js_pageNumber (self) (maybeToNullable (fmap toElement element))
-            pageWidth
-            pageHeight))
- 
-foreign import javascript unsafe "$1[\"shortcutIconURLs\"]()"
-        js_shortcutIconURLs :: Internals -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.shortcutIconURLs Mozilla Internals.shortcutIconURLs documentation> 
-shortcutIconURLs ::
-                 (MonadIO m, FromJSString result) => Internals -> m [result]
-shortcutIconURLs self
-  = liftIO ((js_shortcutIconURLs (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.shortcutIconURLs Mozilla Internals.shortcutIconURLs documentation> 
-shortcutIconURLs_ :: (MonadIO m) => Internals -> m ()
-shortcutIconURLs_ self = liftIO (void (js_shortcutIconURLs (self)))
- 
-foreign import javascript unsafe "$1[\"allIconURLs\"]()"
-        js_allIconURLs :: Internals -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.allIconURLs Mozilla Internals.allIconURLs documentation> 
-allIconURLs ::
-            (MonadIO m, FromJSString result) => Internals -> m [result]
-allIconURLs self
-  = liftIO ((js_allIconURLs (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.allIconURLs Mozilla Internals.allIconURLs documentation> 
-allIconURLs_ :: (MonadIO m) => Internals -> m ()
-allIconURLs_ self = liftIO (void (js_allIconURLs (self)))
- 
-foreign import javascript unsafe "$1[\"numberOfPages\"]($2, $3)"
-        js_numberOfPages :: Internals -> Double -> Double -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.numberOfPages Mozilla Internals.numberOfPages documentation> 
-numberOfPages ::
-              (MonadIO m) => Internals -> Double -> Double -> m Int
-numberOfPages self pageWidthInPixels pageHeightInPixels
-  = liftIO
-      (js_numberOfPages (self) pageWidthInPixels pageHeightInPixels)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.numberOfPages Mozilla Internals.numberOfPages documentation> 
-numberOfPages_ ::
-               (MonadIO m) => Internals -> Double -> Double -> m ()
-numberOfPages_ self pageWidthInPixels pageHeightInPixels
-  = liftIO
-      (void
-         (js_numberOfPages (self) pageWidthInPixels pageHeightInPixels))
- 
-foreign import javascript unsafe "$1[\"pageProperty\"]($2, $3)"
-        js_pageProperty :: Internals -> JSString -> Int -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pageProperty Mozilla Internals.pageProperty documentation> 
-pageProperty ::
-             (MonadIO m, ToJSString propertyName, FromJSString result) =>
-               Internals -> propertyName -> Int -> m result
-pageProperty self propertyName pageNumber
-  = liftIO
-      (fromJSString <$>
-         (js_pageProperty (self) (toJSString propertyName) pageNumber))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pageProperty Mozilla Internals.pageProperty documentation> 
-pageProperty_ ::
-              (MonadIO m, ToJSString propertyName) =>
-                Internals -> propertyName -> Int -> m ()
-pageProperty_ self propertyName pageNumber
-  = liftIO
-      (void
-         (js_pageProperty (self) (toJSString propertyName) pageNumber))
- 
-foreign import javascript unsafe
-        "$1[\"pageSizeAndMarginsInPixels\"]($2,\n$3, $4, $5, $6, $7, $8)"
-        js_pageSizeAndMarginsInPixels ::
-        Internals ->
-          Int -> Int -> Int -> Int -> Int -> Int -> Int -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pageSizeAndMarginsInPixels Mozilla Internals.pageSizeAndMarginsInPixels documentation> 
-pageSizeAndMarginsInPixels ::
-                           (MonadIO m, FromJSString result) =>
-                             Internals ->
-                               Int -> Int -> Int -> Int -> Int -> Int -> Int -> m result
-pageSizeAndMarginsInPixels self pageIndex width height marginTop
-  marginRight marginBottom marginLeft
-  = liftIO
-      (fromJSString <$>
-         (js_pageSizeAndMarginsInPixels (self) pageIndex width height
-            marginTop
-            marginRight
-            marginBottom
-            marginLeft))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pageSizeAndMarginsInPixels Mozilla Internals.pageSizeAndMarginsInPixels documentation> 
-pageSizeAndMarginsInPixels_ ::
-                            (MonadIO m) =>
-                              Internals -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> m ()
-pageSizeAndMarginsInPixels_ self pageIndex width height marginTop
-  marginRight marginBottom marginLeft
-  = liftIO
-      (void
-         (js_pageSizeAndMarginsInPixels (self) pageIndex width height
-            marginTop
-            marginRight
-            marginBottom
-            marginLeft))
- 
-foreign import javascript unsafe
-        "$1[\"setPageScaleFactor\"]($2, $3,\n$4)" js_setPageScaleFactor ::
-        Internals -> Float -> Int -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setPageScaleFactor Mozilla Internals.setPageScaleFactor documentation> 
-setPageScaleFactor ::
-                   (MonadIO m) => Internals -> Float -> Int -> Int -> m ()
-setPageScaleFactor self scaleFactor x y
-  = liftIO (js_setPageScaleFactor (self) scaleFactor x y)
- 
-foreign import javascript unsafe "$1[\"setPageZoomFactor\"]($2)"
-        js_setPageZoomFactor :: Internals -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setPageZoomFactor Mozilla Internals.setPageZoomFactor documentation> 
-setPageZoomFactor :: (MonadIO m) => Internals -> Float -> m ()
-setPageZoomFactor self zoomFactor
-  = liftIO (js_setPageZoomFactor (self) zoomFactor)
- 
-foreign import javascript unsafe "$1[\"setHeaderHeight\"]($2)"
-        js_setHeaderHeight :: Internals -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setHeaderHeight Mozilla Internals.setHeaderHeight documentation> 
-setHeaderHeight :: (MonadIO m) => Internals -> Float -> m ()
-setHeaderHeight self height
-  = liftIO (js_setHeaderHeight (self) height)
- 
-foreign import javascript unsafe "$1[\"setFooterHeight\"]($2)"
-        js_setFooterHeight :: Internals -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setFooterHeight Mozilla Internals.setFooterHeight documentation> 
-setFooterHeight :: (MonadIO m) => Internals -> Float -> m ()
-setFooterHeight self height
-  = liftIO (js_setFooterHeight (self) height)
- 
-foreign import javascript unsafe "$1[\"setTopContentInset\"]($2)"
-        js_setTopContentInset :: Internals -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setTopContentInset Mozilla Internals.setTopContentInset documentation> 
-setTopContentInset :: (MonadIO m) => Internals -> Float -> m ()
-setTopContentInset self contentInset
-  = liftIO (js_setTopContentInset (self) contentInset)
- 
-foreign import javascript unsafe
-        "$1[\"webkitWillEnterFullScreenForElement\"]($2)"
-        js_webkitWillEnterFullScreenForElement ::
-        Internals -> Nullable Element -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.webkitWillEnterFullScreenForElement Mozilla Internals.webkitWillEnterFullScreenForElement documentation> 
-webkitWillEnterFullScreenForElement ::
-                                    (MonadIO m, IsElement element) =>
-                                      Internals -> Maybe element -> m ()
-webkitWillEnterFullScreenForElement self element
-  = liftIO
-      (js_webkitWillEnterFullScreenForElement (self)
-         (maybeToNullable (fmap toElement element)))
- 
-foreign import javascript unsafe
-        "$1[\"webkitDidEnterFullScreenForElement\"]($2)"
-        js_webkitDidEnterFullScreenForElement ::
-        Internals -> Nullable Element -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.webkitDidEnterFullScreenForElement Mozilla Internals.webkitDidEnterFullScreenForElement documentation> 
-webkitDidEnterFullScreenForElement ::
-                                   (MonadIO m, IsElement element) =>
-                                     Internals -> Maybe element -> m ()
-webkitDidEnterFullScreenForElement self element
-  = liftIO
-      (js_webkitDidEnterFullScreenForElement (self)
-         (maybeToNullable (fmap toElement element)))
- 
-foreign import javascript unsafe
-        "$1[\"webkitWillExitFullScreenForElement\"]($2)"
-        js_webkitWillExitFullScreenForElement ::
-        Internals -> Nullable Element -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.webkitWillExitFullScreenForElement Mozilla Internals.webkitWillExitFullScreenForElement documentation> 
-webkitWillExitFullScreenForElement ::
-                                   (MonadIO m, IsElement element) =>
-                                     Internals -> Maybe element -> m ()
-webkitWillExitFullScreenForElement self element
-  = liftIO
-      (js_webkitWillExitFullScreenForElement (self)
-         (maybeToNullable (fmap toElement element)))
- 
-foreign import javascript unsafe
-        "$1[\"webkitDidExitFullScreenForElement\"]($2)"
-        js_webkitDidExitFullScreenForElement ::
-        Internals -> Nullable Element -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.webkitDidExitFullScreenForElement Mozilla Internals.webkitDidExitFullScreenForElement documentation> 
-webkitDidExitFullScreenForElement ::
-                                  (MonadIO m, IsElement element) =>
-                                    Internals -> Maybe element -> m ()
-webkitDidExitFullScreenForElement self element
-  = liftIO
-      (js_webkitDidExitFullScreenForElement (self)
-         (maybeToNullable (fmap toElement element)))
- 
-foreign import javascript unsafe
-        "$1[\"setApplicationCacheOriginQuota\"]($2)"
-        js_setApplicationCacheOriginQuota :: Internals -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setApplicationCacheOriginQuota Mozilla Internals.setApplicationCacheOriginQuota documentation> 
-setApplicationCacheOriginQuota ::
-                               (MonadIO m) => Internals -> Word64 -> m ()
-setApplicationCacheOriginQuota self quota
-  = liftIO
-      (js_setApplicationCacheOriginQuota (self) (fromIntegral quota))
- 
-foreign import javascript unsafe
-        "$1[\"registerURLSchemeAsBypassingContentSecurityPolicy\"]($2)"
-        js_registerURLSchemeAsBypassingContentSecurityPolicy ::
-        Internals -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.registerURLSchemeAsBypassingContentSecurityPolicy Mozilla Internals.registerURLSchemeAsBypassingContentSecurityPolicy documentation> 
-registerURLSchemeAsBypassingContentSecurityPolicy ::
-                                                  (MonadIO m, ToJSString scheme) =>
-                                                    Internals -> scheme -> m ()
-registerURLSchemeAsBypassingContentSecurityPolicy self scheme
-  = liftIO
-      (js_registerURLSchemeAsBypassingContentSecurityPolicy (self)
-         (toJSString scheme))
- 
-foreign import javascript unsafe
-        "$1[\"removeURLSchemeRegisteredAsBypassingContentSecurityPolicy\"]($2)"
-        js_removeURLSchemeRegisteredAsBypassingContentSecurityPolicy ::
-        Internals -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.removeURLSchemeRegisteredAsBypassingContentSecurityPolicy Mozilla Internals.removeURLSchemeRegisteredAsBypassingContentSecurityPolicy documentation> 
-removeURLSchemeRegisteredAsBypassingContentSecurityPolicy ::
-                                                          (MonadIO m, ToJSString scheme) =>
-                                                            Internals -> scheme -> m ()
-removeURLSchemeRegisteredAsBypassingContentSecurityPolicy self
-  scheme
-  = liftIO
-      (js_removeURLSchemeRegisteredAsBypassingContentSecurityPolicy
-         (self)
-         (toJSString scheme))
- 
-foreign import javascript unsafe "$1[\"mallocStatistics\"]()"
-        js_mallocStatistics :: Internals -> IO (Nullable MallocStatistics)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.mallocStatistics Mozilla Internals.mallocStatistics documentation> 
-mallocStatistics ::
-                 (MonadIO m) => Internals -> m (Maybe MallocStatistics)
-mallocStatistics self
-  = liftIO (nullableToMaybe <$> (js_mallocStatistics (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.mallocStatistics Mozilla Internals.mallocStatistics documentation> 
-mallocStatistics_ :: (MonadIO m) => Internals -> m ()
-mallocStatistics_ self = liftIO (void (js_mallocStatistics (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.mallocStatistics Mozilla Internals.mallocStatistics documentation> 
-mallocStatisticsUnsafe ::
-                       (MonadIO m, HasCallStack) => Internals -> m MallocStatistics
-mallocStatisticsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_mallocStatistics (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.mallocStatistics Mozilla Internals.mallocStatistics documentation> 
-mallocStatisticsUnchecked ::
-                          (MonadIO m) => Internals -> m MallocStatistics
-mallocStatisticsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_mallocStatistics (self)))
- 
-foreign import javascript unsafe "$1[\"typeConversions\"]()"
-        js_typeConversions :: Internals -> IO (Nullable TypeConversions)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.typeConversions Mozilla Internals.typeConversions documentation> 
-typeConversions ::
-                (MonadIO m) => Internals -> m (Maybe TypeConversions)
-typeConversions self
-  = liftIO (nullableToMaybe <$> (js_typeConversions (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.typeConversions Mozilla Internals.typeConversions documentation> 
-typeConversions_ :: (MonadIO m) => Internals -> m ()
-typeConversions_ self = liftIO (void (js_typeConversions (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.typeConversions Mozilla Internals.typeConversions documentation> 
-typeConversionsUnsafe ::
-                      (MonadIO m, HasCallStack) => Internals -> m TypeConversions
-typeConversionsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_typeConversions (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.typeConversions Mozilla Internals.typeConversions documentation> 
-typeConversionsUnchecked ::
-                         (MonadIO m) => Internals -> m TypeConversions
-typeConversionsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_typeConversions (self)))
- 
-foreign import javascript unsafe "$1[\"memoryInfo\"]()"
-        js_memoryInfo :: Internals -> IO (Nullable MemoryInfo)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.memoryInfo Mozilla Internals.memoryInfo documentation> 
-memoryInfo :: (MonadIO m) => Internals -> m (Maybe MemoryInfo)
-memoryInfo self
-  = liftIO (nullableToMaybe <$> (js_memoryInfo (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.memoryInfo Mozilla Internals.memoryInfo documentation> 
-memoryInfo_ :: (MonadIO m) => Internals -> m ()
-memoryInfo_ self = liftIO (void (js_memoryInfo (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.memoryInfo Mozilla Internals.memoryInfo documentation> 
-memoryInfoUnsafe ::
-                 (MonadIO m, HasCallStack) => Internals -> m MemoryInfo
-memoryInfoUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_memoryInfo (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.memoryInfo Mozilla Internals.memoryInfo documentation> 
-memoryInfoUnchecked :: (MonadIO m) => Internals -> m MemoryInfo
-memoryInfoUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_memoryInfo (self)))
- 
-foreign import javascript unsafe "$1[\"getReferencedFilePaths\"]()"
-        js_getReferencedFilePaths :: Internals -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.getReferencedFilePaths Mozilla Internals.getReferencedFilePaths documentation> 
-getReferencedFilePaths ::
-                       (MonadIO m, FromJSString result) => Internals -> m [result]
-getReferencedFilePaths self
-  = liftIO
-      ((js_getReferencedFilePaths (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.getReferencedFilePaths Mozilla Internals.getReferencedFilePaths documentation> 
-getReferencedFilePaths_ :: (MonadIO m) => Internals -> m ()
-getReferencedFilePaths_ self
-  = liftIO (void (js_getReferencedFilePaths (self)))
- 
-foreign import javascript unsafe "$1[\"startTrackingRepaints\"]()"
-        js_startTrackingRepaints :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.startTrackingRepaints Mozilla Internals.startTrackingRepaints documentation> 
-startTrackingRepaints :: (MonadIO m) => Internals -> m ()
-startTrackingRepaints self
-  = liftIO (js_startTrackingRepaints (self))
- 
-foreign import javascript unsafe "$1[\"stopTrackingRepaints\"]()"
-        js_stopTrackingRepaints :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.stopTrackingRepaints Mozilla Internals.stopTrackingRepaints documentation> 
-stopTrackingRepaints :: (MonadIO m) => Internals -> m ()
-stopTrackingRepaints self = liftIO (js_stopTrackingRepaints (self))
- 
-foreign import javascript unsafe
-        "($1[\"isTimerThrottled\"]($2) ? 1 : 0)" js_isTimerThrottled ::
-        Internals -> Int -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isTimerThrottled Mozilla Internals.isTimerThrottled documentation> 
-isTimerThrottled :: (MonadIO m) => Internals -> Int -> m Bool
-isTimerThrottled self timerHandle
-  = liftIO (js_isTimerThrottled (self) timerHandle)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isTimerThrottled Mozilla Internals.isTimerThrottled documentation> 
-isTimerThrottled_ :: (MonadIO m) => Internals -> Int -> m ()
-isTimerThrottled_ self timerHandle
-  = liftIO (void (js_isTimerThrottled (self) timerHandle))
- 
-foreign import javascript unsafe
-        "$1[\"updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks\"]($2)"
-        js_updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks ::
-        Internals -> Nullable Node -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks Mozilla Internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks documentation> 
-updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks ::
-                                                          (MonadIO m, IsNode node) =>
-                                                            Internals -> Maybe node -> m ()
-updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks self node
-  = liftIO
-      (js_updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks
-         (self)
-         (maybeToNullable (fmap toNode node)))
- 
-foreign import javascript unsafe "$1[\"getCurrentCursorInfo\"]()"
-        js_getCurrentCursorInfo :: Internals -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.getCurrentCursorInfo Mozilla Internals.getCurrentCursorInfo documentation> 
-getCurrentCursorInfo ::
-                     (MonadIO m, FromJSString result) => Internals -> m result
-getCurrentCursorInfo self
-  = liftIO (fromJSString <$> (js_getCurrentCursorInfo (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.getCurrentCursorInfo Mozilla Internals.getCurrentCursorInfo documentation> 
-getCurrentCursorInfo_ :: (MonadIO m) => Internals -> m ()
-getCurrentCursorInfo_ self
-  = liftIO (void (js_getCurrentCursorInfo (self)))
- 
-foreign import javascript unsafe
-        "$1[\"markerTextForListItem\"]($2)" js_markerTextForListItem ::
-        Internals -> Nullable Element -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.markerTextForListItem Mozilla Internals.markerTextForListItem documentation> 
-markerTextForListItem ::
-                      (MonadIO m, IsElement element, FromJSString result) =>
-                        Internals -> Maybe element -> m result
-markerTextForListItem self element
-  = liftIO
-      (fromJSString <$>
-         (js_markerTextForListItem (self)
-            (maybeToNullable (fmap toElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.markerTextForListItem Mozilla Internals.markerTextForListItem documentation> 
-markerTextForListItem_ ::
-                       (MonadIO m, IsElement element) =>
-                         Internals -> Maybe element -> m ()
-markerTextForListItem_ self element
-  = liftIO
-      (void
-         (js_markerTextForListItem (self)
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe "$1[\"toolTipFromElement\"]($2)"
-        js_toolTipFromElement ::
-        Internals -> Nullable Element -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.toolTipFromElement Mozilla Internals.toolTipFromElement documentation> 
-toolTipFromElement ::
-                   (MonadIO m, IsElement element, FromJSString result) =>
-                     Internals -> Maybe element -> m result
-toolTipFromElement self element
-  = liftIO
-      (fromJSString <$>
-         (js_toolTipFromElement (self)
-            (maybeToNullable (fmap toElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.toolTipFromElement Mozilla Internals.toolTipFromElement documentation> 
-toolTipFromElement_ ::
-                    (MonadIO m, IsElement element) =>
-                      Internals -> Maybe element -> m ()
-toolTipFromElement_ self element
-  = liftIO
-      (void
-         (js_toolTipFromElement (self)
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe "$1[\"deserializeBuffer\"]($2)"
-        js_deserializeBuffer ::
-        Internals ->
-          Nullable ArrayBuffer -> IO (Nullable SerializedScriptValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.deserializeBuffer Mozilla Internals.deserializeBuffer documentation> 
-deserializeBuffer ::
-                  (MonadIO m, IsArrayBuffer buffer) =>
-                    Internals -> Maybe buffer -> m (Maybe SerializedScriptValue)
-deserializeBuffer self buffer
-  = liftIO
-      (nullableToMaybe <$>
-         (js_deserializeBuffer (self)
-            (maybeToNullable (fmap toArrayBuffer buffer))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.deserializeBuffer Mozilla Internals.deserializeBuffer documentation> 
-deserializeBuffer_ ::
-                   (MonadIO m, IsArrayBuffer buffer) =>
-                     Internals -> Maybe buffer -> m ()
-deserializeBuffer_ self buffer
-  = liftIO
-      (void
-         (js_deserializeBuffer (self)
-            (maybeToNullable (fmap toArrayBuffer buffer))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.deserializeBuffer Mozilla Internals.deserializeBuffer documentation> 
-deserializeBufferUnsafe ::
-                        (MonadIO m, IsArrayBuffer buffer, HasCallStack) =>
-                          Internals -> Maybe buffer -> m SerializedScriptValue
-deserializeBufferUnsafe self buffer
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_deserializeBuffer (self)
-             (maybeToNullable (fmap toArrayBuffer buffer))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.deserializeBuffer Mozilla Internals.deserializeBuffer documentation> 
-deserializeBufferUnchecked ::
-                           (MonadIO m, IsArrayBuffer buffer) =>
-                             Internals -> Maybe buffer -> m SerializedScriptValue
-deserializeBufferUnchecked self buffer
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_deserializeBuffer (self)
-            (maybeToNullable (fmap toArrayBuffer buffer))))
- 
-foreign import javascript unsafe "$1[\"serializeObject\"]($2)"
-        js_serializeObject ::
-        Internals ->
-          Nullable SerializedScriptValue -> IO (Nullable ArrayBuffer)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.serializeObject Mozilla Internals.serializeObject documentation> 
-serializeObject ::
-                (MonadIO m, IsSerializedScriptValue obj) =>
-                  Internals -> Maybe obj -> m (Maybe ArrayBuffer)
-serializeObject self obj
-  = liftIO
-      (nullableToMaybe <$>
-         (js_serializeObject (self)
-            (maybeToNullable (fmap toSerializedScriptValue obj))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.serializeObject Mozilla Internals.serializeObject documentation> 
-serializeObject_ ::
-                 (MonadIO m, IsSerializedScriptValue obj) =>
-                   Internals -> Maybe obj -> m ()
-serializeObject_ self obj
-  = liftIO
-      (void
-         (js_serializeObject (self)
-            (maybeToNullable (fmap toSerializedScriptValue obj))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.serializeObject Mozilla Internals.serializeObject documentation> 
-serializeObjectUnsafe ::
-                      (MonadIO m, IsSerializedScriptValue obj, HasCallStack) =>
-                        Internals -> Maybe obj -> m ArrayBuffer
-serializeObjectUnsafe self obj
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_serializeObject (self)
-             (maybeToNullable (fmap toSerializedScriptValue obj))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.serializeObject Mozilla Internals.serializeObject documentation> 
-serializeObjectUnchecked ::
-                         (MonadIO m, IsSerializedScriptValue obj) =>
-                           Internals -> Maybe obj -> m ArrayBuffer
-serializeObjectUnchecked self obj
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_serializeObject (self)
-            (maybeToNullable (fmap toSerializedScriptValue obj))))
- 
-foreign import javascript unsafe
-        "$1[\"setUsesOverlayScrollbars\"]($2)" js_setUsesOverlayScrollbars
-        :: Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setUsesOverlayScrollbars Mozilla Internals.setUsesOverlayScrollbars documentation> 
-setUsesOverlayScrollbars ::
-                         (MonadIO m) => Internals -> Bool -> m ()
-setUsesOverlayScrollbars self enabled
-  = liftIO (js_setUsesOverlayScrollbars (self) enabled)
- 
-foreign import javascript unsafe "$1[\"forceReload\"]($2)"
-        js_forceReload :: Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.forceReload Mozilla Internals.forceReload documentation> 
-forceReload :: (MonadIO m) => Internals -> Bool -> m ()
-forceReload self endToEnd = liftIO (js_forceReload (self) endToEnd)
- 
-foreign import javascript unsafe
-        "$1[\"simulateAudioInterruption\"]($2)"
-        js_simulateAudioInterruption :: Internals -> Nullable Node -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.simulateAudioInterruption Mozilla Internals.simulateAudioInterruption documentation> 
-simulateAudioInterruption ::
-                          (MonadIO m, IsNode node) => Internals -> Maybe node -> m ()
-simulateAudioInterruption self node
-  = liftIO
-      (js_simulateAudioInterruption (self)
-         (maybeToNullable (fmap toNode node)))
- 
-foreign import javascript unsafe
-        "($1[\"mediaElementHasCharacteristic\"]($2,\n$3) ? 1 : 0)"
-        js_mediaElementHasCharacteristic ::
-        Internals -> Nullable Node -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.mediaElementHasCharacteristic Mozilla Internals.mediaElementHasCharacteristic documentation> 
-mediaElementHasCharacteristic ::
-                              (MonadIO m, IsNode node, ToJSString characteristic) =>
-                                Internals -> Maybe node -> characteristic -> m Bool
-mediaElementHasCharacteristic self node characteristic
-  = liftIO
-      (js_mediaElementHasCharacteristic (self)
-         (maybeToNullable (fmap toNode node))
-         (toJSString characteristic))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.mediaElementHasCharacteristic Mozilla Internals.mediaElementHasCharacteristic documentation> 
-mediaElementHasCharacteristic_ ::
-                               (MonadIO m, IsNode node, ToJSString characteristic) =>
-                                 Internals -> Maybe node -> characteristic -> m ()
-mediaElementHasCharacteristic_ self node characteristic
-  = liftIO
-      (void
-         (js_mediaElementHasCharacteristic (self)
-            (maybeToNullable (fmap toNode node))
-            (toJSString characteristic)))
- 
-foreign import javascript unsafe "$1[\"initializeMockCDM\"]()"
-        js_initializeMockCDM :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.initializeMockCDM Mozilla Internals.initializeMockCDM documentation> 
-initializeMockCDM :: (MonadIO m) => Internals -> m ()
-initializeMockCDM self = liftIO (js_initializeMockCDM (self))
- 
-foreign import javascript unsafe
-        "$1[\"enableMockSpeechSynthesizer\"]()"
-        js_enableMockSpeechSynthesizer :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.enableMockSpeechSynthesizer Mozilla Internals.enableMockSpeechSynthesizer documentation> 
-enableMockSpeechSynthesizer :: (MonadIO m) => Internals -> m ()
-enableMockSpeechSynthesizer self
-  = liftIO (js_enableMockSpeechSynthesizer (self))
- 
-foreign import javascript unsafe "$1[\"getImageSourceURL\"]($2)"
-        js_getImageSourceURL ::
-        Internals -> Nullable Element -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.getImageSourceURL Mozilla Internals.getImageSourceURL documentation> 
-getImageSourceURL ::
-                  (MonadIO m, IsElement element, FromJSString result) =>
-                    Internals -> Maybe element -> m result
-getImageSourceURL self element
-  = liftIO
-      (fromJSString <$>
-         (js_getImageSourceURL (self)
-            (maybeToNullable (fmap toElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.getImageSourceURL Mozilla Internals.getImageSourceURL documentation> 
-getImageSourceURL_ ::
-                   (MonadIO m, IsElement element) =>
-                     Internals -> Maybe element -> m ()
-getImageSourceURL_ self element
-  = liftIO
-      (void
-         (js_getImageSourceURL (self)
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe
-        "$1[\"captionsStyleSheetOverride\"]()"
-        js_captionsStyleSheetOverride :: Internals -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.captionsStyleSheetOverride Mozilla Internals.captionsStyleSheetOverride documentation> 
-captionsStyleSheetOverride ::
-                           (MonadIO m, FromJSString result) => Internals -> m result
-captionsStyleSheetOverride self
-  = liftIO (fromJSString <$> (js_captionsStyleSheetOverride (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.captionsStyleSheetOverride Mozilla Internals.captionsStyleSheetOverride documentation> 
-captionsStyleSheetOverride_ :: (MonadIO m) => Internals -> m ()
-captionsStyleSheetOverride_ self
-  = liftIO (void (js_captionsStyleSheetOverride (self)))
- 
-foreign import javascript unsafe
-        "$1[\"setCaptionsStyleSheetOverride\"]($2)"
-        js_setCaptionsStyleSheetOverride :: Internals -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setCaptionsStyleSheetOverride Mozilla Internals.setCaptionsStyleSheetOverride documentation> 
-setCaptionsStyleSheetOverride ::
-                              (MonadIO m, ToJSString override) => Internals -> override -> m ()
-setCaptionsStyleSheetOverride self override
-  = liftIO
-      (js_setCaptionsStyleSheetOverride (self) (toJSString override))
- 
-foreign import javascript unsafe
-        "$1[\"setPrimaryAudioTrackLanguageOverride\"]($2)"
-        js_setPrimaryAudioTrackLanguageOverride ::
-        Internals -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setPrimaryAudioTrackLanguageOverride Mozilla Internals.setPrimaryAudioTrackLanguageOverride documentation> 
-setPrimaryAudioTrackLanguageOverride ::
-                                     (MonadIO m, ToJSString language) =>
-                                       Internals -> language -> m ()
-setPrimaryAudioTrackLanguageOverride self language
-  = liftIO
-      (js_setPrimaryAudioTrackLanguageOverride (self)
-         (toJSString language))
- 
-foreign import javascript unsafe
-        "$1[\"setCaptionDisplayMode\"]($2)" js_setCaptionDisplayMode ::
-        Internals -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setCaptionDisplayMode Mozilla Internals.setCaptionDisplayMode documentation> 
-setCaptionDisplayMode ::
-                      (MonadIO m, ToJSString mode) => Internals -> mode -> m ()
-setCaptionDisplayMode self mode
-  = liftIO (js_setCaptionDisplayMode (self) (toJSString mode))
- 
-foreign import javascript unsafe "$1[\"createTimeRanges\"]($2, $3)"
-        js_createTimeRanges ::
-        Internals ->
-          Nullable Float32Array ->
-            Nullable Float32Array -> IO (Nullable TimeRanges)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.createTimeRanges Mozilla Internals.createTimeRanges documentation> 
-createTimeRanges ::
-                 (MonadIO m, IsFloat32Array startTimes, IsFloat32Array endTimes) =>
-                   Internals ->
-                     Maybe startTimes -> Maybe endTimes -> m (Maybe TimeRanges)
-createTimeRanges self startTimes endTimes
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createTimeRanges (self)
-            (maybeToNullable (fmap toFloat32Array startTimes))
-            (maybeToNullable (fmap toFloat32Array endTimes))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.createTimeRanges Mozilla Internals.createTimeRanges documentation> 
-createTimeRanges_ ::
-                  (MonadIO m, IsFloat32Array startTimes, IsFloat32Array endTimes) =>
-                    Internals -> Maybe startTimes -> Maybe endTimes -> m ()
-createTimeRanges_ self startTimes endTimes
-  = liftIO
-      (void
-         (js_createTimeRanges (self)
-            (maybeToNullable (fmap toFloat32Array startTimes))
-            (maybeToNullable (fmap toFloat32Array endTimes))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.createTimeRanges Mozilla Internals.createTimeRanges documentation> 
-createTimeRangesUnsafe ::
-                       (MonadIO m, IsFloat32Array startTimes, IsFloat32Array endTimes,
-                        HasCallStack) =>
-                         Internals -> Maybe startTimes -> Maybe endTimes -> m TimeRanges
-createTimeRangesUnsafe self startTimes endTimes
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createTimeRanges (self)
-             (maybeToNullable (fmap toFloat32Array startTimes))
-             (maybeToNullable (fmap toFloat32Array endTimes))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.createTimeRanges Mozilla Internals.createTimeRanges documentation> 
-createTimeRangesUnchecked ::
-                          (MonadIO m, IsFloat32Array startTimes, IsFloat32Array endTimes) =>
-                            Internals -> Maybe startTimes -> Maybe endTimes -> m TimeRanges
-createTimeRangesUnchecked self startTimes endTimes
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createTimeRanges (self)
-            (maybeToNullable (fmap toFloat32Array startTimes))
-            (maybeToNullable (fmap toFloat32Array endTimes))))
- 
-foreign import javascript unsafe
-        "$1[\"closestTimeToTimeRanges\"]($2,\n$3)"
-        js_closestTimeToTimeRanges ::
-        Internals -> Double -> Nullable TimeRanges -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.closestTimeToTimeRanges Mozilla Internals.closestTimeToTimeRanges documentation> 
-closestTimeToTimeRanges ::
-                        (MonadIO m) => Internals -> Double -> Maybe TimeRanges -> m Double
-closestTimeToTimeRanges self time ranges
-  = liftIO
-      (js_closestTimeToTimeRanges (self) time (maybeToNullable ranges))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.closestTimeToTimeRanges Mozilla Internals.closestTimeToTimeRanges documentation> 
-closestTimeToTimeRanges_ ::
-                         (MonadIO m) => Internals -> Double -> Maybe TimeRanges -> m ()
-closestTimeToTimeRanges_ self time ranges
-  = liftIO
-      (void
-         (js_closestTimeToTimeRanges (self) time (maybeToNullable ranges)))
- 
-foreign import javascript unsafe
-        "($1[\"isSelectPopupVisible\"]($2) ? 1 : 0)"
-        js_isSelectPopupVisible :: Internals -> Nullable Node -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isSelectPopupVisible Mozilla Internals.isSelectPopupVisible documentation> 
-isSelectPopupVisible ::
-                     (MonadIO m, IsNode node) => Internals -> Maybe node -> m Bool
-isSelectPopupVisible self node
-  = liftIO
-      (js_isSelectPopupVisible (self)
-         (maybeToNullable (fmap toNode node)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isSelectPopupVisible Mozilla Internals.isSelectPopupVisible documentation> 
-isSelectPopupVisible_ ::
-                      (MonadIO m, IsNode node) => Internals -> Maybe node -> m ()
-isSelectPopupVisible_ self node
-  = liftIO
-      (void
-         (js_isSelectPopupVisible (self)
-            (maybeToNullable (fmap toNode node))))
- 
-foreign import javascript unsafe "($1[\"isVibrating\"]() ? 1 : 0)"
-        js_isVibrating :: Internals -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isVibrating Mozilla Internals.isVibrating documentation> 
-isVibrating :: (MonadIO m) => Internals -> m Bool
-isVibrating self = liftIO (js_isVibrating (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isVibrating Mozilla Internals.isVibrating documentation> 
-isVibrating_ :: (MonadIO m) => Internals -> m ()
-isVibrating_ self = liftIO (void (js_isVibrating (self)))
- 
-foreign import javascript unsafe
-        "($1[\"isPluginUnavailabilityIndicatorObscured\"]($2) ? 1 : 0)"
-        js_isPluginUnavailabilityIndicatorObscured ::
-        Internals -> Nullable Element -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isPluginUnavailabilityIndicatorObscured Mozilla Internals.isPluginUnavailabilityIndicatorObscured documentation> 
-isPluginUnavailabilityIndicatorObscured ::
-                                        (MonadIO m, IsElement element) =>
-                                          Internals -> Maybe element -> m Bool
-isPluginUnavailabilityIndicatorObscured self element
-  = liftIO
-      (js_isPluginUnavailabilityIndicatorObscured (self)
-         (maybeToNullable (fmap toElement element)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isPluginUnavailabilityIndicatorObscured Mozilla Internals.isPluginUnavailabilityIndicatorObscured documentation> 
-isPluginUnavailabilityIndicatorObscured_ ::
-                                         (MonadIO m, IsElement element) =>
-                                           Internals -> Maybe element -> m ()
-isPluginUnavailabilityIndicatorObscured_ self element
-  = liftIO
-      (void
-         (js_isPluginUnavailabilityIndicatorObscured (self)
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe
-        "($1[\"isPluginSnapshotted\"]($2) ? 1 : 0)" js_isPluginSnapshotted
-        :: Internals -> Nullable Element -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isPluginSnapshotted Mozilla Internals.isPluginSnapshotted documentation> 
-isPluginSnapshotted ::
-                    (MonadIO m, IsElement element) =>
-                      Internals -> Maybe element -> m Bool
-isPluginSnapshotted self element
-  = liftIO
-      (js_isPluginSnapshotted (self)
-         (maybeToNullable (fmap toElement element)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isPluginSnapshotted Mozilla Internals.isPluginSnapshotted documentation> 
-isPluginSnapshotted_ ::
-                     (MonadIO m, IsElement element) =>
-                       Internals -> Maybe element -> m ()
-isPluginSnapshotted_ self element
-  = liftIO
-      (void
-         (js_isPluginSnapshotted (self)
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe "$1[\"selectionBounds\"]()"
-        js_selectionBounds :: Internals -> IO (Nullable ClientRect)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.selectionBounds Mozilla Internals.selectionBounds documentation> 
-selectionBounds :: (MonadIO m) => Internals -> m (Maybe ClientRect)
-selectionBounds self
-  = liftIO (nullableToMaybe <$> (js_selectionBounds (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.selectionBounds Mozilla Internals.selectionBounds documentation> 
-selectionBounds_ :: (MonadIO m) => Internals -> m ()
-selectionBounds_ self = liftIO (void (js_selectionBounds (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.selectionBounds Mozilla Internals.selectionBounds documentation> 
-selectionBoundsUnsafe ::
-                      (MonadIO m, HasCallStack) => Internals -> m ClientRect
-selectionBoundsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_selectionBounds (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.selectionBounds Mozilla Internals.selectionBounds documentation> 
-selectionBoundsUnchecked ::
-                         (MonadIO m) => Internals -> m ClientRect
-selectionBoundsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_selectionBounds (self)))
- 
-foreign import javascript unsafe
-        "$1[\"initializeMockMediaSource\"]()" js_initializeMockMediaSource
-        :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.initializeMockMediaSource Mozilla Internals.initializeMockMediaSource documentation> 
-initializeMockMediaSource :: (MonadIO m) => Internals -> m ()
-initializeMockMediaSource self
-  = liftIO (js_initializeMockMediaSource (self))
- 
-foreign import javascript unsafe
-        "$1[\"bufferedSamplesForTrackID\"]($2,\n$3)"
-        js_bufferedSamplesForTrackID ::
-        Internals -> Nullable SourceBuffer -> JSString -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.bufferedSamplesForTrackID Mozilla Internals.bufferedSamplesForTrackID documentation> 
-bufferedSamplesForTrackID ::
-                          (MonadIO m, ToJSString trackID, FromJSString result) =>
-                            Internals -> Maybe SourceBuffer -> trackID -> m [result]
-bufferedSamplesForTrackID self buffer trackID
-  = liftIO
-      ((js_bufferedSamplesForTrackID (self) (maybeToNullable buffer)
-          (toJSString trackID))
-         >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.bufferedSamplesForTrackID Mozilla Internals.bufferedSamplesForTrackID documentation> 
-bufferedSamplesForTrackID_ ::
-                           (MonadIO m, ToJSString trackID) =>
-                             Internals -> Maybe SourceBuffer -> trackID -> m ()
-bufferedSamplesForTrackID_ self buffer trackID
-  = liftIO
-      (void
-         (js_bufferedSamplesForTrackID (self) (maybeToNullable buffer)
-            (toJSString trackID)))
- 
-foreign import javascript unsafe
-        "$1[\"beginMediaSessionInterruption\"]()"
-        js_beginMediaSessionInterruption :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.beginMediaSessionInterruption Mozilla Internals.beginMediaSessionInterruption documentation> 
-beginMediaSessionInterruption :: (MonadIO m) => Internals -> m ()
-beginMediaSessionInterruption self
-  = liftIO (js_beginMediaSessionInterruption (self))
- 
-foreign import javascript unsafe
-        "$1[\"endMediaSessionInterruption\"]($2)"
-        js_endMediaSessionInterruption :: Internals -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.endMediaSessionInterruption Mozilla Internals.endMediaSessionInterruption documentation> 
-endMediaSessionInterruption ::
-                            (MonadIO m, ToJSString flags) => Internals -> flags -> m ()
-endMediaSessionInterruption self flags
-  = liftIO (js_endMediaSessionInterruption (self) (toJSString flags))
- 
-foreign import javascript unsafe
-        "$1[\"applicationWillEnterForeground\"]()"
-        js_applicationWillEnterForeground :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.applicationWillEnterForeground Mozilla Internals.applicationWillEnterForeground documentation> 
-applicationWillEnterForeground :: (MonadIO m) => Internals -> m ()
-applicationWillEnterForeground self
-  = liftIO (js_applicationWillEnterForeground (self))
- 
-foreign import javascript unsafe
-        "$1[\"applicationWillEnterBackground\"]()"
-        js_applicationWillEnterBackground :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.applicationWillEnterBackground Mozilla Internals.applicationWillEnterBackground documentation> 
-applicationWillEnterBackground :: (MonadIO m) => Internals -> m ()
-applicationWillEnterBackground self
-  = liftIO (js_applicationWillEnterBackground (self))
- 
-foreign import javascript unsafe
-        "$1[\"setMediaSessionRestrictions\"]($2,\n$3)"
-        js_setMediaSessionRestrictions ::
-        Internals -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setMediaSessionRestrictions Mozilla Internals.setMediaSessionRestrictions documentation> 
-setMediaSessionRestrictions ::
-                            (MonadIO m, ToJSString mediaType, ToJSString restrictions) =>
-                              Internals -> mediaType -> restrictions -> m ()
-setMediaSessionRestrictions self mediaType restrictions
-  = liftIO
-      (js_setMediaSessionRestrictions (self) (toJSString mediaType)
-         (toJSString restrictions))
- 
-foreign import javascript unsafe
-        "$1[\"postRemoteControlCommand\"]($2)" js_postRemoteControlCommand
-        :: Internals -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.postRemoteControlCommand Mozilla Internals.postRemoteControlCommand documentation> 
-postRemoteControlCommand ::
-                         (MonadIO m, ToJSString command) => Internals -> command -> m ()
-postRemoteControlCommand self command
-  = liftIO (js_postRemoteControlCommand (self) (toJSString command))
- 
-foreign import javascript unsafe "$1[\"simulateSystemSleep\"]()"
-        js_simulateSystemSleep :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.simulateSystemSleep Mozilla Internals.simulateSystemSleep documentation> 
-simulateSystemSleep :: (MonadIO m) => Internals -> m ()
-simulateSystemSleep self = liftIO (js_simulateSystemSleep (self))
- 
-foreign import javascript unsafe "$1[\"simulateSystemWake\"]()"
-        js_simulateSystemWake :: Internals -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.simulateSystemWake Mozilla Internals.simulateSystemWake documentation> 
-simulateSystemWake :: (MonadIO m) => Internals -> m ()
-simulateSystemWake self = liftIO (js_simulateSystemWake (self))
- 
-foreign import javascript unsafe
-        "($1[\"elementIsBlockingDisplaySleep\"]($2) ? 1 : 0)"
-        js_elementIsBlockingDisplaySleep ::
-        Internals -> Nullable Element -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.elementIsBlockingDisplaySleep Mozilla Internals.elementIsBlockingDisplaySleep documentation> 
-elementIsBlockingDisplaySleep ::
-                              (MonadIO m, IsElement element) =>
-                                Internals -> Maybe element -> m Bool
-elementIsBlockingDisplaySleep self element
-  = liftIO
-      (js_elementIsBlockingDisplaySleep (self)
-         (maybeToNullable (fmap toElement element)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.elementIsBlockingDisplaySleep Mozilla Internals.elementIsBlockingDisplaySleep documentation> 
-elementIsBlockingDisplaySleep_ ::
-                               (MonadIO m, IsElement element) =>
-                                 Internals -> Maybe element -> m ()
-elementIsBlockingDisplaySleep_ self element
-  = liftIO
-      (void
-         (js_elementIsBlockingDisplaySleep (self)
-            (maybeToNullable (fmap toElement element))))
- 
-foreign import javascript unsafe
-        "$1[\"installMockPageOverlay\"]($2)" js_installMockPageOverlay ::
-        Internals -> JSVal -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.installMockPageOverlay Mozilla Internals.installMockPageOverlay documentation> 
-installMockPageOverlay ::
-                       (MonadIO m) => Internals -> PageOverlayType -> m ()
-installMockPageOverlay self type'
-  = liftIO (js_installMockPageOverlay (self) (pToJSVal type'))
- 
-foreign import javascript unsafe
-        "$1[\"pageOverlayLayerTreeAsText\"]()"
-        js_pageOverlayLayerTreeAsText :: Internals -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pageOverlayLayerTreeAsText Mozilla Internals.pageOverlayLayerTreeAsText documentation> 
-pageOverlayLayerTreeAsText ::
-                           (MonadIO m, FromJSString result) => Internals -> m result
-pageOverlayLayerTreeAsText self
-  = liftIO (fromJSString <$> (js_pageOverlayLayerTreeAsText (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.pageOverlayLayerTreeAsText Mozilla Internals.pageOverlayLayerTreeAsText documentation> 
-pageOverlayLayerTreeAsText_ :: (MonadIO m) => Internals -> m ()
-pageOverlayLayerTreeAsText_ self
-  = liftIO (void (js_pageOverlayLayerTreeAsText (self)))
- 
-foreign import javascript unsafe "$1[\"setPageMuted\"]($2)"
-        js_setPageMuted :: Internals -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.setPageMuted Mozilla Internals.setPageMuted documentation> 
-setPageMuted :: (MonadIO m) => Internals -> Bool -> m ()
-setPageMuted self muted = liftIO (js_setPageMuted (self) muted)
- 
-foreign import javascript unsafe
-        "($1[\"isPagePlayingAudio\"]() ? 1 : 0)" js_isPagePlayingAudio ::
-        Internals -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isPagePlayingAudio Mozilla Internals.isPagePlayingAudio documentation> 
-isPagePlayingAudio :: (MonadIO m) => Internals -> m Bool
-isPagePlayingAudio self = liftIO (js_isPagePlayingAudio (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.isPagePlayingAudio Mozilla Internals.isPagePlayingAudio documentation> 
-isPagePlayingAudio_ :: (MonadIO m) => Internals -> m ()
-isPagePlayingAudio_ self
-  = liftIO (void (js_isPagePlayingAudio (self)))
-pattern LAYER_TREE_INCLUDES_VISIBLE_RECTS = 1
-pattern LAYER_TREE_INCLUDES_TILE_CACHES = 2
-pattern LAYER_TREE_INCLUDES_REPAINT_RECTS = 4
-pattern LAYER_TREE_INCLUDES_PAINTING_PHASES = 8
-pattern LAYER_TREE_INCLUDES_CONTENT_LAYERS = 16
- 
-foreign import javascript unsafe "$1[\"settings\"]" js_getSettings
-        :: Internals -> IO (Nullable InternalSettings)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.settings Mozilla Internals.settings documentation> 
-getSettings ::
-            (MonadIO m) => Internals -> m (Maybe InternalSettings)
-getSettings self
-  = liftIO (nullableToMaybe <$> (js_getSettings (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.settings Mozilla Internals.settings documentation> 
-getSettingsUnsafe ::
-                  (MonadIO m, HasCallStack) => Internals -> m InternalSettings
-getSettingsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSettings (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.settings Mozilla Internals.settings documentation> 
-getSettingsUnchecked ::
-                     (MonadIO m) => Internals -> m InternalSettings
-getSettingsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getSettings (self)))
- 
-foreign import javascript unsafe "$1[\"workerThreadCount\"]"
-        js_getWorkerThreadCount :: Internals -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.workerThreadCount Mozilla Internals.workerThreadCount documentation> 
-getWorkerThreadCount :: (MonadIO m) => Internals -> m Word
-getWorkerThreadCount self = liftIO (js_getWorkerThreadCount (self))
- 
-foreign import javascript unsafe "$1[\"consoleProfiles\"]"
-        js_getConsoleProfiles :: Internals -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Internals.consoleProfiles Mozilla Internals.consoleProfiles documentation> 
-getConsoleProfiles ::
-                   (MonadIO m) => Internals -> m [Maybe ScriptProfile]
-getConsoleProfiles self
-  = liftIO ((js_getConsoleProfiles (self)) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IntersectionObserver.hs b/src/GHCJS/DOM/JSFFI/Generated/IntersectionObserver.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/IntersectionObserver.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.IntersectionObserver
+       (js_newIntersectionObserver, newIntersectionObserver, js_observe,
+        observe, js_unobserve, unobserve, js_disconnect, disconnect,
+        js_takeRecords, takeRecords, takeRecords_, js_getRoot, getRoot,
+        getRootUnsafe, getRootUnchecked, js_getRootMargin, getRootMargin,
+        js_getThresholds, getThresholds, IntersectionObserver(..),
+        gTypeIntersectionObserver)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"IntersectionObserver\"]($1,\n$2)"
+        js_newIntersectionObserver ::
+        IntersectionObserverCallback ->
+          Optional IntersectionObserverInit -> IO IntersectionObserver
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver Mozilla IntersectionObserver documentation> 
+newIntersectionObserver ::
+                        (MonadIO m) =>
+                          IntersectionObserverCallback ->
+                            Maybe IntersectionObserverInit -> m IntersectionObserver
+newIntersectionObserver callback options
+  = liftIO
+      (js_newIntersectionObserver callback (maybeToOptional options))
+ 
+foreign import javascript unsafe "$1[\"observe\"]($2)" js_observe
+        :: IntersectionObserver -> Element -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver.observe Mozilla IntersectionObserver.observe documentation> 
+observe ::
+        (MonadIO m, IsElement target) =>
+          IntersectionObserver -> target -> m ()
+observe self target = liftIO (js_observe self (toElement target))
+ 
+foreign import javascript unsafe "$1[\"unobserve\"]($2)"
+        js_unobserve :: IntersectionObserver -> Element -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver.unobserve Mozilla IntersectionObserver.unobserve documentation> 
+unobserve ::
+          (MonadIO m, IsElement target) =>
+            IntersectionObserver -> target -> m ()
+unobserve self target
+  = liftIO (js_unobserve self (toElement target))
+ 
+foreign import javascript unsafe "$1[\"disconnect\"]()"
+        js_disconnect :: IntersectionObserver -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver.disconnect Mozilla IntersectionObserver.disconnect documentation> 
+disconnect :: (MonadIO m) => IntersectionObserver -> m ()
+disconnect self = liftIO (js_disconnect self)
+ 
+foreign import javascript unsafe "$1[\"takeRecords\"]()"
+        js_takeRecords :: IntersectionObserver -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver.takeRecords Mozilla IntersectionObserver.takeRecords documentation> 
+takeRecords ::
+            (MonadIO m) =>
+              IntersectionObserver -> m [IntersectionObserverEntry]
+takeRecords self
+  = liftIO ((js_takeRecords self) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver.takeRecords Mozilla IntersectionObserver.takeRecords documentation> 
+takeRecords_ :: (MonadIO m) => IntersectionObserver -> m ()
+takeRecords_ self = liftIO (void (js_takeRecords self))
+ 
+foreign import javascript unsafe "$1[\"root\"]" js_getRoot ::
+        IntersectionObserver -> IO (Nullable Element)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver.root Mozilla IntersectionObserver.root documentation> 
+getRoot :: (MonadIO m) => IntersectionObserver -> m (Maybe Element)
+getRoot self = liftIO (nullableToMaybe <$> (js_getRoot self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver.root Mozilla IntersectionObserver.root documentation> 
+getRootUnsafe ::
+              (MonadIO m, HasCallStack) => IntersectionObserver -> m Element
+getRootUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getRoot self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver.root Mozilla IntersectionObserver.root documentation> 
+getRootUnchecked ::
+                 (MonadIO m) => IntersectionObserver -> m Element
+getRootUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getRoot self))
+ 
+foreign import javascript unsafe "$1[\"rootMargin\"]"
+        js_getRootMargin :: IntersectionObserver -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver.rootMargin Mozilla IntersectionObserver.rootMargin documentation> 
+getRootMargin ::
+              (MonadIO m, FromJSString result) =>
+                IntersectionObserver -> m result
+getRootMargin self
+  = liftIO (fromJSString <$> (js_getRootMargin self))
+ 
+foreign import javascript unsafe "$1[\"thresholds\"]"
+        js_getThresholds :: IntersectionObserver -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver.thresholds Mozilla IntersectionObserver.thresholds documentation> 
+getThresholds :: (MonadIO m) => IntersectionObserver -> m [Double]
+getThresholds self
+  = liftIO ((js_getThresholds self) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IntersectionObserverCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/IntersectionObserverCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/IntersectionObserverCallback.hs
@@ -0,0 +1,74 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.IntersectionObserverCallback
+       (newIntersectionObserverCallback,
+        newIntersectionObserverCallbackSync,
+        newIntersectionObserverCallbackAsync, IntersectionObserverCallback)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverCallback Mozilla IntersectionObserverCallback documentation> 
+newIntersectionObserverCallback ::
+                                (MonadIO m) =>
+                                  ([IntersectionObserverEntry] -> IntersectionObserver -> IO ()) ->
+                                    m IntersectionObserverCallback
+newIntersectionObserverCallback callback
+  = liftIO
+      (IntersectionObserverCallback <$>
+         syncCallback2 ThrowWouldBlock
+           (\ entries observer ->
+              fromJSValUnchecked observer >>=
+                \ observer' ->
+                  fromJSValUnchecked entries >>= \ entries' -> callback entries'
+                    observer'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverCallback Mozilla IntersectionObserverCallback documentation> 
+newIntersectionObserverCallbackSync ::
+                                    (MonadIO m) =>
+                                      ([IntersectionObserverEntry] -> IntersectionObserver -> IO ())
+                                        -> m IntersectionObserverCallback
+newIntersectionObserverCallbackSync callback
+  = liftIO
+      (IntersectionObserverCallback <$>
+         syncCallback2 ContinueAsync
+           (\ entries observer ->
+              fromJSValUnchecked observer >>=
+                \ observer' ->
+                  fromJSValUnchecked entries >>= \ entries' -> callback entries'
+                    observer'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverCallback Mozilla IntersectionObserverCallback documentation> 
+newIntersectionObserverCallbackAsync ::
+                                     (MonadIO m) =>
+                                       ([IntersectionObserverEntry] ->
+                                          IntersectionObserver -> IO ())
+                                         -> m IntersectionObserverCallback
+newIntersectionObserverCallbackAsync callback
+  = liftIO
+      (IntersectionObserverCallback <$>
+         asyncCallback2
+           (\ entries observer ->
+              fromJSValUnchecked observer >>=
+                \ observer' ->
+                  fromJSValUnchecked entries >>= \ entries' -> callback entries'
+                    observer'))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/IntersectionObserverEntry.hs b/src/GHCJS/DOM/JSFFI/Generated/IntersectionObserverEntry.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/IntersectionObserverEntry.hs
@@ -0,0 +1,94 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.IntersectionObserverEntry
+       (js_newIntersectionObserverEntry, newIntersectionObserverEntry,
+        js_getTime, getTime, js_getRootBounds, getRootBounds,
+        js_getBoundingClientRect, getBoundingClientRect,
+        js_getIntersectionRect, getIntersectionRect,
+        js_getIntersectionRatio, getIntersectionRatio, js_getTarget,
+        getTarget, IntersectionObserverEntry(..),
+        gTypeIntersectionObserverEntry)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"IntersectionObserverEntry\"]($1)"
+        js_newIntersectionObserverEntry ::
+        IntersectionObserverEntryInit -> IO IntersectionObserverEntry
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry Mozilla IntersectionObserverEntry documentation> 
+newIntersectionObserverEntry ::
+                             (MonadIO m) =>
+                               IntersectionObserverEntryInit -> m IntersectionObserverEntry
+newIntersectionObserverEntry intersectionObserverEntryInit
+  = liftIO
+      (js_newIntersectionObserverEntry intersectionObserverEntryInit)
+ 
+foreign import javascript unsafe "$1[\"time\"]" js_getTime ::
+        IntersectionObserverEntry -> IO DOMHighResTimeStamp
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry.time Mozilla IntersectionObserverEntry.time documentation> 
+getTime ::
+        (MonadIO m) => IntersectionObserverEntry -> m DOMHighResTimeStamp
+getTime self = liftIO (js_getTime self)
+ 
+foreign import javascript unsafe "$1[\"rootBounds\"]"
+        js_getRootBounds :: IntersectionObserverEntry -> IO DOMRectReadOnly
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry.rootBounds Mozilla IntersectionObserverEntry.rootBounds documentation> 
+getRootBounds ::
+              (MonadIO m) => IntersectionObserverEntry -> m DOMRectReadOnly
+getRootBounds self = liftIO (js_getRootBounds self)
+ 
+foreign import javascript unsafe "$1[\"boundingClientRect\"]"
+        js_getBoundingClientRect ::
+        IntersectionObserverEntry -> IO DOMRectReadOnly
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry.boundingClientRect Mozilla IntersectionObserverEntry.boundingClientRect documentation> 
+getBoundingClientRect ::
+                      (MonadIO m) => IntersectionObserverEntry -> m DOMRectReadOnly
+getBoundingClientRect self = liftIO (js_getBoundingClientRect self)
+ 
+foreign import javascript unsafe "$1[\"intersectionRect\"]"
+        js_getIntersectionRect ::
+        IntersectionObserverEntry -> IO DOMRectReadOnly
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry.intersectionRect Mozilla IntersectionObserverEntry.intersectionRect documentation> 
+getIntersectionRect ::
+                    (MonadIO m) => IntersectionObserverEntry -> m DOMRectReadOnly
+getIntersectionRect self = liftIO (js_getIntersectionRect self)
+ 
+foreign import javascript unsafe "$1[\"intersectionRatio\"]"
+        js_getIntersectionRatio :: IntersectionObserverEntry -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry.intersectionRatio Mozilla IntersectionObserverEntry.intersectionRatio documentation> 
+getIntersectionRatio ::
+                     (MonadIO m) => IntersectionObserverEntry -> m Double
+getIntersectionRatio self = liftIO (js_getIntersectionRatio self)
+ 
+foreign import javascript unsafe "$1[\"target\"]" js_getTarget ::
+        IntersectionObserverEntry -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry.target Mozilla IntersectionObserverEntry.target documentation> 
+getTarget :: (MonadIO m) => IntersectionObserverEntry -> m Element
+getTarget self = liftIO (js_getTarget self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/KeyboardEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/KeyboardEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/KeyboardEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/KeyboardEvent.hs
@@ -4,20 +4,25 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.KeyboardEvent
-       (js_initKeyboardEvent, initKeyboardEvent,
-        pattern DOM_KEY_LOCATION_STANDARD, pattern DOM_KEY_LOCATION_LEFT,
-        pattern DOM_KEY_LOCATION_RIGHT, pattern DOM_KEY_LOCATION_NUMPAD,
-        js_getKeyIdentifier, getKeyIdentifier, js_getLocation, getLocation,
-        js_getKeyLocation, getKeyLocation, js_getCtrlKey, getCtrlKey,
+       (js_newKeyboardEvent, newKeyboardEvent, js_getModifierState,
+        getModifierState, getModifierState_, js_initKeyboardEvent,
+        initKeyboardEvent, pattern DOM_KEY_LOCATION_STANDARD,
+        pattern DOM_KEY_LOCATION_LEFT, pattern DOM_KEY_LOCATION_RIGHT,
+        pattern DOM_KEY_LOCATION_NUMPAD, js_getKey, getKey, js_getCode,
+        getCode, js_getLocation, getLocation, js_getCtrlKey, getCtrlKey,
         js_getShiftKey, getShiftKey, js_getAltKey, getAltKey,
-        js_getMetaKey, getMetaKey, js_getAltGraphKey, getAltGraphKey,
+        js_getMetaKey, getMetaKey, js_getRepeat, getRepeat,
+        js_getIsComposing, getIsComposing, js_getKeyIdentifier,
+        getKeyIdentifier, js_getKeyLocation, getKeyLocation,
+        js_getAltGraphKey, getAltGraphKey, js_getCharCode, getCharCode,
+        js_getKeyCode, getKeyCode, js_getWhich, getWhich,
         KeyboardEvent(..), gTypeKeyboardEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,39 +31,70 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
+        "new window[\"KeyboardEvent\"]($1,\n$2)" js_newKeyboardEvent ::
+        JSString -> Optional KeyboardEventInit -> IO KeyboardEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent Mozilla KeyboardEvent documentation> 
+newKeyboardEvent ::
+                 (MonadIO m, ToJSString type') =>
+                   type' -> Maybe KeyboardEventInit -> m KeyboardEvent
+newKeyboardEvent type' eventInitDict
+  = liftIO
+      (js_newKeyboardEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe
+        "($1[\"getModifierState\"]($2) ? 1 : 0)" js_getModifierState ::
+        KeyboardEvent -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.getModifierState Mozilla KeyboardEvent.getModifierState documentation> 
+getModifierState ::
+                 (MonadIO m, ToJSString keyArg) => KeyboardEvent -> keyArg -> m Bool
+getModifierState self keyArg
+  = liftIO (js_getModifierState self (toJSString keyArg))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.getModifierState Mozilla KeyboardEvent.getModifierState documentation> 
+getModifierState_ ::
+                  (MonadIO m, ToJSString keyArg) => KeyboardEvent -> keyArg -> m ()
+getModifierState_ self keyArg
+  = liftIO (void (js_getModifierState self (toJSString keyArg)))
+ 
+foreign import javascript unsafe
         "$1[\"initKeyboardEvent\"]($2, $3,\n$4, $5, $6, $7, $8, $9, $10,\n$11, $12)"
         js_initKeyboardEvent ::
         KeyboardEvent ->
-          JSString ->
+          Optional JSString ->
             Bool ->
               Bool ->
-                Nullable Window ->
-                  JSString -> Word -> Bool -> Bool -> Bool -> Bool -> Bool -> IO ()
+                Optional Window ->
+                  Optional JSString ->
+                    Optional Word -> Bool -> Bool -> Bool -> Bool -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.initKeyboardEvent Mozilla KeyboardEvent.initKeyboardEvent documentation> 
 initKeyboardEvent ::
                   (MonadIO m, ToJSString type', ToJSString keyIdentifier) =>
                     KeyboardEvent ->
-                      type' ->
+                      Maybe type' ->
                         Bool ->
                           Bool ->
                             Maybe Window ->
-                              keyIdentifier ->
-                                Word -> Bool -> Bool -> Bool -> Bool -> Bool -> m ()
+                              Maybe keyIdentifier ->
+                                Maybe Word -> Bool -> Bool -> Bool -> Bool -> Bool -> m ()
 initKeyboardEvent self type' canBubble cancelable view
   keyIdentifier location ctrlKey altKey shiftKey metaKey altGraphKey
   = liftIO
-      (js_initKeyboardEvent (self) (toJSString type') canBubble
+      (js_initKeyboardEvent self (toOptionalJSString type') canBubble
          cancelable
-         (maybeToNullable view)
-         (toJSString keyIdentifier)
-         location
+         (maybeToOptional view)
+         (toOptionalJSString keyIdentifier)
+         (maybeToOptional location)
          ctrlKey
          altKey
          shiftKey
@@ -69,60 +105,111 @@
 pattern DOM_KEY_LOCATION_RIGHT = 2
 pattern DOM_KEY_LOCATION_NUMPAD = 3
  
-foreign import javascript unsafe "$1[\"keyIdentifier\"]"
-        js_getKeyIdentifier :: KeyboardEvent -> IO JSString
+foreign import javascript unsafe "$1[\"key\"]" js_getKey ::
+        KeyboardEvent -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.keyIdentifier Mozilla KeyboardEvent.keyIdentifier documentation> 
-getKeyIdentifier ::
-                 (MonadIO m, FromJSString result) => KeyboardEvent -> m result
-getKeyIdentifier self
-  = liftIO (fromJSString <$> (js_getKeyIdentifier (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.key Mozilla KeyboardEvent.key documentation> 
+getKey ::
+       (MonadIO m, FromJSString result) => KeyboardEvent -> m result
+getKey self = liftIO (fromJSString <$> (js_getKey self))
  
+foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
+        KeyboardEvent -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.code Mozilla KeyboardEvent.code documentation> 
+getCode ::
+        (MonadIO m, FromJSString result) => KeyboardEvent -> m result
+getCode self = liftIO (fromJSString <$> (js_getCode self))
+ 
 foreign import javascript unsafe "$1[\"location\"]" js_getLocation
         :: KeyboardEvent -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.location Mozilla KeyboardEvent.location documentation> 
 getLocation :: (MonadIO m) => KeyboardEvent -> m Word
-getLocation self = liftIO (js_getLocation (self))
- 
-foreign import javascript unsafe "$1[\"keyLocation\"]"
-        js_getKeyLocation :: KeyboardEvent -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.keyLocation Mozilla KeyboardEvent.keyLocation documentation> 
-getKeyLocation :: (MonadIO m) => KeyboardEvent -> m Word
-getKeyLocation self = liftIO (js_getKeyLocation (self))
+getLocation self = liftIO (js_getLocation self)
  
 foreign import javascript unsafe "($1[\"ctrlKey\"] ? 1 : 0)"
         js_getCtrlKey :: KeyboardEvent -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.ctrlKey Mozilla KeyboardEvent.ctrlKey documentation> 
 getCtrlKey :: (MonadIO m) => KeyboardEvent -> m Bool
-getCtrlKey self = liftIO (js_getCtrlKey (self))
+getCtrlKey self = liftIO (js_getCtrlKey self)
  
 foreign import javascript unsafe "($1[\"shiftKey\"] ? 1 : 0)"
         js_getShiftKey :: KeyboardEvent -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.shiftKey Mozilla KeyboardEvent.shiftKey documentation> 
 getShiftKey :: (MonadIO m) => KeyboardEvent -> m Bool
-getShiftKey self = liftIO (js_getShiftKey (self))
+getShiftKey self = liftIO (js_getShiftKey self)
  
 foreign import javascript unsafe "($1[\"altKey\"] ? 1 : 0)"
         js_getAltKey :: KeyboardEvent -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.altKey Mozilla KeyboardEvent.altKey documentation> 
 getAltKey :: (MonadIO m) => KeyboardEvent -> m Bool
-getAltKey self = liftIO (js_getAltKey (self))
+getAltKey self = liftIO (js_getAltKey self)
  
 foreign import javascript unsafe "($1[\"metaKey\"] ? 1 : 0)"
         js_getMetaKey :: KeyboardEvent -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.metaKey Mozilla KeyboardEvent.metaKey documentation> 
 getMetaKey :: (MonadIO m) => KeyboardEvent -> m Bool
-getMetaKey self = liftIO (js_getMetaKey (self))
+getMetaKey self = liftIO (js_getMetaKey self)
  
+foreign import javascript unsafe "($1[\"repeat\"] ? 1 : 0)"
+        js_getRepeat :: KeyboardEvent -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.repeat Mozilla KeyboardEvent.repeat documentation> 
+getRepeat :: (MonadIO m) => KeyboardEvent -> m Bool
+getRepeat self = liftIO (js_getRepeat self)
+ 
+foreign import javascript unsafe "($1[\"isComposing\"] ? 1 : 0)"
+        js_getIsComposing :: KeyboardEvent -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.isComposing Mozilla KeyboardEvent.isComposing documentation> 
+getIsComposing :: (MonadIO m) => KeyboardEvent -> m Bool
+getIsComposing self = liftIO (js_getIsComposing self)
+ 
+foreign import javascript unsafe "$1[\"keyIdentifier\"]"
+        js_getKeyIdentifier :: KeyboardEvent -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.keyIdentifier Mozilla KeyboardEvent.keyIdentifier documentation> 
+getKeyIdentifier ::
+                 (MonadIO m, FromJSString result) => KeyboardEvent -> m result
+getKeyIdentifier self
+  = liftIO (fromJSString <$> (js_getKeyIdentifier self))
+ 
+foreign import javascript unsafe "$1[\"keyLocation\"]"
+        js_getKeyLocation :: KeyboardEvent -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.keyLocation Mozilla KeyboardEvent.keyLocation documentation> 
+getKeyLocation :: (MonadIO m) => KeyboardEvent -> m Word
+getKeyLocation self = liftIO (js_getKeyLocation self)
+ 
 foreign import javascript unsafe "($1[\"altGraphKey\"] ? 1 : 0)"
         js_getAltGraphKey :: KeyboardEvent -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.altGraphKey Mozilla KeyboardEvent.altGraphKey documentation> 
 getAltGraphKey :: (MonadIO m) => KeyboardEvent -> m Bool
-getAltGraphKey self = liftIO (js_getAltGraphKey (self))
+getAltGraphKey self = liftIO (js_getAltGraphKey self)
+ 
+foreign import javascript unsafe "$1[\"charCode\"]" js_getCharCode
+        :: KeyboardEvent -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.charCode Mozilla KeyboardEvent.charCode documentation> 
+getCharCode :: (MonadIO m) => KeyboardEvent -> m Word
+getCharCode self = liftIO (js_getCharCode self)
+ 
+foreign import javascript unsafe "$1[\"keyCode\"]" js_getKeyCode ::
+        KeyboardEvent -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.keyCode Mozilla KeyboardEvent.keyCode documentation> 
+getKeyCode :: (MonadIO m) => KeyboardEvent -> m Word
+getKeyCode self = liftIO (js_getKeyCode self)
+ 
+foreign import javascript unsafe "$1[\"which\"]" js_getWhich ::
+        KeyboardEvent -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.which Mozilla KeyboardEvent.which documentation> 
+getWhich :: (MonadIO m) => KeyboardEvent -> m Word
+getWhich self = liftIO (js_getWhich self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/KeyframeEffect.hs b/src/GHCJS/DOM/JSFFI/Generated/KeyframeEffect.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/KeyframeEffect.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.KeyframeEffect
+       (js_newKeyframeEffect, newKeyframeEffect, KeyframeEffect(..),
+        gTypeKeyframeEffect)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"KeyframeEffect\"]($1)" js_newKeyframeEffect ::
+        Optional Element -> IO KeyframeEffect
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect Mozilla KeyframeEffect documentation> 
+newKeyframeEffect ::
+                  (MonadIO m, IsElement target) => Maybe target -> m KeyframeEffect
+newKeyframeEffect target
+  = liftIO
+      (js_newKeyframeEffect (maybeToOptional (fmap toElement target)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Location.hs b/src/GHCJS/DOM/JSFFI/Generated/Location.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Location.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Location.hs
@@ -5,22 +5,21 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Location
        (js_assign, assign, js_replace, replace, js_reload, reload,
-        js_toString, toString, toString_, js_setHref, setHref, js_getHref,
-        getHref, js_setProtocol, setProtocol, js_getProtocol, getProtocol,
-        js_setHost, setHost, js_getHost, getHost, js_setHostname,
-        setHostname, js_getHostname, getHostname, js_setPort, setPort,
-        js_getPort, getPort, js_setPathname, setPathname, js_getPathname,
-        getPathname, js_setSearch, setSearch, js_getSearch, getSearch,
-        js_setHash, setHash, js_getHash, getHash, js_getOrigin, getOrigin,
-        js_getAncestorOrigins, getAncestorOrigins,
-        getAncestorOriginsUnsafe, getAncestorOriginsUnchecked,
-        Location(..), gTypeLocation)
+        js_setHref, setHref, js_getHref, getHref, js_setProtocol,
+        setProtocol, js_getProtocol, getProtocol, js_setHost, setHost,
+        js_getHost, getHost, js_setHostname, setHostname, js_getHostname,
+        getHostname, js_setPort, setPort, js_getPort, getPort,
+        js_setPathname, setPathname, js_getPathname, getPathname,
+        js_setSearch, setSearch, js_getSearch, getSearch, js_setHash,
+        setHash, js_getHash, getHash, js_getOrigin, getOrigin,
+        js_getAncestorOrigins, getAncestorOrigins, Location(..),
+        gTypeLocation)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -29,6 +28,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -39,47 +39,35 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.assign Mozilla Location.assign documentation> 
 assign :: (MonadIO m, ToJSString url) => Location -> url -> m ()
-assign self url = liftIO (js_assign (self) (toJSString url))
+assign self url = liftIO (js_assign self (toJSString url))
  
 foreign import javascript unsafe "$1[\"replace\"]($2)" js_replace
         :: Location -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.replace Mozilla Location.replace documentation> 
 replace :: (MonadIO m, ToJSString url) => Location -> url -> m ()
-replace self url = liftIO (js_replace (self) (toJSString url))
+replace self url = liftIO (js_replace self (toJSString url))
  
 foreign import javascript unsafe "$1[\"reload\"]()" js_reload ::
         Location -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.reload Mozilla Location.reload documentation> 
 reload :: (MonadIO m) => Location -> m ()
-reload self = liftIO (js_reload (self))
- 
-foreign import javascript unsafe "$1[\"toString\"]()" js_toString
-        :: Location -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.toString Mozilla Location.toString documentation> 
-toString ::
-         (MonadIO m, FromJSString result) => Location -> m result
-toString self = liftIO (fromJSString <$> (js_toString (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.toString Mozilla Location.toString documentation> 
-toString_ :: (MonadIO m) => Location -> m ()
-toString_ self = liftIO (void (js_toString (self)))
+reload self = liftIO (js_reload self)
  
 foreign import javascript unsafe "$1[\"href\"] = $2;" js_setHref ::
         Location -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.href Mozilla Location.href documentation> 
 setHref :: (MonadIO m, ToJSString val) => Location -> val -> m ()
-setHref self val = liftIO (js_setHref (self) (toJSString val))
+setHref self val = liftIO (js_setHref self (toJSString val))
  
 foreign import javascript unsafe "$1[\"href\"]" js_getHref ::
         Location -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.href Mozilla Location.href documentation> 
 getHref :: (MonadIO m, FromJSString result) => Location -> m result
-getHref self = liftIO (fromJSString <$> (js_getHref (self)))
+getHref self = liftIO (fromJSString <$> (js_getHref self))
  
 foreign import javascript unsafe "$1[\"protocol\"] = $2;"
         js_setProtocol :: Location -> JSString -> IO ()
@@ -88,7 +76,7 @@
 setProtocol ::
             (MonadIO m, ToJSString val) => Location -> val -> m ()
 setProtocol self val
-  = liftIO (js_setProtocol (self) (toJSString val))
+  = liftIO (js_setProtocol self (toJSString val))
  
 foreign import javascript unsafe "$1[\"protocol\"]" js_getProtocol
         :: Location -> IO JSString
@@ -96,22 +84,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.protocol Mozilla Location.protocol documentation> 
 getProtocol ::
             (MonadIO m, FromJSString result) => Location -> m result
-getProtocol self
-  = liftIO (fromJSString <$> (js_getProtocol (self)))
+getProtocol self = liftIO (fromJSString <$> (js_getProtocol self))
  
 foreign import javascript unsafe "$1[\"host\"] = $2;" js_setHost ::
         Location -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.host Mozilla Location.host documentation> 
 setHost :: (MonadIO m, ToJSString val) => Location -> val -> m ()
-setHost self val = liftIO (js_setHost (self) (toJSString val))
+setHost self val = liftIO (js_setHost self (toJSString val))
  
 foreign import javascript unsafe "$1[\"host\"]" js_getHost ::
         Location -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.host Mozilla Location.host documentation> 
 getHost :: (MonadIO m, FromJSString result) => Location -> m result
-getHost self = liftIO (fromJSString <$> (js_getHost (self)))
+getHost self = liftIO (fromJSString <$> (js_getHost self))
  
 foreign import javascript unsafe "$1[\"hostname\"] = $2;"
         js_setHostname :: Location -> JSString -> IO ()
@@ -120,7 +107,7 @@
 setHostname ::
             (MonadIO m, ToJSString val) => Location -> val -> m ()
 setHostname self val
-  = liftIO (js_setHostname (self) (toJSString val))
+  = liftIO (js_setHostname self (toJSString val))
  
 foreign import javascript unsafe "$1[\"hostname\"]" js_getHostname
         :: Location -> IO JSString
@@ -128,22 +115,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.hostname Mozilla Location.hostname documentation> 
 getHostname ::
             (MonadIO m, FromJSString result) => Location -> m result
-getHostname self
-  = liftIO (fromJSString <$> (js_getHostname (self)))
+getHostname self = liftIO (fromJSString <$> (js_getHostname self))
  
 foreign import javascript unsafe "$1[\"port\"] = $2;" js_setPort ::
         Location -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.port Mozilla Location.port documentation> 
 setPort :: (MonadIO m, ToJSString val) => Location -> val -> m ()
-setPort self val = liftIO (js_setPort (self) (toJSString val))
+setPort self val = liftIO (js_setPort self (toJSString val))
  
 foreign import javascript unsafe "$1[\"port\"]" js_getPort ::
         Location -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.port Mozilla Location.port documentation> 
 getPort :: (MonadIO m, FromJSString result) => Location -> m result
-getPort self = liftIO (fromJSString <$> (js_getPort (self)))
+getPort self = liftIO (fromJSString <$> (js_getPort self))
  
 foreign import javascript unsafe "$1[\"pathname\"] = $2;"
         js_setPathname :: Location -> JSString -> IO ()
@@ -152,7 +138,7 @@
 setPathname ::
             (MonadIO m, ToJSString val) => Location -> val -> m ()
 setPathname self val
-  = liftIO (js_setPathname (self) (toJSString val))
+  = liftIO (js_setPathname self (toJSString val))
  
 foreign import javascript unsafe "$1[\"pathname\"]" js_getPathname
         :: Location -> IO JSString
@@ -160,15 +146,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.pathname Mozilla Location.pathname documentation> 
 getPathname ::
             (MonadIO m, FromJSString result) => Location -> m result
-getPathname self
-  = liftIO (fromJSString <$> (js_getPathname (self)))
+getPathname self = liftIO (fromJSString <$> (js_getPathname self))
  
 foreign import javascript unsafe "$1[\"search\"] = $2;"
         js_setSearch :: Location -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.search Mozilla Location.search documentation> 
 setSearch :: (MonadIO m, ToJSString val) => Location -> val -> m ()
-setSearch self val = liftIO (js_setSearch (self) (toJSString val))
+setSearch self val = liftIO (js_setSearch self (toJSString val))
  
 foreign import javascript unsafe "$1[\"search\"]" js_getSearch ::
         Location -> IO JSString
@@ -176,21 +161,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.search Mozilla Location.search documentation> 
 getSearch ::
           (MonadIO m, FromJSString result) => Location -> m result
-getSearch self = liftIO (fromJSString <$> (js_getSearch (self)))
+getSearch self = liftIO (fromJSString <$> (js_getSearch self))
  
 foreign import javascript unsafe "$1[\"hash\"] = $2;" js_setHash ::
         Location -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.hash Mozilla Location.hash documentation> 
 setHash :: (MonadIO m, ToJSString val) => Location -> val -> m ()
-setHash self val = liftIO (js_setHash (self) (toJSString val))
+setHash self val = liftIO (js_setHash self (toJSString val))
  
 foreign import javascript unsafe "$1[\"hash\"]" js_getHash ::
         Location -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.hash Mozilla Location.hash documentation> 
 getHash :: (MonadIO m, FromJSString result) => Location -> m result
-getHash self = liftIO (fromJSString <$> (js_getHash (self)))
+getHash self = liftIO (fromJSString <$> (js_getHash self))
  
 foreign import javascript unsafe "$1[\"origin\"]" js_getOrigin ::
         Location -> IO JSString
@@ -198,28 +183,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.origin Mozilla Location.origin documentation> 
 getOrigin ::
           (MonadIO m, FromJSString result) => Location -> m result
-getOrigin self = liftIO (fromJSString <$> (js_getOrigin (self)))
+getOrigin self = liftIO (fromJSString <$> (js_getOrigin self))
  
 foreign import javascript unsafe "$1[\"ancestorOrigins\"]"
-        js_getAncestorOrigins :: Location -> IO (Nullable DOMStringList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.ancestorOrigins Mozilla Location.ancestorOrigins documentation> 
-getAncestorOrigins ::
-                   (MonadIO m) => Location -> m (Maybe DOMStringList)
-getAncestorOrigins self
-  = liftIO (nullableToMaybe <$> (js_getAncestorOrigins (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.ancestorOrigins Mozilla Location.ancestorOrigins documentation> 
-getAncestorOriginsUnsafe ::
-                         (MonadIO m, HasCallStack) => Location -> m DOMStringList
-getAncestorOriginsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAncestorOrigins (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getAncestorOrigins :: Location -> IO DOMStringList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Location.ancestorOrigins Mozilla Location.ancestorOrigins documentation> 
-getAncestorOriginsUnchecked ::
-                            (MonadIO m) => Location -> m DOMStringList
-getAncestorOriginsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getAncestorOrigins (self)))
+getAncestorOrigins :: (MonadIO m) => Location -> m DOMStringList
+getAncestorOrigins self = liftIO (js_getAncestorOrigins self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MallocStatistics.hs b/src/GHCJS/DOM/JSFFI/Generated/MallocStatistics.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/MallocStatistics.hs
+++ /dev/null
@@ -1,48 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.MallocStatistics
-       (js_getReservedVMBytes, getReservedVMBytes, js_getCommittedVMBytes,
-        getCommittedVMBytes, js_getFreeListBytes, getFreeListBytes,
-        MallocStatistics(..), gTypeMallocStatistics)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"reservedVMBytes\"]"
-        js_getReservedVMBytes :: MallocStatistics -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MallocStatistics.reservedVMBytes Mozilla MallocStatistics.reservedVMBytes documentation> 
-getReservedVMBytes :: (MonadIO m) => MallocStatistics -> m Word
-getReservedVMBytes self = liftIO (js_getReservedVMBytes (self))
- 
-foreign import javascript unsafe "$1[\"committedVMBytes\"]"
-        js_getCommittedVMBytes :: MallocStatistics -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MallocStatistics.committedVMBytes Mozilla MallocStatistics.committedVMBytes documentation> 
-getCommittedVMBytes :: (MonadIO m) => MallocStatistics -> m Word
-getCommittedVMBytes self = liftIO (js_getCommittedVMBytes (self))
- 
-foreign import javascript unsafe "$1[\"freeListBytes\"]"
-        js_getFreeListBytes :: MallocStatistics -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MallocStatistics.freeListBytes Mozilla MallocStatistics.freeListBytes documentation> 
-getFreeListBytes :: (MonadIO m) => MallocStatistics -> m Word
-getFreeListBytes self = liftIO (js_getFreeListBytes (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaController.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaController.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaController.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaController.hs
@@ -6,11 +6,9 @@
 module GHCJS.DOM.JSFFI.Generated.MediaController
        (js_newMediaController, newMediaController, js_play, play,
         js_pause, pause, js_unpause, unpause, js_getBuffered, getBuffered,
-        getBufferedUnsafe, getBufferedUnchecked, js_getSeekable,
-        getSeekable, getSeekableUnsafe, getSeekableUnchecked,
-        js_getDuration, getDuration, js_setCurrentTime, setCurrentTime,
-        js_getCurrentTime, getCurrentTime, js_getPaused, getPaused,
-        js_getPlayed, getPlayed, getPlayedUnsafe, getPlayedUnchecked,
+        js_getSeekable, getSeekable, js_getDuration, getDuration,
+        js_setCurrentTime, setCurrentTime, js_getCurrentTime,
+        getCurrentTime, js_getPaused, getPaused, js_getPlayed, getPlayed,
         js_getPlaybackState, getPlaybackState, js_setDefaultPlaybackRate,
         setDefaultPlaybackRate, js_getDefaultPlaybackRate,
         getDefaultPlaybackRate, js_setPlaybackRate, setPlaybackRate,
@@ -22,7 +20,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -31,6 +29,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -49,116 +48,70 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.play Mozilla MediaController.play documentation> 
 play :: (MonadIO m) => MediaController -> m ()
-play self = liftIO (js_play (self))
+play self = liftIO (js_play self)
  
 foreign import javascript unsafe "$1[\"pause\"]()" js_pause ::
         MediaController -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.pause Mozilla MediaController.pause documentation> 
 pause :: (MonadIO m) => MediaController -> m ()
-pause self = liftIO (js_pause (self))
+pause self = liftIO (js_pause self)
  
 foreign import javascript unsafe "$1[\"unpause\"]()" js_unpause ::
         MediaController -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.unpause Mozilla MediaController.unpause documentation> 
 unpause :: (MonadIO m) => MediaController -> m ()
-unpause self = liftIO (js_unpause (self))
+unpause self = liftIO (js_unpause self)
  
 foreign import javascript unsafe "$1[\"buffered\"]" js_getBuffered
-        :: MediaController -> IO (Nullable TimeRanges)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.buffered Mozilla MediaController.buffered documentation> 
-getBuffered ::
-            (MonadIO m) => MediaController -> m (Maybe TimeRanges)
-getBuffered self
-  = liftIO (nullableToMaybe <$> (js_getBuffered (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.buffered Mozilla MediaController.buffered documentation> 
-getBufferedUnsafe ::
-                  (MonadIO m, HasCallStack) => MediaController -> m TimeRanges
-getBufferedUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBuffered (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: MediaController -> IO TimeRanges
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.buffered Mozilla MediaController.buffered documentation> 
-getBufferedUnchecked ::
-                     (MonadIO m) => MediaController -> m TimeRanges
-getBufferedUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBuffered (self)))
+getBuffered :: (MonadIO m) => MediaController -> m TimeRanges
+getBuffered self = liftIO (js_getBuffered self)
  
 foreign import javascript unsafe "$1[\"seekable\"]" js_getSeekable
-        :: MediaController -> IO (Nullable TimeRanges)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.seekable Mozilla MediaController.seekable documentation> 
-getSeekable ::
-            (MonadIO m) => MediaController -> m (Maybe TimeRanges)
-getSeekable self
-  = liftIO (nullableToMaybe <$> (js_getSeekable (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.seekable Mozilla MediaController.seekable documentation> 
-getSeekableUnsafe ::
-                  (MonadIO m, HasCallStack) => MediaController -> m TimeRanges
-getSeekableUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSeekable (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: MediaController -> IO TimeRanges
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.seekable Mozilla MediaController.seekable documentation> 
-getSeekableUnchecked ::
-                     (MonadIO m) => MediaController -> m TimeRanges
-getSeekableUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getSeekable (self)))
+getSeekable :: (MonadIO m) => MediaController -> m TimeRanges
+getSeekable self = liftIO (js_getSeekable self)
  
 foreign import javascript unsafe "$1[\"duration\"]" js_getDuration
         :: MediaController -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.duration Mozilla MediaController.duration documentation> 
 getDuration :: (MonadIO m) => MediaController -> m Double
-getDuration self = liftIO (js_getDuration (self))
+getDuration self = liftIO (js_getDuration self)
  
 foreign import javascript unsafe "$1[\"currentTime\"] = $2;"
         js_setCurrentTime :: MediaController -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.currentTime Mozilla MediaController.currentTime documentation> 
 setCurrentTime :: (MonadIO m) => MediaController -> Double -> m ()
-setCurrentTime self val = liftIO (js_setCurrentTime (self) val)
+setCurrentTime self val = liftIO (js_setCurrentTime self val)
  
 foreign import javascript unsafe "$1[\"currentTime\"]"
         js_getCurrentTime :: MediaController -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.currentTime Mozilla MediaController.currentTime documentation> 
 getCurrentTime :: (MonadIO m) => MediaController -> m Double
-getCurrentTime self = liftIO (js_getCurrentTime (self))
+getCurrentTime self = liftIO (js_getCurrentTime self)
  
 foreign import javascript unsafe "($1[\"paused\"] ? 1 : 0)"
         js_getPaused :: MediaController -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.paused Mozilla MediaController.paused documentation> 
 getPaused :: (MonadIO m) => MediaController -> m Bool
-getPaused self = liftIO (js_getPaused (self))
+getPaused self = liftIO (js_getPaused self)
  
 foreign import javascript unsafe "$1[\"played\"]" js_getPlayed ::
-        MediaController -> IO (Nullable TimeRanges)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.played Mozilla MediaController.played documentation> 
-getPlayed :: (MonadIO m) => MediaController -> m (Maybe TimeRanges)
-getPlayed self = liftIO (nullableToMaybe <$> (js_getPlayed (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.played Mozilla MediaController.played documentation> 
-getPlayedUnsafe ::
-                (MonadIO m, HasCallStack) => MediaController -> m TimeRanges
-getPlayedUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPlayed (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        MediaController -> IO TimeRanges
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.played Mozilla MediaController.played documentation> 
-getPlayedUnchecked ::
-                   (MonadIO m) => MediaController -> m TimeRanges
-getPlayedUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPlayed (self)))
+getPlayed :: (MonadIO m) => MediaController -> m TimeRanges
+getPlayed self = liftIO (js_getPlayed self)
  
 foreign import javascript unsafe "$1[\"playbackState\"]"
         js_getPlaybackState :: MediaController -> IO JSString
@@ -167,7 +120,7 @@
 getPlaybackState ::
                  (MonadIO m, FromJSString result) => MediaController -> m result
 getPlaybackState self
-  = liftIO (fromJSString <$> (js_getPlaybackState (self)))
+  = liftIO (fromJSString <$> (js_getPlaybackState self))
  
 foreign import javascript unsafe
         "$1[\"defaultPlaybackRate\"] = $2;" js_setDefaultPlaybackRate ::
@@ -177,7 +130,7 @@
 setDefaultPlaybackRate ::
                        (MonadIO m) => MediaController -> Double -> m ()
 setDefaultPlaybackRate self val
-  = liftIO (js_setDefaultPlaybackRate (self) val)
+  = liftIO (js_setDefaultPlaybackRate self val)
  
 foreign import javascript unsafe "$1[\"defaultPlaybackRate\"]"
         js_getDefaultPlaybackRate :: MediaController -> IO Double
@@ -186,46 +139,46 @@
 getDefaultPlaybackRate ::
                        (MonadIO m) => MediaController -> m Double
 getDefaultPlaybackRate self
-  = liftIO (js_getDefaultPlaybackRate (self))
+  = liftIO (js_getDefaultPlaybackRate self)
  
 foreign import javascript unsafe "$1[\"playbackRate\"] = $2;"
         js_setPlaybackRate :: MediaController -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.playbackRate Mozilla MediaController.playbackRate documentation> 
 setPlaybackRate :: (MonadIO m) => MediaController -> Double -> m ()
-setPlaybackRate self val = liftIO (js_setPlaybackRate (self) val)
+setPlaybackRate self val = liftIO (js_setPlaybackRate self val)
  
 foreign import javascript unsafe "$1[\"playbackRate\"]"
         js_getPlaybackRate :: MediaController -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.playbackRate Mozilla MediaController.playbackRate documentation> 
 getPlaybackRate :: (MonadIO m) => MediaController -> m Double
-getPlaybackRate self = liftIO (js_getPlaybackRate (self))
+getPlaybackRate self = liftIO (js_getPlaybackRate self)
  
 foreign import javascript unsafe "$1[\"volume\"] = $2;"
         js_setVolume :: MediaController -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.volume Mozilla MediaController.volume documentation> 
 setVolume :: (MonadIO m) => MediaController -> Double -> m ()
-setVolume self val = liftIO (js_setVolume (self) val)
+setVolume self val = liftIO (js_setVolume self val)
  
 foreign import javascript unsafe "$1[\"volume\"]" js_getVolume ::
         MediaController -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.volume Mozilla MediaController.volume documentation> 
 getVolume :: (MonadIO m) => MediaController -> m Double
-getVolume self = liftIO (js_getVolume (self))
+getVolume self = liftIO (js_getVolume self)
  
 foreign import javascript unsafe "$1[\"muted\"] = $2;" js_setMuted
         :: MediaController -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.muted Mozilla MediaController.muted documentation> 
 setMuted :: (MonadIO m) => MediaController -> Bool -> m ()
-setMuted self val = liftIO (js_setMuted (self) val)
+setMuted self val = liftIO (js_setMuted self val)
  
 foreign import javascript unsafe "($1[\"muted\"] ? 1 : 0)"
         js_getMuted :: MediaController -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaController.muted Mozilla MediaController.muted documentation> 
 getMuted :: (MonadIO m) => MediaController -> m Bool
-getMuted self = liftIO (js_getMuted (self))
+getMuted self = liftIO (js_getMuted self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaControlsHost.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaControlsHost.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaControlsHost.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaControlsHost.hs
@@ -8,35 +8,36 @@
         sortedTrackListForMenu_, js_sortedTrackListForMenuAudio,
         sortedTrackListForMenuAudio, sortedTrackListForMenuAudio_,
         js_displayNameForTrack, displayNameForTrack, displayNameForTrack_,
-        js_displayNameForTrackAudio, displayNameForTrackAudio,
-        displayNameForTrackAudio_, js_setSelectedTextTrack,
-        setSelectedTextTrack, js_updateTextTrackContainer,
+        js_setSelectedTextTrack, setSelectedTextTrack,
+        js_setPreparedToReturnVideoLayerToInline,
+        setPreparedToReturnVideoLayerToInline, js_updateTextTrackContainer,
         updateTextTrackContainer, js_enteredFullscreen, enteredFullscreen,
-        js_exitedFullscreen, exitedFullscreen, js_enterFullscreenOptimized,
-        enterFullscreenOptimized, js_mediaUIImageData, mediaUIImageData,
-        mediaUIImageData_, js_getCaptionMenuOffItem, getCaptionMenuOffItem,
-        getCaptionMenuOffItemUnsafe, getCaptionMenuOffItemUnchecked,
+        js_exitedFullscreen, exitedFullscreen, js_generateUUID,
+        generateUUID, generateUUID_, js_base64StringForIconAndPlatform,
+        base64StringForIconAndPlatform, base64StringForIconAndPlatform_,
+        js_getCaptionMenuOffItem, getCaptionMenuOffItem,
         js_getCaptionMenuAutomaticItem, getCaptionMenuAutomaticItem,
-        getCaptionMenuAutomaticItemUnsafe,
-        getCaptionMenuAutomaticItemUnchecked, js_getCaptionDisplayMode,
-        getCaptionDisplayMode, js_getTextTrackContainer,
-        getTextTrackContainer, getTextTrackContainerUnsafe,
-        getTextTrackContainerUnchecked, js_getMediaPlaybackAllowsInline,
-        getMediaPlaybackAllowsInline, js_getSupportsFullscreen,
-        getSupportsFullscreen, js_getUserGestureRequired,
-        getUserGestureRequired, js_getExternalDeviceDisplayName,
-        getExternalDeviceDisplayName, js_getExternalDeviceType,
-        getExternalDeviceType, js_setControlsDependOnPageScaleFactor,
+        js_getCaptionDisplayMode, getCaptionDisplayMode,
+        js_getTextTrackContainer, getTextTrackContainer,
+        js_getAllowsInlineMediaPlayback, getAllowsInlineMediaPlayback,
+        js_getSupportsFullscreen, getSupportsFullscreen,
+        js_getIsVideoLayerInline, getIsVideoLayerInline,
+        js_getUserGestureRequired, getUserGestureRequired,
+        js_getIsInMediaDocument, getIsInMediaDocument,
+        js_getExternalDeviceDisplayName, getExternalDeviceDisplayName,
+        js_getExternalDeviceType, getExternalDeviceType,
+        js_setControlsDependOnPageScaleFactor,
         setControlsDependOnPageScaleFactor,
         js_getControlsDependOnPageScaleFactor,
-        getControlsDependOnPageScaleFactor, MediaControlsHost(..),
+        getControlsDependOnPageScaleFactor, js_getShadowRootCSSText,
+        getShadowRootCSSText, MediaControlsHost(..),
         gTypeMediaControlsHost)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -45,6 +46,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -52,99 +54,88 @@
  
 foreign import javascript unsafe
         "$1[\"sortedTrackListForMenu\"]($2)" js_sortedTrackListForMenu ::
-        MediaControlsHost -> Nullable TextTrackList -> IO JSVal
+        MediaControlsHost -> TextTrackList -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.sortedTrackListForMenu Mozilla MediaControlsHost.sortedTrackListForMenu documentation> 
 sortedTrackListForMenu ::
-                       (MonadIO m) =>
-                         MediaControlsHost -> Maybe TextTrackList -> m [Maybe TextTrack]
+                       (MonadIO m) => MediaControlsHost -> TextTrackList -> m [TextTrack]
 sortedTrackListForMenu self trackList
   = liftIO
-      ((js_sortedTrackListForMenu (self) (maybeToNullable trackList)) >>=
-         fromJSValUnchecked)
+      ((js_sortedTrackListForMenu self trackList) >>= fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.sortedTrackListForMenu Mozilla MediaControlsHost.sortedTrackListForMenu documentation> 
 sortedTrackListForMenu_ ::
-                        (MonadIO m) => MediaControlsHost -> Maybe TextTrackList -> m ()
+                        (MonadIO m) => MediaControlsHost -> TextTrackList -> m ()
 sortedTrackListForMenu_ self trackList
-  = liftIO
-      (void
-         (js_sortedTrackListForMenu (self) (maybeToNullable trackList)))
+  = liftIO (void (js_sortedTrackListForMenu self trackList))
  
 foreign import javascript unsafe
         "$1[\"sortedTrackListForMenu\"]($2)" js_sortedTrackListForMenuAudio
-        :: MediaControlsHost -> Nullable AudioTrackList -> IO JSVal
+        :: MediaControlsHost -> AudioTrackList -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.sortedTrackListForMenu Mozilla MediaControlsHost.sortedTrackListForMenu documentation> 
 sortedTrackListForMenuAudio ::
                             (MonadIO m) =>
-                              MediaControlsHost -> Maybe AudioTrackList -> m [Maybe AudioTrack]
+                              MediaControlsHost -> AudioTrackList -> m [AudioTrack]
 sortedTrackListForMenuAudio self trackList
   = liftIO
-      ((js_sortedTrackListForMenuAudio (self)
-          (maybeToNullable trackList))
-         >>= fromJSValUnchecked)
+      ((js_sortedTrackListForMenuAudio self trackList) >>=
+         fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.sortedTrackListForMenu Mozilla MediaControlsHost.sortedTrackListForMenu documentation> 
 sortedTrackListForMenuAudio_ ::
-                             (MonadIO m) => MediaControlsHost -> Maybe AudioTrackList -> m ()
+                             (MonadIO m) => MediaControlsHost -> AudioTrackList -> m ()
 sortedTrackListForMenuAudio_ self trackList
-  = liftIO
-      (void
-         (js_sortedTrackListForMenuAudio (self)
-            (maybeToNullable trackList)))
+  = liftIO (void (js_sortedTrackListForMenuAudio self trackList))
  
 foreign import javascript unsafe "$1[\"displayNameForTrack\"]($2)"
         js_displayNameForTrack ::
-        MediaControlsHost -> Nullable TextTrack -> IO JSString
+        MediaControlsHost -> Optional Track -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.displayNameForTrack Mozilla MediaControlsHost.displayNameForTrack documentation> 
 displayNameForTrack ::
-                    (MonadIO m, FromJSString result) =>
-                      MediaControlsHost -> Maybe TextTrack -> m result
+                    (MonadIO m, IsTrack track, FromJSString result) =>
+                      MediaControlsHost -> Maybe track -> m result
 displayNameForTrack self track
   = liftIO
       (fromJSString <$>
-         (js_displayNameForTrack (self) (maybeToNullable track)))
+         (mapM toJSVal track >>=
+            \ track' ->
+              js_displayNameForTrack self (maybeToOptional (fmap Track track'))))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.displayNameForTrack Mozilla MediaControlsHost.displayNameForTrack documentation> 
 displayNameForTrack_ ::
-                     (MonadIO m) => MediaControlsHost -> Maybe TextTrack -> m ()
+                     (MonadIO m, IsTrack track) =>
+                       MediaControlsHost -> Maybe track -> m ()
 displayNameForTrack_ self track
   = liftIO
-      (void (js_displayNameForTrack (self) (maybeToNullable track)))
- 
-foreign import javascript unsafe "$1[\"displayNameForTrack\"]($2)"
-        js_displayNameForTrackAudio ::
-        MediaControlsHost -> Nullable AudioTrack -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.displayNameForTrack Mozilla MediaControlsHost.displayNameForTrack documentation> 
-displayNameForTrackAudio ::
-                         (MonadIO m, FromJSString result) =>
-                           MediaControlsHost -> Maybe AudioTrack -> m result
-displayNameForTrackAudio self track
-  = liftIO
-      (fromJSString <$>
-         (js_displayNameForTrackAudio (self) (maybeToNullable track)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.displayNameForTrack Mozilla MediaControlsHost.displayNameForTrack documentation> 
-displayNameForTrackAudio_ ::
-                          (MonadIO m) => MediaControlsHost -> Maybe AudioTrack -> m ()
-displayNameForTrackAudio_ self track
-  = liftIO
-      (void (js_displayNameForTrackAudio (self) (maybeToNullable track)))
+      (void
+         (mapM toJSVal track >>=
+            \ track' ->
+              js_displayNameForTrack self (maybeToOptional (fmap Track track'))))
  
 foreign import javascript unsafe "$1[\"setSelectedTextTrack\"]($2)"
         js_setSelectedTextTrack ::
-        MediaControlsHost -> Nullable TextTrack -> IO ()
+        MediaControlsHost -> Optional TextTrack -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.setSelectedTextTrack Mozilla MediaControlsHost.setSelectedTextTrack documentation> 
 setSelectedTextTrack ::
                      (MonadIO m) => MediaControlsHost -> Maybe TextTrack -> m ()
 setSelectedTextTrack self track
-  = liftIO (js_setSelectedTextTrack (self) (maybeToNullable track))
+  = liftIO (js_setSelectedTextTrack self (maybeToOptional track))
  
 foreign import javascript unsafe
+        "$1[\"setPreparedToReturnVideoLayerToInline\"]($2)"
+        js_setPreparedToReturnVideoLayerToInline ::
+        MediaControlsHost -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.setPreparedToReturnVideoLayerToInline Mozilla MediaControlsHost.setPreparedToReturnVideoLayerToInline documentation> 
+setPreparedToReturnVideoLayerToInline ::
+                                      (MonadIO m) => MediaControlsHost -> Bool -> m ()
+setPreparedToReturnVideoLayerToInline self prepared
+  = liftIO (js_setPreparedToReturnVideoLayerToInline self prepared)
+ 
+foreign import javascript unsafe
         "$1[\"updateTextTrackContainer\"]()" js_updateTextTrackContainer ::
         MediaControlsHost -> IO ()
 
@@ -152,100 +143,77 @@
 updateTextTrackContainer ::
                          (MonadIO m) => MediaControlsHost -> m ()
 updateTextTrackContainer self
-  = liftIO (js_updateTextTrackContainer (self))
+  = liftIO (js_updateTextTrackContainer self)
  
 foreign import javascript unsafe "$1[\"enteredFullscreen\"]()"
         js_enteredFullscreen :: MediaControlsHost -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.enteredFullscreen Mozilla MediaControlsHost.enteredFullscreen documentation> 
 enteredFullscreen :: (MonadIO m) => MediaControlsHost -> m ()
-enteredFullscreen self = liftIO (js_enteredFullscreen (self))
+enteredFullscreen self = liftIO (js_enteredFullscreen self)
  
 foreign import javascript unsafe "$1[\"exitedFullscreen\"]()"
         js_exitedFullscreen :: MediaControlsHost -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.exitedFullscreen Mozilla MediaControlsHost.exitedFullscreen documentation> 
 exitedFullscreen :: (MonadIO m) => MediaControlsHost -> m ()
-exitedFullscreen self = liftIO (js_exitedFullscreen (self))
+exitedFullscreen self = liftIO (js_exitedFullscreen self)
  
-foreign import javascript unsafe
-        "$1[\"enterFullscreenOptimized\"]()" js_enterFullscreenOptimized ::
-        MediaControlsHost -> IO ()
+foreign import javascript unsafe "$1[\"generateUUID\"]()"
+        js_generateUUID :: MediaControlsHost -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.enterFullscreenOptimized Mozilla MediaControlsHost.enterFullscreenOptimized documentation> 
-enterFullscreenOptimized ::
-                         (MonadIO m) => MediaControlsHost -> m ()
-enterFullscreenOptimized self
-  = liftIO (js_enterFullscreenOptimized (self))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.generateUUID Mozilla MediaControlsHost.generateUUID documentation> 
+generateUUID ::
+             (MonadIO m, FromJSString result) => MediaControlsHost -> m result
+generateUUID self
+  = liftIO (fromJSString <$> (js_generateUUID self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.generateUUID Mozilla MediaControlsHost.generateUUID documentation> 
+generateUUID_ :: (MonadIO m) => MediaControlsHost -> m ()
+generateUUID_ self = liftIO (void (js_generateUUID self))
  
-foreign import javascript unsafe "$1[\"mediaUIImageData\"]($2)"
-        js_mediaUIImageData :: MediaControlsHost -> JSVal -> IO JSString
+foreign import javascript unsafe
+        "$1[\"base64StringForIconAndPlatform\"]($2,\n$3)"
+        js_base64StringForIconAndPlatform ::
+        MediaControlsHost -> JSString -> JSString -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.mediaUIImageData Mozilla MediaControlsHost.mediaUIImageData documentation> 
-mediaUIImageData ::
-                 (MonadIO m, FromJSString result) =>
-                   MediaControlsHost -> MediaUIPartID -> m result
-mediaUIImageData self partID
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.base64StringForIconAndPlatform Mozilla MediaControlsHost.base64StringForIconAndPlatform documentation> 
+base64StringForIconAndPlatform ::
+                               (MonadIO m, ToJSString iconName, ToJSString platform,
+                                FromJSString result) =>
+                                 MediaControlsHost -> iconName -> platform -> m result
+base64StringForIconAndPlatform self iconName platform
   = liftIO
-      (fromJSString <$> (js_mediaUIImageData (self) (pToJSVal partID)))
+      (fromJSString <$>
+         (js_base64StringForIconAndPlatform self (toJSString iconName)
+            (toJSString platform)))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.mediaUIImageData Mozilla MediaControlsHost.mediaUIImageData documentation> 
-mediaUIImageData_ ::
-                  (MonadIO m) => MediaControlsHost -> MediaUIPartID -> m ()
-mediaUIImageData_ self partID
-  = liftIO (void (js_mediaUIImageData (self) (pToJSVal partID)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.base64StringForIconAndPlatform Mozilla MediaControlsHost.base64StringForIconAndPlatform documentation> 
+base64StringForIconAndPlatform_ ::
+                                (MonadIO m, ToJSString iconName, ToJSString platform) =>
+                                  MediaControlsHost -> iconName -> platform -> m ()
+base64StringForIconAndPlatform_ self iconName platform
+  = liftIO
+      (void
+         (js_base64StringForIconAndPlatform self (toJSString iconName)
+            (toJSString platform)))
  
 foreign import javascript unsafe "$1[\"captionMenuOffItem\"]"
-        js_getCaptionMenuOffItem ::
-        MediaControlsHost -> IO (Nullable TextTrack)
+        js_getCaptionMenuOffItem :: MediaControlsHost -> IO TextTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.captionMenuOffItem Mozilla MediaControlsHost.captionMenuOffItem documentation> 
 getCaptionMenuOffItem ::
-                      (MonadIO m) => MediaControlsHost -> m (Maybe TextTrack)
-getCaptionMenuOffItem self
-  = liftIO (nullableToMaybe <$> (js_getCaptionMenuOffItem (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.captionMenuOffItem Mozilla MediaControlsHost.captionMenuOffItem documentation> 
-getCaptionMenuOffItemUnsafe ::
-                            (MonadIO m, HasCallStack) => MediaControlsHost -> m TextTrack
-getCaptionMenuOffItemUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCaptionMenuOffItem (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.captionMenuOffItem Mozilla MediaControlsHost.captionMenuOffItem documentation> 
-getCaptionMenuOffItemUnchecked ::
-                               (MonadIO m) => MediaControlsHost -> m TextTrack
-getCaptionMenuOffItemUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getCaptionMenuOffItem (self)))
+                      (MonadIO m) => MediaControlsHost -> m TextTrack
+getCaptionMenuOffItem self = liftIO (js_getCaptionMenuOffItem self)
  
 foreign import javascript unsafe "$1[\"captionMenuAutomaticItem\"]"
-        js_getCaptionMenuAutomaticItem ::
-        MediaControlsHost -> IO (Nullable TextTrack)
+        js_getCaptionMenuAutomaticItem :: MediaControlsHost -> IO TextTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.captionMenuAutomaticItem Mozilla MediaControlsHost.captionMenuAutomaticItem documentation> 
 getCaptionMenuAutomaticItem ::
-                            (MonadIO m) => MediaControlsHost -> m (Maybe TextTrack)
+                            (MonadIO m) => MediaControlsHost -> m TextTrack
 getCaptionMenuAutomaticItem self
-  = liftIO
-      (nullableToMaybe <$> (js_getCaptionMenuAutomaticItem (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.captionMenuAutomaticItem Mozilla MediaControlsHost.captionMenuAutomaticItem documentation> 
-getCaptionMenuAutomaticItemUnsafe ::
-                                  (MonadIO m, HasCallStack) => MediaControlsHost -> m TextTrack
-getCaptionMenuAutomaticItemUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCaptionMenuAutomaticItem (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.captionMenuAutomaticItem Mozilla MediaControlsHost.captionMenuAutomaticItem documentation> 
-getCaptionMenuAutomaticItemUnchecked ::
-                                     (MonadIO m) => MediaControlsHost -> m TextTrack
-getCaptionMenuAutomaticItemUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getCaptionMenuAutomaticItem (self)))
+  = liftIO (js_getCaptionMenuAutomaticItem self)
  
 foreign import javascript unsafe "$1[\"captionDisplayMode\"]"
         js_getCaptionDisplayMode :: MediaControlsHost -> IO JSString
@@ -254,42 +222,25 @@
 getCaptionDisplayMode ::
                       (MonadIO m, FromJSString result) => MediaControlsHost -> m result
 getCaptionDisplayMode self
-  = liftIO (fromJSString <$> (js_getCaptionDisplayMode (self)))
+  = liftIO (fromJSString <$> (js_getCaptionDisplayMode self))
  
 foreign import javascript unsafe "$1[\"textTrackContainer\"]"
-        js_getTextTrackContainer ::
-        MediaControlsHost -> IO (Nullable HTMLElement)
+        js_getTextTrackContainer :: MediaControlsHost -> IO HTMLElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.textTrackContainer Mozilla MediaControlsHost.textTrackContainer documentation> 
 getTextTrackContainer ::
-                      (MonadIO m) => MediaControlsHost -> m (Maybe HTMLElement)
-getTextTrackContainer self
-  = liftIO (nullableToMaybe <$> (js_getTextTrackContainer (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.textTrackContainer Mozilla MediaControlsHost.textTrackContainer documentation> 
-getTextTrackContainerUnsafe ::
-                            (MonadIO m, HasCallStack) => MediaControlsHost -> m HTMLElement
-getTextTrackContainerUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTextTrackContainer (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.textTrackContainer Mozilla MediaControlsHost.textTrackContainer documentation> 
-getTextTrackContainerUnchecked ::
-                               (MonadIO m) => MediaControlsHost -> m HTMLElement
-getTextTrackContainerUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getTextTrackContainer (self)))
+                      (MonadIO m) => MediaControlsHost -> m HTMLElement
+getTextTrackContainer self = liftIO (js_getTextTrackContainer self)
  
 foreign import javascript unsafe
-        "($1[\"mediaPlaybackAllowsInline\"] ? 1 : 0)"
-        js_getMediaPlaybackAllowsInline :: MediaControlsHost -> IO Bool
+        "($1[\"allowsInlineMediaPlayback\"] ? 1 : 0)"
+        js_getAllowsInlineMediaPlayback :: MediaControlsHost -> IO Bool
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.mediaPlaybackAllowsInline Mozilla MediaControlsHost.mediaPlaybackAllowsInline documentation> 
-getMediaPlaybackAllowsInline ::
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.allowsInlineMediaPlayback Mozilla MediaControlsHost.allowsInlineMediaPlayback documentation> 
+getAllowsInlineMediaPlayback ::
                              (MonadIO m) => MediaControlsHost -> m Bool
-getMediaPlaybackAllowsInline self
-  = liftIO (js_getMediaPlaybackAllowsInline (self))
+getAllowsInlineMediaPlayback self
+  = liftIO (js_getAllowsInlineMediaPlayback self)
  
 foreign import javascript unsafe
         "($1[\"supportsFullscreen\"] ? 1 : 0)" js_getSupportsFullscreen ::
@@ -297,10 +248,17 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.supportsFullscreen Mozilla MediaControlsHost.supportsFullscreen documentation> 
 getSupportsFullscreen :: (MonadIO m) => MediaControlsHost -> m Bool
-getSupportsFullscreen self
-  = liftIO (js_getSupportsFullscreen (self))
+getSupportsFullscreen self = liftIO (js_getSupportsFullscreen self)
  
 foreign import javascript unsafe
+        "($1[\"isVideoLayerInline\"] ? 1 : 0)" js_getIsVideoLayerInline ::
+        MediaControlsHost -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.isVideoLayerInline Mozilla MediaControlsHost.isVideoLayerInline documentation> 
+getIsVideoLayerInline :: (MonadIO m) => MediaControlsHost -> m Bool
+getIsVideoLayerInline self = liftIO (js_getIsVideoLayerInline self)
+ 
+foreign import javascript unsafe
         "($1[\"userGestureRequired\"] ? 1 : 0)" js_getUserGestureRequired
         :: MediaControlsHost -> IO Bool
 
@@ -308,9 +266,17 @@
 getUserGestureRequired ::
                        (MonadIO m) => MediaControlsHost -> m Bool
 getUserGestureRequired self
-  = liftIO (js_getUserGestureRequired (self))
+  = liftIO (js_getUserGestureRequired self)
  
 foreign import javascript unsafe
+        "($1[\"isInMediaDocument\"] ? 1 : 0)" js_getIsInMediaDocument ::
+        MediaControlsHost -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.isInMediaDocument Mozilla MediaControlsHost.isInMediaDocument documentation> 
+getIsInMediaDocument :: (MonadIO m) => MediaControlsHost -> m Bool
+getIsInMediaDocument self = liftIO (js_getIsInMediaDocument self)
+ 
+foreign import javascript unsafe
         "$1[\"externalDeviceDisplayName\"]" js_getExternalDeviceDisplayName
         :: MediaControlsHost -> IO JSString
 
@@ -318,8 +284,7 @@
 getExternalDeviceDisplayName ::
                              (MonadIO m, FromJSString result) => MediaControlsHost -> m result
 getExternalDeviceDisplayName self
-  = liftIO
-      (fromJSString <$> (js_getExternalDeviceDisplayName (self)))
+  = liftIO (fromJSString <$> (js_getExternalDeviceDisplayName self))
  
 foreign import javascript unsafe "$1[\"externalDeviceType\"]"
         js_getExternalDeviceType :: MediaControlsHost -> IO JSVal
@@ -328,7 +293,7 @@
 getExternalDeviceType ::
                       (MonadIO m) => MediaControlsHost -> m DeviceType
 getExternalDeviceType self
-  = liftIO ((js_getExternalDeviceType (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_getExternalDeviceType self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe
         "$1[\"controlsDependOnPageScaleFactor\"] = $2;"
@@ -339,7 +304,7 @@
 setControlsDependOnPageScaleFactor ::
                                    (MonadIO m) => MediaControlsHost -> Bool -> m ()
 setControlsDependOnPageScaleFactor self val
-  = liftIO (js_setControlsDependOnPageScaleFactor (self) val)
+  = liftIO (js_setControlsDependOnPageScaleFactor self val)
  
 foreign import javascript unsafe
         "($1[\"controlsDependOnPageScaleFactor\"] ? 1 : 0)"
@@ -350,4 +315,13 @@
 getControlsDependOnPageScaleFactor ::
                                    (MonadIO m) => MediaControlsHost -> m Bool
 getControlsDependOnPageScaleFactor self
-  = liftIO (js_getControlsDependOnPageScaleFactor (self))
+  = liftIO (js_getControlsDependOnPageScaleFactor self)
+ 
+foreign import javascript unsafe "$1[\"shadowRootCSSText\"]"
+        js_getShadowRootCSSText :: MediaControlsHost -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost.shadowRootCSSText Mozilla MediaControlsHost.shadowRootCSSText documentation> 
+getShadowRootCSSText ::
+                     (MonadIO m, FromJSString result) => MediaControlsHost -> m result
+getShadowRootCSSText self
+  = liftIO (fromJSString <$> (js_getShadowRootCSSText self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaDeviceInfo.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaDeviceInfo.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaDeviceInfo.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.MediaDeviceInfo
+       (js_newMediaDeviceInfo, newMediaDeviceInfo, js_getDeviceId,
+        getDeviceId, js_getGroupId, getGroupId, js_getKind, getKind,
+        js_getLabel, getLabel, MediaDeviceInfo(..), gTypeMediaDeviceInfo)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"MediaDeviceInfo\"]($1,\n$2, $3, $4)"
+        js_newMediaDeviceInfo ::
+        JSString -> JSString -> JSString -> JSVal -> IO MediaDeviceInfo
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo Mozilla MediaDeviceInfo documentation> 
+newMediaDeviceInfo ::
+                   (MonadIO m, ToJSString deviceId, ToJSString label,
+                    ToJSString groupId) =>
+                     deviceId ->
+                       label -> groupId -> MediaDeviceKind -> m MediaDeviceInfo
+newMediaDeviceInfo deviceId label groupId kind
+  = liftIO
+      (js_newMediaDeviceInfo (toJSString deviceId) (toJSString label)
+         (toJSString groupId)
+         (pToJSVal kind))
+ 
+foreign import javascript unsafe "$1[\"deviceId\"]" js_getDeviceId
+        :: MediaDeviceInfo -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo.deviceId Mozilla MediaDeviceInfo.deviceId documentation> 
+getDeviceId ::
+            (MonadIO m, FromJSString result) => MediaDeviceInfo -> m result
+getDeviceId self = liftIO (fromJSString <$> (js_getDeviceId self))
+ 
+foreign import javascript unsafe "$1[\"groupId\"]" js_getGroupId ::
+        MediaDeviceInfo -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo.groupId Mozilla MediaDeviceInfo.groupId documentation> 
+getGroupId ::
+           (MonadIO m, FromJSString result) => MediaDeviceInfo -> m result
+getGroupId self = liftIO (fromJSString <$> (js_getGroupId self))
+ 
+foreign import javascript unsafe "$1[\"kind\"]" js_getKind ::
+        MediaDeviceInfo -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo.kind Mozilla MediaDeviceInfo.kind documentation> 
+getKind :: (MonadIO m) => MediaDeviceInfo -> m MediaDeviceKind
+getKind self = liftIO ((js_getKind self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"label\"]" js_getLabel ::
+        MediaDeviceInfo -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo.label Mozilla MediaDeviceInfo.label documentation> 
+getLabel ::
+         (MonadIO m, FromJSString result) => MediaDeviceInfo -> m result
+getLabel self = liftIO (fromJSString <$> (js_getLabel self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaDevices.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaDevices.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaDevices.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.MediaDevices
+       (js_getSupportedConstraints, getSupportedConstraints,
+        getSupportedConstraints_, js_getUserMedia, getUserMedia,
+        getUserMedia_, js_enumerateDevices, enumerateDevices,
+        enumerateDevices_, MediaDevices(..), gTypeMediaDevices)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "$1[\"getSupportedConstraints\"]()" js_getSupportedConstraints ::
+        MediaDevices -> IO MediaTrackSupportedConstraints
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices.getSupportedConstraints Mozilla MediaDevices.getSupportedConstraints documentation> 
+getSupportedConstraints ::
+                        (MonadIO m) => MediaDevices -> m MediaTrackSupportedConstraints
+getSupportedConstraints self
+  = liftIO (js_getSupportedConstraints self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices.getSupportedConstraints Mozilla MediaDevices.getSupportedConstraints documentation> 
+getSupportedConstraints_ :: (MonadIO m) => MediaDevices -> m ()
+getSupportedConstraints_ self
+  = liftIO (void (js_getSupportedConstraints self))
+ 
+foreign import javascript interruptible
+        "$1[\"getUserMedia\"]($2).then($c);" js_getUserMedia ::
+        MediaDevices -> Optional MediaStreamConstraints -> IO MediaStream
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices.getUserMedia Mozilla MediaDevices.getUserMedia documentation> 
+getUserMedia ::
+             (MonadIO m) =>
+               MediaDevices -> Maybe MediaStreamConstraints -> m MediaStream
+getUserMedia self constraints
+  = liftIO (js_getUserMedia self (maybeToOptional constraints))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices.getUserMedia Mozilla MediaDevices.getUserMedia documentation> 
+getUserMedia_ ::
+              (MonadIO m) => MediaDevices -> Maybe MediaStreamConstraints -> m ()
+getUserMedia_ self constraints
+  = liftIO
+      (void (js_getUserMedia self (maybeToOptional constraints)))
+ 
+foreign import javascript interruptible
+        "$1[\"enumerateDevices\"]().\nthen($c);" js_enumerateDevices ::
+        MediaDevices -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices.enumerateDevices Mozilla MediaDevices.enumerateDevices documentation> 
+enumerateDevices ::
+                 (MonadIO m) => MediaDevices -> m [MediaDeviceInfo]
+enumerateDevices self
+  = liftIO ((js_enumerateDevices self) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices.enumerateDevices Mozilla MediaDevices.enumerateDevices documentation> 
+enumerateDevices_ :: (MonadIO m) => MediaDevices -> m ()
+enumerateDevices_ self = liftIO (void (js_enumerateDevices self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaElementAudioSourceNode.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaElementAudioSourceNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaElementAudioSourceNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaElementAudioSourceNode.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MediaElementAudioSourceNode
-       (js_getMediaElement, getMediaElement, getMediaElementUnsafe,
-        getMediaElementUnchecked, MediaElementAudioSourceNode(..),
-        gTypeMediaElementAudioSourceNode)
+       (js_getMediaElement, getMediaElement,
+        MediaElementAudioSourceNode(..), gTypeMediaElementAudioSourceNode)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,27 +28,9 @@
  
 foreign import javascript unsafe "$1[\"mediaElement\"]"
         js_getMediaElement ::
-        MediaElementAudioSourceNode -> IO (Nullable HTMLMediaElement)
+        MediaElementAudioSourceNode -> IO HTMLMediaElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaElementAudioSourceNode.mediaElement Mozilla MediaElementAudioSourceNode.mediaElement documentation> 
 getMediaElement ::
-                (MonadIO m) =>
-                  MediaElementAudioSourceNode -> m (Maybe HTMLMediaElement)
-getMediaElement self
-  = liftIO (nullableToMaybe <$> (js_getMediaElement (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaElementAudioSourceNode.mediaElement Mozilla MediaElementAudioSourceNode.mediaElement documentation> 
-getMediaElementUnsafe ::
-                      (MonadIO m, HasCallStack) =>
-                        MediaElementAudioSourceNode -> m HTMLMediaElement
-getMediaElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMediaElement (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaElementAudioSourceNode.mediaElement Mozilla MediaElementAudioSourceNode.mediaElement documentation> 
-getMediaElementUnchecked ::
-                         (MonadIO m) => MediaElementAudioSourceNode -> m HTMLMediaElement
-getMediaElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getMediaElement (self)))
+                (MonadIO m) => MediaElementAudioSourceNode -> m HTMLMediaElement
+getMediaElement self = liftIO (js_getMediaElement self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaEncryptedEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaEncryptedEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaEncryptedEvent.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.MediaEncryptedEvent
+       (js_newMediaEncryptedEvent, newMediaEncryptedEvent,
+        js_getInitDataType, getInitDataType, js_getInitData, getInitData,
+        getInitDataUnsafe, getInitDataUnchecked, MediaEncryptedEvent(..),
+        gTypeMediaEncryptedEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"MediaEncryptedEvent\"]($1,\n$2)"
+        js_newMediaEncryptedEvent ::
+        JSString ->
+          Optional MediaEncryptedEventInit -> IO MediaEncryptedEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaEncryptedEvent Mozilla MediaEncryptedEvent documentation> 
+newMediaEncryptedEvent ::
+                       (MonadIO m, ToJSString type') =>
+                         type' -> Maybe MediaEncryptedEventInit -> m MediaEncryptedEvent
+newMediaEncryptedEvent type' eventInitDict
+  = liftIO
+      (js_newMediaEncryptedEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe "$1[\"initDataType\"]"
+        js_getInitDataType :: MediaEncryptedEvent -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaEncryptedEvent.initDataType Mozilla MediaEncryptedEvent.initDataType documentation> 
+getInitDataType ::
+                (MonadIO m, FromJSString result) => MediaEncryptedEvent -> m result
+getInitDataType self
+  = liftIO (fromJSString <$> (js_getInitDataType self))
+ 
+foreign import javascript unsafe "$1[\"initData\"]" js_getInitData
+        :: MediaEncryptedEvent -> IO (Nullable ArrayBuffer)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaEncryptedEvent.initData Mozilla MediaEncryptedEvent.initData documentation> 
+getInitData ::
+            (MonadIO m) => MediaEncryptedEvent -> m (Maybe ArrayBuffer)
+getInitData self
+  = liftIO (nullableToMaybe <$> (js_getInitData self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaEncryptedEvent.initData Mozilla MediaEncryptedEvent.initData documentation> 
+getInitDataUnsafe ::
+                  (MonadIO m, HasCallStack) => MediaEncryptedEvent -> m ArrayBuffer
+getInitDataUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getInitData self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaEncryptedEvent.initData Mozilla MediaEncryptedEvent.initData documentation> 
+getInitDataUnchecked ::
+                     (MonadIO m) => MediaEncryptedEvent -> m ArrayBuffer
+getInitDataUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getInitData self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaError.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaError.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaError.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaError.hs
@@ -6,14 +6,13 @@
 module GHCJS.DOM.JSFFI.Generated.MediaError
        (pattern MEDIA_ERR_ABORTED, pattern MEDIA_ERR_NETWORK,
         pattern MEDIA_ERR_DECODE, pattern MEDIA_ERR_SRC_NOT_SUPPORTED,
-        pattern MEDIA_ERR_ENCRYPTED, js_getCode, getCode, MediaError(..),
-        gTypeMediaError)
+        js_getCode, getCode, MediaError(..), gTypeMediaError)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,11 +30,10 @@
 pattern MEDIA_ERR_NETWORK = 2
 pattern MEDIA_ERR_DECODE = 3
 pattern MEDIA_ERR_SRC_NOT_SUPPORTED = 4
-pattern MEDIA_ERR_ENCRYPTED = 5
  
 foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
         MediaError -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaError.code Mozilla MediaError.code documentation> 
 getCode :: (MonadIO m) => MediaError -> m Word
-getCode self = liftIO (js_getCode (self))
+getCode self = liftIO (js_getCode self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaKeyError.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaKeyError.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaKeyError.hs
+++ /dev/null
@@ -1,49 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.MediaKeyError
-       (pattern MEDIA_KEYERR_UNKNOWN, pattern MEDIA_KEYERR_CLIENT,
-        pattern MEDIA_KEYERR_SERVICE, pattern MEDIA_KEYERR_OUTPUT,
-        pattern MEDIA_KEYERR_HARDWARECHANGE, pattern MEDIA_KEYERR_DOMAIN,
-        js_getCode, getCode, js_getSystemCode, getSystemCode,
-        MediaKeyError(..), gTypeMediaKeyError)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
-pattern MEDIA_KEYERR_UNKNOWN = 1
-pattern MEDIA_KEYERR_CLIENT = 2
-pattern MEDIA_KEYERR_SERVICE = 3
-pattern MEDIA_KEYERR_OUTPUT = 4
-pattern MEDIA_KEYERR_HARDWARECHANGE = 5
-pattern MEDIA_KEYERR_DOMAIN = 6
- 
-foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
-        MediaKeyError -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyError.code Mozilla WebKitMediaKeyError.code documentation> 
-getCode :: (MonadIO m) => MediaKeyError -> m Word
-getCode self = liftIO (js_getCode (self))
- 
-foreign import javascript unsafe "$1[\"systemCode\"]"
-        js_getSystemCode :: MediaKeyError -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyError.systemCode Mozilla WebKitMediaKeyError.systemCode documentation> 
-getSystemCode :: (MonadIO m) => MediaKeyError -> m Word
-getSystemCode self = liftIO (js_getSystemCode (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaKeyEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaKeyEvent.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaKeyEvent.hs
+++ /dev/null
@@ -1,131 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.MediaKeyEvent
-       (js_getKeySystem, getKeySystem, js_getSessionId, getSessionId,
-        js_getInitData, getInitData, getInitDataUnsafe,
-        getInitDataUnchecked, js_getMessage, getMessage, getMessageUnsafe,
-        getMessageUnchecked, js_getDefaultURL, getDefaultURL,
-        js_getErrorCode, getErrorCode, getErrorCodeUnsafe,
-        getErrorCodeUnchecked, js_getSystemCode, getSystemCode,
-        MediaKeyEvent(..), gTypeMediaKeyEvent)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"keySystem\"]"
-        js_getKeySystem :: MediaKeyEvent -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.keySystem Mozilla MediaKeyEvent.keySystem documentation> 
-getKeySystem ::
-             (MonadIO m, FromJSString result) => MediaKeyEvent -> m result
-getKeySystem self
-  = liftIO (fromJSString <$> (js_getKeySystem (self)))
- 
-foreign import javascript unsafe "$1[\"sessionId\"]"
-        js_getSessionId :: MediaKeyEvent -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.sessionId Mozilla MediaKeyEvent.sessionId documentation> 
-getSessionId ::
-             (MonadIO m, FromJSString result) => MediaKeyEvent -> m result
-getSessionId self
-  = liftIO (fromJSString <$> (js_getSessionId (self)))
- 
-foreign import javascript unsafe "$1[\"initData\"]" js_getInitData
-        :: MediaKeyEvent -> IO (Nullable Uint8Array)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.initData Mozilla MediaKeyEvent.initData documentation> 
-getInitData :: (MonadIO m) => MediaKeyEvent -> m (Maybe Uint8Array)
-getInitData self
-  = liftIO (nullableToMaybe <$> (js_getInitData (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.initData Mozilla MediaKeyEvent.initData documentation> 
-getInitDataUnsafe ::
-                  (MonadIO m, HasCallStack) => MediaKeyEvent -> m Uint8Array
-getInitDataUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getInitData (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.initData Mozilla MediaKeyEvent.initData documentation> 
-getInitDataUnchecked ::
-                     (MonadIO m) => MediaKeyEvent -> m Uint8Array
-getInitDataUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getInitData (self)))
- 
-foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
-        MediaKeyEvent -> IO (Nullable Uint8Array)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.message Mozilla MediaKeyEvent.message documentation> 
-getMessage :: (MonadIO m) => MediaKeyEvent -> m (Maybe Uint8Array)
-getMessage self
-  = liftIO (nullableToMaybe <$> (js_getMessage (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.message Mozilla MediaKeyEvent.message documentation> 
-getMessageUnsafe ::
-                 (MonadIO m, HasCallStack) => MediaKeyEvent -> m Uint8Array
-getMessageUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMessage (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.message Mozilla MediaKeyEvent.message documentation> 
-getMessageUnchecked :: (MonadIO m) => MediaKeyEvent -> m Uint8Array
-getMessageUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getMessage (self)))
- 
-foreign import javascript unsafe "$1[\"defaultURL\"]"
-        js_getDefaultURL :: MediaKeyEvent -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.defaultURL Mozilla MediaKeyEvent.defaultURL documentation> 
-getDefaultURL ::
-              (MonadIO m, FromJSString result) => MediaKeyEvent -> m result
-getDefaultURL self
-  = liftIO (fromJSString <$> (js_getDefaultURL (self)))
- 
-foreign import javascript unsafe "$1[\"errorCode\"]"
-        js_getErrorCode :: MediaKeyEvent -> IO (Nullable MediaKeyError)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.errorCode Mozilla MediaKeyEvent.errorCode documentation> 
-getErrorCode ::
-             (MonadIO m) => MediaKeyEvent -> m (Maybe MediaKeyError)
-getErrorCode self
-  = liftIO (nullableToMaybe <$> (js_getErrorCode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.errorCode Mozilla MediaKeyEvent.errorCode documentation> 
-getErrorCodeUnsafe ::
-                   (MonadIO m, HasCallStack) => MediaKeyEvent -> m MediaKeyError
-getErrorCodeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getErrorCode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.errorCode Mozilla MediaKeyEvent.errorCode documentation> 
-getErrorCodeUnchecked ::
-                      (MonadIO m) => MediaKeyEvent -> m MediaKeyError
-getErrorCodeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getErrorCode (self)))
- 
-foreign import javascript unsafe "$1[\"systemCode\"]"
-        js_getSystemCode :: MediaKeyEvent -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent.systemCode Mozilla MediaKeyEvent.systemCode documentation> 
-getSystemCode :: (MonadIO m) => MediaKeyEvent -> m Word
-getSystemCode self = liftIO (js_getSystemCode (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaKeyMessageEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaKeyMessageEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaKeyMessageEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaKeyMessageEvent.hs
@@ -4,15 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MediaKeyMessageEvent
-       (js_getMessage, getMessage, getMessageUnsafe, getMessageUnchecked,
-        js_getDestinationURL, getDestinationURL, MediaKeyMessageEvent(..),
-        gTypeMediaKeyMessageEvent)
+       (js_newMediaKeyMessageEvent, newMediaKeyMessageEvent,
+        js_getMessageType, getMessageType, js_getMessage, getMessage,
+        MediaKeyMessageEvent(..), gTypeMediaKeyMessageEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,40 +21,37 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
-        MediaKeyMessageEvent -> IO (Nullable Uint8Array)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent.message Mozilla WebKitMediaKeyMessageEvent.message documentation> 
-getMessage ::
-           (MonadIO m) => MediaKeyMessageEvent -> m (Maybe Uint8Array)
-getMessage self
-  = liftIO (nullableToMaybe <$> (js_getMessage (self)))
+foreign import javascript unsafe
+        "new window[\"WebKitMediaKeyMessageEvent\"]($1,\n$2)"
+        js_newMediaKeyMessageEvent ::
+        JSString -> MediaKeyMessageEventInit -> IO MediaKeyMessageEvent
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent.message Mozilla WebKitMediaKeyMessageEvent.message documentation> 
-getMessageUnsafe ::
-                 (MonadIO m, HasCallStack) => MediaKeyMessageEvent -> m Uint8Array
-getMessageUnsafe self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent Mozilla WebKitMediaKeyMessageEvent documentation> 
+newMediaKeyMessageEvent ::
+                        (MonadIO m, ToJSString type') =>
+                          type' -> MediaKeyMessageEventInit -> m MediaKeyMessageEvent
+newMediaKeyMessageEvent type' eventInitDict
   = liftIO
-      ((nullableToMaybe <$> (js_getMessage (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (js_newMediaKeyMessageEvent (toJSString type') eventInitDict)
+ 
+foreign import javascript unsafe "$1[\"messageType\"]"
+        js_getMessageType :: MediaKeyMessageEvent -> IO JSVal
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent.message Mozilla WebKitMediaKeyMessageEvent.message documentation> 
-getMessageUnchecked ::
-                    (MonadIO m) => MediaKeyMessageEvent -> m Uint8Array
-getMessageUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getMessage (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent.messageType Mozilla WebKitMediaKeyMessageEvent.messageType documentation> 
+getMessageType ::
+               (MonadIO m) => MediaKeyMessageEvent -> m MediaKeyMessageType
+getMessageType self
+  = liftIO ((js_getMessageType self) >>= fromJSValUnchecked)
  
-foreign import javascript unsafe "$1[\"destinationURL\"]"
-        js_getDestinationURL :: MediaKeyMessageEvent -> IO JSString
+foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
+        MediaKeyMessageEvent -> IO ArrayBuffer
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent.destinationURL Mozilla WebKitMediaKeyMessageEvent.destinationURL documentation> 
-getDestinationURL ::
-                  (MonadIO m, FromJSString result) =>
-                    MediaKeyMessageEvent -> m result
-getDestinationURL self
-  = liftIO (fromJSString <$> (js_getDestinationURL (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent.message Mozilla WebKitMediaKeyMessageEvent.message documentation> 
+getMessage :: (MonadIO m) => MediaKeyMessageEvent -> m ArrayBuffer
+getMessage self = liftIO (js_getMessage self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaKeyNeededEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaKeyNeededEvent.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaKeyNeededEvent.hs
+++ /dev/null
@@ -1,50 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.MediaKeyNeededEvent
-       (js_getInitData, getInitData, getInitDataUnsafe,
-        getInitDataUnchecked, MediaKeyNeededEvent(..),
-        gTypeMediaKeyNeededEvent)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"initData\"]" js_getInitData
-        :: MediaKeyNeededEvent -> IO (Nullable Uint8Array)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyNeededEvent.initData Mozilla MediaKeyNeededEvent.initData documentation> 
-getInitData ::
-            (MonadIO m) => MediaKeyNeededEvent -> m (Maybe Uint8Array)
-getInitData self
-  = liftIO (nullableToMaybe <$> (js_getInitData (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyNeededEvent.initData Mozilla MediaKeyNeededEvent.initData documentation> 
-getInitDataUnsafe ::
-                  (MonadIO m, HasCallStack) => MediaKeyNeededEvent -> m Uint8Array
-getInitDataUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getInitData (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyNeededEvent.initData Mozilla MediaKeyNeededEvent.initData documentation> 
-getInitDataUnchecked ::
-                     (MonadIO m) => MediaKeyNeededEvent -> m Uint8Array
-getInitDataUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getInitData (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaKeySession.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaKeySession.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaKeySession.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaKeySession.hs
@@ -4,16 +4,18 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MediaKeySession
-       (js_update, update, js_close, close, js_getError, getError,
-        getErrorUnsafe, getErrorUnchecked, js_getKeySystem, getKeySystem,
-        js_getSessionId, getSessionId, webKitKeyAdded, webKitKeyError,
-        webKitKeyMessage, MediaKeySession(..), gTypeMediaKeySession)
+       (js_generateRequest, generateRequest, js_load, load, load_,
+        js_update, update, js_close, close, js_remove, remove,
+        js_getSessionId, getSessionId, js_getExpiration, getExpiration,
+        js_getClosed, getClosed, js_getKeyStatuses, getKeyStatuses,
+        keystatuseschange, message, MediaKeySession(..),
+        gTypeMediaKeySession)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,59 +24,66 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"update\"]($2)" js_update ::
-        MediaKeySession -> Nullable Uint8Array -> IO ()
+foreign import javascript interruptible
+        "$1[\"generateRequest\"]($2, $3).\nthen($c);" js_generateRequest ::
+        MediaKeySession -> JSString -> BufferSource -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.update Mozilla WebKitMediaKeySession.update documentation> 
-update ::
-       (MonadIO m, IsUint8Array key) =>
-         MediaKeySession -> Maybe key -> m ()
-update self key
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.generateRequest Mozilla WebKitMediaKeySession.generateRequest documentation> 
+generateRequest ::
+                (MonadIO m, ToJSString initDataType, IsBufferSource initData) =>
+                  MediaKeySession -> initDataType -> initData -> m ()
+generateRequest self initDataType initData
   = liftIO
-      (js_update (self) (maybeToNullable (fmap toUint8Array key)))
+      (js_generateRequest self (toJSString initDataType)
+         (toBufferSource initData))
  
-foreign import javascript unsafe "$1[\"close\"]()" js_close ::
-        MediaKeySession -> IO ()
+foreign import javascript interruptible
+        "$1[\"load\"]($2).then($c);" js_load ::
+        MediaKeySession -> JSString -> IO Bool
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.close Mozilla WebKitMediaKeySession.close documentation> 
-close :: (MonadIO m) => MediaKeySession -> m ()
-close self = liftIO (js_close (self))
- 
-foreign import javascript unsafe "$1[\"error\"]" js_getError ::
-        MediaKeySession -> IO (Nullable MediaKeyError)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.load Mozilla WebKitMediaKeySession.load documentation> 
+load ::
+     (MonadIO m, ToJSString sessionId) =>
+       MediaKeySession -> sessionId -> m Bool
+load self sessionId = liftIO (js_load self (toJSString sessionId))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.error Mozilla WebKitMediaKeySession.error documentation> 
-getError ::
-         (MonadIO m) => MediaKeySession -> m (Maybe MediaKeyError)
-getError self = liftIO (nullableToMaybe <$> (js_getError (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.load Mozilla WebKitMediaKeySession.load documentation> 
+load_ ::
+      (MonadIO m, ToJSString sessionId) =>
+        MediaKeySession -> sessionId -> m ()
+load_ self sessionId
+  = liftIO (void (js_load self (toJSString sessionId)))
+ 
+foreign import javascript interruptible
+        "$1[\"update\"]($2).then($c);" js_update ::
+        MediaKeySession -> BufferSource -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.error Mozilla WebKitMediaKeySession.error documentation> 
-getErrorUnsafe ::
-               (MonadIO m, HasCallStack) => MediaKeySession -> m MediaKeyError
-getErrorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getError (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.update Mozilla WebKitMediaKeySession.update documentation> 
+update ::
+       (MonadIO m, IsBufferSource response) =>
+         MediaKeySession -> response -> m ()
+update self response
+  = liftIO (js_update self (toBufferSource response))
+ 
+foreign import javascript interruptible
+        "$1[\"close\"]().then($c);" js_close :: MediaKeySession -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.error Mozilla WebKitMediaKeySession.error documentation> 
-getErrorUnchecked ::
-                  (MonadIO m) => MediaKeySession -> m MediaKeyError
-getErrorUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getError (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.close Mozilla WebKitMediaKeySession.close documentation> 
+close :: (MonadIO m) => MediaKeySession -> m ()
+close self = liftIO (js_close self)
  
-foreign import javascript unsafe "$1[\"keySystem\"]"
-        js_getKeySystem :: MediaKeySession -> IO JSString
+foreign import javascript interruptible
+        "$1[\"remove\"]().then($c);" js_remove :: MediaKeySession -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.keySystem Mozilla WebKitMediaKeySession.keySystem documentation> 
-getKeySystem ::
-             (MonadIO m, FromJSString result) => MediaKeySession -> m result
-getKeySystem self
-  = liftIO (fromJSString <$> (js_getKeySystem (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.remove Mozilla WebKitMediaKeySession.remove documentation> 
+remove :: (MonadIO m) => MediaKeySession -> m ()
+remove self = liftIO (js_remove self)
  
 foreign import javascript unsafe "$1[\"sessionId\"]"
         js_getSessionId :: MediaKeySession -> IO JSString
@@ -83,16 +92,35 @@
 getSessionId ::
              (MonadIO m, FromJSString result) => MediaKeySession -> m result
 getSessionId self
-  = liftIO (fromJSString <$> (js_getSessionId (self)))
+  = liftIO (fromJSString <$> (js_getSessionId self))
+ 
+foreign import javascript unsafe "$1[\"expiration\"]"
+        js_getExpiration :: MediaKeySession -> IO Double
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.onwebkitkeyadded Mozilla WebKitMediaKeySession.onwebkitkeyadded documentation> 
-webKitKeyAdded :: EventName MediaKeySession Event
-webKitKeyAdded = unsafeEventName (toJSString "webkitkeyadded")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.expiration Mozilla WebKitMediaKeySession.expiration documentation> 
+getExpiration :: (MonadIO m) => MediaKeySession -> m Double
+getExpiration self = liftIO (js_getExpiration self)
+ 
+foreign import javascript interruptible
+        "$1[\"closed\"].then($c);" js_getClosed :: MediaKeySession -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.onwebkitkeyerror Mozilla WebKitMediaKeySession.onwebkitkeyerror documentation> 
-webKitKeyError :: EventName MediaKeySession Event
-webKitKeyError = unsafeEventName (toJSString "webkitkeyerror")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.closed Mozilla WebKitMediaKeySession.closed documentation> 
+getClosed :: (MonadIO m) => MediaKeySession -> m ()
+getClosed self = liftIO (js_getClosed self)
+ 
+foreign import javascript unsafe "$1[\"keyStatuses\"]"
+        js_getKeyStatuses :: MediaKeySession -> IO MediaKeyStatusMap
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.onwebkitkeymessage Mozilla WebKitMediaKeySession.onwebkitkeymessage documentation> 
-webKitKeyMessage :: EventName MediaKeySession Event
-webKitKeyMessage = unsafeEventName (toJSString "webkitkeymessage")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.keyStatuses Mozilla WebKitMediaKeySession.keyStatuses documentation> 
+getKeyStatuses ::
+               (MonadIO m) => MediaKeySession -> m MediaKeyStatusMap
+getKeyStatuses self = liftIO (js_getKeyStatuses self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.onkeystatuseschange Mozilla WebKitMediaKeySession.onkeystatuseschange documentation> 
+keystatuseschange :: EventName MediaKeySession onkeystatuseschange
+keystatuseschange
+  = unsafeEventName (toJSString "keystatuseschange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.onmessage Mozilla WebKitMediaKeySession.onmessage documentation> 
+message :: EventName MediaKeySession MessageEvent
+message = unsafeEventName (toJSString "message")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaKeyStatusMap.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaKeyStatusMap.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaKeyStatusMap.hs
@@ -0,0 +1,66 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.MediaKeyStatusMap
+       (js_has, has, has_, js_get, get, get_, js_getSize, getSize,
+        MediaKeyStatusMap(..), gTypeMediaKeyStatusMap)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "($1[\"has\"]($2) ? 1 : 0)" js_has
+        :: MediaKeyStatusMap -> BufferSource -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyStatusMap.has Mozilla MediaKeyStatusMap.has documentation> 
+has ::
+    (MonadIO m, IsBufferSource keyId) =>
+      MediaKeyStatusMap -> keyId -> m Bool
+has self keyId = liftIO (js_has self (toBufferSource keyId))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyStatusMap.has Mozilla MediaKeyStatusMap.has documentation> 
+has_ ::
+     (MonadIO m, IsBufferSource keyId) =>
+       MediaKeyStatusMap -> keyId -> m ()
+has_ self keyId
+  = liftIO (void (js_has self (toBufferSource keyId)))
+ 
+foreign import javascript unsafe "$1[\"get\"]($2)" js_get ::
+        MediaKeyStatusMap -> BufferSource -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyStatusMap.get Mozilla MediaKeyStatusMap.get documentation> 
+get ::
+    (MonadIO m, IsBufferSource keyId) =>
+      MediaKeyStatusMap -> keyId -> m JSVal
+get self keyId = liftIO (js_get self (toBufferSource keyId))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyStatusMap.get Mozilla MediaKeyStatusMap.get documentation> 
+get_ ::
+     (MonadIO m, IsBufferSource keyId) =>
+       MediaKeyStatusMap -> keyId -> m ()
+get_ self keyId
+  = liftIO (void (js_get self (toBufferSource keyId)))
+ 
+foreign import javascript unsafe "$1[\"size\"]" js_getSize ::
+        MediaKeyStatusMap -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyStatusMap.size Mozilla MediaKeyStatusMap.size documentation> 
+getSize :: (MonadIO m) => MediaKeyStatusMap -> m Word
+getSize self = liftIO (js_getSize self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaKeySystemAccess.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaKeySystemAccess.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaKeySystemAccess.hs
@@ -0,0 +1,66 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.MediaKeySystemAccess
+       (js_getConfiguration, getConfiguration, getConfiguration_,
+        js_createMediaKeys, createMediaKeys, createMediaKeys_,
+        js_getKeySystem, getKeySystem, MediaKeySystemAccess(..),
+        gTypeMediaKeySystemAccess)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"getConfiguration\"]()"
+        js_getConfiguration ::
+        MediaKeySystemAccess -> IO MediaKeySystemConfiguration
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemAccess.getConfiguration Mozilla MediaKeySystemAccess.getConfiguration documentation> 
+getConfiguration ::
+                 (MonadIO m) =>
+                   MediaKeySystemAccess -> m MediaKeySystemConfiguration
+getConfiguration self = liftIO (js_getConfiguration self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemAccess.getConfiguration Mozilla MediaKeySystemAccess.getConfiguration documentation> 
+getConfiguration_ :: (MonadIO m) => MediaKeySystemAccess -> m ()
+getConfiguration_ self = liftIO (void (js_getConfiguration self))
+ 
+foreign import javascript interruptible
+        "$1[\"createMediaKeys\"]().\nthen($c);" js_createMediaKeys ::
+        MediaKeySystemAccess -> IO MediaKeys
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemAccess.createMediaKeys Mozilla MediaKeySystemAccess.createMediaKeys documentation> 
+createMediaKeys ::
+                (MonadIO m) => MediaKeySystemAccess -> m MediaKeys
+createMediaKeys self = liftIO (js_createMediaKeys self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemAccess.createMediaKeys Mozilla MediaKeySystemAccess.createMediaKeys documentation> 
+createMediaKeys_ :: (MonadIO m) => MediaKeySystemAccess -> m ()
+createMediaKeys_ self = liftIO (void (js_createMediaKeys self))
+ 
+foreign import javascript unsafe "$1[\"keySystem\"]"
+        js_getKeySystem :: MediaKeySystemAccess -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemAccess.keySystem Mozilla MediaKeySystemAccess.keySystem documentation> 
+getKeySystem ::
+             (MonadIO m, FromJSString result) =>
+               MediaKeySystemAccess -> m result
+getKeySystem self
+  = liftIO (fromJSString <$> (js_getKeySystem self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaKeys.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaKeys.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaKeys.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaKeys.hs
@@ -4,16 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MediaKeys
-       (js_newMediaKeys, newMediaKeys, js_createSession, createSession,
-        createSession_, createSessionUnsafe, createSessionUnchecked,
-        js_isTypeSupported, isTypeSupported, isTypeSupported_,
-        js_getKeySystem, getKeySystem, MediaKeys(..), gTypeMediaKeys)
+       (js_createSession, createSession, createSession_,
+        js_setServerCertificate, setServerCertificate,
+        setServerCertificate_, MediaKeys(..), gTypeMediaKeys)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,96 +21,47 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe
-        "new window[\"WebKitMediaKeys\"]($1)" js_newMediaKeys ::
-        JSString -> IO MediaKeys
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys Mozilla WebKitMediaKeys documentation> 
-newMediaKeys ::
-             (MonadIO m, ToJSString keySystem) => keySystem -> m MediaKeys
-newMediaKeys keySystem
-  = liftIO (js_newMediaKeys (toJSString keySystem))
- 
-foreign import javascript unsafe "$1[\"createSession\"]($2, $3)"
+foreign import javascript unsafe "$1[\"createSession\"]($2)"
         js_createSession ::
-        MediaKeys ->
-          JSString -> Nullable Uint8Array -> IO (Nullable MediaKeySession)
+        MediaKeys -> Optional MediaKeySessionType -> IO MediaKeySession
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.createSession Mozilla WebKitMediaKeys.createSession documentation> 
 createSession ::
-              (MonadIO m, ToJSString type', IsUint8Array initData) =>
-                MediaKeys -> type' -> Maybe initData -> m (Maybe MediaKeySession)
-createSession self type' initData
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSession (self) (toJSString type')
-            (maybeToNullable (fmap toUint8Array initData))))
+              (MonadIO m) =>
+                MediaKeys -> Maybe MediaKeySessionType -> m MediaKeySession
+createSession self sessionType
+  = liftIO (js_createSession self (maybeToOptional sessionType))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.createSession Mozilla WebKitMediaKeys.createSession documentation> 
 createSession_ ::
-               (MonadIO m, ToJSString type', IsUint8Array initData) =>
-                 MediaKeys -> type' -> Maybe initData -> m ()
-createSession_ self type' initData
-  = liftIO
-      (void
-         (js_createSession (self) (toJSString type')
-            (maybeToNullable (fmap toUint8Array initData))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.createSession Mozilla WebKitMediaKeys.createSession documentation> 
-createSessionUnsafe ::
-                    (MonadIO m, ToJSString type', IsUint8Array initData,
-                     HasCallStack) =>
-                      MediaKeys -> type' -> Maybe initData -> m MediaKeySession
-createSessionUnsafe self type' initData
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSession (self) (toJSString type')
-             (maybeToNullable (fmap toUint8Array initData))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.createSession Mozilla WebKitMediaKeys.createSession documentation> 
-createSessionUnchecked ::
-                       (MonadIO m, ToJSString type', IsUint8Array initData) =>
-                         MediaKeys -> type' -> Maybe initData -> m MediaKeySession
-createSessionUnchecked self type' initData
+               (MonadIO m) => MediaKeys -> Maybe MediaKeySessionType -> m ()
+createSession_ self sessionType
   = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSession (self) (toJSString type')
-            (maybeToNullable (fmap toUint8Array initData))))
+      (void (js_createSession self (maybeToOptional sessionType)))
  
-foreign import javascript unsafe
-        "($1[\"isTypeSupported\"]($2,\n$3) ? 1 : 0)" js_isTypeSupported ::
-        MediaKeys -> JSString -> JSString -> IO Bool
+foreign import javascript interruptible
+        "$1[\"setServerCertificate\"]($2).\nthen($c);"
+        js_setServerCertificate :: MediaKeys -> BufferSource -> IO Bool
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.isTypeSupported Mozilla WebKitMediaKeys.isTypeSupported documentation> 
-isTypeSupported ::
-                (MonadIO m, ToJSString keySystem, ToJSString type') =>
-                  MediaKeys -> keySystem -> type' -> m Bool
-isTypeSupported self keySystem type'
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.setServerCertificate Mozilla WebKitMediaKeys.setServerCertificate documentation> 
+setServerCertificate ::
+                     (MonadIO m, IsBufferSource serverCertificate) =>
+                       MediaKeys -> serverCertificate -> m Bool
+setServerCertificate self serverCertificate
   = liftIO
-      (js_isTypeSupported (self) (toJSString keySystem)
-         (toJSString type'))
+      (js_setServerCertificate self (toBufferSource serverCertificate))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.isTypeSupported Mozilla WebKitMediaKeys.isTypeSupported documentation> 
-isTypeSupported_ ::
-                 (MonadIO m, ToJSString keySystem, ToJSString type') =>
-                   MediaKeys -> keySystem -> type' -> m ()
-isTypeSupported_ self keySystem type'
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.setServerCertificate Mozilla WebKitMediaKeys.setServerCertificate documentation> 
+setServerCertificate_ ::
+                      (MonadIO m, IsBufferSource serverCertificate) =>
+                        MediaKeys -> serverCertificate -> m ()
+setServerCertificate_ self serverCertificate
   = liftIO
       (void
-         (js_isTypeSupported (self) (toJSString keySystem)
-            (toJSString type')))
- 
-foreign import javascript unsafe "$1[\"keySystem\"]"
-        js_getKeySystem :: MediaKeys -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.keySystem Mozilla WebKitMediaKeys.keySystem documentation> 
-getKeySystem ::
-             (MonadIO m, FromJSString result) => MediaKeys -> m result
-getKeySystem self
-  = liftIO (fromJSString <$> (js_getKeySystem (self)))
+         (js_setServerCertificate self (toBufferSource serverCertificate)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaList.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaList.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,12 +23,13 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
+foreign import javascript unsafe "$1[$2]" js_item ::
         MediaList -> Word -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaList.item Mozilla MediaList.item documentation> 
@@ -36,11 +37,11 @@
      (MonadIO m, FromJSString result) =>
        MediaList -> Word -> m (Maybe result)
 item self index
-  = liftIO (fromMaybeJSString <$> (js_item (self) index))
+  = liftIO (fromMaybeJSString <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaList.item Mozilla MediaList.item documentation> 
 item_ :: (MonadIO m) => MediaList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaList.item Mozilla MediaList.item documentation> 
 itemUnsafe ::
@@ -48,14 +49,14 @@
              MediaList -> Word -> m result
 itemUnsafe self index
   = liftIO
-      ((fromMaybeJSString <$> (js_item (self) index)) >>=
+      ((fromMaybeJSString <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaList.item Mozilla MediaList.item documentation> 
 itemUnchecked ::
               (MonadIO m, FromJSString result) => MediaList -> Word -> m result
 itemUnchecked self index
-  = liftIO (fromJust . fromMaybeJSString <$> (js_item (self) index))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_item self index))
  
 foreign import javascript unsafe "$1[\"deleteMedium\"]($2)"
         js_deleteMedium :: MediaList -> JSString -> IO ()
@@ -64,7 +65,7 @@
 deleteMedium ::
              (MonadIO m, ToJSString oldMedium) => MediaList -> oldMedium -> m ()
 deleteMedium self oldMedium
-  = liftIO (js_deleteMedium (self) (toJSString oldMedium))
+  = liftIO (js_deleteMedium self (toJSString oldMedium))
  
 foreign import javascript unsafe "$1[\"appendMedium\"]($2)"
         js_appendMedium :: MediaList -> JSString -> IO ()
@@ -73,16 +74,16 @@
 appendMedium ::
              (MonadIO m, ToJSString newMedium) => MediaList -> newMedium -> m ()
 appendMedium self newMedium
-  = liftIO (js_appendMedium (self) (toJSString newMedium))
+  = liftIO (js_appendMedium self (toJSString newMedium))
  
 foreign import javascript unsafe "$1[\"mediaText\"] = $2;"
-        js_setMediaText :: MediaList -> Nullable JSString -> IO ()
+        js_setMediaText :: MediaList -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaList.mediaText Mozilla MediaList.mediaText documentation> 
 setMediaText ::
              (MonadIO m, ToJSString val) => MediaList -> Maybe val -> m ()
 setMediaText self val
-  = liftIO (js_setMediaText (self) (toMaybeJSString val))
+  = liftIO (js_setMediaText self (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"mediaText\"]"
         js_getMediaText :: MediaList -> IO (Nullable JSString)
@@ -91,7 +92,7 @@
 getMediaText ::
              (MonadIO m, FromJSString result) => MediaList -> m (Maybe result)
 getMediaText self
-  = liftIO (fromMaybeJSString <$> (js_getMediaText (self)))
+  = liftIO (fromMaybeJSString <$> (js_getMediaText self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaList.mediaText Mozilla MediaList.mediaText documentation> 
 getMediaTextUnsafe ::
@@ -99,19 +100,18 @@
                      MediaList -> m result
 getMediaTextUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getMediaText (self))) >>=
+      ((fromMaybeJSString <$> (js_getMediaText self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaList.mediaText Mozilla MediaList.mediaText documentation> 
 getMediaTextUnchecked ::
                       (MonadIO m, FromJSString result) => MediaList -> m result
 getMediaTextUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getMediaText (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getMediaText self))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         MediaList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaList.length Mozilla MediaList.length documentation> 
 getLength :: (MonadIO m) => MediaList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaQueryList.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaQueryList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaQueryList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaQueryList.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,25 +29,25 @@
  
 foreign import javascript unsafe "$1[\"addListener\"]($2)"
         js_addListener ::
-        MediaQueryList -> Nullable MediaQueryListListener -> IO ()
+        MediaQueryList -> Optional MediaQueryListListener -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList.addListener Mozilla MediaQueryList.addListener documentation> 
 addListener ::
             (MonadIO m) =>
               MediaQueryList -> Maybe MediaQueryListListener -> m ()
 addListener self listener
-  = liftIO (js_addListener (self) (maybeToNullable listener))
+  = liftIO (js_addListener self (maybeToOptional listener))
  
 foreign import javascript unsafe "$1[\"removeListener\"]($2)"
         js_removeListener ::
-        MediaQueryList -> Nullable MediaQueryListListener -> IO ()
+        MediaQueryList -> Optional MediaQueryListListener -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList.removeListener Mozilla MediaQueryList.removeListener documentation> 
 removeListener ::
                (MonadIO m) =>
                  MediaQueryList -> Maybe MediaQueryListListener -> m ()
 removeListener self listener
-  = liftIO (js_removeListener (self) (maybeToNullable listener))
+  = liftIO (js_removeListener self (maybeToOptional listener))
  
 foreign import javascript unsafe "$1[\"media\"]" js_getMedia ::
         MediaQueryList -> IO JSString
@@ -54,11 +55,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList.media Mozilla MediaQueryList.media documentation> 
 getMedia ::
          (MonadIO m, FromJSString result) => MediaQueryList -> m result
-getMedia self = liftIO (fromJSString <$> (js_getMedia (self)))
+getMedia self = liftIO (fromJSString <$> (js_getMedia self))
  
 foreign import javascript unsafe "($1[\"matches\"] ? 1 : 0)"
         js_getMatches :: MediaQueryList -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList.matches Mozilla MediaQueryList.matches documentation> 
 getMatches :: (MonadIO m) => MediaQueryList -> m Bool
-getMatches self = liftIO (js_getMatches (self))
+getMatches self = liftIO (js_getMatches self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaQueryListListener.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaQueryListListener.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaQueryListListener.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaQueryListListener.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaRemoteControls.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaRemoteControls.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaRemoteControls.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.MediaRemoteControls
+       (js_newMediaRemoteControls, newMediaRemoteControls,
+        js_setPreviousTrackEnabled, setPreviousTrackEnabled,
+        js_getPreviousTrackEnabled, getPreviousTrackEnabled,
+        js_setNextTrackEnabled, setNextTrackEnabled,
+        js_getNextTrackEnabled, getNextTrackEnabled, previoustrack,
+        nexttrack, MediaRemoteControls(..), gTypeMediaRemoteControls)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"MediaRemoteControls\"]()" js_newMediaRemoteControls
+        :: IO MediaRemoteControls
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaRemoteControls Mozilla MediaRemoteControls documentation> 
+newMediaRemoteControls :: (MonadIO m) => m MediaRemoteControls
+newMediaRemoteControls = liftIO (js_newMediaRemoteControls)
+ 
+foreign import javascript unsafe
+        "$1[\"previousTrackEnabled\"] = $2;" js_setPreviousTrackEnabled ::
+        MediaRemoteControls -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaRemoteControls.previousTrackEnabled Mozilla MediaRemoteControls.previousTrackEnabled documentation> 
+setPreviousTrackEnabled ::
+                        (MonadIO m) => MediaRemoteControls -> Bool -> m ()
+setPreviousTrackEnabled self val
+  = liftIO (js_setPreviousTrackEnabled self val)
+ 
+foreign import javascript unsafe
+        "($1[\"previousTrackEnabled\"] ? 1 : 0)" js_getPreviousTrackEnabled
+        :: MediaRemoteControls -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaRemoteControls.previousTrackEnabled Mozilla MediaRemoteControls.previousTrackEnabled documentation> 
+getPreviousTrackEnabled ::
+                        (MonadIO m) => MediaRemoteControls -> m Bool
+getPreviousTrackEnabled self
+  = liftIO (js_getPreviousTrackEnabled self)
+ 
+foreign import javascript unsafe "$1[\"nextTrackEnabled\"] = $2;"
+        js_setNextTrackEnabled :: MediaRemoteControls -> Bool -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaRemoteControls.nextTrackEnabled Mozilla MediaRemoteControls.nextTrackEnabled documentation> 
+setNextTrackEnabled ::
+                    (MonadIO m) => MediaRemoteControls -> Bool -> m ()
+setNextTrackEnabled self val
+  = liftIO (js_setNextTrackEnabled self val)
+ 
+foreign import javascript unsafe
+        "($1[\"nextTrackEnabled\"] ? 1 : 0)" js_getNextTrackEnabled ::
+        MediaRemoteControls -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaRemoteControls.nextTrackEnabled Mozilla MediaRemoteControls.nextTrackEnabled documentation> 
+getNextTrackEnabled :: (MonadIO m) => MediaRemoteControls -> m Bool
+getNextTrackEnabled self = liftIO (js_getNextTrackEnabled self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaRemoteControls.onprevioustrack Mozilla MediaRemoteControls.onprevioustrack documentation> 
+previoustrack :: EventName MediaRemoteControls onprevioustrack
+previoustrack = unsafeEventName (toJSString "previoustrack")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaRemoteControls.onnexttrack Mozilla MediaRemoteControls.onnexttrack documentation> 
+nexttrack :: EventName MediaRemoteControls onnexttrack
+nexttrack = unsafeEventName (toJSString "nexttrack")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaSession.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaSession.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaSession.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.MediaSession
+       (js_newMediaSession, newMediaSession, js_setMetadata, setMetadata,
+        js_deactivate, deactivate, js_getKind, getKind, js_getControls,
+        getControls, getControlsUnsafe, getControlsUnchecked,
+        MediaSession(..), gTypeMediaSession)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "new window[\"MediaSession\"]($1)"
+        js_newMediaSession :: Optional MediaSessionKind -> IO MediaSession
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSession Mozilla MediaSession documentation> 
+newMediaSession ::
+                (MonadIO m) => Maybe MediaSessionKind -> m MediaSession
+newMediaSession kind
+  = liftIO (js_newMediaSession (maybeToOptional kind))
+ 
+foreign import javascript unsafe "$1[\"setMetadata\"]($2)"
+        js_setMetadata :: MediaSession -> Optional MediaMetadata -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSession.setMetadata Mozilla MediaSession.setMetadata documentation> 
+setMetadata ::
+            (MonadIO m) => MediaSession -> Maybe MediaMetadata -> m ()
+setMetadata self metadata
+  = liftIO (js_setMetadata self (maybeToOptional metadata))
+ 
+foreign import javascript unsafe "$1[\"deactivate\"]()"
+        js_deactivate :: MediaSession -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSession.deactivate Mozilla MediaSession.deactivate documentation> 
+deactivate :: (MonadIO m) => MediaSession -> m ()
+deactivate self = liftIO (js_deactivate self)
+ 
+foreign import javascript unsafe "$1[\"kind\"]" js_getKind ::
+        MediaSession -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSession.kind Mozilla MediaSession.kind documentation> 
+getKind :: (MonadIO m) => MediaSession -> m MediaSessionKind
+getKind self = liftIO ((js_getKind self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"controls\"]" js_getControls
+        :: MediaSession -> IO (Nullable MediaRemoteControls)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSession.controls Mozilla MediaSession.controls documentation> 
+getControls ::
+            (MonadIO m) => MediaSession -> m (Maybe MediaRemoteControls)
+getControls self
+  = liftIO (nullableToMaybe <$> (js_getControls self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSession.controls Mozilla MediaSession.controls documentation> 
+getControlsUnsafe ::
+                  (MonadIO m, HasCallStack) => MediaSession -> m MediaRemoteControls
+getControlsUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getControls self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSession.controls Mozilla MediaSession.controls documentation> 
+getControlsUnchecked ::
+                     (MonadIO m) => MediaSession -> m MediaRemoteControls
+getControlsUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getControls self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaSource.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaSource.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaSource.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaSource.hs
@@ -5,22 +5,22 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MediaSource
        (js_newMediaSource, newMediaSource, js_addSourceBuffer,
-        addSourceBuffer, addSourceBuffer_, addSourceBufferUnsafe,
-        addSourceBufferUnchecked, js_removeSourceBuffer,
+        addSourceBuffer, addSourceBuffer_, js_removeSourceBuffer,
         removeSourceBuffer, js_endOfStream, endOfStream,
         js_isTypeSupported, isTypeSupported, isTypeSupported_,
-        js_getSourceBuffers, getSourceBuffers, getSourceBuffersUnsafe,
-        getSourceBuffersUnchecked, js_getActiveSourceBuffers,
-        getActiveSourceBuffers, getActiveSourceBuffersUnsafe,
-        getActiveSourceBuffersUnchecked, js_setDuration, setDuration,
+        js_setLiveSeekableRange, setLiveSeekableRange,
+        js_clearLiveSeekableRange, clearLiveSeekableRange,
+        js_getSourceBuffers, getSourceBuffers, js_getActiveSourceBuffers,
+        getActiveSourceBuffers, js_setDuration, setDuration,
         js_getDuration, getDuration, js_getReadyState, getReadyState,
-        MediaSource(..), gTypeMediaSource)
+        sourceopen, sourceended, sourceclose, MediaSource(..),
+        gTypeMediaSource)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -29,6 +29,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -42,61 +43,38 @@
 newMediaSource = liftIO (js_newMediaSource)
  
 foreign import javascript unsafe "$1[\"addSourceBuffer\"]($2)"
-        js_addSourceBuffer ::
-        MediaSource -> JSString -> IO (Nullable SourceBuffer)
+        js_addSourceBuffer :: MediaSource -> JSString -> IO SourceBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.addSourceBuffer Mozilla MediaSource.addSourceBuffer documentation> 
 addSourceBuffer ::
                 (MonadIO m, ToJSString type') =>
-                  MediaSource -> type' -> m (Maybe SourceBuffer)
+                  MediaSource -> type' -> m SourceBuffer
 addSourceBuffer self type'
-  = liftIO
-      (nullableToMaybe <$>
-         (js_addSourceBuffer (self) (toJSString type')))
+  = liftIO (js_addSourceBuffer self (toJSString type'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.addSourceBuffer Mozilla MediaSource.addSourceBuffer documentation> 
 addSourceBuffer_ ::
                  (MonadIO m, ToJSString type') => MediaSource -> type' -> m ()
 addSourceBuffer_ self type'
-  = liftIO (void (js_addSourceBuffer (self) (toJSString type')))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.addSourceBuffer Mozilla MediaSource.addSourceBuffer documentation> 
-addSourceBufferUnsafe ::
-                      (MonadIO m, ToJSString type', HasCallStack) =>
-                        MediaSource -> type' -> m SourceBuffer
-addSourceBufferUnsafe self type'
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_addSourceBuffer (self) (toJSString type')))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.addSourceBuffer Mozilla MediaSource.addSourceBuffer documentation> 
-addSourceBufferUnchecked ::
-                         (MonadIO m, ToJSString type') =>
-                           MediaSource -> type' -> m SourceBuffer
-addSourceBufferUnchecked self type'
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_addSourceBuffer (self) (toJSString type')))
+  = liftIO (void (js_addSourceBuffer self (toJSString type')))
  
 foreign import javascript unsafe "$1[\"removeSourceBuffer\"]($2)"
-        js_removeSourceBuffer ::
-        MediaSource -> Nullable SourceBuffer -> IO ()
+        js_removeSourceBuffer :: MediaSource -> SourceBuffer -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.removeSourceBuffer Mozilla MediaSource.removeSourceBuffer documentation> 
 removeSourceBuffer ::
-                   (MonadIO m) => MediaSource -> Maybe SourceBuffer -> m ()
+                   (MonadIO m) => MediaSource -> SourceBuffer -> m ()
 removeSourceBuffer self buffer
-  = liftIO (js_removeSourceBuffer (self) (maybeToNullable buffer))
+  = liftIO (js_removeSourceBuffer self buffer)
  
 foreign import javascript unsafe "$1[\"endOfStream\"]($2)"
-        js_endOfStream :: MediaSource -> JSVal -> IO ()
+        js_endOfStream :: MediaSource -> Optional EndOfStreamError -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.endOfStream Mozilla MediaSource.endOfStream documentation> 
 endOfStream ::
-            (MonadIO m) => MediaSource -> EndOfStreamError -> m ()
+            (MonadIO m) => MediaSource -> Maybe EndOfStreamError -> m ()
 endOfStream self error
-  = liftIO (js_endOfStream (self) (pToJSVal error))
+  = liftIO (js_endOfStream self (maybeToOptional error))
  
 foreign import javascript unsafe
         "($1[\"isTypeSupported\"]($2) ? 1 : 0)" js_isTypeSupported ::
@@ -106,77 +84,62 @@
 isTypeSupported ::
                 (MonadIO m, ToJSString type') => MediaSource -> type' -> m Bool
 isTypeSupported self type'
-  = liftIO (js_isTypeSupported (self) (toJSString type'))
+  = liftIO (js_isTypeSupported self (toJSString type'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.isTypeSupported Mozilla MediaSource.isTypeSupported documentation> 
 isTypeSupported_ ::
                  (MonadIO m, ToJSString type') => MediaSource -> type' -> m ()
 isTypeSupported_ self type'
-  = liftIO (void (js_isTypeSupported (self) (toJSString type')))
+  = liftIO (void (js_isTypeSupported self (toJSString type')))
  
-foreign import javascript unsafe "$1[\"sourceBuffers\"]"
-        js_getSourceBuffers ::
-        MediaSource -> IO (Nullable SourceBufferList)
+foreign import javascript unsafe
+        "$1[\"setLiveSeekableRange\"]($2,\n$3)" js_setLiveSeekableRange ::
+        MediaSource -> Double -> Double -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.sourceBuffers Mozilla MediaSource.sourceBuffers documentation> 
-getSourceBuffers ::
-                 (MonadIO m) => MediaSource -> m (Maybe SourceBufferList)
-getSourceBuffers self
-  = liftIO (nullableToMaybe <$> (js_getSourceBuffers (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.setLiveSeekableRange Mozilla MediaSource.setLiveSeekableRange documentation> 
+setLiveSeekableRange ::
+                     (MonadIO m) => MediaSource -> Double -> Double -> m ()
+setLiveSeekableRange self start end
+  = liftIO (js_setLiveSeekableRange self start end)
+ 
+foreign import javascript unsafe "$1[\"clearLiveSeekableRange\"]()"
+        js_clearLiveSeekableRange :: MediaSource -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.sourceBuffers Mozilla MediaSource.sourceBuffers documentation> 
-getSourceBuffersUnsafe ::
-                       (MonadIO m, HasCallStack) => MediaSource -> m SourceBufferList
-getSourceBuffersUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSourceBuffers (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.clearLiveSeekableRange Mozilla MediaSource.clearLiveSeekableRange documentation> 
+clearLiveSeekableRange :: (MonadIO m) => MediaSource -> m ()
+clearLiveSeekableRange self
+  = liftIO (js_clearLiveSeekableRange self)
+ 
+foreign import javascript unsafe "$1[\"sourceBuffers\"]"
+        js_getSourceBuffers :: MediaSource -> IO SourceBufferList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.sourceBuffers Mozilla MediaSource.sourceBuffers documentation> 
-getSourceBuffersUnchecked ::
-                          (MonadIO m) => MediaSource -> m SourceBufferList
-getSourceBuffersUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSourceBuffers (self)))
+getSourceBuffers ::
+                 (MonadIO m) => MediaSource -> m SourceBufferList
+getSourceBuffers self = liftIO (js_getSourceBuffers self)
  
 foreign import javascript unsafe "$1[\"activeSourceBuffers\"]"
-        js_getActiveSourceBuffers ::
-        MediaSource -> IO (Nullable SourceBufferList)
+        js_getActiveSourceBuffers :: MediaSource -> IO SourceBufferList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.activeSourceBuffers Mozilla MediaSource.activeSourceBuffers documentation> 
 getActiveSourceBuffers ::
-                       (MonadIO m) => MediaSource -> m (Maybe SourceBufferList)
+                       (MonadIO m) => MediaSource -> m SourceBufferList
 getActiveSourceBuffers self
-  = liftIO (nullableToMaybe <$> (js_getActiveSourceBuffers (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.activeSourceBuffers Mozilla MediaSource.activeSourceBuffers documentation> 
-getActiveSourceBuffersUnsafe ::
-                             (MonadIO m, HasCallStack) => MediaSource -> m SourceBufferList
-getActiveSourceBuffersUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getActiveSourceBuffers (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.activeSourceBuffers Mozilla MediaSource.activeSourceBuffers documentation> 
-getActiveSourceBuffersUnchecked ::
-                                (MonadIO m) => MediaSource -> m SourceBufferList
-getActiveSourceBuffersUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getActiveSourceBuffers (self)))
+  = liftIO (js_getActiveSourceBuffers self)
  
 foreign import javascript unsafe "$1[\"duration\"] = $2;"
         js_setDuration :: MediaSource -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.duration Mozilla MediaSource.duration documentation> 
 setDuration :: (MonadIO m) => MediaSource -> Double -> m ()
-setDuration self val = liftIO (js_setDuration (self) val)
+setDuration self val = liftIO (js_setDuration self val)
  
 foreign import javascript unsafe "$1[\"duration\"]" js_getDuration
         :: MediaSource -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.duration Mozilla MediaSource.duration documentation> 
 getDuration :: (MonadIO m) => MediaSource -> m Double
-getDuration self = liftIO (js_getDuration (self))
+getDuration self = liftIO (js_getDuration self)
  
 foreign import javascript unsafe "$1[\"readyState\"]"
         js_getReadyState :: MediaSource -> IO JSString
@@ -185,4 +148,16 @@
 getReadyState ::
               (MonadIO m, FromJSString result) => MediaSource -> m result
 getReadyState self
-  = liftIO (fromJSString <$> (js_getReadyState (self)))
+  = liftIO (fromJSString <$> (js_getReadyState self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.onsourceopen Mozilla MediaSource.onsourceopen documentation> 
+sourceopen :: EventName MediaSource onsourceopen
+sourceopen = unsafeEventName (toJSString "sourceopen")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.onsourceended Mozilla MediaSource.onsourceended documentation> 
+sourceended :: EventName MediaSource onsourceended
+sourceended = unsafeEventName (toJSString "sourceended")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource.onsourceclose Mozilla MediaSource.onsourceclose documentation> 
+sourceclose :: EventName MediaSource onsourceclose
+sourceclose = unsafeEventName (toJSString "sourceclose")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaSourceStates.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaSourceStates.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaSourceStates.hs
+++ /dev/null
@@ -1,167 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.MediaSourceStates
-       (js_getSourceType, getSourceType, js_getSourceId, getSourceId,
-        js_getWidth, getWidth, getWidthUnsafe, getWidthUnchecked,
-        js_getHeight, getHeight, getHeightUnsafe, getHeightUnchecked,
-        js_getFrameRate, getFrameRate, getFrameRateUnsafe,
-        getFrameRateUnchecked, js_getAspectRatio, getAspectRatio,
-        getAspectRatioUnsafe, getAspectRatioUnchecked, js_getFacingMode,
-        getFacingMode, js_getVolume, getVolume, getVolumeUnsafe,
-        getVolumeUnchecked, MediaSourceStates(..), gTypeMediaSourceStates)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"sourceType\"]"
-        js_getSourceType :: MediaSourceStates -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.sourceType Mozilla MediaSourceStates.sourceType documentation> 
-getSourceType ::
-              (MonadIO m) => MediaSourceStates -> m SourceTypeEnum
-getSourceType self
-  = liftIO ((js_getSourceType (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"sourceId\"]" js_getSourceId
-        :: MediaSourceStates -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.sourceId Mozilla MediaSourceStates.sourceId documentation> 
-getSourceId ::
-            (MonadIO m, FromJSString result) => MediaSourceStates -> m result
-getSourceId self
-  = liftIO (fromJSString <$> (js_getSourceId (self)))
- 
-foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        MediaSourceStates -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.width Mozilla MediaSourceStates.width documentation> 
-getWidth :: (MonadIO m) => MediaSourceStates -> m (Maybe Word)
-getWidth self
-  = liftIO ((js_getWidth (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.width Mozilla MediaSourceStates.width documentation> 
-getWidthUnsafe ::
-               (MonadIO m, HasCallStack) => MediaSourceStates -> m Word
-getWidthUnsafe self
-  = liftIO
-      (((js_getWidth (self)) >>= fromJSValUnchecked) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.width Mozilla MediaSourceStates.width documentation> 
-getWidthUnchecked :: (MonadIO m) => MediaSourceStates -> m Word
-getWidthUnchecked self
-  = liftIO ((js_getWidth (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        MediaSourceStates -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.height Mozilla MediaSourceStates.height documentation> 
-getHeight :: (MonadIO m) => MediaSourceStates -> m (Maybe Word)
-getHeight self
-  = liftIO ((js_getHeight (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.height Mozilla MediaSourceStates.height documentation> 
-getHeightUnsafe ::
-                (MonadIO m, HasCallStack) => MediaSourceStates -> m Word
-getHeightUnsafe self
-  = liftIO
-      (((js_getHeight (self)) >>= fromJSValUnchecked) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.height Mozilla MediaSourceStates.height documentation> 
-getHeightUnchecked :: (MonadIO m) => MediaSourceStates -> m Word
-getHeightUnchecked self
-  = liftIO ((js_getHeight (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"frameRate\"]"
-        js_getFrameRate :: MediaSourceStates -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.frameRate Mozilla MediaSourceStates.frameRate documentation> 
-getFrameRate :: (MonadIO m) => MediaSourceStates -> m (Maybe Float)
-getFrameRate self
-  = liftIO ((js_getFrameRate (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.frameRate Mozilla MediaSourceStates.frameRate documentation> 
-getFrameRateUnsafe ::
-                   (MonadIO m, HasCallStack) => MediaSourceStates -> m Float
-getFrameRateUnsafe self
-  = liftIO
-      (((js_getFrameRate (self)) >>= fromJSValUnchecked) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.frameRate Mozilla MediaSourceStates.frameRate documentation> 
-getFrameRateUnchecked ::
-                      (MonadIO m) => MediaSourceStates -> m Float
-getFrameRateUnchecked self
-  = liftIO ((js_getFrameRate (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"aspectRatio\"]"
-        js_getAspectRatio :: MediaSourceStates -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.aspectRatio Mozilla MediaSourceStates.aspectRatio documentation> 
-getAspectRatio ::
-               (MonadIO m) => MediaSourceStates -> m (Maybe Float)
-getAspectRatio self
-  = liftIO ((js_getAspectRatio (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.aspectRatio Mozilla MediaSourceStates.aspectRatio documentation> 
-getAspectRatioUnsafe ::
-                     (MonadIO m, HasCallStack) => MediaSourceStates -> m Float
-getAspectRatioUnsafe self
-  = liftIO
-      (((js_getAspectRatio (self)) >>= fromJSValUnchecked) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.aspectRatio Mozilla MediaSourceStates.aspectRatio documentation> 
-getAspectRatioUnchecked ::
-                        (MonadIO m) => MediaSourceStates -> m Float
-getAspectRatioUnchecked self
-  = liftIO ((js_getAspectRatio (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"facingMode\"]"
-        js_getFacingMode :: MediaSourceStates -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.facingMode Mozilla MediaSourceStates.facingMode documentation> 
-getFacingMode ::
-              (MonadIO m) => MediaSourceStates -> m VideoFacingModeEnum
-getFacingMode self
-  = liftIO ((js_getFacingMode (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"volume\"]" js_getVolume ::
-        MediaSourceStates -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.volume Mozilla MediaSourceStates.volume documentation> 
-getVolume :: (MonadIO m) => MediaSourceStates -> m (Maybe Word)
-getVolume self
-  = liftIO ((js_getVolume (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.volume Mozilla MediaSourceStates.volume documentation> 
-getVolumeUnsafe ::
-                (MonadIO m, HasCallStack) => MediaSourceStates -> m Word
-getVolumeUnsafe self
-  = liftIO
-      (((js_getVolume (self)) >>= fromJSValUnchecked) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates.volume Mozilla MediaSourceStates.volume documentation> 
-getVolumeUnchecked :: (MonadIO m) => MediaSourceStates -> m Word
-getVolumeUnchecked self
-  = liftIO ((js_getVolume (self)) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaStream.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaStream.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaStream.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaStream.hs
@@ -8,18 +8,17 @@
         newMediaStream', js_newMediaStream'', newMediaStream'',
         js_getAudioTracks, getAudioTracks, getAudioTracks_,
         js_getVideoTracks, getVideoTracks, getVideoTracks_, js_getTracks,
-        getTracks, getTracks_, js_addTrack, addTrack, js_removeTrack,
-        removeTrack, js_getTrackById, getTrackById, getTrackById_,
-        getTrackByIdUnsafe, getTrackByIdUnchecked, js_clone, clone, clone_,
-        cloneUnsafe, cloneUnchecked, js_getId, getId, js_getActive,
-        getActive, active, inactive, addTrackEvent, removeTrackEvent,
-        MediaStream(..), gTypeMediaStream)
+        getTracks, getTracks_, js_getTrackById, getTrackById,
+        getTrackById_, js_addTrack, addTrack, js_removeTrack, removeTrack,
+        js_clone, clone, clone_, js_getId, getId, js_getActive, getActive,
+        active, inactive, addTrackEvent, removeTrackEvent, MediaStream(..),
+        gTypeMediaStream)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +27,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -43,13 +43,11 @@
  
 foreign import javascript unsafe
         "new window[\"webkitMediaStream\"]($1)" js_newMediaStream' ::
-        Nullable MediaStream -> IO MediaStream
+        MediaStream -> IO MediaStream
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream Mozilla webkitMediaStream documentation> 
-newMediaStream' ::
-                (MonadIO m) => Maybe MediaStream -> m MediaStream
-newMediaStream' stream
-  = liftIO (js_newMediaStream' (maybeToNullable stream))
+newMediaStream' :: (MonadIO m) => MediaStream -> m MediaStream
+newMediaStream' stream = liftIO (js_newMediaStream' stream)
  
 foreign import javascript unsafe
         "new window[\"webkitMediaStream\"]($1)" js_newMediaStream'' ::
@@ -57,8 +55,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream Mozilla webkitMediaStream documentation> 
 newMediaStream'' ::
-                 (MonadIO m, IsMediaStreamTrack tracks) =>
-                   [Maybe tracks] -> m MediaStream
+                 (MonadIO m) => [MediaStreamTrack] -> m MediaStream
 newMediaStream'' tracks
   = liftIO
       (toJSVal tracks >>= \ tracks' -> js_newMediaStream'' tracks')
@@ -68,124 +65,80 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.getAudioTracks Mozilla webkitMediaStream.getAudioTracks documentation> 
 getAudioTracks ::
-               (MonadIO m) => MediaStream -> m [Maybe MediaStreamTrack]
+               (MonadIO m) => MediaStream -> m [MediaStreamTrack]
 getAudioTracks self
-  = liftIO ((js_getAudioTracks (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_getAudioTracks self) >>= fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.getAudioTracks Mozilla webkitMediaStream.getAudioTracks documentation> 
 getAudioTracks_ :: (MonadIO m) => MediaStream -> m ()
-getAudioTracks_ self = liftIO (void (js_getAudioTracks (self)))
+getAudioTracks_ self = liftIO (void (js_getAudioTracks self))
  
 foreign import javascript unsafe "$1[\"getVideoTracks\"]()"
         js_getVideoTracks :: MediaStream -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.getVideoTracks Mozilla webkitMediaStream.getVideoTracks documentation> 
 getVideoTracks ::
-               (MonadIO m) => MediaStream -> m [Maybe MediaStreamTrack]
+               (MonadIO m) => MediaStream -> m [MediaStreamTrack]
 getVideoTracks self
-  = liftIO ((js_getVideoTracks (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_getVideoTracks self) >>= fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.getVideoTracks Mozilla webkitMediaStream.getVideoTracks documentation> 
 getVideoTracks_ :: (MonadIO m) => MediaStream -> m ()
-getVideoTracks_ self = liftIO (void (js_getVideoTracks (self)))
+getVideoTracks_ self = liftIO (void (js_getVideoTracks self))
  
 foreign import javascript unsafe "$1[\"getTracks\"]()" js_getTracks
         :: MediaStream -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.getTracks Mozilla webkitMediaStream.getTracks documentation> 
-getTracks ::
-          (MonadIO m) => MediaStream -> m [Maybe MediaStreamTrack]
+getTracks :: (MonadIO m) => MediaStream -> m [MediaStreamTrack]
 getTracks self
-  = liftIO ((js_getTracks (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_getTracks self) >>= fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.getTracks Mozilla webkitMediaStream.getTracks documentation> 
 getTracks_ :: (MonadIO m) => MediaStream -> m ()
-getTracks_ self = liftIO (void (js_getTracks (self)))
- 
-foreign import javascript unsafe "$1[\"addTrack\"]($2)" js_addTrack
-        :: MediaStream -> Nullable MediaStreamTrack -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.addTrack Mozilla webkitMediaStream.addTrack documentation> 
-addTrack ::
-         (MonadIO m, IsMediaStreamTrack track) =>
-           MediaStream -> Maybe track -> m ()
-addTrack self track
-  = liftIO
-      (js_addTrack (self)
-         (maybeToNullable (fmap toMediaStreamTrack track)))
- 
-foreign import javascript unsafe "$1[\"removeTrack\"]($2)"
-        js_removeTrack :: MediaStream -> Nullable MediaStreamTrack -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.removeTrack Mozilla webkitMediaStream.removeTrack documentation> 
-removeTrack ::
-            (MonadIO m, IsMediaStreamTrack track) =>
-              MediaStream -> Maybe track -> m ()
-removeTrack self track
-  = liftIO
-      (js_removeTrack (self)
-         (maybeToNullable (fmap toMediaStreamTrack track)))
+getTracks_ self = liftIO (void (js_getTracks self))
  
 foreign import javascript unsafe "$1[\"getTrackById\"]($2)"
-        js_getTrackById ::
-        MediaStream -> JSString -> IO (Nullable MediaStreamTrack)
+        js_getTrackById :: MediaStream -> JSString -> IO MediaStreamTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.getTrackById Mozilla webkitMediaStream.getTrackById documentation> 
 getTrackById ::
              (MonadIO m, ToJSString trackId) =>
-               MediaStream -> trackId -> m (Maybe MediaStreamTrack)
+               MediaStream -> trackId -> m MediaStreamTrack
 getTrackById self trackId
-  = liftIO
-      (nullableToMaybe <$> (js_getTrackById (self) (toJSString trackId)))
+  = liftIO (js_getTrackById self (toJSString trackId))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.getTrackById Mozilla webkitMediaStream.getTrackById documentation> 
 getTrackById_ ::
               (MonadIO m, ToJSString trackId) => MediaStream -> trackId -> m ()
 getTrackById_ self trackId
-  = liftIO (void (js_getTrackById (self) (toJSString trackId)))
+  = liftIO (void (js_getTrackById self (toJSString trackId)))
+ 
+foreign import javascript unsafe "$1[\"addTrack\"]($2)" js_addTrack
+        :: MediaStream -> MediaStreamTrack -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.getTrackById Mozilla webkitMediaStream.getTrackById documentation> 
-getTrackByIdUnsafe ::
-                   (MonadIO m, ToJSString trackId, HasCallStack) =>
-                     MediaStream -> trackId -> m MediaStreamTrack
-getTrackByIdUnsafe self trackId
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getTrackById (self) (toJSString trackId)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.addTrack Mozilla webkitMediaStream.addTrack documentation> 
+addTrack :: (MonadIO m) => MediaStream -> MediaStreamTrack -> m ()
+addTrack self track = liftIO (js_addTrack self track)
+ 
+foreign import javascript unsafe "$1[\"removeTrack\"]($2)"
+        js_removeTrack :: MediaStream -> MediaStreamTrack -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.getTrackById Mozilla webkitMediaStream.getTrackById documentation> 
-getTrackByIdUnchecked ::
-                      (MonadIO m, ToJSString trackId) =>
-                        MediaStream -> trackId -> m MediaStreamTrack
-getTrackByIdUnchecked self trackId
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTrackById (self) (toJSString trackId)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.removeTrack Mozilla webkitMediaStream.removeTrack documentation> 
+removeTrack ::
+            (MonadIO m) => MediaStream -> MediaStreamTrack -> m ()
+removeTrack self track = liftIO (js_removeTrack self track)
  
 foreign import javascript unsafe "$1[\"clone\"]()" js_clone ::
-        MediaStream -> IO (Nullable MediaStream)
+        MediaStream -> IO MediaStream
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.clone Mozilla webkitMediaStream.clone documentation> 
-clone :: (MonadIO m) => MediaStream -> m (Maybe MediaStream)
-clone self = liftIO (nullableToMaybe <$> (js_clone (self)))
+clone :: (MonadIO m) => MediaStream -> m MediaStream
+clone self = liftIO (js_clone self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.clone Mozilla webkitMediaStream.clone documentation> 
 clone_ :: (MonadIO m) => MediaStream -> m ()
-clone_ self = liftIO (void (js_clone (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.clone Mozilla webkitMediaStream.clone documentation> 
-cloneUnsafe ::
-            (MonadIO m, HasCallStack) => MediaStream -> m MediaStream
-cloneUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_clone (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.clone Mozilla webkitMediaStream.clone documentation> 
-cloneUnchecked :: (MonadIO m) => MediaStream -> m MediaStream
-cloneUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_clone (self)))
+clone_ self = liftIO (void (js_clone self))
  
 foreign import javascript unsafe "$1[\"id\"]" js_getId ::
         MediaStream -> IO JSString
@@ -193,14 +146,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.id Mozilla webkitMediaStream.id documentation> 
 getId ::
       (MonadIO m, FromJSString result) => MediaStream -> m result
-getId self = liftIO (fromJSString <$> (js_getId (self)))
+getId self = liftIO (fromJSString <$> (js_getId self))
  
 foreign import javascript unsafe "($1[\"active\"] ? 1 : 0)"
         js_getActive :: MediaStream -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.active Mozilla webkitMediaStream.active documentation> 
 getActive :: (MonadIO m) => MediaStream -> m Bool
-getActive self = liftIO (js_getActive (self))
+getActive self = liftIO (js_getActive self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream.onactive Mozilla webkitMediaStream.onactive documentation> 
 active :: EventName MediaStream Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamAudioDestinationNode.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaStreamAudioDestinationNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamAudioDestinationNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaStreamAudioDestinationNode.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MediaStreamAudioDestinationNode
-       (js_getStream, getStream, getStreamUnsafe, getStreamUnchecked,
-        MediaStreamAudioDestinationNode(..),
+       (js_getStream, getStream, MediaStreamAudioDestinationNode(..),
         gTypeMediaStreamAudioDestinationNode)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,31 +20,16 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"stream\"]" js_getStream ::
-        MediaStreamAudioDestinationNode -> IO (Nullable MediaStream)
+        MediaStreamAudioDestinationNode -> IO MediaStream
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioDestinationNode.stream Mozilla MediaStreamAudioDestinationNode.stream documentation> 
 getStream ::
-          (MonadIO m) =>
-            MediaStreamAudioDestinationNode -> m (Maybe MediaStream)
-getStream self = liftIO (nullableToMaybe <$> (js_getStream (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioDestinationNode.stream Mozilla MediaStreamAudioDestinationNode.stream documentation> 
-getStreamUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  MediaStreamAudioDestinationNode -> m MediaStream
-getStreamUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStream (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioDestinationNode.stream Mozilla MediaStreamAudioDestinationNode.stream documentation> 
-getStreamUnchecked ::
-                   (MonadIO m) => MediaStreamAudioDestinationNode -> m MediaStream
-getStreamUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getStream (self)))
+          (MonadIO m) => MediaStreamAudioDestinationNode -> m MediaStream
+getStream self = liftIO (js_getStream self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamAudioSourceNode.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaStreamAudioSourceNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamAudioSourceNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaStreamAudioSourceNode.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MediaStreamAudioSourceNode
-       (js_getMediaStream, getMediaStream, getMediaStreamUnsafe,
-        getMediaStreamUnchecked, MediaStreamAudioSourceNode(..),
+       (js_getMediaStream, getMediaStream, MediaStreamAudioSourceNode(..),
         gTypeMediaStreamAudioSourceNode)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,33 +20,16 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"mediaStream\"]"
-        js_getMediaStream ::
-        MediaStreamAudioSourceNode -> IO (Nullable MediaStream)
+        js_getMediaStream :: MediaStreamAudioSourceNode -> IO MediaStream
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioSourceNode.mediaStream Mozilla MediaStreamAudioSourceNode.mediaStream documentation> 
 getMediaStream ::
-               (MonadIO m) => MediaStreamAudioSourceNode -> m (Maybe MediaStream)
-getMediaStream self
-  = liftIO (nullableToMaybe <$> (js_getMediaStream (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioSourceNode.mediaStream Mozilla MediaStreamAudioSourceNode.mediaStream documentation> 
-getMediaStreamUnsafe ::
-                     (MonadIO m, HasCallStack) =>
-                       MediaStreamAudioSourceNode -> m MediaStream
-getMediaStreamUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMediaStream (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioSourceNode.mediaStream Mozilla MediaStreamAudioSourceNode.mediaStream documentation> 
-getMediaStreamUnchecked ::
-                        (MonadIO m) => MediaStreamAudioSourceNode -> m MediaStream
-getMediaStreamUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getMediaStream (self)))
+               (MonadIO m) => MediaStreamAudioSourceNode -> m MediaStream
+getMediaStream self = liftIO (js_getMediaStream self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaStreamEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaStreamEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MediaStreamEvent
-       (js_getStream, getStream, getStreamUnsafe, getStreamUnchecked,
+       (js_newMediaStreamEvent, newMediaStreamEvent, js_getStream,
+        getStream, getStreamUnsafe, getStreamUnchecked,
         MediaStreamEvent(..), gTypeMediaStreamEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,29 +21,43 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"MediaStreamEvent\"]($1,\n$2)" js_newMediaStreamEvent
+        :: JSString -> Optional MediaStreamEventInit -> IO MediaStreamEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamEvent Mozilla MediaStreamEvent documentation> 
+newMediaStreamEvent ::
+                    (MonadIO m, ToJSString type') =>
+                      type' -> Maybe MediaStreamEventInit -> m MediaStreamEvent
+newMediaStreamEvent type' eventInitDict
+  = liftIO
+      (js_newMediaStreamEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"stream\"]" js_getStream ::
         MediaStreamEvent -> IO (Nullable MediaStream)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamEvent.stream Mozilla MediaStreamEvent.stream documentation> 
 getStream ::
           (MonadIO m) => MediaStreamEvent -> m (Maybe MediaStream)
-getStream self = liftIO (nullableToMaybe <$> (js_getStream (self)))
+getStream self = liftIO (nullableToMaybe <$> (js_getStream self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamEvent.stream Mozilla MediaStreamEvent.stream documentation> 
 getStreamUnsafe ::
                 (MonadIO m, HasCallStack) => MediaStreamEvent -> m MediaStream
 getStreamUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getStream (self))) >>=
+      ((nullableToMaybe <$> (js_getStream self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamEvent.stream Mozilla MediaStreamEvent.stream documentation> 
 getStreamUnchecked ::
                    (MonadIO m) => MediaStreamEvent -> m MediaStream
 getStreamUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getStream (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getStream self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamTrack.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaStreamTrack.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamTrack.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaStreamTrack.hs
@@ -4,25 +4,21 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MediaStreamTrack
-       (js_getSources, getSources, js_getConstraints, getConstraints,
-        getConstraints_, getConstraintsUnsafe, getConstraintsUnchecked,
-        js_states, states, states_, statesUnsafe, statesUnchecked,
-        js_getCapabilities, getCapabilities, getCapabilities_,
-        getCapabilitiesUnsafe, getCapabilitiesUnchecked,
-        js_applyConstraints, applyConstraints, js_clone, clone, clone_,
-        cloneUnsafe, cloneUnchecked, js_stop, stop, js_getKind, getKind,
-        js_getId, getId, js_getLabel, getLabel, js_setEnabled, setEnabled,
-        js_getEnabled, getEnabled, js_getMuted, getMuted, mute, unmute,
-        js_get_readonly, get_readonly, js_getRemote, getRemote,
-        js_getReadyState, getReadyState, started, ended, overConstrained,
-        MediaStreamTrack(..), gTypeMediaStreamTrack, IsMediaStreamTrack,
-        toMediaStreamTrack)
+       (js_clone, clone, clone_, js_stop, stop, js_getConstraints,
+        getConstraints, getConstraints_, js_getSettings, getSettings,
+        getSettings_, js_getCapabilities, getCapabilities,
+        getCapabilities_, js_applyConstraints, applyConstraints,
+        js_getKind, getKind, js_getId, getId, js_getLabel, getLabel,
+        js_setEnabled, setEnabled, js_getEnabled, getEnabled, js_getMuted,
+        getMuted, mute, unmute, js_get_readonly, get_readonly,
+        js_getRemote, getRemote, js_getReadyState, getReadyState, ended,
+        overConstrained, MediaStreamTrack(..), gTypeMediaStreamTrack)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -31,291 +27,157 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"getSources\"]($2)"
-        js_getSources ::
-        MediaStreamTrack ->
-          Nullable MediaStreamTrackSourcesCallback -> IO ()
+foreign import javascript unsafe "$1[\"clone\"]()" js_clone ::
+        MediaStreamTrack -> IO MediaStreamTrack
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getSources Mozilla MediaStreamTrack.getSources documentation> 
-getSources ::
-           (MonadIO m, IsMediaStreamTrack self) =>
-             self -> Maybe MediaStreamTrackSourcesCallback -> m ()
-getSources self callback
-  = liftIO
-      (js_getSources (toMediaStreamTrack self)
-         (maybeToNullable callback))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.clone Mozilla MediaStreamTrack.clone documentation> 
+clone :: (MonadIO m) => MediaStreamTrack -> m MediaStreamTrack
+clone self = liftIO (js_clone self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.clone Mozilla MediaStreamTrack.clone documentation> 
+clone_ :: (MonadIO m) => MediaStreamTrack -> m ()
+clone_ self = liftIO (void (js_clone self))
  
+foreign import javascript unsafe "$1[\"stop\"]()" js_stop ::
+        MediaStreamTrack -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.stop Mozilla MediaStreamTrack.stop documentation> 
+stop :: (MonadIO m) => MediaStreamTrack -> m ()
+stop self = liftIO (js_stop self)
+ 
 foreign import javascript unsafe "$1[\"getConstraints\"]()"
-        js_getConstraints ::
-        MediaStreamTrack -> IO (Nullable MediaTrackConstraints)
+        js_getConstraints :: MediaStreamTrack -> IO MediaTrackConstraints
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getConstraints Mozilla MediaStreamTrack.getConstraints documentation> 
 getConstraints ::
-               (MonadIO m, IsMediaStreamTrack self) =>
-                 self -> m (Maybe MediaTrackConstraints)
-getConstraints self
-  = liftIO
-      (nullableToMaybe <$> (js_getConstraints (toMediaStreamTrack self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getConstraints Mozilla MediaStreamTrack.getConstraints documentation> 
-getConstraints_ ::
-                (MonadIO m, IsMediaStreamTrack self) => self -> m ()
-getConstraints_ self
-  = liftIO (void (js_getConstraints (toMediaStreamTrack self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getConstraints Mozilla MediaStreamTrack.getConstraints documentation> 
-getConstraintsUnsafe ::
-                     (MonadIO m, IsMediaStreamTrack self, HasCallStack) =>
-                       self -> m MediaTrackConstraints
-getConstraintsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getConstraints (toMediaStreamTrack self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+               (MonadIO m) => MediaStreamTrack -> m MediaTrackConstraints
+getConstraints self = liftIO (js_getConstraints self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getConstraints Mozilla MediaStreamTrack.getConstraints documentation> 
-getConstraintsUnchecked ::
-                        (MonadIO m, IsMediaStreamTrack self) =>
-                          self -> m MediaTrackConstraints
-getConstraintsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getConstraints (toMediaStreamTrack self)))
+getConstraints_ :: (MonadIO m) => MediaStreamTrack -> m ()
+getConstraints_ self = liftIO (void (js_getConstraints self))
  
-foreign import javascript unsafe "$1[\"states\"]()" js_states ::
-        MediaStreamTrack -> IO (Nullable MediaSourceStates)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.states Mozilla MediaStreamTrack.states documentation> 
-states ::
-       (MonadIO m, IsMediaStreamTrack self) =>
-         self -> m (Maybe MediaSourceStates)
-states self
-  = liftIO
-      (nullableToMaybe <$> (js_states (toMediaStreamTrack self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.states Mozilla MediaStreamTrack.states documentation> 
-states_ :: (MonadIO m, IsMediaStreamTrack self) => self -> m ()
-states_ self = liftIO (void (js_states (toMediaStreamTrack self)))
+foreign import javascript unsafe "$1[\"getSettings\"]()"
+        js_getSettings :: MediaStreamTrack -> IO MediaTrackSettings
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.states Mozilla MediaStreamTrack.states documentation> 
-statesUnsafe ::
-             (MonadIO m, IsMediaStreamTrack self, HasCallStack) =>
-               self -> m MediaSourceStates
-statesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_states (toMediaStreamTrack self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getSettings Mozilla MediaStreamTrack.getSettings documentation> 
+getSettings ::
+            (MonadIO m) => MediaStreamTrack -> m MediaTrackSettings
+getSettings self = liftIO (js_getSettings self)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.states Mozilla MediaStreamTrack.states documentation> 
-statesUnchecked ::
-                (MonadIO m, IsMediaStreamTrack self) => self -> m MediaSourceStates
-statesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_states (toMediaStreamTrack self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getSettings Mozilla MediaStreamTrack.getSettings documentation> 
+getSettings_ :: (MonadIO m) => MediaStreamTrack -> m ()
+getSettings_ self = liftIO (void (js_getSettings self))
  
 foreign import javascript unsafe "$1[\"getCapabilities\"]()"
-        js_getCapabilities ::
-        MediaStreamTrack -> IO (Nullable MediaStreamCapabilities)
+        js_getCapabilities :: MediaStreamTrack -> IO MediaTrackCapabilities
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getCapabilities Mozilla MediaStreamTrack.getCapabilities documentation> 
 getCapabilities ::
-                (MonadIO m, IsMediaStreamTrack self) =>
-                  self -> m (Maybe MediaStreamCapabilities)
-getCapabilities self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getCapabilities (toMediaStreamTrack self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getCapabilities Mozilla MediaStreamTrack.getCapabilities documentation> 
-getCapabilities_ ::
-                 (MonadIO m, IsMediaStreamTrack self) => self -> m ()
-getCapabilities_ self
-  = liftIO (void (js_getCapabilities (toMediaStreamTrack self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getCapabilities Mozilla MediaStreamTrack.getCapabilities documentation> 
-getCapabilitiesUnsafe ::
-                      (MonadIO m, IsMediaStreamTrack self, HasCallStack) =>
-                        self -> m MediaStreamCapabilities
-getCapabilitiesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getCapabilities (toMediaStreamTrack self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+                (MonadIO m) => MediaStreamTrack -> m MediaTrackCapabilities
+getCapabilities self = liftIO (js_getCapabilities self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getCapabilities Mozilla MediaStreamTrack.getCapabilities documentation> 
-getCapabilitiesUnchecked ::
-                         (MonadIO m, IsMediaStreamTrack self) =>
-                           self -> m MediaStreamCapabilities
-getCapabilitiesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getCapabilities (toMediaStreamTrack self)))
+getCapabilities_ :: (MonadIO m) => MediaStreamTrack -> m ()
+getCapabilities_ self = liftIO (void (js_getCapabilities self))
  
-foreign import javascript unsafe "$1[\"applyConstraints\"]($2)"
-        js_applyConstraints ::
-        MediaStreamTrack -> Nullable Dictionary -> IO ()
+foreign import javascript interruptible
+        "$1[\"applyConstraints\"]($2).\nthen($c);" js_applyConstraints ::
+        MediaStreamTrack -> Optional MediaTrackConstraints -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.applyConstraints Mozilla MediaStreamTrack.applyConstraints documentation> 
 applyConstraints ::
-                 (MonadIO m, IsMediaStreamTrack self, IsDictionary constraints) =>
-                   self -> Maybe constraints -> m ()
+                 (MonadIO m) =>
+                   MediaStreamTrack -> Maybe MediaTrackConstraints -> m ()
 applyConstraints self constraints
-  = liftIO
-      (js_applyConstraints (toMediaStreamTrack self)
-         (maybeToNullable (fmap toDictionary constraints)))
- 
-foreign import javascript unsafe "$1[\"clone\"]()" js_clone ::
-        MediaStreamTrack -> IO (Nullable MediaStreamTrack)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.clone Mozilla MediaStreamTrack.clone documentation> 
-clone ::
-      (MonadIO m, IsMediaStreamTrack self) =>
-        self -> m (Maybe MediaStreamTrack)
-clone self
-  = liftIO (nullableToMaybe <$> (js_clone (toMediaStreamTrack self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.clone Mozilla MediaStreamTrack.clone documentation> 
-clone_ :: (MonadIO m, IsMediaStreamTrack self) => self -> m ()
-clone_ self = liftIO (void (js_clone (toMediaStreamTrack self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.clone Mozilla MediaStreamTrack.clone documentation> 
-cloneUnsafe ::
-            (MonadIO m, IsMediaStreamTrack self, HasCallStack) =>
-              self -> m MediaStreamTrack
-cloneUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_clone (toMediaStreamTrack self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.clone Mozilla MediaStreamTrack.clone documentation> 
-cloneUnchecked ::
-               (MonadIO m, IsMediaStreamTrack self) => self -> m MediaStreamTrack
-cloneUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_clone (toMediaStreamTrack self)))
- 
-foreign import javascript unsafe "$1[\"stop\"]()" js_stop ::
-        MediaStreamTrack -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.stop Mozilla MediaStreamTrack.stop documentation> 
-stop :: (MonadIO m, IsMediaStreamTrack self) => self -> m ()
-stop self = liftIO (js_stop (toMediaStreamTrack self))
+  = liftIO (js_applyConstraints self (maybeToOptional constraints))
  
 foreign import javascript unsafe "$1[\"kind\"]" js_getKind ::
         MediaStreamTrack -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.kind Mozilla MediaStreamTrack.kind documentation> 
 getKind ::
-        (MonadIO m, IsMediaStreamTrack self, FromJSString result) =>
-          self -> m result
-getKind self
-  = liftIO (fromJSString <$> (js_getKind (toMediaStreamTrack self)))
+        (MonadIO m, FromJSString result) => MediaStreamTrack -> m result
+getKind self = liftIO (fromJSString <$> (js_getKind self))
  
 foreign import javascript unsafe "$1[\"id\"]" js_getId ::
         MediaStreamTrack -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.id Mozilla MediaStreamTrack.id documentation> 
 getId ::
-      (MonadIO m, IsMediaStreamTrack self, FromJSString result) =>
-        self -> m result
-getId self
-  = liftIO (fromJSString <$> (js_getId (toMediaStreamTrack self)))
+      (MonadIO m, FromJSString result) => MediaStreamTrack -> m result
+getId self = liftIO (fromJSString <$> (js_getId self))
  
 foreign import javascript unsafe "$1[\"label\"]" js_getLabel ::
         MediaStreamTrack -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.label Mozilla MediaStreamTrack.label documentation> 
 getLabel ::
-         (MonadIO m, IsMediaStreamTrack self, FromJSString result) =>
-           self -> m result
-getLabel self
-  = liftIO (fromJSString <$> (js_getLabel (toMediaStreamTrack self)))
+         (MonadIO m, FromJSString result) => MediaStreamTrack -> m result
+getLabel self = liftIO (fromJSString <$> (js_getLabel self))
  
 foreign import javascript unsafe "$1[\"enabled\"] = $2;"
         js_setEnabled :: MediaStreamTrack -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.enabled Mozilla MediaStreamTrack.enabled documentation> 
-setEnabled ::
-           (MonadIO m, IsMediaStreamTrack self) => self -> Bool -> m ()
-setEnabled self val
-  = liftIO (js_setEnabled (toMediaStreamTrack self) val)
+setEnabled :: (MonadIO m) => MediaStreamTrack -> Bool -> m ()
+setEnabled self val = liftIO (js_setEnabled self val)
  
 foreign import javascript unsafe "($1[\"enabled\"] ? 1 : 0)"
         js_getEnabled :: MediaStreamTrack -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.enabled Mozilla MediaStreamTrack.enabled documentation> 
-getEnabled ::
-           (MonadIO m, IsMediaStreamTrack self) => self -> m Bool
-getEnabled self = liftIO (js_getEnabled (toMediaStreamTrack self))
+getEnabled :: (MonadIO m) => MediaStreamTrack -> m Bool
+getEnabled self = liftIO (js_getEnabled self)
  
 foreign import javascript unsafe "($1[\"muted\"] ? 1 : 0)"
         js_getMuted :: MediaStreamTrack -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.muted Mozilla MediaStreamTrack.muted documentation> 
-getMuted :: (MonadIO m, IsMediaStreamTrack self) => self -> m Bool
-getMuted self = liftIO (js_getMuted (toMediaStreamTrack self))
+getMuted :: (MonadIO m) => MediaStreamTrack -> m Bool
+getMuted self = liftIO (js_getMuted self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.onmute Mozilla MediaStreamTrack.onmute documentation> 
-mute ::
-     (IsMediaStreamTrack self, IsEventTarget self) =>
-       EventName self Event
+mute :: EventName MediaStreamTrack Event
 mute = unsafeEventName (toJSString "mute")
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.onunmute Mozilla MediaStreamTrack.onunmute documentation> 
-unmute ::
-       (IsMediaStreamTrack self, IsEventTarget self) =>
-         EventName self Event
+unmute :: EventName MediaStreamTrack Event
 unmute = unsafeEventName (toJSString "unmute")
  
 foreign import javascript unsafe "($1[\"_readonly\"] ? 1 : 0)"
         js_get_readonly :: MediaStreamTrack -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack._readonly Mozilla MediaStreamTrack._readonly documentation> 
-get_readonly ::
-             (MonadIO m, IsMediaStreamTrack self) => self -> m Bool
-get_readonly self
-  = liftIO (js_get_readonly (toMediaStreamTrack self))
+get_readonly :: (MonadIO m) => MediaStreamTrack -> m Bool
+get_readonly self = liftIO (js_get_readonly self)
  
 foreign import javascript unsafe "($1[\"remote\"] ? 1 : 0)"
         js_getRemote :: MediaStreamTrack -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.remote Mozilla MediaStreamTrack.remote documentation> 
-getRemote :: (MonadIO m, IsMediaStreamTrack self) => self -> m Bool
-getRemote self = liftIO (js_getRemote (toMediaStreamTrack self))
+getRemote :: (MonadIO m) => MediaStreamTrack -> m Bool
+getRemote self = liftIO (js_getRemote self)
  
 foreign import javascript unsafe "$1[\"readyState\"]"
         js_getReadyState :: MediaStreamTrack -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.readyState Mozilla MediaStreamTrack.readyState documentation> 
 getReadyState ::
-              (MonadIO m, IsMediaStreamTrack self) =>
-                self -> m MediaStreamTrackState
+              (MonadIO m) => MediaStreamTrack -> m MediaStreamTrackState
 getReadyState self
-  = liftIO
-      ((js_getReadyState (toMediaStreamTrack self)) >>=
-         fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.onstarted Mozilla MediaStreamTrack.onstarted documentation> 
-started ::
-        (IsMediaStreamTrack self, IsEventTarget self) =>
-          EventName self Event
-started = unsafeEventName (toJSString "started")
+  = liftIO ((js_getReadyState self) >>= fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.onended Mozilla MediaStreamTrack.onended documentation> 
-ended ::
-      (IsMediaStreamTrack self, IsEventTarget self) =>
-        EventName self Event
+ended :: EventName MediaStreamTrack Event
 ended = unsafeEventName (toJSString "ended")
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.onoverconstrained Mozilla MediaStreamTrack.onoverconstrained documentation> 
-overConstrained ::
-                (IsMediaStreamTrack self, IsEventTarget self) =>
-                  EventName self Event
+overConstrained :: EventName MediaStreamTrack Event
 overConstrained = unsafeEventName (toJSString "overconstrained")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamTrackEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaStreamTrackEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamTrackEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MediaStreamTrackEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MediaStreamTrackEvent
-       (js_getTrack, getTrack, getTrackUnsafe, getTrackUnchecked,
-        MediaStreamTrackEvent(..), gTypeMediaStreamTrackEvent)
+       (js_newMediaStreamTrackEvent, newMediaStreamTrackEvent,
+        js_getTrack, getTrack, MediaStreamTrackEvent(..),
+        gTypeMediaStreamTrackEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,30 +21,29 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"track\"]" js_getTrack ::
-        MediaStreamTrackEvent -> IO (Nullable MediaStreamTrack)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackEvent.track Mozilla MediaStreamTrackEvent.track documentation> 
-getTrack ::
-         (MonadIO m) => MediaStreamTrackEvent -> m (Maybe MediaStreamTrack)
-getTrack self = liftIO (nullableToMaybe <$> (js_getTrack (self)))
+foreign import javascript unsafe
+        "new window[\"MediaStreamTrackEvent\"]($1,\n$2)"
+        js_newMediaStreamTrackEvent ::
+        JSString -> MediaStreamTrackEventInit -> IO MediaStreamTrackEvent
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackEvent.track Mozilla MediaStreamTrackEvent.track documentation> 
-getTrackUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 MediaStreamTrackEvent -> m MediaStreamTrack
-getTrackUnsafe self
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackEvent Mozilla MediaStreamTrackEvent documentation> 
+newMediaStreamTrackEvent ::
+                         (MonadIO m, ToJSString type') =>
+                           type' -> MediaStreamTrackEventInit -> m MediaStreamTrackEvent
+newMediaStreamTrackEvent type' eventInitDict
   = liftIO
-      ((nullableToMaybe <$> (js_getTrack (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (js_newMediaStreamTrackEvent (toJSString type') eventInitDict)
+ 
+foreign import javascript unsafe "$1[\"track\"]" js_getTrack ::
+        MediaStreamTrackEvent -> IO MediaStreamTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackEvent.track Mozilla MediaStreamTrackEvent.track documentation> 
-getTrackUnchecked ::
-                  (MonadIO m) => MediaStreamTrackEvent -> m MediaStreamTrack
-getTrackUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTrack (self)))
+getTrack ::
+         (MonadIO m) => MediaStreamTrackEvent -> m MediaStreamTrack
+getTrack self = liftIO (js_getTrack self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamTrackSourcesCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaStreamTrackSourcesCallback.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaStreamTrackSourcesCallback.hs
+++ /dev/null
@@ -1,64 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.MediaStreamTrackSourcesCallback
-       (newMediaStreamTrackSourcesCallback,
-        newMediaStreamTrackSourcesCallbackSync,
-        newMediaStreamTrackSourcesCallbackAsync,
-        MediaStreamTrackSourcesCallback)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackSourcesCallback Mozilla MediaStreamTrackSourcesCallback documentation> 
-newMediaStreamTrackSourcesCallback ::
-                                   (MonadIO m) =>
-                                     ([Maybe SourceInfo] -> IO ()) ->
-                                       m MediaStreamTrackSourcesCallback
-newMediaStreamTrackSourcesCallback callback
-  = liftIO
-      (MediaStreamTrackSourcesCallback <$>
-         syncCallback1 ThrowWouldBlock
-           (\ sources ->
-              fromJSValUnchecked sources >>= \ sources' -> callback sources'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackSourcesCallback Mozilla MediaStreamTrackSourcesCallback documentation> 
-newMediaStreamTrackSourcesCallbackSync ::
-                                       (MonadIO m) =>
-                                         ([Maybe SourceInfo] -> IO ()) ->
-                                           m MediaStreamTrackSourcesCallback
-newMediaStreamTrackSourcesCallbackSync callback
-  = liftIO
-      (MediaStreamTrackSourcesCallback <$>
-         syncCallback1 ContinueAsync
-           (\ sources ->
-              fromJSValUnchecked sources >>= \ sources' -> callback sources'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackSourcesCallback Mozilla MediaStreamTrackSourcesCallback documentation> 
-newMediaStreamTrackSourcesCallbackAsync ::
-                                        (MonadIO m) =>
-                                          ([Maybe SourceInfo] -> IO ()) ->
-                                            m MediaStreamTrackSourcesCallback
-newMediaStreamTrackSourcesCallbackAsync callback
-  = liftIO
-      (MediaStreamTrackSourcesCallback <$>
-         asyncCallback1
-           (\ sources ->
-              fromJSValUnchecked sources >>= \ sources' -> callback sources'))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MediaTrackConstraints.hs b/src/GHCJS/DOM/JSFFI/Generated/MediaTrackConstraints.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/MediaTrackConstraints.hs
+++ /dev/null
@@ -1,62 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.MediaTrackConstraints
-       (js_getMandatory, getMandatory, getMandatoryUnsafe,
-        getMandatoryUnchecked, js_getOptional, getOptional,
-        MediaTrackConstraints(..), gTypeMediaTrackConstraints)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"mandatory\"]"
-        js_getMandatory :: MediaTrackConstraints -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints.mandatory Mozilla MediaTrackConstraints.mandatory documentation> 
-getMandatory ::
-             (MonadIO m) =>
-               MediaTrackConstraints -> m (Maybe MediaTrackConstraintSet)
-getMandatory self
-  = liftIO ((js_getMandatory (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints.mandatory Mozilla MediaTrackConstraints.mandatory documentation> 
-getMandatoryUnsafe ::
-                   (MonadIO m, HasCallStack) =>
-                     MediaTrackConstraints -> m MediaTrackConstraintSet
-getMandatoryUnsafe self
-  = liftIO
-      (((js_getMandatory (self)) >>= fromJSValUnchecked) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints.mandatory Mozilla MediaTrackConstraints.mandatory documentation> 
-getMandatoryUnchecked ::
-                      (MonadIO m) => MediaTrackConstraints -> m MediaTrackConstraintSet
-getMandatoryUnchecked self
-  = liftIO ((js_getMandatory (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"optional\"]" js_getOptional
-        :: MediaTrackConstraints -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints.optional Mozilla MediaTrackConstraints.optional documentation> 
-getOptional ::
-            (MonadIO m) =>
-              MediaTrackConstraints -> m (Maybe [Maybe MediaTrackConstraint])
-getOptional self
-  = liftIO ((js_getOptional (self)) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MemoryInfo.hs b/src/GHCJS/DOM/JSFFI/Generated/MemoryInfo.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/MemoryInfo.hs
+++ /dev/null
@@ -1,40 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.MemoryInfo
-       (js_getUsedJSHeapSize, getUsedJSHeapSize, js_getTotalJSHeapSize,
-        getTotalJSHeapSize, MemoryInfo(..), gTypeMemoryInfo)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"usedJSHeapSize\"]"
-        js_getUsedJSHeapSize :: MemoryInfo -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MemoryInfo.usedJSHeapSize Mozilla MemoryInfo.usedJSHeapSize documentation> 
-getUsedJSHeapSize :: (MonadIO m) => MemoryInfo -> m Word
-getUsedJSHeapSize self = liftIO (js_getUsedJSHeapSize (self))
- 
-foreign import javascript unsafe "$1[\"totalJSHeapSize\"]"
-        js_getTotalJSHeapSize :: MemoryInfo -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MemoryInfo.totalJSHeapSize Mozilla MemoryInfo.totalJSHeapSize documentation> 
-getTotalJSHeapSize :: (MonadIO m) => MemoryInfo -> m Word
-getTotalJSHeapSize self = liftIO (js_getTotalJSHeapSize (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MessageChannel.hs b/src/GHCJS/DOM/JSFFI/Generated/MessageChannel.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MessageChannel.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MessageChannel.hs
@@ -5,15 +5,13 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MessageChannel
        (js_newMessageChannel, newMessageChannel, js_getPort1, getPort1,
-        getPort1Unsafe, getPort1Unchecked, js_getPort2, getPort2,
-        getPort2Unsafe, getPort2Unchecked, MessageChannel(..),
-        gTypeMessageChannel)
+        js_getPort2, getPort2, MessageChannel(..), gTypeMessageChannel)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -35,41 +34,15 @@
 newMessageChannel = liftIO (js_newMessageChannel)
  
 foreign import javascript unsafe "$1[\"port1\"]" js_getPort1 ::
-        MessageChannel -> IO (Nullable MessagePort)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel.port1 Mozilla MessageChannel.port1 documentation> 
-getPort1 :: (MonadIO m) => MessageChannel -> m (Maybe MessagePort)
-getPort1 self = liftIO (nullableToMaybe <$> (js_getPort1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel.port1 Mozilla MessageChannel.port1 documentation> 
-getPort1Unsafe ::
-               (MonadIO m, HasCallStack) => MessageChannel -> m MessagePort
-getPort1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPort1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        MessageChannel -> IO MessagePort
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel.port1 Mozilla MessageChannel.port1 documentation> 
-getPort1Unchecked :: (MonadIO m) => MessageChannel -> m MessagePort
-getPort1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPort1 (self)))
+getPort1 :: (MonadIO m) => MessageChannel -> m MessagePort
+getPort1 self = liftIO (js_getPort1 self)
  
 foreign import javascript unsafe "$1[\"port2\"]" js_getPort2 ::
-        MessageChannel -> IO (Nullable MessagePort)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel.port2 Mozilla MessageChannel.port2 documentation> 
-getPort2 :: (MonadIO m) => MessageChannel -> m (Maybe MessagePort)
-getPort2 self = liftIO (nullableToMaybe <$> (js_getPort2 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel.port2 Mozilla MessageChannel.port2 documentation> 
-getPort2Unsafe ::
-               (MonadIO m, HasCallStack) => MessageChannel -> m MessagePort
-getPort2Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPort2 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        MessageChannel -> IO MessagePort
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel.port2 Mozilla MessageChannel.port2 documentation> 
-getPort2Unchecked :: (MonadIO m) => MessageChannel -> m MessagePort
-getPort2Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPort2 (self)))
+getPort2 :: (MonadIO m) => MessageChannel -> m MessagePort
+getPort2 self = liftIO (js_getPort2 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MessageEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/MessageEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MessageEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MessageEvent.hs
@@ -4,7 +4,8 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MessageEvent
-       (js_initMessageEvent, initMessageEvent, js_webkitInitMessageEvent,
+       (js_newMessageEvent, newMessageEvent, js_initMessageEvent,
+        initMessageEvent, js_webkitInitMessageEvent,
         webkitInitMessageEvent, js_getOrigin, getOrigin, js_getLastEventId,
         getLastEventId, js_getSource, getSource, getSourceUnsafe,
         getSourceUnchecked, js_getData, getData, js_getPorts, getPorts,
@@ -14,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,74 +24,104 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
+        "new window[\"MessageEvent\"]($1,\n$2)" js_newMessageEvent ::
+        JSString -> Optional MessageEventInit -> IO MessageEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent Mozilla MessageEvent documentation> 
+newMessageEvent ::
+                (MonadIO m, ToJSString type') =>
+                  type' -> Maybe MessageEventInit -> m MessageEvent
+newMessageEvent type' eventInitDict
+  = liftIO
+      (js_newMessageEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe
         "$1[\"initMessageEvent\"]($2, $3,\n$4, $5, $6, $7, $8, $9)"
         js_initMessageEvent ::
         MessageEvent ->
           JSString ->
             Bool ->
               Bool ->
-                JSVal ->
-                  JSString -> JSString -> Nullable Window -> Nullable Array -> IO ()
+                Optional JSVal ->
+                  Optional JSString ->
+                    Optional JSString -> Optional MessageEventSource -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent.initMessageEvent Mozilla MessageEvent.initMessageEvent documentation> 
 initMessageEvent ::
-                 (MonadIO m, ToJSString typeArg, ToJSString originArg,
-                  ToJSString lastEventIdArg, IsArray messagePorts) =>
+                 (MonadIO m, ToJSString type', ToJSVal data', ToJSString originArg,
+                  ToJSString lastEventId, IsMessageEventSource source) =>
                    MessageEvent ->
-                     typeArg ->
+                     type' ->
                        Bool ->
                          Bool ->
-                           JSVal ->
-                             originArg ->
-                               lastEventIdArg -> Maybe Window -> Maybe messagePorts -> m ()
-initMessageEvent self typeArg canBubbleArg cancelableArg dataArg
-  originArg lastEventIdArg sourceArg messagePorts
+                           Maybe data' ->
+                             Maybe originArg ->
+                               Maybe lastEventId -> Maybe source -> [MessagePort] -> m ()
+initMessageEvent self type' bubbles cancelable data' originArg
+  lastEventId source messagePorts
   = liftIO
-      (js_initMessageEvent (self) (toJSString typeArg) canBubbleArg
-         cancelableArg
-         dataArg
-         (toJSString originArg)
-         (toJSString lastEventIdArg)
-         (maybeToNullable sourceArg)
-         (maybeToNullable (fmap toArray messagePorts)))
+      (toJSVal messagePorts >>=
+         \ messagePorts' ->
+           mapM toJSVal source >>=
+             \ source' ->
+               mapM toJSVal data' >>=
+                 \ data'' ->
+                   js_initMessageEvent self (toJSString type') bubbles cancelable
+                     (maybeToOptional data'')
+                 (toOptionalJSString originArg)
+                 (toOptionalJSString lastEventId)
+                 (maybeToOptional (fmap MessageEventSource source'))
+             messagePorts')
  
 foreign import javascript unsafe
         "$1[\"webkitInitMessageEvent\"]($2,\n$3, $4, $5, $6, $7, $8, $9)"
         js_webkitInitMessageEvent ::
         MessageEvent ->
-          JSString ->
+          Optional JSString ->
             Bool ->
               Bool ->
-                JSVal ->
-                  JSString -> JSString -> Nullable Window -> Nullable Array -> IO ()
+                Optional JSVal ->
+                  Optional JSString ->
+                    Optional JSString -> Optional MessageEventSource -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent.webkitInitMessageEvent Mozilla MessageEvent.webkitInitMessageEvent documentation> 
 webkitInitMessageEvent ::
-                       (MonadIO m, ToJSString typeArg, ToJSString originArg,
-                        ToJSString lastEventIdArg, IsArray transferables) =>
+                       (MonadIO m, ToJSString typeArg, ToJSVal dataArg,
+                        ToJSString originArg, ToJSString lastEventIdArg,
+                        IsMessageEventSource sourceArg) =>
                          MessageEvent ->
-                           typeArg ->
+                           Maybe typeArg ->
                              Bool ->
                                Bool ->
-                                 JSVal ->
-                                   originArg ->
-                                     lastEventIdArg -> Maybe Window -> Maybe transferables -> m ()
+                                 Maybe dataArg ->
+                                   Maybe originArg ->
+                                     Maybe lastEventIdArg ->
+                                       Maybe sourceArg -> [MessagePort] -> m ()
 webkitInitMessageEvent self typeArg canBubbleArg cancelableArg
-  dataArg originArg lastEventIdArg sourceArg transferables
+  dataArg originArg lastEventIdArg sourceArg messagePorts
   = liftIO
-      (js_webkitInitMessageEvent (self) (toJSString typeArg) canBubbleArg
-         cancelableArg
-         dataArg
-         (toJSString originArg)
-         (toJSString lastEventIdArg)
-         (maybeToNullable sourceArg)
-         (maybeToNullable (fmap toArray transferables)))
+      (toJSVal messagePorts >>=
+         \ messagePorts' ->
+           mapM toJSVal sourceArg >>=
+             \ sourceArg' ->
+               mapM toJSVal dataArg >>=
+                 \ dataArg' ->
+                   js_webkitInitMessageEvent self (toOptionalJSString typeArg)
+                     canBubbleArg
+                     cancelableArg
+                     (maybeToOptional dataArg')
+                 (toOptionalJSString originArg)
+                 (toOptionalJSString lastEventIdArg)
+                 (maybeToOptional (fmap MessageEventSource sourceArg'))
+             messagePorts')
  
 foreign import javascript unsafe "$1[\"origin\"]" js_getOrigin ::
         MessageEvent -> IO JSString
@@ -98,7 +129,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent.origin Mozilla MessageEvent.origin documentation> 
 getOrigin ::
           (MonadIO m, FromJSString result) => MessageEvent -> m result
-getOrigin self = liftIO (fromJSString <$> (js_getOrigin (self)))
+getOrigin self = liftIO (fromJSString <$> (js_getOrigin self))
  
 foreign import javascript unsafe "$1[\"lastEventId\"]"
         js_getLastEventId :: MessageEvent -> IO JSString
@@ -107,39 +138,38 @@
 getLastEventId ::
                (MonadIO m, FromJSString result) => MessageEvent -> m result
 getLastEventId self
-  = liftIO (fromJSString <$> (js_getLastEventId (self)))
+  = liftIO (fromJSString <$> (js_getLastEventId self))
  
 foreign import javascript unsafe "$1[\"source\"]" js_getSource ::
         MessageEvent -> IO (Nullable EventTarget)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent.source Mozilla MessageEvent.source documentation> 
 getSource :: (MonadIO m) => MessageEvent -> m (Maybe EventTarget)
-getSource self = liftIO (nullableToMaybe <$> (js_getSource (self)))
+getSource self = liftIO (nullableToMaybe <$> (js_getSource self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent.source Mozilla MessageEvent.source documentation> 
 getSourceUnsafe ::
                 (MonadIO m, HasCallStack) => MessageEvent -> m EventTarget
 getSourceUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getSource (self))) >>=
+      ((nullableToMaybe <$> (js_getSource self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent.source Mozilla MessageEvent.source documentation> 
 getSourceUnchecked :: (MonadIO m) => MessageEvent -> m EventTarget
 getSourceUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getSource (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getSource self))
  
 foreign import javascript unsafe "$1[\"data\"]" js_getData ::
         MessageEvent -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent.data Mozilla MessageEvent.data documentation> 
 getData :: (MonadIO m) => MessageEvent -> m JSVal
-getData self = liftIO (js_getData (self))
+getData self = liftIO (js_getData self)
  
 foreign import javascript unsafe "$1[\"ports\"]" js_getPorts ::
         MessageEvent -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent.ports Mozilla MessageEvent.ports documentation> 
-getPorts :: (MonadIO m) => MessageEvent -> m [Maybe MessagePort]
-getPorts self
-  = liftIO ((js_getPorts (self)) >>= fromJSValUnchecked)
+getPorts :: (MonadIO m) => MessageEvent -> m [MessagePort]
+getPorts self = liftIO ((js_getPorts self) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MessagePort.hs b/src/GHCJS/DOM/JSFFI/Generated/MessagePort.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MessagePort.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MessagePort.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,36 +20,39 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"postMessage\"]($2, $3)"
-        js_postMessage :: MessagePort -> JSVal -> Nullable Array -> IO ()
+        js_postMessage :: MessagePort -> JSVal -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessagePort.postMessage Mozilla MessagePort.postMessage documentation> 
 postMessage ::
-            (MonadIO m, IsArray messagePorts) =>
-              MessagePort -> JSVal -> Maybe messagePorts -> m ()
-postMessage self message messagePorts
+            (MonadIO m, ToJSVal message, IsGObject transfer) =>
+              MessagePort -> message -> [transfer] -> m ()
+postMessage self message transfer
   = liftIO
-      (js_postMessage (self) message
-         (maybeToNullable (fmap toArray messagePorts)))
+      (toJSVal transfer >>=
+         \ transfer' ->
+           toJSVal message >>= \ message' -> js_postMessage self message'
+             transfer')
  
 foreign import javascript unsafe "$1[\"start\"]()" js_start ::
         MessagePort -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessagePort.start Mozilla MessagePort.start documentation> 
 start :: (MonadIO m) => MessagePort -> m ()
-start self = liftIO (js_start (self))
+start self = liftIO (js_start self)
  
 foreign import javascript unsafe "$1[\"close\"]()" js_close ::
         MessagePort -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessagePort.close Mozilla MessagePort.close documentation> 
 close :: (MonadIO m) => MessagePort -> m ()
-close self = liftIO (js_close (self))
+close self = liftIO (js_close self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MessagePort.onmessage Mozilla MessagePort.onmessage documentation> 
 message :: EventName MessagePort MessageEvent
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MimeType.hs b/src/GHCJS/DOM/JSFFI/Generated/MimeType.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MimeType.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MimeType.hs
@@ -6,14 +6,13 @@
 module GHCJS.DOM.JSFFI.Generated.MimeType
        (js_getType, getType, js_getSuffixes, getSuffixes,
         js_getDescription, getDescription, js_getEnabledPlugin,
-        getEnabledPlugin, getEnabledPluginUnsafe,
-        getEnabledPluginUnchecked, MimeType(..), gTypeMimeType)
+        getEnabledPlugin, MimeType(..), gTypeMimeType)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,7 +32,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeType.type Mozilla MimeType.type documentation> 
 getType :: (MonadIO m, FromJSString result) => MimeType -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"suffixes\"]" js_getSuffixes
         :: MimeType -> IO JSString
@@ -40,8 +40,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeType.suffixes Mozilla MimeType.suffixes documentation> 
 getSuffixes ::
             (MonadIO m, FromJSString result) => MimeType -> m result
-getSuffixes self
-  = liftIO (fromJSString <$> (js_getSuffixes (self)))
+getSuffixes self = liftIO (fromJSString <$> (js_getSuffixes self))
  
 foreign import javascript unsafe "$1[\"description\"]"
         js_getDescription :: MimeType -> IO JSString
@@ -50,26 +49,11 @@
 getDescription ::
                (MonadIO m, FromJSString result) => MimeType -> m result
 getDescription self
-  = liftIO (fromJSString <$> (js_getDescription (self)))
+  = liftIO (fromJSString <$> (js_getDescription self))
  
 foreign import javascript unsafe "$1[\"enabledPlugin\"]"
-        js_getEnabledPlugin :: MimeType -> IO (Nullable Plugin)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeType.enabledPlugin Mozilla MimeType.enabledPlugin documentation> 
-getEnabledPlugin :: (MonadIO m) => MimeType -> m (Maybe Plugin)
-getEnabledPlugin self
-  = liftIO (nullableToMaybe <$> (js_getEnabledPlugin (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeType.enabledPlugin Mozilla MimeType.enabledPlugin documentation> 
-getEnabledPluginUnsafe ::
-                       (MonadIO m, HasCallStack) => MimeType -> m Plugin
-getEnabledPluginUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getEnabledPlugin (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getEnabledPlugin :: MimeType -> IO Plugin
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeType.enabledPlugin Mozilla MimeType.enabledPlugin documentation> 
-getEnabledPluginUnchecked :: (MonadIO m) => MimeType -> m Plugin
-getEnabledPluginUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getEnabledPlugin (self)))
+getEnabledPlugin :: (MonadIO m) => MimeType -> m Plugin
+getEnabledPlugin self = liftIO (js_getEnabledPlugin self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MimeTypeArray.hs b/src/GHCJS/DOM/JSFFI/Generated/MimeTypeArray.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MimeTypeArray.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MimeTypeArray.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,38 +21,38 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
+foreign import javascript unsafe "$1[$2]" js_item ::
         MimeTypeArray -> Word -> IO (Nullable MimeType)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray.item Mozilla MimeTypeArray.item documentation> 
 item :: (MonadIO m) => MimeTypeArray -> Word -> m (Maybe MimeType)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item self index = liftIO (nullableToMaybe <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray.item Mozilla MimeTypeArray.item documentation> 
 item_ :: (MonadIO m) => MimeTypeArray -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray.item Mozilla MimeTypeArray.item documentation> 
 itemUnsafe ::
            (MonadIO m, HasCallStack) => MimeTypeArray -> Word -> m MimeType
 itemUnsafe self index
   = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
+      ((nullableToMaybe <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray.item Mozilla MimeTypeArray.item documentation> 
 itemUnchecked :: (MonadIO m) => MimeTypeArray -> Word -> m MimeType
 itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+  = liftIO (fromJust . nullableToMaybe <$> (js_item self index))
  
-foreign import javascript unsafe "$1[\"namedItem\"]($2)"
-        js_namedItem :: MimeTypeArray -> JSString -> IO (Nullable MimeType)
+foreign import javascript unsafe "$1[$2]" js_namedItem ::
+        MimeTypeArray -> JSString -> IO (Nullable MimeType)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray.namedItem Mozilla MimeTypeArray.namedItem documentation> 
 namedItem ::
@@ -60,13 +60,13 @@
             MimeTypeArray -> name -> m (Maybe MimeType)
 namedItem self name
   = liftIO
-      (nullableToMaybe <$> (js_namedItem (self) (toJSString name)))
+      (nullableToMaybe <$> (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray.namedItem Mozilla MimeTypeArray.namedItem documentation> 
 namedItem_ ::
            (MonadIO m, ToJSString name) => MimeTypeArray -> name -> m ()
 namedItem_ self name
-  = liftIO (void (js_namedItem (self) (toJSString name)))
+  = liftIO (void (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray.namedItem Mozilla MimeTypeArray.namedItem documentation> 
 namedItemUnsafe ::
@@ -74,7 +74,7 @@
                   MimeTypeArray -> name -> m MimeType
 namedItemUnsafe self name
   = liftIO
-      ((nullableToMaybe <$> (js_namedItem (self) (toJSString name))) >>=
+      ((nullableToMaybe <$> (js_namedItem self (toJSString name))) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray.namedItem Mozilla MimeTypeArray.namedItem documentation> 
@@ -83,11 +83,11 @@
 namedItemUnchecked self name
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_namedItem (self) (toJSString name)))
+         (js_namedItem self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         MimeTypeArray -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray.length Mozilla MimeTypeArray.length documentation> 
 getLength :: (MonadIO m) => MimeTypeArray -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MouseEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/MouseEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MouseEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MouseEvent.hs
@@ -4,26 +4,29 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MouseEvent
-       (js_initMouseEvent, initMouseEvent, js_getScreenX, getScreenX,
-        js_getScreenY, getScreenY, js_getClientX, getClientX,
+       (js_newMouseEvent, newMouseEvent, js_initMouseEvent,
+        initMouseEvent, pattern WEBKIT_FORCE_AT_MOUSE_DOWN,
+        pattern WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN, js_getScreenX,
+        getScreenX, js_getScreenY, getScreenY, js_getClientX, getClientX,
         js_getClientY, getClientY, js_getCtrlKey, getCtrlKey,
         js_getShiftKey, getShiftKey, js_getAltKey, getAltKey,
         js_getMetaKey, getMetaKey, js_getButton, getButton,
         js_getRelatedTarget, getRelatedTarget, getRelatedTargetUnsafe,
         getRelatedTargetUnchecked, js_getMovementX, getMovementX,
-        js_getMovementY, getMovementY, js_getOffsetX, getOffsetX,
-        js_getOffsetY, getOffsetY, js_getX, getX, js_getY, getY,
-        js_getFromElement, getFromElement, getFromElementUnsafe,
-        getFromElementUnchecked, js_getToElement, getToElement,
-        getToElementUnsafe, getToElementUnchecked, js_getDataTransfer,
-        getDataTransfer, getDataTransferUnsafe, getDataTransferUnchecked,
-        MouseEvent(..), gTypeMouseEvent, IsMouseEvent, toMouseEvent)
+        js_getMovementY, getMovementY, js_getWebkitForce, getWebkitForce,
+        js_getOffsetX, getOffsetX, js_getOffsetY, getOffsetY, js_getX,
+        getX, js_getY, getY, js_getFromElement, getFromElement,
+        getFromElementUnsafe, getFromElementUnchecked, js_getToElement,
+        getToElement, getToElementUnsafe, getToElementUnchecked,
+        js_getDataTransfer, getDataTransfer, getDataTransferUnsafe,
+        getDataTransferUnchecked, MouseEvent(..), gTypeMouseEvent,
+        IsMouseEvent, toMouseEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -32,60 +35,79 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
+        "new window[\"MouseEvent\"]($1, $2)" js_newMouseEvent ::
+        JSString -> Optional MouseEventInit -> IO MouseEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent Mozilla MouseEvent documentation> 
+newMouseEvent ::
+              (MonadIO m, ToJSString type', IsMouseEventInit eventInitDict) =>
+                type' -> Maybe eventInitDict -> m MouseEvent
+newMouseEvent type' eventInitDict
+  = liftIO
+      (js_newMouseEvent (toJSString type')
+         (maybeToOptional (fmap toMouseEventInit eventInitDict)))
+ 
+foreign import javascript unsafe
         "$1[\"initMouseEvent\"]($2, $3, $4,\n$5, $6, $7, $8, $9, $10, $11,\n$12, $13, $14, $15, $16)"
         js_initMouseEvent ::
         MouseEvent ->
-          JSString ->
+          Optional JSString ->
             Bool ->
               Bool ->
-                Nullable Window ->
-                  Int ->
-                    Int ->
-                      Int ->
-                        Int ->
-                          Int ->
+                Optional Window ->
+                  Optional Int ->
+                    Optional Int ->
+                      Optional Int ->
+                        Optional Int ->
+                          Optional Int ->
                             Bool ->
-                              Bool -> Bool -> Bool -> Word -> Nullable EventTarget -> IO ()
+                              Bool ->
+                                Bool -> Bool -> Optional Word -> Optional EventTarget -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent.initMouseEvent Mozilla MouseEvent.initMouseEvent documentation> 
 initMouseEvent ::
                (MonadIO m, IsMouseEvent self, ToJSString type',
                 IsEventTarget relatedTarget) =>
                  self ->
-                   type' ->
+                   Maybe type' ->
                      Bool ->
                        Bool ->
                          Maybe Window ->
-                           Int ->
-                             Int ->
-                               Int ->
-                                 Int ->
-                                   Int ->
+                           Maybe Int ->
+                             Maybe Int ->
+                               Maybe Int ->
+                                 Maybe Int ->
+                                   Maybe Int ->
                                      Bool ->
-                                       Bool -> Bool -> Bool -> Word -> Maybe relatedTarget -> m ()
+                                       Bool ->
+                                         Bool -> Bool -> Maybe Word -> Maybe relatedTarget -> m ()
 initMouseEvent self type' canBubble cancelable view detail screenX
   screenY clientX clientY ctrlKey altKey shiftKey metaKey button
   relatedTarget
   = liftIO
-      (js_initMouseEvent (toMouseEvent self) (toJSString type') canBubble
+      (js_initMouseEvent (toMouseEvent self) (toOptionalJSString type')
+         canBubble
          cancelable
-         (maybeToNullable view)
-         detail
-         screenX
-         screenY
-         clientX
-         clientY
+         (maybeToOptional view)
+         (maybeToOptional detail)
+         (maybeToOptional screenX)
+         (maybeToOptional screenY)
+         (maybeToOptional clientX)
+         (maybeToOptional clientY)
          ctrlKey
          altKey
          shiftKey
          metaKey
-         button
-         (maybeToNullable (fmap toEventTarget relatedTarget)))
+         (maybeToOptional button)
+         (maybeToOptional (fmap toEventTarget relatedTarget)))
+pattern WEBKIT_FORCE_AT_MOUSE_DOWN = 1
+pattern WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN = 2
  
 foreign import javascript unsafe "$1[\"screenX\"]" js_getScreenX ::
         MouseEvent -> IO Int
@@ -190,6 +212,15 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent.movementY Mozilla MouseEvent.movementY documentation> 
 getMovementY :: (MonadIO m, IsMouseEvent self) => self -> m Int
 getMovementY self = liftIO (js_getMovementY (toMouseEvent self))
+ 
+foreign import javascript unsafe "$1[\"webkitForce\"]"
+        js_getWebkitForce :: MouseEvent -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent.webkitForce Mozilla MouseEvent.webkitForce documentation> 
+getWebkitForce ::
+               (MonadIO m, IsMouseEvent self) => self -> m Double
+getWebkitForce self
+  = liftIO (js_getWebkitForce (toMouseEvent self))
  
 foreign import javascript unsafe "$1[\"offsetX\"]" js_getOffsetX ::
         MouseEvent -> IO Int
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MutationEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/MutationEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MutationEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MutationEvent.hs
@@ -15,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,31 +34,34 @@
         "$1[\"initMutationEvent\"]($2, $3,\n$4, $5, $6, $7, $8, $9)"
         js_initMutationEvent ::
         MutationEvent ->
-          JSString ->
+          Optional JSString ->
             Bool ->
               Bool ->
-                Nullable Node -> JSString -> JSString -> JSString -> Word -> IO ()
+                Optional Node ->
+                  Optional JSString ->
+                    Optional JSString -> Optional JSString -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent.initMutationEvent Mozilla MutationEvent.initMutationEvent documentation> 
 initMutationEvent ::
                   (MonadIO m, ToJSString type', IsNode relatedNode,
                    ToJSString prevValue, ToJSString newValue, ToJSString attrName) =>
                     MutationEvent ->
-                      type' ->
+                      Maybe type' ->
                         Bool ->
                           Bool ->
                             Maybe relatedNode ->
-                              prevValue -> newValue -> attrName -> Word -> m ()
+                              Maybe prevValue ->
+                                Maybe newValue -> Maybe attrName -> Maybe Word -> m ()
 initMutationEvent self type' canBubble cancelable relatedNode
   prevValue newValue attrName attrChange
   = liftIO
-      (js_initMutationEvent (self) (toJSString type') canBubble
+      (js_initMutationEvent self (toOptionalJSString type') canBubble
          cancelable
-         (maybeToNullable (fmap toNode relatedNode))
-         (toJSString prevValue)
-         (toJSString newValue)
-         (toJSString attrName)
-         attrChange)
+         (maybeToOptional (fmap toNode relatedNode))
+         (toOptionalJSString prevValue)
+         (toOptionalJSString newValue)
+         (toOptionalJSString attrName)
+         (maybeToOptional attrChange))
 pattern MODIFICATION = 1
 pattern ADDITION = 2
 pattern REMOVAL = 3
@@ -68,21 +72,20 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent.relatedNode Mozilla MutationEvent.relatedNode documentation> 
 getRelatedNode :: (MonadIO m) => MutationEvent -> m (Maybe Node)
 getRelatedNode self
-  = liftIO (nullableToMaybe <$> (js_getRelatedNode (self)))
+  = liftIO (nullableToMaybe <$> (js_getRelatedNode self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent.relatedNode Mozilla MutationEvent.relatedNode documentation> 
 getRelatedNodeUnsafe ::
                      (MonadIO m, HasCallStack) => MutationEvent -> m Node
 getRelatedNodeUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getRelatedNode (self))) >>=
+      ((nullableToMaybe <$> (js_getRelatedNode self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent.relatedNode Mozilla MutationEvent.relatedNode documentation> 
 getRelatedNodeUnchecked :: (MonadIO m) => MutationEvent -> m Node
 getRelatedNodeUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRelatedNode (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getRelatedNode self))
  
 foreign import javascript unsafe "$1[\"prevValue\"]"
         js_getPrevValue :: MutationEvent -> IO JSString
@@ -91,7 +94,7 @@
 getPrevValue ::
              (MonadIO m, FromJSString result) => MutationEvent -> m result
 getPrevValue self
-  = liftIO (fromJSString <$> (js_getPrevValue (self)))
+  = liftIO (fromJSString <$> (js_getPrevValue self))
  
 foreign import javascript unsafe "$1[\"newValue\"]" js_getNewValue
         :: MutationEvent -> IO JSString
@@ -99,8 +102,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent.newValue Mozilla MutationEvent.newValue documentation> 
 getNewValue ::
             (MonadIO m, FromJSString result) => MutationEvent -> m result
-getNewValue self
-  = liftIO (fromJSString <$> (js_getNewValue (self)))
+getNewValue self = liftIO (fromJSString <$> (js_getNewValue self))
  
 foreign import javascript unsafe "$1[\"attrName\"]" js_getAttrName
         :: MutationEvent -> IO JSString
@@ -108,12 +110,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent.attrName Mozilla MutationEvent.attrName documentation> 
 getAttrName ::
             (MonadIO m, FromJSString result) => MutationEvent -> m result
-getAttrName self
-  = liftIO (fromJSString <$> (js_getAttrName (self)))
+getAttrName self = liftIO (fromJSString <$> (js_getAttrName self))
  
 foreign import javascript unsafe "$1[\"attrChange\"]"
         js_getAttrChange :: MutationEvent -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent.attrChange Mozilla MutationEvent.attrChange documentation> 
 getAttrChange :: (MonadIO m) => MutationEvent -> m Word
-getAttrChange self = liftIO (js_getAttrChange (self))
+getAttrChange self = liftIO (js_getAttrChange self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MutationObserver.hs b/src/GHCJS/DOM/JSFFI/Generated/MutationObserver.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MutationObserver.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MutationObserver.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,46 +29,43 @@
  
 foreign import javascript unsafe
         "new window[\"MutationObserver\"]($1)" js_newMutationObserver ::
-        Nullable MutationCallback -> IO MutationObserver
+        MutationCallback -> IO MutationObserver
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver Mozilla MutationObserver documentation> 
 newMutationObserver ::
                     (MonadIO m, IsMutationCallback callback) =>
-                      Maybe callback -> m MutationObserver
+                      callback -> m MutationObserver
 newMutationObserver callback
-  = liftIO
-      (js_newMutationObserver
-         (maybeToNullable (fmap toMutationCallback callback)))
+  = liftIO (js_newMutationObserver (toMutationCallback callback))
  
 foreign import javascript unsafe "$1[\"observe\"]($2, $3)"
         js_observe ::
-        MutationObserver -> Nullable Node -> Nullable Dictionary -> IO ()
+        MutationObserver -> Node -> Optional MutationObserverInit -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver.observe Mozilla MutationObserver.observe documentation> 
 observe ::
-        (MonadIO m, IsNode target, IsDictionary options) =>
-          MutationObserver -> Maybe target -> Maybe options -> m ()
+        (MonadIO m, IsNode target) =>
+          MutationObserver -> target -> Maybe MutationObserverInit -> m ()
 observe self target options
   = liftIO
-      (js_observe (self) (maybeToNullable (fmap toNode target))
-         (maybeToNullable (fmap toDictionary options)))
+      (js_observe self (toNode target) (maybeToOptional options))
  
 foreign import javascript unsafe "$1[\"takeRecords\"]()"
         js_takeRecords :: MutationObserver -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver.takeRecords Mozilla MutationObserver.takeRecords documentation> 
 takeRecords ::
-            (MonadIO m) => MutationObserver -> m [Maybe MutationRecord]
+            (MonadIO m) => MutationObserver -> m [MutationRecord]
 takeRecords self
-  = liftIO ((js_takeRecords (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_takeRecords self) >>= fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver.takeRecords Mozilla MutationObserver.takeRecords documentation> 
 takeRecords_ :: (MonadIO m) => MutationObserver -> m ()
-takeRecords_ self = liftIO (void (js_takeRecords (self)))
+takeRecords_ self = liftIO (void (js_takeRecords self))
  
 foreign import javascript unsafe "$1[\"disconnect\"]()"
         js_disconnect :: MutationObserver -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver.disconnect Mozilla MutationObserver.disconnect documentation> 
 disconnect :: (MonadIO m) => MutationObserver -> m ()
-disconnect self = liftIO (js_disconnect (self))
+disconnect self = liftIO (js_disconnect self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/MutationRecord.hs b/src/GHCJS/DOM/JSFFI/Generated/MutationRecord.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/MutationRecord.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/MutationRecord.hs
@@ -4,14 +4,10 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.MutationRecord
-       (js_getType, getType, js_getTarget, getTarget, getTargetUnsafe,
-        getTargetUnchecked, js_getAddedNodes, getAddedNodes,
-        getAddedNodesUnsafe, getAddedNodesUnchecked, js_getRemovedNodes,
-        getRemovedNodes, getRemovedNodesUnsafe, getRemovedNodesUnchecked,
-        js_getPreviousSibling, getPreviousSibling,
-        getPreviousSiblingUnsafe, getPreviousSiblingUnchecked,
-        js_getNextSibling, getNextSibling, getNextSiblingUnsafe,
-        getNextSiblingUnchecked, js_getAttributeName, getAttributeName,
+       (js_getType, getType, js_getTarget, getTarget, js_getAddedNodes,
+        getAddedNodes, js_getRemovedNodes, getRemovedNodes,
+        js_getPreviousSibling, getPreviousSibling, js_getNextSibling,
+        getNextSibling, js_getAttributeName, getAttributeName,
         getAttributeNameUnsafe, getAttributeNameUnchecked,
         js_getAttributeNamespace, getAttributeNamespace,
         getAttributeNamespaceUnsafe, getAttributeNamespaceUnchecked,
@@ -22,7 +18,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -31,6 +27,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -42,120 +39,42 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.type Mozilla MutationRecord.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => MutationRecord -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"target\"]" js_getTarget ::
-        MutationRecord -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.target Mozilla MutationRecord.target documentation> 
-getTarget :: (MonadIO m) => MutationRecord -> m (Maybe Node)
-getTarget self = liftIO (nullableToMaybe <$> (js_getTarget (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.target Mozilla MutationRecord.target documentation> 
-getTargetUnsafe ::
-                (MonadIO m, HasCallStack) => MutationRecord -> m Node
-getTargetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTarget (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        MutationRecord -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.target Mozilla MutationRecord.target documentation> 
-getTargetUnchecked :: (MonadIO m) => MutationRecord -> m Node
-getTargetUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTarget (self)))
+getTarget :: (MonadIO m) => MutationRecord -> m Node
+getTarget self = liftIO (js_getTarget self)
  
 foreign import javascript unsafe "$1[\"addedNodes\"]"
-        js_getAddedNodes :: MutationRecord -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.addedNodes Mozilla MutationRecord.addedNodes documentation> 
-getAddedNodes ::
-              (MonadIO m) => MutationRecord -> m (Maybe NodeList)
-getAddedNodes self
-  = liftIO (nullableToMaybe <$> (js_getAddedNodes (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.addedNodes Mozilla MutationRecord.addedNodes documentation> 
-getAddedNodesUnsafe ::
-                    (MonadIO m, HasCallStack) => MutationRecord -> m NodeList
-getAddedNodesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAddedNodes (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getAddedNodes :: MutationRecord -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.addedNodes Mozilla MutationRecord.addedNodes documentation> 
-getAddedNodesUnchecked ::
-                       (MonadIO m) => MutationRecord -> m NodeList
-getAddedNodesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAddedNodes (self)))
+getAddedNodes :: (MonadIO m) => MutationRecord -> m NodeList
+getAddedNodes self = liftIO (js_getAddedNodes self)
  
 foreign import javascript unsafe "$1[\"removedNodes\"]"
-        js_getRemovedNodes :: MutationRecord -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.removedNodes Mozilla MutationRecord.removedNodes documentation> 
-getRemovedNodes ::
-                (MonadIO m) => MutationRecord -> m (Maybe NodeList)
-getRemovedNodes self
-  = liftIO (nullableToMaybe <$> (js_getRemovedNodes (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.removedNodes Mozilla MutationRecord.removedNodes documentation> 
-getRemovedNodesUnsafe ::
-                      (MonadIO m, HasCallStack) => MutationRecord -> m NodeList
-getRemovedNodesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRemovedNodes (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getRemovedNodes :: MutationRecord -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.removedNodes Mozilla MutationRecord.removedNodes documentation> 
-getRemovedNodesUnchecked ::
-                         (MonadIO m) => MutationRecord -> m NodeList
-getRemovedNodesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRemovedNodes (self)))
+getRemovedNodes :: (MonadIO m) => MutationRecord -> m NodeList
+getRemovedNodes self = liftIO (js_getRemovedNodes self)
  
 foreign import javascript unsafe "$1[\"previousSibling\"]"
-        js_getPreviousSibling :: MutationRecord -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.previousSibling Mozilla MutationRecord.previousSibling documentation> 
-getPreviousSibling ::
-                   (MonadIO m) => MutationRecord -> m (Maybe Node)
-getPreviousSibling self
-  = liftIO (nullableToMaybe <$> (js_getPreviousSibling (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.previousSibling Mozilla MutationRecord.previousSibling documentation> 
-getPreviousSiblingUnsafe ::
-                         (MonadIO m, HasCallStack) => MutationRecord -> m Node
-getPreviousSiblingUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPreviousSibling (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getPreviousSibling :: MutationRecord -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.previousSibling Mozilla MutationRecord.previousSibling documentation> 
-getPreviousSiblingUnchecked ::
-                            (MonadIO m) => MutationRecord -> m Node
-getPreviousSiblingUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPreviousSibling (self)))
+getPreviousSibling :: (MonadIO m) => MutationRecord -> m Node
+getPreviousSibling self = liftIO (js_getPreviousSibling self)
  
 foreign import javascript unsafe "$1[\"nextSibling\"]"
-        js_getNextSibling :: MutationRecord -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.nextSibling Mozilla MutationRecord.nextSibling documentation> 
-getNextSibling :: (MonadIO m) => MutationRecord -> m (Maybe Node)
-getNextSibling self
-  = liftIO (nullableToMaybe <$> (js_getNextSibling (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.nextSibling Mozilla MutationRecord.nextSibling documentation> 
-getNextSiblingUnsafe ::
-                     (MonadIO m, HasCallStack) => MutationRecord -> m Node
-getNextSiblingUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getNextSibling (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getNextSibling :: MutationRecord -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.nextSibling Mozilla MutationRecord.nextSibling documentation> 
-getNextSiblingUnchecked :: (MonadIO m) => MutationRecord -> m Node
-getNextSiblingUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getNextSibling (self)))
+getNextSibling :: (MonadIO m) => MutationRecord -> m Node
+getNextSibling self = liftIO (js_getNextSibling self)
  
 foreign import javascript unsafe "$1[\"attributeName\"]"
         js_getAttributeName :: MutationRecord -> IO (Nullable JSString)
@@ -165,7 +84,7 @@
                  (MonadIO m, FromJSString result) =>
                    MutationRecord -> m (Maybe result)
 getAttributeName self
-  = liftIO (fromMaybeJSString <$> (js_getAttributeName (self)))
+  = liftIO (fromMaybeJSString <$> (js_getAttributeName self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.attributeName Mozilla MutationRecord.attributeName documentation> 
 getAttributeNameUnsafe ::
@@ -173,7 +92,7 @@
                          MutationRecord -> m result
 getAttributeNameUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getAttributeName (self))) >>=
+      ((fromMaybeJSString <$> (js_getAttributeName self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.attributeName Mozilla MutationRecord.attributeName documentation> 
@@ -181,7 +100,7 @@
                           (MonadIO m, FromJSString result) => MutationRecord -> m result
 getAttributeNameUnchecked self
   = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getAttributeName (self)))
+      (fromJust . fromMaybeJSString <$> (js_getAttributeName self))
  
 foreign import javascript unsafe "$1[\"attributeNamespace\"]"
         js_getAttributeNamespace ::
@@ -192,7 +111,7 @@
                       (MonadIO m, FromJSString result) =>
                         MutationRecord -> m (Maybe result)
 getAttributeNamespace self
-  = liftIO (fromMaybeJSString <$> (js_getAttributeNamespace (self)))
+  = liftIO (fromMaybeJSString <$> (js_getAttributeNamespace self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.attributeNamespace Mozilla MutationRecord.attributeNamespace documentation> 
 getAttributeNamespaceUnsafe ::
@@ -200,7 +119,7 @@
                               MutationRecord -> m result
 getAttributeNamespaceUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getAttributeNamespace (self))) >>=
+      ((fromMaybeJSString <$> (js_getAttributeNamespace self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.attributeNamespace Mozilla MutationRecord.attributeNamespace documentation> 
@@ -208,8 +127,7 @@
                                (MonadIO m, FromJSString result) => MutationRecord -> m result
 getAttributeNamespaceUnchecked self
   = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getAttributeNamespace (self)))
+      (fromJust . fromMaybeJSString <$> (js_getAttributeNamespace self))
  
 foreign import javascript unsafe "$1[\"oldValue\"]" js_getOldValue
         :: MutationRecord -> IO (Nullable JSString)
@@ -219,7 +137,7 @@
             (MonadIO m, FromJSString result) =>
               MutationRecord -> m (Maybe result)
 getOldValue self
-  = liftIO (fromMaybeJSString <$> (js_getOldValue (self)))
+  = liftIO (fromMaybeJSString <$> (js_getOldValue self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.oldValue Mozilla MutationRecord.oldValue documentation> 
 getOldValueUnsafe ::
@@ -227,11 +145,11 @@
                     MutationRecord -> m result
 getOldValueUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getOldValue (self))) >>=
+      ((fromMaybeJSString <$> (js_getOldValue self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord.oldValue Mozilla MutationRecord.oldValue documentation> 
 getOldValueUnchecked ::
                      (MonadIO m, FromJSString result) => MutationRecord -> m result
 getOldValueUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getOldValue (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getOldValue self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NamedNodeMap.hs b/src/GHCJS/DOM/JSFFI/Generated/NamedNodeMap.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/NamedNodeMap.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/NamedNodeMap.hs
@@ -4,24 +4,22 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.NamedNodeMap
-       (js_getNamedItem, getNamedItem, getNamedItem_, getNamedItemUnsafe,
-        getNamedItemUnchecked, js_setNamedItem, setNamedItem,
-        setNamedItem_, setNamedItemUnsafe, setNamedItemUnchecked,
-        js_removeNamedItem, removeNamedItem, removeNamedItem_,
-        removeNamedItemUnsafe, removeNamedItemUnchecked, js_item, item,
-        item_, itemUnsafe, itemUnchecked, js_getNamedItemNS,
-        getNamedItemNS, getNamedItemNS_, getNamedItemNSUnsafe,
-        getNamedItemNSUnchecked, js_setNamedItemNS, setNamedItemNS,
+       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getNamedItem,
+        getNamedItem, getNamedItem_, getNamedItemUnsafe,
+        getNamedItemUnchecked, js_getNamedItemNS, getNamedItemNS,
+        getNamedItemNS_, getNamedItemNSUnsafe, getNamedItemNSUnchecked,
+        js_setNamedItem, setNamedItem, setNamedItem_, setNamedItemUnsafe,
+        setNamedItemUnchecked, js_setNamedItemNS, setNamedItemNS,
         setNamedItemNS_, setNamedItemNSUnsafe, setNamedItemNSUnchecked,
+        js_removeNamedItem, removeNamedItem, removeNamedItem_,
         js_removeNamedItemNS, removeNamedItemNS, removeNamedItemNS_,
-        removeNamedItemNSUnsafe, removeNamedItemNSUnchecked, js_getLength,
-        getLength, NamedNodeMap(..), gTypeNamedNodeMap)
+        js_getLength, getLength, NamedNodeMap(..), gTypeNamedNodeMap)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -30,157 +28,82 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"getNamedItem\"]($2)"
-        js_getNamedItem :: NamedNodeMap -> JSString -> IO (Nullable Node)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        NamedNodeMap -> Word -> IO (Nullable Attr)
 
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.item Mozilla NamedNodeMap.item documentation> 
+item :: (MonadIO m) => NamedNodeMap -> Word -> m (Maybe Attr)
+item self index = liftIO (nullableToMaybe <$> (js_item self index))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.item Mozilla NamedNodeMap.item documentation> 
+item_ :: (MonadIO m) => NamedNodeMap -> Word -> m ()
+item_ self index = liftIO (void (js_item self index))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.item Mozilla NamedNodeMap.item documentation> 
+itemUnsafe ::
+           (MonadIO m, HasCallStack) => NamedNodeMap -> Word -> m Attr
+itemUnsafe self index
+  = liftIO
+      ((nullableToMaybe <$> (js_item self index)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.item Mozilla NamedNodeMap.item documentation> 
+itemUnchecked :: (MonadIO m) => NamedNodeMap -> Word -> m Attr
+itemUnchecked self index
+  = liftIO (fromJust . nullableToMaybe <$> (js_item self index))
+ 
+foreign import javascript unsafe "$1[$2]" js_getNamedItem ::
+        NamedNodeMap -> JSString -> IO (Nullable Attr)
+
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.getNamedItem Mozilla NamedNodeMap.getNamedItem documentation> 
 getNamedItem ::
              (MonadIO m, ToJSString name) =>
-               NamedNodeMap -> name -> m (Maybe Node)
+               NamedNodeMap -> name -> m (Maybe Attr)
 getNamedItem self name
   = liftIO
-      (nullableToMaybe <$> (js_getNamedItem (self) (toJSString name)))
+      (nullableToMaybe <$> (js_getNamedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.getNamedItem Mozilla NamedNodeMap.getNamedItem documentation> 
 getNamedItem_ ::
               (MonadIO m, ToJSString name) => NamedNodeMap -> name -> m ()
 getNamedItem_ self name
-  = liftIO (void (js_getNamedItem (self) (toJSString name)))
+  = liftIO (void (js_getNamedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.getNamedItem Mozilla NamedNodeMap.getNamedItem documentation> 
 getNamedItemUnsafe ::
                    (MonadIO m, ToJSString name, HasCallStack) =>
-                     NamedNodeMap -> name -> m Node
+                     NamedNodeMap -> name -> m Attr
 getNamedItemUnsafe self name
   = liftIO
-      ((nullableToMaybe <$> (js_getNamedItem (self) (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+      ((nullableToMaybe <$> (js_getNamedItem self (toJSString name))) >>=
+         maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.getNamedItem Mozilla NamedNodeMap.getNamedItem documentation> 
 getNamedItemUnchecked ::
-                      (MonadIO m, ToJSString name) => NamedNodeMap -> name -> m Node
+                      (MonadIO m, ToJSString name) => NamedNodeMap -> name -> m Attr
 getNamedItemUnchecked self name
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_getNamedItem (self) (toJSString name)))
- 
-foreign import javascript unsafe "$1[\"setNamedItem\"]($2)"
-        js_setNamedItem ::
-        NamedNodeMap -> Nullable Node -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItem Mozilla NamedNodeMap.setNamedItem documentation> 
-setNamedItem ::
-             (MonadIO m, IsNode node) =>
-               NamedNodeMap -> Maybe node -> m (Maybe Node)
-setNamedItem self node
-  = liftIO
-      (nullableToMaybe <$>
-         (js_setNamedItem (self) (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItem Mozilla NamedNodeMap.setNamedItem documentation> 
-setNamedItem_ ::
-              (MonadIO m, IsNode node) => NamedNodeMap -> Maybe node -> m ()
-setNamedItem_ self node
-  = liftIO
-      (void
-         (js_setNamedItem (self) (maybeToNullable (fmap toNode node))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItem Mozilla NamedNodeMap.setNamedItem documentation> 
-setNamedItemUnsafe ::
-                   (MonadIO m, IsNode node, HasCallStack) =>
-                     NamedNodeMap -> Maybe node -> m Node
-setNamedItemUnsafe self node
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_setNamedItem (self) (maybeToNullable (fmap toNode node))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItem Mozilla NamedNodeMap.setNamedItem documentation> 
-setNamedItemUnchecked ::
-                      (MonadIO m, IsNode node) => NamedNodeMap -> Maybe node -> m Node
-setNamedItemUnchecked self node
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_setNamedItem (self) (maybeToNullable (fmap toNode node))))
- 
-foreign import javascript unsafe "$1[\"removeNamedItem\"]($2)"
-        js_removeNamedItem ::
-        NamedNodeMap -> JSString -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.removeNamedItem Mozilla NamedNodeMap.removeNamedItem documentation> 
-removeNamedItem ::
-                (MonadIO m, ToJSString name) =>
-                  NamedNodeMap -> name -> m (Maybe Node)
-removeNamedItem self name
-  = liftIO
-      (nullableToMaybe <$> (js_removeNamedItem (self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.removeNamedItem Mozilla NamedNodeMap.removeNamedItem documentation> 
-removeNamedItem_ ::
-                 (MonadIO m, ToJSString name) => NamedNodeMap -> name -> m ()
-removeNamedItem_ self name
-  = liftIO (void (js_removeNamedItem (self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.removeNamedItem Mozilla NamedNodeMap.removeNamedItem documentation> 
-removeNamedItemUnsafe ::
-                      (MonadIO m, ToJSString name, HasCallStack) =>
-                        NamedNodeMap -> name -> m Node
-removeNamedItemUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_removeNamedItem (self) (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.removeNamedItem Mozilla NamedNodeMap.removeNamedItem documentation> 
-removeNamedItemUnchecked ::
-                         (MonadIO m, ToJSString name) => NamedNodeMap -> name -> m Node
-removeNamedItemUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_removeNamedItem (self) (toJSString name)))
- 
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        NamedNodeMap -> Word -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.item Mozilla NamedNodeMap.item documentation> 
-item :: (MonadIO m) => NamedNodeMap -> Word -> m (Maybe Node)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.item Mozilla NamedNodeMap.item documentation> 
-item_ :: (MonadIO m) => NamedNodeMap -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.item Mozilla NamedNodeMap.item documentation> 
-itemUnsafe ::
-           (MonadIO m, HasCallStack) => NamedNodeMap -> Word -> m Node
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.item Mozilla NamedNodeMap.item documentation> 
-itemUnchecked :: (MonadIO m) => NamedNodeMap -> Word -> m Node
-itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+         (js_getNamedItem self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"getNamedItemNS\"]($2, $3)"
         js_getNamedItemNS ::
-        NamedNodeMap -> Nullable JSString -> JSString -> IO (Nullable Node)
+        NamedNodeMap -> Optional JSString -> JSString -> IO (Nullable Attr)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.getNamedItemNS Mozilla NamedNodeMap.getNamedItemNS documentation> 
 getNamedItemNS ::
                (MonadIO m, ToJSString namespaceURI, ToJSString localName) =>
-                 NamedNodeMap -> Maybe namespaceURI -> localName -> m (Maybe Node)
+                 NamedNodeMap -> Maybe namespaceURI -> localName -> m (Maybe Attr)
 getNamedItemNS self namespaceURI localName
   = liftIO
       (nullableToMaybe <$>
-         (js_getNamedItemNS (self) (toMaybeJSString namespaceURI)
+         (js_getNamedItemNS self (toOptionalJSString namespaceURI)
             (toJSString localName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.getNamedItemNS Mozilla NamedNodeMap.getNamedItemNS documentation> 
@@ -190,83 +113,115 @@
 getNamedItemNS_ self namespaceURI localName
   = liftIO
       (void
-         (js_getNamedItemNS (self) (toMaybeJSString namespaceURI)
+         (js_getNamedItemNS self (toOptionalJSString namespaceURI)
             (toJSString localName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.getNamedItemNS Mozilla NamedNodeMap.getNamedItemNS documentation> 
 getNamedItemNSUnsafe ::
                      (MonadIO m, ToJSString namespaceURI, ToJSString localName,
                       HasCallStack) =>
-                       NamedNodeMap -> Maybe namespaceURI -> localName -> m Node
+                       NamedNodeMap -> Maybe namespaceURI -> localName -> m Attr
 getNamedItemNSUnsafe self namespaceURI localName
   = liftIO
       ((nullableToMaybe <$>
-          (js_getNamedItemNS (self) (toMaybeJSString namespaceURI)
+          (js_getNamedItemNS self (toOptionalJSString namespaceURI)
              (toJSString localName)))
          >>= maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.getNamedItemNS Mozilla NamedNodeMap.getNamedItemNS documentation> 
 getNamedItemNSUnchecked ::
                         (MonadIO m, ToJSString namespaceURI, ToJSString localName) =>
-                          NamedNodeMap -> Maybe namespaceURI -> localName -> m Node
+                          NamedNodeMap -> Maybe namespaceURI -> localName -> m Attr
 getNamedItemNSUnchecked self namespaceURI localName
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_getNamedItemNS (self) (toMaybeJSString namespaceURI)
+         (js_getNamedItemNS self (toOptionalJSString namespaceURI)
             (toJSString localName)))
  
+foreign import javascript unsafe "$1[\"setNamedItem\"]($2)"
+        js_setNamedItem :: NamedNodeMap -> Attr -> IO (Nullable Attr)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItem Mozilla NamedNodeMap.setNamedItem documentation> 
+setNamedItem ::
+             (MonadIO m) => NamedNodeMap -> Attr -> m (Maybe Attr)
+setNamedItem self attr
+  = liftIO (nullableToMaybe <$> (js_setNamedItem self attr))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItem Mozilla NamedNodeMap.setNamedItem documentation> 
+setNamedItem_ :: (MonadIO m) => NamedNodeMap -> Attr -> m ()
+setNamedItem_ self attr = liftIO (void (js_setNamedItem self attr))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItem Mozilla NamedNodeMap.setNamedItem documentation> 
+setNamedItemUnsafe ::
+                   (MonadIO m, HasCallStack) => NamedNodeMap -> Attr -> m Attr
+setNamedItemUnsafe self attr
+  = liftIO
+      ((nullableToMaybe <$> (js_setNamedItem self attr)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItem Mozilla NamedNodeMap.setNamedItem documentation> 
+setNamedItemUnchecked ::
+                      (MonadIO m) => NamedNodeMap -> Attr -> m Attr
+setNamedItemUnchecked self attr
+  = liftIO
+      (fromJust . nullableToMaybe <$> (js_setNamedItem self attr))
+ 
 foreign import javascript unsafe "$1[\"setNamedItemNS\"]($2)"
-        js_setNamedItemNS ::
-        NamedNodeMap -> Nullable Node -> IO (Nullable Node)
+        js_setNamedItemNS :: NamedNodeMap -> Attr -> IO (Nullable Attr)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItemNS Mozilla NamedNodeMap.setNamedItemNS documentation> 
 setNamedItemNS ::
-               (MonadIO m, IsNode node) =>
-                 NamedNodeMap -> Maybe node -> m (Maybe Node)
-setNamedItemNS self node
-  = liftIO
-      (nullableToMaybe <$>
-         (js_setNamedItemNS (self) (maybeToNullable (fmap toNode node))))
+               (MonadIO m) => NamedNodeMap -> Attr -> m (Maybe Attr)
+setNamedItemNS self attr
+  = liftIO (nullableToMaybe <$> (js_setNamedItemNS self attr))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItemNS Mozilla NamedNodeMap.setNamedItemNS documentation> 
-setNamedItemNS_ ::
-                (MonadIO m, IsNode node) => NamedNodeMap -> Maybe node -> m ()
-setNamedItemNS_ self node
-  = liftIO
-      (void
-         (js_setNamedItemNS (self) (maybeToNullable (fmap toNode node))))
+setNamedItemNS_ :: (MonadIO m) => NamedNodeMap -> Attr -> m ()
+setNamedItemNS_ self attr
+  = liftIO (void (js_setNamedItemNS self attr))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItemNS Mozilla NamedNodeMap.setNamedItemNS documentation> 
 setNamedItemNSUnsafe ::
-                     (MonadIO m, IsNode node, HasCallStack) =>
-                       NamedNodeMap -> Maybe node -> m Node
-setNamedItemNSUnsafe self node
+                     (MonadIO m, HasCallStack) => NamedNodeMap -> Attr -> m Attr
+setNamedItemNSUnsafe self attr
   = liftIO
-      ((nullableToMaybe <$>
-          (js_setNamedItemNS (self) (maybeToNullable (fmap toNode node))))
-         >>= maybe (Prelude.error "Nothing to return") return)
+      ((nullableToMaybe <$> (js_setNamedItemNS self attr)) >>=
+         maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.setNamedItemNS Mozilla NamedNodeMap.setNamedItemNS documentation> 
 setNamedItemNSUnchecked ::
-                        (MonadIO m, IsNode node) => NamedNodeMap -> Maybe node -> m Node
-setNamedItemNSUnchecked self node
+                        (MonadIO m) => NamedNodeMap -> Attr -> m Attr
+setNamedItemNSUnchecked self attr
   = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_setNamedItemNS (self) (maybeToNullable (fmap toNode node))))
+      (fromJust . nullableToMaybe <$> (js_setNamedItemNS self attr))
  
+foreign import javascript unsafe "$1[\"removeNamedItem\"]($2)"
+        js_removeNamedItem :: NamedNodeMap -> JSString -> IO Attr
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.removeNamedItem Mozilla NamedNodeMap.removeNamedItem documentation> 
+removeNamedItem ::
+                (MonadIO m, ToJSString name) => NamedNodeMap -> name -> m Attr
+removeNamedItem self name
+  = liftIO (js_removeNamedItem self (toJSString name))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.removeNamedItem Mozilla NamedNodeMap.removeNamedItem documentation> 
+removeNamedItem_ ::
+                 (MonadIO m, ToJSString name) => NamedNodeMap -> name -> m ()
+removeNamedItem_ self name
+  = liftIO (void (js_removeNamedItem self (toJSString name)))
+ 
 foreign import javascript unsafe
         "$1[\"removeNamedItemNS\"]($2, $3)" js_removeNamedItemNS ::
-        NamedNodeMap -> Nullable JSString -> JSString -> IO (Nullable Node)
+        NamedNodeMap -> Optional JSString -> JSString -> IO Attr
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.removeNamedItemNS Mozilla NamedNodeMap.removeNamedItemNS documentation> 
 removeNamedItemNS ::
                   (MonadIO m, ToJSString namespaceURI, ToJSString localName) =>
-                    NamedNodeMap -> Maybe namespaceURI -> localName -> m (Maybe Node)
+                    NamedNodeMap -> Maybe namespaceURI -> localName -> m Attr
 removeNamedItemNS self namespaceURI localName
   = liftIO
-      (nullableToMaybe <$>
-         (js_removeNamedItemNS (self) (toMaybeJSString namespaceURI)
-            (toJSString localName)))
+      (js_removeNamedItemNS self (toOptionalJSString namespaceURI)
+         (toJSString localName))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.removeNamedItemNS Mozilla NamedNodeMap.removeNamedItemNS documentation> 
 removeNamedItemNS_ ::
@@ -275,29 +230,7 @@
 removeNamedItemNS_ self namespaceURI localName
   = liftIO
       (void
-         (js_removeNamedItemNS (self) (toMaybeJSString namespaceURI)
-            (toJSString localName)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.removeNamedItemNS Mozilla NamedNodeMap.removeNamedItemNS documentation> 
-removeNamedItemNSUnsafe ::
-                        (MonadIO m, ToJSString namespaceURI, ToJSString localName,
-                         HasCallStack) =>
-                          NamedNodeMap -> Maybe namespaceURI -> localName -> m Node
-removeNamedItemNSUnsafe self namespaceURI localName
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_removeNamedItemNS (self) (toMaybeJSString namespaceURI)
-             (toJSString localName)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.removeNamedItemNS Mozilla NamedNodeMap.removeNamedItemNS documentation> 
-removeNamedItemNSUnchecked ::
-                           (MonadIO m, ToJSString namespaceURI, ToJSString localName) =>
-                             NamedNodeMap -> Maybe namespaceURI -> localName -> m Node
-removeNamedItemNSUnchecked self namespaceURI localName
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_removeNamedItemNS (self) (toMaybeJSString namespaceURI)
+         (js_removeNamedItemNS self (toOptionalJSString namespaceURI)
             (toJSString localName)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
@@ -305,4 +238,4 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.length Mozilla NamedNodeMap.length documentation> 
 getLength :: (MonadIO m) => NamedNodeMap -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Navigator.hs b/src/GHCJS/DOM/JSFFI/Generated/Navigator.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Navigator.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Navigator.hs
@@ -4,38 +4,28 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Navigator
-       (js_getGamepads, getGamepads, getGamepads_, js_webkitGetUserMedia,
-        webkitGetUserMedia, js_registerProtocolHandler,
-        registerProtocolHandler, js_isProtocolHandlerRegistered,
-        isProtocolHandlerRegistered, isProtocolHandlerRegistered_,
-        js_unregisterProtocolHandler, unregisterProtocolHandler,
-        js_vibratePattern, vibratePattern, vibratePattern_, js_vibrate,
-        vibrate, vibrate_, js_javaEnabled, javaEnabled, javaEnabled_,
-        js_getStorageUpdates, getStorageUpdates, js_getWebkitBattery,
-        getWebkitBattery, getWebkitBatteryUnsafe,
-        getWebkitBatteryUnchecked, js_getGeolocation, getGeolocation,
-        getGeolocationUnsafe, getGeolocationUnchecked,
-        js_getWebkitTemporaryStorage, getWebkitTemporaryStorage,
-        getWebkitTemporaryStorageUnsafe,
-        getWebkitTemporaryStorageUnchecked, js_getWebkitPersistentStorage,
-        getWebkitPersistentStorage, getWebkitPersistentStorageUnsafe,
-        getWebkitPersistentStorageUnchecked, js_getAppCodeName,
-        getAppCodeName, js_getAppName, getAppName, js_getAppVersion,
-        getAppVersion, js_getLanguage, getLanguage, js_getUserAgent,
-        getUserAgent, js_getPlatform, getPlatform, js_getPlugins,
-        getPlugins, getPluginsUnsafe, getPluginsUnchecked, js_getMimeTypes,
-        getMimeTypes, getMimeTypesUnsafe, getMimeTypesUnchecked,
-        js_getProduct, getProduct, js_getProductSub, getProductSub,
-        js_getVendor, getVendor, js_getVendorSub, getVendorSub,
-        js_getCookieEnabled, getCookieEnabled, js_getOnLine, getOnLine,
-        js_getHardwareConcurrency, getHardwareConcurrency, Navigator(..),
+       (js_requestMediaKeySystemAccess, requestMediaKeySystemAccess,
+        requestMediaKeySystemAccess_, js_getGamepads, getGamepads,
+        getGamepads_, js_getUserMedia, getUserMedia,
+        js_registerProtocolHandler, registerProtocolHandler,
+        js_isProtocolHandlerRegistered, isProtocolHandlerRegistered,
+        isProtocolHandlerRegistered_, js_unregisterProtocolHandler,
+        unregisterProtocolHandler, js_vibratePattern, vibratePattern,
+        vibratePattern_, js_vibrate, vibrate, vibrate_, js_javaEnabled,
+        javaEnabled, javaEnabled_, js_getStorageUpdates, getStorageUpdates,
+        js_getGeolocation, getGeolocation, js_getMediaDevices,
+        getMediaDevices, js_getWebkitTemporaryStorage,
+        getWebkitTemporaryStorage, js_getWebkitPersistentStorage,
+        getWebkitPersistentStorage, js_getWebdriver, getWebdriver,
+        js_getPlugins, getPlugins, js_getMimeTypes, getMimeTypes,
+        js_getCookieEnabled, getCookieEnabled, Navigator(..),
         gTypeNavigator)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -44,43 +34,71 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript interruptible
+        "$1[\"requestMediaKeySystemAccess\"]($2,\n$3).\nthen($c);"
+        js_requestMediaKeySystemAccess ::
+        Navigator -> JSString -> JSVal -> IO MediaKeySystemAccess
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.requestMediaKeySystemAccess Mozilla Navigator.requestMediaKeySystemAccess documentation> 
+requestMediaKeySystemAccess ::
+                            (MonadIO m, ToJSString keySystem) =>
+                              Navigator ->
+                                keySystem ->
+                                  [MediaKeySystemConfiguration] -> m MediaKeySystemAccess
+requestMediaKeySystemAccess self keySystem supportedConfiguration
+  = liftIO
+      (toJSVal supportedConfiguration >>=
+         \ supportedConfiguration' ->
+           js_requestMediaKeySystemAccess self (toJSString keySystem)
+             supportedConfiguration')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.requestMediaKeySystemAccess Mozilla Navigator.requestMediaKeySystemAccess documentation> 
+requestMediaKeySystemAccess_ ::
+                             (MonadIO m, ToJSString keySystem) =>
+                               Navigator -> keySystem -> [MediaKeySystemConfiguration] -> m ()
+requestMediaKeySystemAccess_ self keySystem supportedConfiguration
+  = liftIO
+      (void
+         (toJSVal supportedConfiguration >>=
+            \ supportedConfiguration' ->
+              js_requestMediaKeySystemAccess self (toJSString keySystem)
+                supportedConfiguration'))
+ 
 foreign import javascript unsafe "$1[\"getGamepads\"]()"
         js_getGamepads :: Navigator -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.getGamepads Mozilla Navigator.getGamepads documentation> 
-getGamepads :: (MonadIO m) => Navigator -> m [Maybe Gamepad]
+getGamepads :: (MonadIO m) => Navigator -> m [Gamepad]
 getGamepads self
-  = liftIO ((js_getGamepads (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_getGamepads self) >>= fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.getGamepads Mozilla Navigator.getGamepads documentation> 
 getGamepads_ :: (MonadIO m) => Navigator -> m ()
-getGamepads_ self = liftIO (void (js_getGamepads (self)))
+getGamepads_ self = liftIO (void (js_getGamepads self))
  
-foreign import javascript unsafe
-        "$1[\"webkitGetUserMedia\"]($2, $3,\n$4)" js_webkitGetUserMedia ::
+foreign import javascript unsafe "$1[\"getUserMedia\"]($2, $3, $4)"
+        js_getUserMedia ::
         Navigator ->
-          Nullable Dictionary ->
-            Nullable NavigatorUserMediaSuccessCallback ->
-              Nullable NavigatorUserMediaErrorCallback -> IO ()
+          MediaStreamConstraints ->
+            NavigatorUserMediaSuccessCallback ->
+              NavigatorUserMediaErrorCallback -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.webkitGetUserMedia Mozilla Navigator.webkitGetUserMedia documentation> 
-webkitGetUserMedia ::
-                   (MonadIO m, IsDictionary options) =>
-                     Navigator ->
-                       Maybe options ->
-                         Maybe NavigatorUserMediaSuccessCallback ->
-                           Maybe NavigatorUserMediaErrorCallback -> m ()
-webkitGetUserMedia self options successCallback errorCallback
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.getUserMedia Mozilla Navigator.getUserMedia documentation> 
+getUserMedia ::
+             (MonadIO m) =>
+               Navigator ->
+                 MediaStreamConstraints ->
+                   NavigatorUserMediaSuccessCallback ->
+                     NavigatorUserMediaErrorCallback -> m ()
+getUserMedia self constraints successCallback errorCallback
   = liftIO
-      (js_webkitGetUserMedia (self)
-         (maybeToNullable (fmap toDictionary options))
-         (maybeToNullable successCallback)
-         (maybeToNullable errorCallback))
+      (js_getUserMedia self constraints successCallback errorCallback)
  
 foreign import javascript unsafe
         "$1[\"registerProtocolHandler\"]($2,\n$3, $4)"
@@ -93,7 +111,7 @@
                           Navigator -> scheme -> url -> title -> m ()
 registerProtocolHandler self scheme url title
   = liftIO
-      (js_registerProtocolHandler (self) (toJSString scheme)
+      (js_registerProtocolHandler self (toJSString scheme)
          (toJSString url)
          (toJSString title))
  
@@ -110,7 +128,7 @@
 isProtocolHandlerRegistered self scheme url
   = liftIO
       (fromJSString <$>
-         (js_isProtocolHandlerRegistered (self) (toJSString scheme)
+         (js_isProtocolHandlerRegistered self (toJSString scheme)
             (toJSString url)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.isProtocolHandlerRegistered Mozilla Navigator.isProtocolHandlerRegistered documentation> 
@@ -120,7 +138,7 @@
 isProtocolHandlerRegistered_ self scheme url
   = liftIO
       (void
-         (js_isProtocolHandlerRegistered (self) (toJSString scheme)
+         (js_isProtocolHandlerRegistered self (toJSString scheme)
             (toJSString url)))
  
 foreign import javascript unsafe
@@ -134,7 +152,7 @@
                             Navigator -> scheme -> url -> m ()
 unregisterProtocolHandler self scheme url
   = liftIO
-      (js_unregisterProtocolHandler (self) (toJSString scheme)
+      (js_unregisterProtocolHandler self (toJSString scheme)
          (toJSString url))
  
 foreign import javascript unsafe "($1[\"vibrate\"]($2) ? 1 : 0)"
@@ -145,7 +163,7 @@
 vibratePattern self pattern'
   = liftIO
       (toJSVal pattern' >>=
-         \ pattern'' -> js_vibratePattern (self) pattern'')
+         \ pattern'' -> js_vibratePattern self pattern'')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.vibrate Mozilla Navigator.vibrate documentation> 
 vibratePattern_ :: (MonadIO m) => Navigator -> [Word] -> m ()
@@ -153,286 +171,93 @@
   = liftIO
       (void
          (toJSVal pattern' >>=
-            \ pattern'' -> js_vibratePattern (self) pattern''))
+            \ pattern'' -> js_vibratePattern self pattern''))
  
 foreign import javascript unsafe "($1[\"vibrate\"]($2) ? 1 : 0)"
         js_vibrate :: Navigator -> Word -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.vibrate Mozilla Navigator.vibrate documentation> 
 vibrate :: (MonadIO m) => Navigator -> Word -> m Bool
-vibrate self time = liftIO (js_vibrate (self) time)
+vibrate self time = liftIO (js_vibrate self time)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.vibrate Mozilla Navigator.vibrate documentation> 
 vibrate_ :: (MonadIO m) => Navigator -> Word -> m ()
-vibrate_ self time = liftIO (void (js_vibrate (self) time))
+vibrate_ self time = liftIO (void (js_vibrate self time))
  
 foreign import javascript unsafe "($1[\"javaEnabled\"]() ? 1 : 0)"
         js_javaEnabled :: Navigator -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.javaEnabled Mozilla Navigator.javaEnabled documentation> 
 javaEnabled :: (MonadIO m) => Navigator -> m Bool
-javaEnabled self = liftIO (js_javaEnabled (self))
+javaEnabled self = liftIO (js_javaEnabled self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.javaEnabled Mozilla Navigator.javaEnabled documentation> 
 javaEnabled_ :: (MonadIO m) => Navigator -> m ()
-javaEnabled_ self = liftIO (void (js_javaEnabled (self)))
+javaEnabled_ self = liftIO (void (js_javaEnabled self))
  
 foreign import javascript unsafe "$1[\"getStorageUpdates\"]()"
         js_getStorageUpdates :: Navigator -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.getStorageUpdates Mozilla Navigator.getStorageUpdates documentation> 
 getStorageUpdates :: (MonadIO m) => Navigator -> m ()
-getStorageUpdates self = liftIO (js_getStorageUpdates (self))
- 
-foreign import javascript unsafe "$1[\"webkitBattery\"]"
-        js_getWebkitBattery :: Navigator -> IO (Nullable BatteryManager)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.webkitBattery Mozilla Navigator.webkitBattery documentation> 
-getWebkitBattery ::
-                 (MonadIO m) => Navigator -> m (Maybe BatteryManager)
-getWebkitBattery self
-  = liftIO (nullableToMaybe <$> (js_getWebkitBattery (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.webkitBattery Mozilla Navigator.webkitBattery documentation> 
-getWebkitBatteryUnsafe ::
-                       (MonadIO m, HasCallStack) => Navigator -> m BatteryManager
-getWebkitBatteryUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWebkitBattery (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.webkitBattery Mozilla Navigator.webkitBattery documentation> 
-getWebkitBatteryUnchecked ::
-                          (MonadIO m) => Navigator -> m BatteryManager
-getWebkitBatteryUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getWebkitBattery (self)))
+getStorageUpdates self = liftIO (js_getStorageUpdates self)
  
 foreign import javascript unsafe "$1[\"geolocation\"]"
-        js_getGeolocation :: Navigator -> IO (Nullable Geolocation)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.geolocation Mozilla Navigator.geolocation documentation> 
-getGeolocation :: (MonadIO m) => Navigator -> m (Maybe Geolocation)
-getGeolocation self
-  = liftIO (nullableToMaybe <$> (js_getGeolocation (self)))
+        js_getGeolocation :: Navigator -> IO Geolocation
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.geolocation Mozilla Navigator.geolocation documentation> 
-getGeolocationUnsafe ::
-                     (MonadIO m, HasCallStack) => Navigator -> m Geolocation
-getGeolocationUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getGeolocation (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+getGeolocation :: (MonadIO m) => Navigator -> m Geolocation
+getGeolocation self = liftIO (js_getGeolocation self)
+ 
+foreign import javascript unsafe "$1[\"mediaDevices\"]"
+        js_getMediaDevices :: Navigator -> IO MediaDevices
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.geolocation Mozilla Navigator.geolocation documentation> 
-getGeolocationUnchecked ::
-                        (MonadIO m) => Navigator -> m Geolocation
-getGeolocationUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getGeolocation (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.mediaDevices Mozilla Navigator.mediaDevices documentation> 
+getMediaDevices :: (MonadIO m) => Navigator -> m MediaDevices
+getMediaDevices self = liftIO (js_getMediaDevices self)
  
 foreign import javascript unsafe "$1[\"webkitTemporaryStorage\"]"
-        js_getWebkitTemporaryStorage ::
-        Navigator -> IO (Nullable StorageQuota)
+        js_getWebkitTemporaryStorage :: Navigator -> IO StorageQuota
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.webkitTemporaryStorage Mozilla Navigator.webkitTemporaryStorage documentation> 
 getWebkitTemporaryStorage ::
-                          (MonadIO m) => Navigator -> m (Maybe StorageQuota)
+                          (MonadIO m) => Navigator -> m StorageQuota
 getWebkitTemporaryStorage self
-  = liftIO
-      (nullableToMaybe <$> (js_getWebkitTemporaryStorage (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.webkitTemporaryStorage Mozilla Navigator.webkitTemporaryStorage documentation> 
-getWebkitTemporaryStorageUnsafe ::
-                                (MonadIO m, HasCallStack) => Navigator -> m StorageQuota
-getWebkitTemporaryStorageUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWebkitTemporaryStorage (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.webkitTemporaryStorage Mozilla Navigator.webkitTemporaryStorage documentation> 
-getWebkitTemporaryStorageUnchecked ::
-                                   (MonadIO m) => Navigator -> m StorageQuota
-getWebkitTemporaryStorageUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getWebkitTemporaryStorage (self)))
+  = liftIO (js_getWebkitTemporaryStorage self)
  
 foreign import javascript unsafe "$1[\"webkitPersistentStorage\"]"
-        js_getWebkitPersistentStorage ::
-        Navigator -> IO (Nullable StorageQuota)
+        js_getWebkitPersistentStorage :: Navigator -> IO StorageQuota
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.webkitPersistentStorage Mozilla Navigator.webkitPersistentStorage documentation> 
 getWebkitPersistentStorage ::
-                           (MonadIO m) => Navigator -> m (Maybe StorageQuota)
+                           (MonadIO m) => Navigator -> m StorageQuota
 getWebkitPersistentStorage self
-  = liftIO
-      (nullableToMaybe <$> (js_getWebkitPersistentStorage (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.webkitPersistentStorage Mozilla Navigator.webkitPersistentStorage documentation> 
-getWebkitPersistentStorageUnsafe ::
-                                 (MonadIO m, HasCallStack) => Navigator -> m StorageQuota
-getWebkitPersistentStorageUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWebkitPersistentStorage (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.webkitPersistentStorage Mozilla Navigator.webkitPersistentStorage documentation> 
-getWebkitPersistentStorageUnchecked ::
-                                    (MonadIO m) => Navigator -> m StorageQuota
-getWebkitPersistentStorageUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getWebkitPersistentStorage (self)))
- 
-foreign import javascript unsafe "$1[\"appCodeName\"]"
-        js_getAppCodeName :: Navigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.appCodeName Mozilla Navigator.appCodeName documentation> 
-getAppCodeName ::
-               (MonadIO m, FromJSString result) => Navigator -> m result
-getAppCodeName self
-  = liftIO (fromJSString <$> (js_getAppCodeName (self)))
- 
-foreign import javascript unsafe "$1[\"appName\"]" js_getAppName ::
-        Navigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.appName Mozilla Navigator.appName documentation> 
-getAppName ::
-           (MonadIO m, FromJSString result) => Navigator -> m result
-getAppName self = liftIO (fromJSString <$> (js_getAppName (self)))
- 
-foreign import javascript unsafe "$1[\"appVersion\"]"
-        js_getAppVersion :: Navigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.appVersion Mozilla Navigator.appVersion documentation> 
-getAppVersion ::
-              (MonadIO m, FromJSString result) => Navigator -> m result
-getAppVersion self
-  = liftIO (fromJSString <$> (js_getAppVersion (self)))
- 
-foreign import javascript unsafe "$1[\"language\"]" js_getLanguage
-        :: Navigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.language Mozilla Navigator.language documentation> 
-getLanguage ::
-            (MonadIO m, FromJSString result) => Navigator -> m result
-getLanguage self
-  = liftIO (fromJSString <$> (js_getLanguage (self)))
- 
-foreign import javascript unsafe "$1[\"userAgent\"]"
-        js_getUserAgent :: Navigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.userAgent Mozilla Navigator.userAgent documentation> 
-getUserAgent ::
-             (MonadIO m, FromJSString result) => Navigator -> m result
-getUserAgent self
-  = liftIO (fromJSString <$> (js_getUserAgent (self)))
+  = liftIO (js_getWebkitPersistentStorage self)
  
-foreign import javascript unsafe "$1[\"platform\"]" js_getPlatform
-        :: Navigator -> IO JSString
+foreign import javascript unsafe "($1[\"webdriver\"] ? 1 : 0)"
+        js_getWebdriver :: Navigator -> IO Bool
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.platform Mozilla Navigator.platform documentation> 
-getPlatform ::
-            (MonadIO m, FromJSString result) => Navigator -> m result
-getPlatform self
-  = liftIO (fromJSString <$> (js_getPlatform (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.webdriver Mozilla Navigator.webdriver documentation> 
+getWebdriver :: (MonadIO m) => Navigator -> m Bool
+getWebdriver self = liftIO (js_getWebdriver self)
  
 foreign import javascript unsafe "$1[\"plugins\"]" js_getPlugins ::
-        Navigator -> IO (Nullable PluginArray)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.plugins Mozilla Navigator.plugins documentation> 
-getPlugins :: (MonadIO m) => Navigator -> m (Maybe PluginArray)
-getPlugins self
-  = liftIO (nullableToMaybe <$> (js_getPlugins (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.plugins Mozilla Navigator.plugins documentation> 
-getPluginsUnsafe ::
-                 (MonadIO m, HasCallStack) => Navigator -> m PluginArray
-getPluginsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPlugins (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        Navigator -> IO PluginArray
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.plugins Mozilla Navigator.plugins documentation> 
-getPluginsUnchecked :: (MonadIO m) => Navigator -> m PluginArray
-getPluginsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPlugins (self)))
+getPlugins :: (MonadIO m) => Navigator -> m PluginArray
+getPlugins self = liftIO (js_getPlugins self)
  
 foreign import javascript unsafe "$1[\"mimeTypes\"]"
-        js_getMimeTypes :: Navigator -> IO (Nullable MimeTypeArray)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.mimeTypes Mozilla Navigator.mimeTypes documentation> 
-getMimeTypes :: (MonadIO m) => Navigator -> m (Maybe MimeTypeArray)
-getMimeTypes self
-  = liftIO (nullableToMaybe <$> (js_getMimeTypes (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.mimeTypes Mozilla Navigator.mimeTypes documentation> 
-getMimeTypesUnsafe ::
-                   (MonadIO m, HasCallStack) => Navigator -> m MimeTypeArray
-getMimeTypesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMimeTypes (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getMimeTypes :: Navigator -> IO MimeTypeArray
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.mimeTypes Mozilla Navigator.mimeTypes documentation> 
-getMimeTypesUnchecked ::
-                      (MonadIO m) => Navigator -> m MimeTypeArray
-getMimeTypesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getMimeTypes (self)))
- 
-foreign import javascript unsafe "$1[\"product\"]" js_getProduct ::
-        Navigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.product Mozilla Navigator.product documentation> 
-getProduct ::
-           (MonadIO m, FromJSString result) => Navigator -> m result
-getProduct self = liftIO (fromJSString <$> (js_getProduct (self)))
- 
-foreign import javascript unsafe "$1[\"productSub\"]"
-        js_getProductSub :: Navigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.productSub Mozilla Navigator.productSub documentation> 
-getProductSub ::
-              (MonadIO m, FromJSString result) => Navigator -> m result
-getProductSub self
-  = liftIO (fromJSString <$> (js_getProductSub (self)))
- 
-foreign import javascript unsafe "$1[\"vendor\"]" js_getVendor ::
-        Navigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.vendor Mozilla Navigator.vendor documentation> 
-getVendor ::
-          (MonadIO m, FromJSString result) => Navigator -> m result
-getVendor self = liftIO (fromJSString <$> (js_getVendor (self)))
- 
-foreign import javascript unsafe "$1[\"vendorSub\"]"
-        js_getVendorSub :: Navigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.vendorSub Mozilla Navigator.vendorSub documentation> 
-getVendorSub ::
-             (MonadIO m, FromJSString result) => Navigator -> m result
-getVendorSub self
-  = liftIO (fromJSString <$> (js_getVendorSub (self)))
+getMimeTypes :: (MonadIO m) => Navigator -> m MimeTypeArray
+getMimeTypes self = liftIO (js_getMimeTypes self)
  
 foreign import javascript unsafe "($1[\"cookieEnabled\"] ? 1 : 0)"
         js_getCookieEnabled :: Navigator -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.cookieEnabled Mozilla Navigator.cookieEnabled documentation> 
 getCookieEnabled :: (MonadIO m) => Navigator -> m Bool
-getCookieEnabled self = liftIO (js_getCookieEnabled (self))
- 
-foreign import javascript unsafe "($1[\"onLine\"] ? 1 : 0)"
-        js_getOnLine :: Navigator -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.onLine Mozilla Navigator.onLine documentation> 
-getOnLine :: (MonadIO m) => Navigator -> m Bool
-getOnLine self = liftIO (js_getOnLine (self))
- 
-foreign import javascript unsafe "$1[\"hardwareConcurrency\"]"
-        js_getHardwareConcurrency :: Navigator -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Navigator.hardwareConcurrency Mozilla Navigator.hardwareConcurrency documentation> 
-getHardwareConcurrency :: (MonadIO m) => Navigator -> m Int
-getHardwareConcurrency self
-  = liftIO (js_getHardwareConcurrency (self))
+getCookieEnabled self = liftIO (js_getCookieEnabled self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NavigatorConcurrentHardware.hs b/src/GHCJS/DOM/JSFFI/Generated/NavigatorConcurrentHardware.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/NavigatorConcurrentHardware.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.NavigatorConcurrentHardware
+       (js_getHardwareConcurrency, getHardwareConcurrency,
+        NavigatorConcurrentHardware(..), gTypeNavigatorConcurrentHardware,
+        IsNavigatorConcurrentHardware, toNavigatorConcurrentHardware)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"hardwareConcurrency\"]"
+        js_getHardwareConcurrency ::
+        NavigatorConcurrentHardware -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorConcurrentHardware.hardwareConcurrency Mozilla NavigatorConcurrentHardware.hardwareConcurrency documentation> 
+getHardwareConcurrency ::
+                       (MonadIO m, IsNavigatorConcurrentHardware self) => self -> m Word64
+getHardwareConcurrency self
+  = liftIO
+      (round <$>
+         (js_getHardwareConcurrency (toNavigatorConcurrentHardware self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NavigatorID.hs b/src/GHCJS/DOM/JSFFI/Generated/NavigatorID.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/NavigatorID.hs
@@ -0,0 +1,122 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.NavigatorID
+       (js_getAppCodeName, getAppCodeName, js_getAppName, getAppName,
+        js_getAppVersion, getAppVersion, js_getPlatform, getPlatform,
+        js_getProduct, getProduct, js_getProductSub, getProductSub,
+        js_getUserAgent, getUserAgent, js_getVendor, getVendor,
+        js_getVendorSub, getVendorSub, NavigatorID(..), gTypeNavigatorID,
+        IsNavigatorID, toNavigatorID)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"appCodeName\"]"
+        js_getAppCodeName :: NavigatorID -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.appCodeName Mozilla NavigatorID.appCodeName documentation> 
+getAppCodeName ::
+               (MonadIO m, IsNavigatorID self, FromJSString result) =>
+                 self -> m result
+getAppCodeName self
+  = liftIO
+      (fromJSString <$> (js_getAppCodeName (toNavigatorID self)))
+ 
+foreign import javascript unsafe "$1[\"appName\"]" js_getAppName ::
+        NavigatorID -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.appName Mozilla NavigatorID.appName documentation> 
+getAppName ::
+           (MonadIO m, IsNavigatorID self, FromJSString result) =>
+             self -> m result
+getAppName self
+  = liftIO (fromJSString <$> (js_getAppName (toNavigatorID self)))
+ 
+foreign import javascript unsafe "$1[\"appVersion\"]"
+        js_getAppVersion :: NavigatorID -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.appVersion Mozilla NavigatorID.appVersion documentation> 
+getAppVersion ::
+              (MonadIO m, IsNavigatorID self, FromJSString result) =>
+                self -> m result
+getAppVersion self
+  = liftIO (fromJSString <$> (js_getAppVersion (toNavigatorID self)))
+ 
+foreign import javascript unsafe "$1[\"platform\"]" js_getPlatform
+        :: NavigatorID -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.platform Mozilla NavigatorID.platform documentation> 
+getPlatform ::
+            (MonadIO m, IsNavigatorID self, FromJSString result) =>
+              self -> m result
+getPlatform self
+  = liftIO (fromJSString <$> (js_getPlatform (toNavigatorID self)))
+ 
+foreign import javascript unsafe "$1[\"product\"]" js_getProduct ::
+        NavigatorID -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.product Mozilla NavigatorID.product documentation> 
+getProduct ::
+           (MonadIO m, IsNavigatorID self, FromJSString result) =>
+             self -> m result
+getProduct self
+  = liftIO (fromJSString <$> (js_getProduct (toNavigatorID self)))
+ 
+foreign import javascript unsafe "$1[\"productSub\"]"
+        js_getProductSub :: NavigatorID -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.productSub Mozilla NavigatorID.productSub documentation> 
+getProductSub ::
+              (MonadIO m, IsNavigatorID self, FromJSString result) =>
+                self -> m result
+getProductSub self
+  = liftIO (fromJSString <$> (js_getProductSub (toNavigatorID self)))
+ 
+foreign import javascript unsafe "$1[\"userAgent\"]"
+        js_getUserAgent :: NavigatorID -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.userAgent Mozilla NavigatorID.userAgent documentation> 
+getUserAgent ::
+             (MonadIO m, IsNavigatorID self, FromJSString result) =>
+               self -> m result
+getUserAgent self
+  = liftIO (fromJSString <$> (js_getUserAgent (toNavigatorID self)))
+ 
+foreign import javascript unsafe "$1[\"vendor\"]" js_getVendor ::
+        NavigatorID -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.vendor Mozilla NavigatorID.vendor documentation> 
+getVendor ::
+          (MonadIO m, IsNavigatorID self, FromJSString result) =>
+            self -> m result
+getVendor self
+  = liftIO (fromJSString <$> (js_getVendor (toNavigatorID self)))
+ 
+foreign import javascript unsafe "$1[\"vendorSub\"]"
+        js_getVendorSub :: NavigatorID -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.vendorSub Mozilla NavigatorID.vendorSub documentation> 
+getVendorSub ::
+             (MonadIO m, IsNavigatorID self, FromJSString result) =>
+               self -> m result
+getVendorSub self
+  = liftIO (fromJSString <$> (js_getVendorSub (toNavigatorID self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NavigatorLanguage.hs b/src/GHCJS/DOM/JSFFI/Generated/NavigatorLanguage.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/NavigatorLanguage.hs
@@ -0,0 +1,51 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.NavigatorLanguage
+       (js_getLanguage, getLanguage, js_getLanguages, getLanguages,
+        NavigatorLanguage(..), gTypeNavigatorLanguage, IsNavigatorLanguage,
+        toNavigatorLanguage)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"language\"]" js_getLanguage
+        :: NavigatorLanguage -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLanguage.language Mozilla NavigatorLanguage.language documentation> 
+getLanguage ::
+            (MonadIO m, IsNavigatorLanguage self, FromJSString result) =>
+              self -> m result
+getLanguage self
+  = liftIO
+      (fromJSString <$> (js_getLanguage (toNavigatorLanguage self)))
+ 
+foreign import javascript unsafe "$1[\"languages\"]"
+        js_getLanguages :: NavigatorLanguage -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLanguage.languages Mozilla NavigatorLanguage.languages documentation> 
+getLanguages ::
+             (MonadIO m, IsNavigatorLanguage self, FromJSString result) =>
+               self -> m [result]
+getLanguages self
+  = liftIO
+      ((js_getLanguages (toNavigatorLanguage self)) >>=
+         fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NavigatorOnLine.hs b/src/GHCJS/DOM/JSFFI/Generated/NavigatorOnLine.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/NavigatorOnLine.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.NavigatorOnLine
+       (js_getOnLine, getOnLine, NavigatorOnLine(..),
+        gTypeNavigatorOnLine, IsNavigatorOnLine, toNavigatorOnLine)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "($1[\"onLine\"] ? 1 : 0)"
+        js_getOnLine :: NavigatorOnLine -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine.onLine Mozilla NavigatorOnLine.onLine documentation> 
+getOnLine :: (MonadIO m, IsNavigatorOnLine self) => self -> m Bool
+getOnLine self = liftIO (js_getOnLine (toNavigatorOnLine self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaError.hs b/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaError.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaError.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaError.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,4 +34,4 @@
                   (MonadIO m, FromJSString result) =>
                     NavigatorUserMediaError -> m result
 getConstraintName self
-  = liftIO (fromJSString <$> (js_getConstraintName (self)))
+  = liftIO (fromJSString <$> (js_getConstraintName self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaErrorCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaErrorCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaErrorCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaErrorCallback.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,7 +31,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMediaErrorCallback Mozilla NavigatorUserMediaErrorCallback documentation> 
 newNavigatorUserMediaErrorCallback ::
                                    (MonadIO m) =>
-                                     (Maybe NavigatorUserMediaError -> IO ()) ->
+                                     (NavigatorUserMediaError -> IO ()) ->
                                        m NavigatorUserMediaErrorCallback
 newNavigatorUserMediaErrorCallback callback
   = liftIO
@@ -42,7 +43,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMediaErrorCallback Mozilla NavigatorUserMediaErrorCallback documentation> 
 newNavigatorUserMediaErrorCallbackSync ::
                                        (MonadIO m) =>
-                                         (Maybe NavigatorUserMediaError -> IO ()) ->
+                                         (NavigatorUserMediaError -> IO ()) ->
                                            m NavigatorUserMediaErrorCallback
 newNavigatorUserMediaErrorCallbackSync callback
   = liftIO
@@ -54,7 +55,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMediaErrorCallback Mozilla NavigatorUserMediaErrorCallback documentation> 
 newNavigatorUserMediaErrorCallbackAsync ::
                                         (MonadIO m) =>
-                                          (Maybe NavigatorUserMediaError -> IO ()) ->
+                                          (NavigatorUserMediaError -> IO ()) ->
                                             m NavigatorUserMediaErrorCallback
 newNavigatorUserMediaErrorCallbackAsync callback
   = liftIO
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaSuccessCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaSuccessCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaSuccessCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/NavigatorUserMediaSuccessCallback.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,8 +31,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMediaSuccessCallback Mozilla NavigatorUserMediaSuccessCallback documentation> 
 newNavigatorUserMediaSuccessCallback ::
                                      (MonadIO m) =>
-                                       (Maybe MediaStream -> IO ()) ->
-                                         m NavigatorUserMediaSuccessCallback
+                                       (MediaStream -> IO ()) -> m NavigatorUserMediaSuccessCallback
 newNavigatorUserMediaSuccessCallback callback
   = liftIO
       (NavigatorUserMediaSuccessCallback <$>
@@ -42,7 +42,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMediaSuccessCallback Mozilla NavigatorUserMediaSuccessCallback documentation> 
 newNavigatorUserMediaSuccessCallbackSync ::
                                          (MonadIO m) =>
-                                           (Maybe MediaStream -> IO ()) ->
+                                           (MediaStream -> IO ()) ->
                                              m NavigatorUserMediaSuccessCallback
 newNavigatorUserMediaSuccessCallbackSync callback
   = liftIO
@@ -54,7 +54,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMediaSuccessCallback Mozilla NavigatorUserMediaSuccessCallback documentation> 
 newNavigatorUserMediaSuccessCallbackAsync ::
                                           (MonadIO m) =>
-                                            (Maybe MediaStream -> IO ()) ->
+                                            (MediaStream -> IO ()) ->
                                               m NavigatorUserMediaSuccessCallback
 newNavigatorUserMediaSuccessCallbackAsync callback
   = liftIO
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Node.hs b/src/GHCJS/DOM/JSFFI/Generated/Node.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Node.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Node.hs
@@ -4,62 +4,54 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Node
-       (js_insertBefore, insertBefore, insertBefore_, insertBeforeUnsafe,
-        insertBeforeUnchecked, js_replaceChild, replaceChild,
-        replaceChild_, replaceChildUnsafe, replaceChildUnchecked,
-        js_removeChild, removeChild, removeChild_, removeChildUnsafe,
-        removeChildUnchecked, js_appendChild, appendChild, appendChild_,
-        appendChildUnsafe, appendChildUnchecked, js_hasChildNodes,
-        hasChildNodes, hasChildNodes_, js_cloneNode, cloneNode, cloneNode_,
-        cloneNodeUnsafe, cloneNodeUnchecked, js_normalize, normalize,
-        js_isSupported, isSupported, isSupported_, js_isSameNode,
+       (js_insertBefore, insertBefore, insertBefore_, js_replaceChild,
+        replaceChild, replaceChild_, js_removeChild, removeChild,
+        removeChild_, js_appendChild, appendChild, appendChild_,
+        js_hasChildNodes, hasChildNodes, hasChildNodes_, js_cloneNode,
+        cloneNode, cloneNode_, js_normalize, normalize, js_isSameNode,
         isSameNode, isSameNode_, js_isEqualNode, isEqualNode, isEqualNode_,
         js_lookupPrefix, lookupPrefix, lookupPrefix_, lookupPrefixUnsafe,
-        lookupPrefixUnchecked, js_isDefaultNamespace, isDefaultNamespace,
-        isDefaultNamespace_, js_lookupNamespaceURI, lookupNamespaceURI,
+        lookupPrefixUnchecked, js_lookupNamespaceURI, lookupNamespaceURI,
         lookupNamespaceURI_, lookupNamespaceURIUnsafe,
-        lookupNamespaceURIUnchecked, js_compareDocumentPosition,
-        compareDocumentPosition, compareDocumentPosition_, js_contains,
-        contains, contains_, pattern ELEMENT_NODE, pattern ATTRIBUTE_NODE,
-        pattern TEXT_NODE, pattern CDATA_SECTION_NODE,
-        pattern ENTITY_REFERENCE_NODE, pattern ENTITY_NODE,
-        pattern PROCESSING_INSTRUCTION_NODE, pattern COMMENT_NODE,
-        pattern DOCUMENT_NODE, pattern DOCUMENT_TYPE_NODE,
-        pattern DOCUMENT_FRAGMENT_NODE, pattern NOTATION_NODE,
-        pattern DOCUMENT_POSITION_DISCONNECTED,
+        lookupNamespaceURIUnchecked, js_isDefaultNamespace,
+        isDefaultNamespace, isDefaultNamespace_,
+        js_compareDocumentPosition, compareDocumentPosition,
+        compareDocumentPosition_, js_contains, contains, contains_,
+        js_getRootNode, getRootNode, getRootNode_, pattern ELEMENT_NODE,
+        pattern ATTRIBUTE_NODE, pattern TEXT_NODE,
+        pattern CDATA_SECTION_NODE, pattern ENTITY_REFERENCE_NODE,
+        pattern ENTITY_NODE, pattern PROCESSING_INSTRUCTION_NODE,
+        pattern COMMENT_NODE, pattern DOCUMENT_NODE,
+        pattern DOCUMENT_TYPE_NODE, pattern DOCUMENT_FRAGMENT_NODE,
+        pattern NOTATION_NODE, pattern DOCUMENT_POSITION_DISCONNECTED,
         pattern DOCUMENT_POSITION_PRECEDING,
         pattern DOCUMENT_POSITION_FOLLOWING,
         pattern DOCUMENT_POSITION_CONTAINS,
         pattern DOCUMENT_POSITION_CONTAINED_BY,
         pattern DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, js_getNodeName,
-        getNodeName, getNodeNameUnsafe, getNodeNameUnchecked,
-        js_setNodeValue, setNodeValue, js_getNodeValue, getNodeValue,
-        getNodeValueUnsafe, getNodeValueUnchecked, js_getNodeType,
-        getNodeType, js_getParentNode, getParentNode, getParentNodeUnsafe,
-        getParentNodeUnchecked, js_getChildNodes, getChildNodes,
-        getChildNodesUnsafe, getChildNodesUnchecked, js_getFirstChild,
-        getFirstChild, getFirstChildUnsafe, getFirstChildUnchecked,
-        js_getLastChild, getLastChild, getLastChildUnsafe,
-        getLastChildUnchecked, js_getPreviousSibling, getPreviousSibling,
+        getNodeName, js_setNodeValue, setNodeValue, js_getNodeValue,
+        getNodeValue, getNodeValueUnsafe, getNodeValueUnchecked,
+        js_getNodeType, getNodeType, js_getParentNode, getParentNode,
+        getParentNodeUnsafe, getParentNodeUnchecked, js_getChildNodes,
+        getChildNodes, js_getFirstChild, getFirstChild,
+        getFirstChildUnsafe, getFirstChildUnchecked, js_getLastChild,
+        getLastChild, getLastChildUnsafe, getLastChildUnchecked,
+        js_getPreviousSibling, getPreviousSibling,
         getPreviousSiblingUnsafe, getPreviousSiblingUnchecked,
         js_getNextSibling, getNextSibling, getNextSiblingUnsafe,
         getNextSiblingUnchecked, js_getOwnerDocument, getOwnerDocument,
-        getOwnerDocumentUnsafe, getOwnerDocumentUnchecked,
-        js_getNamespaceURI, getNamespaceURI, getNamespaceURIUnsafe,
-        getNamespaceURIUnchecked, js_setPrefix, setPrefix, js_getPrefix,
-        getPrefix, getPrefixUnsafe, getPrefixUnchecked, js_getLocalName,
-        getLocalName, getLocalNameUnsafe, getLocalNameUnchecked,
-        js_getBaseURI, getBaseURI, getBaseURIUnsafe, getBaseURIUnchecked,
-        js_setTextContent, setTextContent, js_getTextContent,
+        getOwnerDocumentUnsafe, getOwnerDocumentUnchecked, js_getBaseURI,
+        getBaseURI, js_setTextContent, setTextContent, js_getTextContent,
         getTextContent, getTextContentUnsafe, getTextContentUnchecked,
-        js_getParentElement, getParentElement, getParentElementUnsafe,
+        js_getIsConnected, getIsConnected, js_getParentElement,
+        getParentElement, getParentElementUnsafe,
         getParentElementUnchecked, Node(..), gTypeNode, IsNode, toNode)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -68,198 +60,88 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"insertBefore\"]($2, $3)"
-        js_insertBefore ::
-        Node -> Nullable Node -> Nullable Node -> IO (Nullable Node)
+        js_insertBefore :: Node -> Node -> Optional Node -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore Mozilla Node.insertBefore documentation> 
 insertBefore ::
              (MonadIO m, IsNode self, IsNode newChild, IsNode refChild) =>
-               self -> Maybe newChild -> Maybe refChild -> m (Maybe Node)
+               self -> newChild -> Maybe refChild -> m Node
 insertBefore self newChild refChild
   = liftIO
-      (nullableToMaybe <$>
-         (js_insertBefore (toNode self)
-            (maybeToNullable (fmap toNode newChild))
-            (maybeToNullable (fmap toNode refChild))))
+      (js_insertBefore (toNode self) (toNode newChild)
+         (maybeToOptional (fmap toNode refChild)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore Mozilla Node.insertBefore documentation> 
 insertBefore_ ::
               (MonadIO m, IsNode self, IsNode newChild, IsNode refChild) =>
-                self -> Maybe newChild -> Maybe refChild -> m ()
+                self -> newChild -> Maybe refChild -> m ()
 insertBefore_ self newChild refChild
   = liftIO
       (void
-         (js_insertBefore (toNode self)
-            (maybeToNullable (fmap toNode newChild))
-            (maybeToNullable (fmap toNode refChild))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore Mozilla Node.insertBefore documentation> 
-insertBeforeUnsafe ::
-                   (MonadIO m, IsNode self, IsNode newChild, IsNode refChild,
-                    HasCallStack) =>
-                     self -> Maybe newChild -> Maybe refChild -> m Node
-insertBeforeUnsafe self newChild refChild
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_insertBefore (toNode self)
-             (maybeToNullable (fmap toNode newChild))
-             (maybeToNullable (fmap toNode refChild))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore Mozilla Node.insertBefore documentation> 
-insertBeforeUnchecked ::
-                      (MonadIO m, IsNode self, IsNode newChild, IsNode refChild) =>
-                        self -> Maybe newChild -> Maybe refChild -> m Node
-insertBeforeUnchecked self newChild refChild
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_insertBefore (toNode self)
-            (maybeToNullable (fmap toNode newChild))
-            (maybeToNullable (fmap toNode refChild))))
+         (js_insertBefore (toNode self) (toNode newChild)
+            (maybeToOptional (fmap toNode refChild))))
  
 foreign import javascript unsafe "$1[\"replaceChild\"]($2, $3)"
-        js_replaceChild ::
-        Node -> Nullable Node -> Nullable Node -> IO (Nullable Node)
+        js_replaceChild :: Node -> Node -> Node -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.replaceChild Mozilla Node.replaceChild documentation> 
 replaceChild ::
              (MonadIO m, IsNode self, IsNode newChild, IsNode oldChild) =>
-               self -> Maybe newChild -> Maybe oldChild -> m (Maybe Node)
+               self -> newChild -> oldChild -> m Node
 replaceChild self newChild oldChild
   = liftIO
-      (nullableToMaybe <$>
-         (js_replaceChild (toNode self)
-            (maybeToNullable (fmap toNode newChild))
-            (maybeToNullable (fmap toNode oldChild))))
+      (js_replaceChild (toNode self) (toNode newChild) (toNode oldChild))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.replaceChild Mozilla Node.replaceChild documentation> 
 replaceChild_ ::
               (MonadIO m, IsNode self, IsNode newChild, IsNode oldChild) =>
-                self -> Maybe newChild -> Maybe oldChild -> m ()
+                self -> newChild -> oldChild -> m ()
 replaceChild_ self newChild oldChild
   = liftIO
       (void
-         (js_replaceChild (toNode self)
-            (maybeToNullable (fmap toNode newChild))
-            (maybeToNullable (fmap toNode oldChild))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.replaceChild Mozilla Node.replaceChild documentation> 
-replaceChildUnsafe ::
-                   (MonadIO m, IsNode self, IsNode newChild, IsNode oldChild,
-                    HasCallStack) =>
-                     self -> Maybe newChild -> Maybe oldChild -> m Node
-replaceChildUnsafe self newChild oldChild
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_replaceChild (toNode self)
-             (maybeToNullable (fmap toNode newChild))
-             (maybeToNullable (fmap toNode oldChild))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.replaceChild Mozilla Node.replaceChild documentation> 
-replaceChildUnchecked ::
-                      (MonadIO m, IsNode self, IsNode newChild, IsNode oldChild) =>
-                        self -> Maybe newChild -> Maybe oldChild -> m Node
-replaceChildUnchecked self newChild oldChild
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_replaceChild (toNode self)
-            (maybeToNullable (fmap toNode newChild))
-            (maybeToNullable (fmap toNode oldChild))))
+         (js_replaceChild (toNode self) (toNode newChild)
+            (toNode oldChild)))
  
 foreign import javascript unsafe "$1[\"removeChild\"]($2)"
-        js_removeChild :: Node -> Nullable Node -> IO (Nullable Node)
+        js_removeChild :: Node -> Node -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.removeChild Mozilla Node.removeChild documentation> 
 removeChild ::
             (MonadIO m, IsNode self, IsNode oldChild) =>
-              self -> Maybe oldChild -> m (Maybe Node)
+              self -> oldChild -> m Node
 removeChild self oldChild
-  = liftIO
-      (nullableToMaybe <$>
-         (js_removeChild (toNode self)
-            (maybeToNullable (fmap toNode oldChild))))
+  = liftIO (js_removeChild (toNode self) (toNode oldChild))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.removeChild Mozilla Node.removeChild documentation> 
 removeChild_ ::
              (MonadIO m, IsNode self, IsNode oldChild) =>
-               self -> Maybe oldChild -> m ()
+               self -> oldChild -> m ()
 removeChild_ self oldChild
-  = liftIO
-      (void
-         (js_removeChild (toNode self)
-            (maybeToNullable (fmap toNode oldChild))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.removeChild Mozilla Node.removeChild documentation> 
-removeChildUnsafe ::
-                  (MonadIO m, IsNode self, IsNode oldChild, HasCallStack) =>
-                    self -> Maybe oldChild -> m Node
-removeChildUnsafe self oldChild
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_removeChild (toNode self)
-             (maybeToNullable (fmap toNode oldChild))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.removeChild Mozilla Node.removeChild documentation> 
-removeChildUnchecked ::
-                     (MonadIO m, IsNode self, IsNode oldChild) =>
-                       self -> Maybe oldChild -> m Node
-removeChildUnchecked self oldChild
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_removeChild (toNode self)
-            (maybeToNullable (fmap toNode oldChild))))
+  = liftIO (void (js_removeChild (toNode self) (toNode oldChild)))
  
 foreign import javascript unsafe "$1[\"appendChild\"]($2)"
-        js_appendChild :: Node -> Nullable Node -> IO (Nullable Node)
+        js_appendChild :: Node -> Node -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.appendChild Mozilla Node.appendChild documentation> 
 appendChild ::
             (MonadIO m, IsNode self, IsNode newChild) =>
-              self -> Maybe newChild -> m (Maybe Node)
+              self -> newChild -> m Node
 appendChild self newChild
-  = liftIO
-      (nullableToMaybe <$>
-         (js_appendChild (toNode self)
-            (maybeToNullable (fmap toNode newChild))))
+  = liftIO (js_appendChild (toNode self) (toNode newChild))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.appendChild Mozilla Node.appendChild documentation> 
 appendChild_ ::
              (MonadIO m, IsNode self, IsNode newChild) =>
-               self -> Maybe newChild -> m ()
+               self -> newChild -> m ()
 appendChild_ self newChild
-  = liftIO
-      (void
-         (js_appendChild (toNode self)
-            (maybeToNullable (fmap toNode newChild))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.appendChild Mozilla Node.appendChild documentation> 
-appendChildUnsafe ::
-                  (MonadIO m, IsNode self, IsNode newChild, HasCallStack) =>
-                    self -> Maybe newChild -> m Node
-appendChildUnsafe self newChild
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_appendChild (toNode self)
-             (maybeToNullable (fmap toNode newChild))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.appendChild Mozilla Node.appendChild documentation> 
-appendChildUnchecked ::
-                     (MonadIO m, IsNode self, IsNode newChild) =>
-                       self -> Maybe newChild -> m Node
-appendChildUnchecked self newChild
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_appendChild (toNode self)
-            (maybeToNullable (fmap toNode newChild))))
+  = liftIO (void (js_appendChild (toNode self) (toNode newChild)))
  
 foreign import javascript unsafe
         "($1[\"hasChildNodes\"]() ? 1 : 0)" js_hasChildNodes ::
@@ -275,33 +157,16 @@
   = liftIO (void (js_hasChildNodes (toNode self)))
  
 foreign import javascript unsafe "$1[\"cloneNode\"]($2)"
-        js_cloneNode :: Node -> Bool -> IO (Nullable Node)
+        js_cloneNode :: Node -> Bool -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode Mozilla Node.cloneNode documentation> 
-cloneNode ::
-          (MonadIO m, IsNode self) => self -> Bool -> m (Maybe Node)
-cloneNode self deep
-  = liftIO (nullableToMaybe <$> (js_cloneNode (toNode self) deep))
+cloneNode :: (MonadIO m, IsNode self) => self -> Bool -> m Node
+cloneNode self deep = liftIO (js_cloneNode (toNode self) deep)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode Mozilla Node.cloneNode documentation> 
 cloneNode_ :: (MonadIO m, IsNode self) => self -> Bool -> m ()
 cloneNode_ self deep
   = liftIO (void (js_cloneNode (toNode self) deep))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode Mozilla Node.cloneNode documentation> 
-cloneNodeUnsafe ::
-                (MonadIO m, IsNode self, HasCallStack) => self -> Bool -> m Node
-cloneNodeUnsafe self deep
-  = liftIO
-      ((nullableToMaybe <$> (js_cloneNode (toNode self) deep)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode Mozilla Node.cloneNode documentation> 
-cloneNodeUnchecked ::
-                   (MonadIO m, IsNode self) => self -> Bool -> m Node
-cloneNodeUnchecked self deep
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_cloneNode (toNode self) deep))
  
 foreign import javascript unsafe "$1[\"normalize\"]()" js_normalize
         :: Node -> IO ()
@@ -310,31 +175,8 @@
 normalize :: (MonadIO m, IsNode self) => self -> m ()
 normalize self = liftIO (js_normalize (toNode self))
  
-foreign import javascript unsafe
-        "($1[\"isSupported\"]($2,\n$3) ? 1 : 0)" js_isSupported ::
-        Node -> JSString -> Nullable JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isSupported Mozilla Node.isSupported documentation> 
-isSupported ::
-            (MonadIO m, IsNode self, ToJSString feature, ToJSString version) =>
-              self -> feature -> Maybe version -> m Bool
-isSupported self feature version
-  = liftIO
-      (js_isSupported (toNode self) (toJSString feature)
-         (toMaybeJSString version))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isSupported Mozilla Node.isSupported documentation> 
-isSupported_ ::
-             (MonadIO m, IsNode self, ToJSString feature, ToJSString version) =>
-               self -> feature -> Maybe version -> m ()
-isSupported_ self feature version
-  = liftIO
-      (void
-         (js_isSupported (toNode self) (toJSString feature)
-            (toMaybeJSString version)))
- 
 foreign import javascript unsafe "($1[\"isSameNode\"]($2) ? 1 : 0)"
-        js_isSameNode :: Node -> Nullable Node -> IO Bool
+        js_isSameNode :: Node -> Optional Node -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isSameNode Mozilla Node.isSameNode documentation> 
 isSameNode ::
@@ -342,7 +184,7 @@
              self -> Maybe other -> m Bool
 isSameNode self other
   = liftIO
-      (js_isSameNode (toNode self) (maybeToNullable (fmap toNode other)))
+      (js_isSameNode (toNode self) (maybeToOptional (fmap toNode other)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isSameNode Mozilla Node.isSameNode documentation> 
 isSameNode_ ::
@@ -352,11 +194,11 @@
   = liftIO
       (void
          (js_isSameNode (toNode self)
-            (maybeToNullable (fmap toNode other))))
+            (maybeToOptional (fmap toNode other))))
  
 foreign import javascript unsafe
         "($1[\"isEqualNode\"]($2) ? 1 : 0)" js_isEqualNode ::
-        Node -> Nullable Node -> IO Bool
+        Node -> Optional Node -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isEqualNode Mozilla Node.isEqualNode documentation> 
 isEqualNode ::
@@ -365,7 +207,7 @@
 isEqualNode self other
   = liftIO
       (js_isEqualNode (toNode self)
-         (maybeToNullable (fmap toNode other)))
+         (maybeToOptional (fmap toNode other)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isEqualNode Mozilla Node.isEqualNode documentation> 
 isEqualNode_ ::
@@ -375,11 +217,11 @@
   = liftIO
       (void
          (js_isEqualNode (toNode self)
-            (maybeToNullable (fmap toNode other))))
+            (maybeToOptional (fmap toNode other))))
  
 foreign import javascript unsafe "$1[\"lookupPrefix\"]($2)"
         js_lookupPrefix ::
-        Node -> Nullable JSString -> IO (Nullable JSString)
+        Node -> Optional JSString -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupPrefix Mozilla Node.lookupPrefix documentation> 
 lookupPrefix ::
@@ -389,7 +231,7 @@
 lookupPrefix self namespaceURI
   = liftIO
       (fromMaybeJSString <$>
-         (js_lookupPrefix (toNode self) (toMaybeJSString namespaceURI)))
+         (js_lookupPrefix (toNode self) (toOptionalJSString namespaceURI)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupPrefix Mozilla Node.lookupPrefix documentation> 
 lookupPrefix_ ::
@@ -398,7 +240,7 @@
 lookupPrefix_ self namespaceURI
   = liftIO
       (void
-         (js_lookupPrefix (toNode self) (toMaybeJSString namespaceURI)))
+         (js_lookupPrefix (toNode self) (toOptionalJSString namespaceURI)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupPrefix Mozilla Node.lookupPrefix documentation> 
 lookupPrefixUnsafe ::
@@ -408,7 +250,7 @@
 lookupPrefixUnsafe self namespaceURI
   = liftIO
       ((fromMaybeJSString <$>
-          (js_lookupPrefix (toNode self) (toMaybeJSString namespaceURI)))
+          (js_lookupPrefix (toNode self) (toOptionalJSString namespaceURI)))
          >>= maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupPrefix Mozilla Node.lookupPrefix documentation> 
@@ -419,34 +261,11 @@
 lookupPrefixUnchecked self namespaceURI
   = liftIO
       (fromJust . fromMaybeJSString <$>
-         (js_lookupPrefix (toNode self) (toMaybeJSString namespaceURI)))
- 
-foreign import javascript unsafe
-        "($1[\"isDefaultNamespace\"]($2) ? 1 : 0)" js_isDefaultNamespace ::
-        Node -> Nullable JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isDefaultNamespace Mozilla Node.isDefaultNamespace documentation> 
-isDefaultNamespace ::
-                   (MonadIO m, IsNode self, ToJSString namespaceURI) =>
-                     self -> Maybe namespaceURI -> m Bool
-isDefaultNamespace self namespaceURI
-  = liftIO
-      (js_isDefaultNamespace (toNode self)
-         (toMaybeJSString namespaceURI))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isDefaultNamespace Mozilla Node.isDefaultNamespace documentation> 
-isDefaultNamespace_ ::
-                    (MonadIO m, IsNode self, ToJSString namespaceURI) =>
-                      self -> Maybe namespaceURI -> m ()
-isDefaultNamespace_ self namespaceURI
-  = liftIO
-      (void
-         (js_isDefaultNamespace (toNode self)
-            (toMaybeJSString namespaceURI)))
+         (js_lookupPrefix (toNode self) (toOptionalJSString namespaceURI)))
  
 foreign import javascript unsafe "$1[\"lookupNamespaceURI\"]($2)"
         js_lookupNamespaceURI ::
-        Node -> Nullable JSString -> IO (Nullable JSString)
+        Node -> Optional JSString -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupNamespaceURI Mozilla Node.lookupNamespaceURI documentation> 
 lookupNamespaceURI ::
@@ -455,7 +274,7 @@
 lookupNamespaceURI self prefix
   = liftIO
       (fromMaybeJSString <$>
-         (js_lookupNamespaceURI (toNode self) (toMaybeJSString prefix)))
+         (js_lookupNamespaceURI (toNode self) (toOptionalJSString prefix)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupNamespaceURI Mozilla Node.lookupNamespaceURI documentation> 
 lookupNamespaceURI_ ::
@@ -464,7 +283,7 @@
 lookupNamespaceURI_ self prefix
   = liftIO
       (void
-         (js_lookupNamespaceURI (toNode self) (toMaybeJSString prefix)))
+         (js_lookupNamespaceURI (toNode self) (toOptionalJSString prefix)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupNamespaceURI Mozilla Node.lookupNamespaceURI documentation> 
 lookupNamespaceURIUnsafe ::
@@ -474,7 +293,7 @@
 lookupNamespaceURIUnsafe self prefix
   = liftIO
       ((fromMaybeJSString <$>
-          (js_lookupNamespaceURI (toNode self) (toMaybeJSString prefix)))
+          (js_lookupNamespaceURI (toNode self) (toOptionalJSString prefix)))
          >>= maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.lookupNamespaceURI Mozilla Node.lookupNamespaceURI documentation> 
@@ -484,33 +303,50 @@
 lookupNamespaceURIUnchecked self prefix
   = liftIO
       (fromJust . fromMaybeJSString <$>
-         (js_lookupNamespaceURI (toNode self) (toMaybeJSString prefix)))
+         (js_lookupNamespaceURI (toNode self) (toOptionalJSString prefix)))
  
 foreign import javascript unsafe
+        "($1[\"isDefaultNamespace\"]($2) ? 1 : 0)" js_isDefaultNamespace ::
+        Node -> Optional JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isDefaultNamespace Mozilla Node.isDefaultNamespace documentation> 
+isDefaultNamespace ::
+                   (MonadIO m, IsNode self, ToJSString namespaceURI) =>
+                     self -> Maybe namespaceURI -> m Bool
+isDefaultNamespace self namespaceURI
+  = liftIO
+      (js_isDefaultNamespace (toNode self)
+         (toOptionalJSString namespaceURI))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isDefaultNamespace Mozilla Node.isDefaultNamespace documentation> 
+isDefaultNamespace_ ::
+                    (MonadIO m, IsNode self, ToJSString namespaceURI) =>
+                      self -> Maybe namespaceURI -> m ()
+isDefaultNamespace_ self namespaceURI
+  = liftIO
+      (void
+         (js_isDefaultNamespace (toNode self)
+            (toOptionalJSString namespaceURI)))
+ 
+foreign import javascript unsafe
         "$1[\"compareDocumentPosition\"]($2)" js_compareDocumentPosition ::
-        Node -> Nullable Node -> IO Word
+        Node -> Node -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.compareDocumentPosition Mozilla Node.compareDocumentPosition documentation> 
 compareDocumentPosition ::
-                        (MonadIO m, IsNode self, IsNode other) =>
-                          self -> Maybe other -> m Word
+                        (MonadIO m, IsNode self, IsNode other) => self -> other -> m Word
 compareDocumentPosition self other
-  = liftIO
-      (js_compareDocumentPosition (toNode self)
-         (maybeToNullable (fmap toNode other)))
+  = liftIO (js_compareDocumentPosition (toNode self) (toNode other))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.compareDocumentPosition Mozilla Node.compareDocumentPosition documentation> 
 compareDocumentPosition_ ::
-                         (MonadIO m, IsNode self, IsNode other) =>
-                           self -> Maybe other -> m ()
+                         (MonadIO m, IsNode self, IsNode other) => self -> other -> m ()
 compareDocumentPosition_ self other
   = liftIO
-      (void
-         (js_compareDocumentPosition (toNode self)
-            (maybeToNullable (fmap toNode other))))
+      (void (js_compareDocumentPosition (toNode self) (toNode other)))
  
 foreign import javascript unsafe "($1[\"contains\"]($2) ? 1 : 0)"
-        js_contains :: Node -> Nullable Node -> IO Bool
+        js_contains :: Node -> Optional Node -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.contains Mozilla Node.contains documentation> 
 contains ::
@@ -518,7 +354,7 @@
            self -> Maybe other -> m Bool
 contains self other
   = liftIO
-      (js_contains (toNode self) (maybeToNullable (fmap toNode other)))
+      (js_contains (toNode self) (maybeToOptional (fmap toNode other)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.contains Mozilla Node.contains documentation> 
 contains_ ::
@@ -527,7 +363,25 @@
 contains_ self other
   = liftIO
       (void
-         (js_contains (toNode self) (maybeToNullable (fmap toNode other))))
+         (js_contains (toNode self) (maybeToOptional (fmap toNode other))))
+ 
+foreign import javascript unsafe "$1[\"getRootNode\"]($2)"
+        js_getRootNode :: Node -> Optional GetRootNodeOptions -> IO Node
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.getRootNode Mozilla Node.getRootNode documentation> 
+getRootNode ::
+            (MonadIO m, IsNode self) =>
+              self -> Maybe GetRootNodeOptions -> m Node
+getRootNode self options
+  = liftIO (js_getRootNode (toNode self) (maybeToOptional options))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.getRootNode Mozilla Node.getRootNode documentation> 
+getRootNode_ ::
+             (MonadIO m, IsNode self) =>
+               self -> Maybe GetRootNodeOptions -> m ()
+getRootNode_ self options
+  = liftIO
+      (void (js_getRootNode (toNode self) (maybeToOptional options)))
 pattern ELEMENT_NODE = 1
 pattern ATTRIBUTE_NODE = 2
 pattern TEXT_NODE = 3
@@ -548,40 +402,23 @@
 pattern DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32
  
 foreign import javascript unsafe "$1[\"nodeName\"]" js_getNodeName
-        :: Node -> IO (Nullable JSString)
+        :: Node -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeName Mozilla Node.nodeName documentation> 
 getNodeName ::
-            (MonadIO m, IsNode self, FromJSString result) =>
-              self -> m (Maybe result)
+            (MonadIO m, IsNode self, FromJSString result) => self -> m result
 getNodeName self
-  = liftIO (fromMaybeJSString <$> (js_getNodeName (toNode self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeName Mozilla Node.nodeName documentation> 
-getNodeNameUnsafe ::
-                  (MonadIO m, IsNode self, HasCallStack, FromJSString result) =>
-                    self -> m result
-getNodeNameUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getNodeName (toNode self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeName Mozilla Node.nodeName documentation> 
-getNodeNameUnchecked ::
-                     (MonadIO m, IsNode self, FromJSString result) => self -> m result
-getNodeNameUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getNodeName (toNode self)))
+  = liftIO (fromJSString <$> (js_getNodeName (toNode self)))
  
 foreign import javascript unsafe "$1[\"nodeValue\"] = $2;"
-        js_setNodeValue :: Node -> Nullable JSString -> IO ()
+        js_setNodeValue :: Node -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeValue Mozilla Node.nodeValue documentation> 
 setNodeValue ::
              (MonadIO m, IsNode self, ToJSString val) =>
                self -> Maybe val -> m ()
 setNodeValue self val
-  = liftIO (js_setNodeValue (toNode self) (toMaybeJSString val))
+  = liftIO (js_setNodeValue (toNode self) (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"nodeValue\"]"
         js_getNodeValue :: Node -> IO (Nullable JSString)
@@ -640,28 +477,11 @@
       (fromJust . nullableToMaybe <$> (js_getParentNode (toNode self)))
  
 foreign import javascript unsafe "$1[\"childNodes\"]"
-        js_getChildNodes :: Node -> IO (Nullable NodeList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.childNodes Mozilla Node.childNodes documentation> 
-getChildNodes ::
-              (MonadIO m, IsNode self) => self -> m (Maybe NodeList)
-getChildNodes self
-  = liftIO (nullableToMaybe <$> (js_getChildNodes (toNode self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.childNodes Mozilla Node.childNodes documentation> 
-getChildNodesUnsafe ::
-                    (MonadIO m, IsNode self, HasCallStack) => self -> m NodeList
-getChildNodesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getChildNodes (toNode self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getChildNodes :: Node -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.childNodes Mozilla Node.childNodes documentation> 
-getChildNodesUnchecked ::
-                       (MonadIO m, IsNode self) => self -> m NodeList
-getChildNodesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getChildNodes (toNode self)))
+getChildNodes :: (MonadIO m, IsNode self) => self -> m NodeList
+getChildNodes self = liftIO (js_getChildNodes (toNode self))
  
 foreign import javascript unsafe "$1[\"firstChild\"]"
         js_getFirstChild :: Node -> IO (Nullable Node)
@@ -783,130 +603,24 @@
       (fromJust . nullableToMaybe <$>
          (js_getOwnerDocument (toNode self)))
  
-foreign import javascript unsafe "$1[\"namespaceURI\"]"
-        js_getNamespaceURI :: Node -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.namespaceURI Mozilla Node.namespaceURI documentation> 
-getNamespaceURI ::
-                (MonadIO m, IsNode self, FromJSString result) =>
-                  self -> m (Maybe result)
-getNamespaceURI self
-  = liftIO (fromMaybeJSString <$> (js_getNamespaceURI (toNode self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.namespaceURI Mozilla Node.namespaceURI documentation> 
-getNamespaceURIUnsafe ::
-                      (MonadIO m, IsNode self, HasCallStack, FromJSString result) =>
-                        self -> m result
-getNamespaceURIUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getNamespaceURI (toNode self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.namespaceURI Mozilla Node.namespaceURI documentation> 
-getNamespaceURIUnchecked ::
-                         (MonadIO m, IsNode self, FromJSString result) => self -> m result
-getNamespaceURIUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getNamespaceURI (toNode self)))
- 
-foreign import javascript unsafe "$1[\"prefix\"] = $2;"
-        js_setPrefix :: Node -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.prefix Mozilla Node.prefix documentation> 
-setPrefix ::
-          (MonadIO m, IsNode self, ToJSString val) =>
-            self -> Maybe val -> m ()
-setPrefix self val
-  = liftIO (js_setPrefix (toNode self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"prefix\"]" js_getPrefix ::
-        Node -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.prefix Mozilla Node.prefix documentation> 
-getPrefix ::
-          (MonadIO m, IsNode self, FromJSString result) =>
-            self -> m (Maybe result)
-getPrefix self
-  = liftIO (fromMaybeJSString <$> (js_getPrefix (toNode self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.prefix Mozilla Node.prefix documentation> 
-getPrefixUnsafe ::
-                (MonadIO m, IsNode self, HasCallStack, FromJSString result) =>
-                  self -> m result
-getPrefixUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getPrefix (toNode self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.prefix Mozilla Node.prefix documentation> 
-getPrefixUnchecked ::
-                   (MonadIO m, IsNode self, FromJSString result) => self -> m result
-getPrefixUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getPrefix (toNode self)))
- 
-foreign import javascript unsafe "$1[\"localName\"]"
-        js_getLocalName :: Node -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.localName Mozilla Node.localName documentation> 
-getLocalName ::
-             (MonadIO m, IsNode self, FromJSString result) =>
-               self -> m (Maybe result)
-getLocalName self
-  = liftIO (fromMaybeJSString <$> (js_getLocalName (toNode self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.localName Mozilla Node.localName documentation> 
-getLocalNameUnsafe ::
-                   (MonadIO m, IsNode self, HasCallStack, FromJSString result) =>
-                     self -> m result
-getLocalNameUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getLocalName (toNode self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.localName Mozilla Node.localName documentation> 
-getLocalNameUnchecked ::
-                      (MonadIO m, IsNode self, FromJSString result) => self -> m result
-getLocalNameUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getLocalName (toNode self)))
- 
 foreign import javascript unsafe "$1[\"baseURI\"]" js_getBaseURI ::
-        Node -> IO (Nullable JSString)
+        Node -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.baseURI Mozilla Node.baseURI documentation> 
 getBaseURI ::
-           (MonadIO m, IsNode self, FromJSString result) =>
-             self -> m (Maybe result)
+           (MonadIO m, IsNode self, FromJSString result) => self -> m result
 getBaseURI self
-  = liftIO (fromMaybeJSString <$> (js_getBaseURI (toNode self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.baseURI Mozilla Node.baseURI documentation> 
-getBaseURIUnsafe ::
-                 (MonadIO m, IsNode self, HasCallStack, FromJSString result) =>
-                   self -> m result
-getBaseURIUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getBaseURI (toNode self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.baseURI Mozilla Node.baseURI documentation> 
-getBaseURIUnchecked ::
-                    (MonadIO m, IsNode self, FromJSString result) => self -> m result
-getBaseURIUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getBaseURI (toNode self)))
+  = liftIO (fromJSString <$> (js_getBaseURI (toNode self)))
  
 foreign import javascript unsafe "$1[\"textContent\"] = $2;"
-        js_setTextContent :: Node -> Nullable JSString -> IO ()
+        js_setTextContent :: Node -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent Mozilla Node.textContent documentation> 
 setTextContent ::
                (MonadIO m, IsNode self, ToJSString val) =>
                  self -> Maybe val -> m ()
 setTextContent self val
-  = liftIO (js_setTextContent (toNode self) (toMaybeJSString val))
+  = liftIO (js_setTextContent (toNode self) (toOptionalJSString val))
  
 foreign import javascript unsafe "$1[\"textContent\"]"
         js_getTextContent :: Node -> IO (Nullable JSString)
@@ -934,6 +648,13 @@
   = liftIO
       (fromJust . fromMaybeJSString <$>
          (js_getTextContent (toNode self)))
+ 
+foreign import javascript unsafe "($1[\"isConnected\"] ? 1 : 0)"
+        js_getIsConnected :: Node -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Node.isConnected Mozilla Node.isConnected documentation> 
+getIsConnected :: (MonadIO m, IsNode self) => self -> m Bool
+getIsConnected self = liftIO (js_getIsConnected (toNode self))
  
 foreign import javascript unsafe "$1[\"parentElement\"]"
         js_getParentElement :: Node -> IO (Nullable Element)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NodeFilter.hs b/src/GHCJS/DOM/JSFFI/Generated/NodeFilter.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/NodeFilter.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/NodeFilter.hs
@@ -4,20 +4,20 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.NodeFilter
-       (js_acceptNode, acceptNode, acceptNode_, pattern FILTER_ACCEPT,
-        pattern FILTER_REJECT, pattern FILTER_SKIP, pattern SHOW_ALL,
-        pattern SHOW_ELEMENT, pattern SHOW_ATTRIBUTE, pattern SHOW_TEXT,
-        pattern SHOW_CDATA_SECTION, pattern SHOW_ENTITY_REFERENCE,
-        pattern SHOW_ENTITY, pattern SHOW_PROCESSING_INSTRUCTION,
-        pattern SHOW_COMMENT, pattern SHOW_DOCUMENT,
-        pattern SHOW_DOCUMENT_TYPE, pattern SHOW_DOCUMENT_FRAGMENT,
-        pattern SHOW_NOTATION, NodeFilter(..), gTypeNodeFilter)
+       (newNodeFilter, newNodeFilterSync, newNodeFilterAsync,
+        pattern FILTER_ACCEPT, pattern FILTER_REJECT, pattern FILTER_SKIP,
+        pattern SHOW_ALL, pattern SHOW_ELEMENT, pattern SHOW_ATTRIBUTE,
+        pattern SHOW_TEXT, pattern SHOW_CDATA_SECTION,
+        pattern SHOW_ENTITY_REFERENCE, pattern SHOW_ENTITY,
+        pattern SHOW_PROCESSING_INSTRUCTION, pattern SHOW_COMMENT,
+        pattern SHOW_DOCUMENT, pattern SHOW_DOCUMENT_TYPE,
+        pattern SHOW_DOCUMENT_FRAGMENT, pattern SHOW_NOTATION, NodeFilter)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,26 +26,36 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"acceptNode\"]($2)"
-        js_acceptNode :: NodeFilter -> Nullable Node -> IO Int
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter.acceptNode Mozilla NodeFilter.acceptNode documentation> 
-acceptNode ::
-           (MonadIO m, IsNode n) => NodeFilter -> Maybe n -> m Int
-acceptNode self n
-  = liftIO (js_acceptNode (self) (maybeToNullable (fmap toNode n)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter Mozilla NodeFilter documentation> 
+newNodeFilter :: (MonadIO m) => (Node -> IO ()) -> m NodeFilter
+newNodeFilter callback
+  = liftIO
+      (NodeFilter <$>
+         syncCallback1 ThrowWouldBlock
+           (\ node -> fromJSValUnchecked node >>= \ node' -> callback node'))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter.acceptNode Mozilla NodeFilter.acceptNode documentation> 
-acceptNode_ ::
-            (MonadIO m, IsNode n) => NodeFilter -> Maybe n -> m ()
-acceptNode_ self n
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter Mozilla NodeFilter documentation> 
+newNodeFilterSync :: (MonadIO m) => (Node -> IO ()) -> m NodeFilter
+newNodeFilterSync callback
   = liftIO
-      (void (js_acceptNode (self) (maybeToNullable (fmap toNode n))))
+      (NodeFilter <$>
+         syncCallback1 ContinueAsync
+           (\ node -> fromJSValUnchecked node >>= \ node' -> callback node'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter Mozilla NodeFilter documentation> 
+newNodeFilterAsync ::
+                   (MonadIO m) => (Node -> IO ()) -> m NodeFilter
+newNodeFilterAsync callback
+  = liftIO
+      (NodeFilter <$>
+         asyncCallback1
+           (\ node -> fromJSValUnchecked node >>= \ node' -> callback node'))
 pattern FILTER_ACCEPT = 1
 pattern FILTER_REJECT = 2
 pattern FILTER_SKIP = 3
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NodeIterator.hs b/src/GHCJS/DOM/JSFFI/Generated/NodeIterator.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/NodeIterator.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/NodeIterator.hs
@@ -4,22 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.NodeIterator
-       (js_nextNode, nextNode, nextNode_, nextNodeUnsafe,
-        nextNodeUnchecked, js_previousNode, previousNode, previousNode_,
-        previousNodeUnsafe, previousNodeUnchecked, js_detach, detach,
-        js_getRoot, getRoot, getRootUnsafe, getRootUnchecked,
-        js_getWhatToShow, getWhatToShow, js_getFilter, getFilter,
-        getFilterUnsafe, getFilterUnchecked, js_getExpandEntityReferences,
-        getExpandEntityReferences, js_getReferenceNode, getReferenceNode,
-        getReferenceNodeUnsafe, getReferenceNodeUnchecked,
-        js_getPointerBeforeReferenceNode, getPointerBeforeReferenceNode,
-        NodeIterator(..), gTypeNodeIterator)
+       (js_nextNode, nextNode, nextNode_, js_previousNode, previousNode,
+        previousNode_, js_detach, detach, js_getRoot, getRoot,
+        js_getWhatToShow, getWhatToShow, js_getReferenceNode,
+        getReferenceNode, js_getPointerBeforeReferenceNode,
+        getPointerBeforeReferenceNode, NodeIterator(..), gTypeNodeIterator)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,144 +23,61 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"nextNode\"]()" js_nextNode
-        :: NodeIterator -> IO (Nullable Node)
+        :: NodeIterator -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.nextNode Mozilla NodeIterator.nextNode documentation> 
-nextNode :: (MonadIO m) => NodeIterator -> m (Maybe Node)
-nextNode self = liftIO (nullableToMaybe <$> (js_nextNode (self)))
+nextNode :: (MonadIO m) => NodeIterator -> m Node
+nextNode self = liftIO (js_nextNode self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.nextNode Mozilla NodeIterator.nextNode documentation> 
 nextNode_ :: (MonadIO m) => NodeIterator -> m ()
-nextNode_ self = liftIO (void (js_nextNode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.nextNode Mozilla NodeIterator.nextNode documentation> 
-nextNodeUnsafe ::
-               (MonadIO m, HasCallStack) => NodeIterator -> m Node
-nextNodeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_nextNode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.nextNode Mozilla NodeIterator.nextNode documentation> 
-nextNodeUnchecked :: (MonadIO m) => NodeIterator -> m Node
-nextNodeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_nextNode (self)))
+nextNode_ self = liftIO (void (js_nextNode self))
  
 foreign import javascript unsafe "$1[\"previousNode\"]()"
-        js_previousNode :: NodeIterator -> IO (Nullable Node)
+        js_previousNode :: NodeIterator -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.previousNode Mozilla NodeIterator.previousNode documentation> 
-previousNode :: (MonadIO m) => NodeIterator -> m (Maybe Node)
-previousNode self
-  = liftIO (nullableToMaybe <$> (js_previousNode (self)))
+previousNode :: (MonadIO m) => NodeIterator -> m Node
+previousNode self = liftIO (js_previousNode self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.previousNode Mozilla NodeIterator.previousNode documentation> 
 previousNode_ :: (MonadIO m) => NodeIterator -> m ()
-previousNode_ self = liftIO (void (js_previousNode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.previousNode Mozilla NodeIterator.previousNode documentation> 
-previousNodeUnsafe ::
-                   (MonadIO m, HasCallStack) => NodeIterator -> m Node
-previousNodeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_previousNode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.previousNode Mozilla NodeIterator.previousNode documentation> 
-previousNodeUnchecked :: (MonadIO m) => NodeIterator -> m Node
-previousNodeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_previousNode (self)))
+previousNode_ self = liftIO (void (js_previousNode self))
  
 foreign import javascript unsafe "$1[\"detach\"]()" js_detach ::
         NodeIterator -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.detach Mozilla NodeIterator.detach documentation> 
 detach :: (MonadIO m) => NodeIterator -> m ()
-detach self = liftIO (js_detach (self))
+detach self = liftIO (js_detach self)
  
 foreign import javascript unsafe "$1[\"root\"]" js_getRoot ::
-        NodeIterator -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.root Mozilla NodeIterator.root documentation> 
-getRoot :: (MonadIO m) => NodeIterator -> m (Maybe Node)
-getRoot self = liftIO (nullableToMaybe <$> (js_getRoot (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.root Mozilla NodeIterator.root documentation> 
-getRootUnsafe ::
-              (MonadIO m, HasCallStack) => NodeIterator -> m Node
-getRootUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRoot (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        NodeIterator -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.root Mozilla NodeIterator.root documentation> 
-getRootUnchecked :: (MonadIO m) => NodeIterator -> m Node
-getRootUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRoot (self)))
+getRoot :: (MonadIO m) => NodeIterator -> m Node
+getRoot self = liftIO (js_getRoot self)
  
 foreign import javascript unsafe "$1[\"whatToShow\"]"
         js_getWhatToShow :: NodeIterator -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.whatToShow Mozilla NodeIterator.whatToShow documentation> 
 getWhatToShow :: (MonadIO m) => NodeIterator -> m Word
-getWhatToShow self = liftIO (js_getWhatToShow (self))
- 
-foreign import javascript unsafe "$1[\"filter\"]" js_getFilter ::
-        NodeIterator -> IO (Nullable NodeFilter)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.filter Mozilla NodeIterator.filter documentation> 
-getFilter :: (MonadIO m) => NodeIterator -> m (Maybe NodeFilter)
-getFilter self = liftIO (nullableToMaybe <$> (js_getFilter (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.filter Mozilla NodeIterator.filter documentation> 
-getFilterUnsafe ::
-                (MonadIO m, HasCallStack) => NodeIterator -> m NodeFilter
-getFilterUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFilter (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.filter Mozilla NodeIterator.filter documentation> 
-getFilterUnchecked :: (MonadIO m) => NodeIterator -> m NodeFilter
-getFilterUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFilter (self)))
- 
-foreign import javascript unsafe
-        "($1[\"expandEntityReferences\"] ? 1 : 0)"
-        js_getExpandEntityReferences :: NodeIterator -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.expandEntityReferences Mozilla NodeIterator.expandEntityReferences documentation> 
-getExpandEntityReferences :: (MonadIO m) => NodeIterator -> m Bool
-getExpandEntityReferences self
-  = liftIO (js_getExpandEntityReferences (self))
+getWhatToShow self = liftIO (js_getWhatToShow self)
  
 foreign import javascript unsafe "$1[\"referenceNode\"]"
-        js_getReferenceNode :: NodeIterator -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.referenceNode Mozilla NodeIterator.referenceNode documentation> 
-getReferenceNode :: (MonadIO m) => NodeIterator -> m (Maybe Node)
-getReferenceNode self
-  = liftIO (nullableToMaybe <$> (js_getReferenceNode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.referenceNode Mozilla NodeIterator.referenceNode documentation> 
-getReferenceNodeUnsafe ::
-                       (MonadIO m, HasCallStack) => NodeIterator -> m Node
-getReferenceNodeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getReferenceNode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getReferenceNode :: NodeIterator -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator.referenceNode Mozilla NodeIterator.referenceNode documentation> 
-getReferenceNodeUnchecked :: (MonadIO m) => NodeIterator -> m Node
-getReferenceNodeUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getReferenceNode (self)))
+getReferenceNode :: (MonadIO m) => NodeIterator -> m Node
+getReferenceNode self = liftIO (js_getReferenceNode self)
  
 foreign import javascript unsafe
         "($1[\"pointerBeforeReferenceNode\"] ? 1 : 0)"
@@ -175,4 +87,4 @@
 getPointerBeforeReferenceNode ::
                               (MonadIO m) => NodeIterator -> m Bool
 getPointerBeforeReferenceNode self
-  = liftIO (js_getPointerBeforeReferenceNode (self))
+  = liftIO (js_getPointerBeforeReferenceNode self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NodeList.hs b/src/GHCJS/DOM/JSFFI/Generated/NodeList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/NodeList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/NodeList.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.NodeList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getLength,
-        getLength, NodeList(..), gTypeNodeList, IsNodeList, toNodeList)
+       (js_item, item, item_, js_getLength, getLength, NodeList(..),
+        gTypeNodeList, IsNodeList, toNodeList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,39 +20,22 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        NodeList -> Word -> IO (Nullable Node)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        NodeList -> Word -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeList.item Mozilla NodeList.item documentation> 
-item ::
-     (MonadIO m, IsNodeList self) => self -> Word -> m (Maybe Node)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (toNodeList self) index))
+item :: (MonadIO m, IsNodeList self) => self -> Word -> m Node
+item self index = liftIO (js_item (toNodeList self) index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeList.item Mozilla NodeList.item documentation> 
 item_ :: (MonadIO m, IsNodeList self) => self -> Word -> m ()
 item_ self index = liftIO (void (js_item (toNodeList self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeList.item Mozilla NodeList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, IsNodeList self, HasCallStack) =>
-             self -> Word -> m Node
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (toNodeList self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NodeList.item Mozilla NodeList.item documentation> 
-itemUnchecked ::
-              (MonadIO m, IsNodeList self) => self -> Word -> m Node
-itemUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_item (toNodeList self) index))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         NodeList -> IO Word
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NonDocumentTypeChildNode.hs b/src/GHCJS/DOM/JSFFI/Generated/NonDocumentTypeChildNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/NonDocumentTypeChildNode.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.NonDocumentTypeChildNode
+       (js_getPreviousElementSibling, getPreviousElementSibling,
+        js_getNextElementSibling, getNextElementSibling,
+        NonDocumentTypeChildNode(..), gTypeNonDocumentTypeChildNode,
+        IsNonDocumentTypeChildNode, toNonDocumentTypeChildNode)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"previousElementSibling\"]"
+        js_getPreviousElementSibling ::
+        NonDocumentTypeChildNode -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NonDocumentTypeChildNode.previousElementSibling Mozilla NonDocumentTypeChildNode.previousElementSibling documentation> 
+getPreviousElementSibling ::
+                          (MonadIO m, IsNonDocumentTypeChildNode self) => self -> m Element
+getPreviousElementSibling self
+  = liftIO
+      (js_getPreviousElementSibling (toNonDocumentTypeChildNode self))
+ 
+foreign import javascript unsafe "$1[\"nextElementSibling\"]"
+        js_getNextElementSibling :: NonDocumentTypeChildNode -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NonDocumentTypeChildNode.nextElementSibling Mozilla NonDocumentTypeChildNode.nextElementSibling documentation> 
+getNextElementSibling ::
+                      (MonadIO m, IsNonDocumentTypeChildNode self) => self -> m Element
+getNextElementSibling self
+  = liftIO
+      (js_getNextElementSibling (toNonDocumentTypeChildNode self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NonElementParentNode.hs b/src/GHCJS/DOM/JSFFI/Generated/NonElementParentNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/NonElementParentNode.hs
@@ -0,0 +1,75 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.NonElementParentNode
+       (js_getElementById, getElementById, getElementById_,
+        getElementByIdUnsafe, getElementByIdUnchecked,
+        NonElementParentNode(..), gTypeNonElementParentNode,
+        IsNonElementParentNode, toNonElementParentNode)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"getElementById\"]($2)"
+        js_getElementById ::
+        NonElementParentNode -> JSString -> IO (Nullable Element)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NonElementParentNode.getElementById Mozilla NonElementParentNode.getElementById documentation> 
+getElementById ::
+               (MonadIO m, IsNonElementParentNode self, ToJSString elementId) =>
+                 self -> elementId -> m (Maybe Element)
+getElementById self elementId
+  = liftIO
+      (nullableToMaybe <$>
+         (js_getElementById (toNonElementParentNode self)
+            (toJSString elementId)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NonElementParentNode.getElementById Mozilla NonElementParentNode.getElementById documentation> 
+getElementById_ ::
+                (MonadIO m, IsNonElementParentNode self, ToJSString elementId) =>
+                  self -> elementId -> m ()
+getElementById_ self elementId
+  = liftIO
+      (void
+         (js_getElementById (toNonElementParentNode self)
+            (toJSString elementId)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NonElementParentNode.getElementById Mozilla NonElementParentNode.getElementById documentation> 
+getElementByIdUnsafe ::
+                     (MonadIO m, IsNonElementParentNode self, ToJSString elementId,
+                      HasCallStack) =>
+                       self -> elementId -> m Element
+getElementByIdUnsafe self elementId
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_getElementById (toNonElementParentNode self)
+             (toJSString elementId)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/NonElementParentNode.getElementById Mozilla NonElementParentNode.getElementById documentation> 
+getElementByIdUnchecked ::
+                        (MonadIO m, IsNonElementParentNode self, ToJSString elementId) =>
+                          self -> elementId -> m Element
+getElementByIdUnchecked self elementId
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getElementById (toNonElementParentNode self)
+            (toJSString elementId)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Notification.hs b/src/GHCJS/DOM/JSFFI/Generated/Notification.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Notification.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Notification.hs
@@ -4,14 +4,18 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Notification
-       (js_show, show, showEvent, error, close, click, Notification(..),
-        gTypeNotification)
+       (js_show, show, js_cancel, cancel, js_close, close,
+        js_requestPermission, requestPermission, js_getPermission,
+        getPermission, click, cLoseEvent, display, error, showEvent,
+        js_setDir, setDir, js_getDir, getDir, js_setReplaceId,
+        setReplaceId, js_getReplaceId, getReplaceId, js_setTag, setTag,
+        js_getTag, getTag, Notification(..), gTypeNotification)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,20 +35,110 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.show Mozilla Notification.show documentation> 
 show :: (MonadIO m) => Notification -> m ()
-show self = liftIO (js_show (self))
+show self = liftIO (js_show self)
+ 
+foreign import javascript unsafe "$1[\"cancel\"]()" js_cancel ::
+        Notification -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.onshow Mozilla Notification.onshow documentation> 
-showEvent :: EventName Notification MouseEvent
-showEvent = unsafeEventName (toJSString "show")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.cancel Mozilla Notification.cancel documentation> 
+cancel :: (MonadIO m) => Notification -> m ()
+cancel self = liftIO (js_cancel self)
+ 
+foreign import javascript unsafe "$1[\"close\"]()" js_close ::
+        Notification -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.onerror Mozilla Notification.onerror documentation> 
-error :: EventName Notification UIEvent
-error = unsafeEventName (toJSString "error")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.close Mozilla Notification.close documentation> 
+close :: (MonadIO m) => Notification -> m ()
+close self = liftIO (js_close self)
+ 
+foreign import javascript unsafe "$1[\"requestPermission\"]($2)"
+        js_requestPermission ::
+        Notification ->
+          Optional (NotificationPermissionCallback callback) -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.onclose Mozilla Notification.onclose documentation> 
-close :: EventName Notification CloseEvent
-close = unsafeEventName (toJSString "close")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.requestPermission Mozilla Notification.requestPermission documentation> 
+requestPermission ::
+                  (MonadIO m, ToJSString callback) =>
+                    Notification ->
+                      Maybe (NotificationPermissionCallback callback) -> m ()
+requestPermission self callback
+  = liftIO (js_requestPermission self (maybeToOptional callback))
+ 
+foreign import javascript unsafe "$1[\"permission\"]"
+        js_getPermission :: Notification -> IO JSString
 
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.permission Mozilla Notification.permission documentation> 
+getPermission ::
+              (MonadIO m, FromJSString result) => Notification -> m result
+getPermission self
+  = liftIO (fromJSString <$> (js_getPermission self))
+
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.onclick Mozilla Notification.onclick documentation> 
 click :: EventName Notification MouseEvent
 click = unsafeEventName (toJSString "click")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.onclose Mozilla Notification.onclose documentation> 
+cLoseEvent :: EventName Notification CloseEvent
+cLoseEvent = unsafeEventName (toJSString "close")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.ondisplay Mozilla Notification.ondisplay documentation> 
+display :: EventName Notification ondisplay
+display = unsafeEventName (toJSString "display")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.onerror Mozilla Notification.onerror documentation> 
+error :: EventName Notification UIEvent
+error = unsafeEventName (toJSString "error")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.onshow Mozilla Notification.onshow documentation> 
+showEvent :: EventName Notification MouseEvent
+showEvent = unsafeEventName (toJSString "show")
+ 
+foreign import javascript unsafe "$1[\"dir\"] = $2;" js_setDir ::
+        Notification -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.dir Mozilla Notification.dir documentation> 
+setDir ::
+       (MonadIO m, ToJSString val) => Notification -> val -> m ()
+setDir self val = liftIO (js_setDir self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"dir\"]" js_getDir ::
+        Notification -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.dir Mozilla Notification.dir documentation> 
+getDir ::
+       (MonadIO m, FromJSString result) => Notification -> m result
+getDir self = liftIO (fromJSString <$> (js_getDir self))
+ 
+foreign import javascript unsafe "$1[\"replaceId\"] = $2;"
+        js_setReplaceId :: Notification -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.replaceId Mozilla Notification.replaceId documentation> 
+setReplaceId ::
+             (MonadIO m, ToJSString val) => Notification -> val -> m ()
+setReplaceId self val
+  = liftIO (js_setReplaceId self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"replaceId\"]"
+        js_getReplaceId :: Notification -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.replaceId Mozilla Notification.replaceId documentation> 
+getReplaceId ::
+             (MonadIO m, FromJSString result) => Notification -> m result
+getReplaceId self
+  = liftIO (fromJSString <$> (js_getReplaceId self))
+ 
+foreign import javascript unsafe "$1[\"tag\"] = $2;" js_setTag ::
+        Notification -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.tag Mozilla Notification.tag documentation> 
+setTag ::
+       (MonadIO m, ToJSString val) => Notification -> val -> m ()
+setTag self val = liftIO (js_setTag self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"tag\"]" js_getTag ::
+        Notification -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Notification.tag Mozilla Notification.tag documentation> 
+getTag ::
+       (MonadIO m, FromJSString result) => Notification -> m result
+getTag self = liftIO (fromJSString <$> (js_getTag self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NotificationCenter.hs b/src/GHCJS/DOM/JSFFI/Generated/NotificationCenter.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/NotificationCenter.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/NotificationCenter.hs
@@ -5,7 +5,6 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.NotificationCenter
        (js_createNotification, createNotification, createNotification_,
-        createNotificationUnsafe, createNotificationUnchecked,
         js_checkPermission, checkPermission, checkPermission_,
         js_requestPermission, requestPermission, NotificationCenter(..),
         gTypeNotificationCenter)
@@ -14,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,20 +31,17 @@
 foreign import javascript unsafe
         "$1[\"createNotification\"]($2, $3,\n$4)" js_createNotification ::
         NotificationCenter ->
-          JSString -> JSString -> JSString -> IO (Nullable Notification)
+          JSString -> JSString -> JSString -> IO Notification
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NotificationCenter.createNotification Mozilla NotificationCenter.createNotification documentation> 
 createNotification ::
                    (MonadIO m, ToJSString iconUrl, ToJSString title,
                     ToJSString body) =>
-                     NotificationCenter ->
-                       iconUrl -> title -> body -> m (Maybe Notification)
+                     NotificationCenter -> iconUrl -> title -> body -> m Notification
 createNotification self iconUrl title body
   = liftIO
-      (nullableToMaybe <$>
-         (js_createNotification (self) (toJSString iconUrl)
-            (toJSString title)
-            (toJSString body)))
+      (js_createNotification self (toJSString iconUrl) (toJSString title)
+         (toJSString body))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NotificationCenter.createNotification Mozilla NotificationCenter.createNotification documentation> 
 createNotification_ ::
@@ -54,33 +51,7 @@
 createNotification_ self iconUrl title body
   = liftIO
       (void
-         (js_createNotification (self) (toJSString iconUrl)
-            (toJSString title)
-            (toJSString body)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NotificationCenter.createNotification Mozilla NotificationCenter.createNotification documentation> 
-createNotificationUnsafe ::
-                         (MonadIO m, ToJSString iconUrl, ToJSString title, ToJSString body,
-                          HasCallStack) =>
-                           NotificationCenter -> iconUrl -> title -> body -> m Notification
-createNotificationUnsafe self iconUrl title body
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createNotification (self) (toJSString iconUrl)
-             (toJSString title)
-             (toJSString body)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/NotificationCenter.createNotification Mozilla NotificationCenter.createNotification documentation> 
-createNotificationUnchecked ::
-                            (MonadIO m, ToJSString iconUrl, ToJSString title,
-                             ToJSString body) =>
-                              NotificationCenter -> iconUrl -> title -> body -> m Notification
-createNotificationUnchecked self iconUrl title body
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createNotification (self) (toJSString iconUrl)
-            (toJSString title)
+         (js_createNotification self (toJSString iconUrl) (toJSString title)
             (toJSString body)))
  
 foreign import javascript unsafe "$1[\"checkPermission\"]()"
@@ -88,18 +59,18 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NotificationCenter.checkPermission Mozilla NotificationCenter.checkPermission documentation> 
 checkPermission :: (MonadIO m) => NotificationCenter -> m Int
-checkPermission self = liftIO (js_checkPermission (self))
+checkPermission self = liftIO (js_checkPermission self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NotificationCenter.checkPermission Mozilla NotificationCenter.checkPermission documentation> 
 checkPermission_ :: (MonadIO m) => NotificationCenter -> m ()
-checkPermission_ self = liftIO (void (js_checkPermission (self)))
+checkPermission_ self = liftIO (void (js_checkPermission self))
  
 foreign import javascript unsafe "$1[\"requestPermission\"]($2)"
         js_requestPermission ::
-        NotificationCenter -> Nullable VoidCallback -> IO ()
+        NotificationCenter -> Optional VoidCallback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/NotificationCenter.requestPermission Mozilla NotificationCenter.requestPermission documentation> 
 requestPermission ::
                   (MonadIO m) => NotificationCenter -> Maybe VoidCallback -> m ()
 requestPermission self callback
-  = liftIO (js_requestPermission (self) (maybeToNullable callback))
+  = liftIO (js_requestPermission self (maybeToOptional callback))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/NotificationPermissionCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/NotificationPermissionCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/NotificationPermissionCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/NotificationPermissionCallback.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/OESStandardDerivatives.hs b/src/GHCJS/DOM/JSFFI/Generated/OESStandardDerivatives.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/OESStandardDerivatives.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/OESStandardDerivatives.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/OESTextureHalfFloat.hs b/src/GHCJS/DOM/JSFFI/Generated/OESTextureHalfFloat.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/OESTextureHalfFloat.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/OESTextureHalfFloat.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/OESVertexArrayObject.hs b/src/GHCJS/DOM/JSFFI/Generated/OESVertexArrayObject.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/OESVertexArrayObject.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/OESVertexArrayObject.hs
@@ -5,8 +5,7 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.OESVertexArrayObject
        (js_createVertexArrayOES, createVertexArrayOES,
-        createVertexArrayOES_, createVertexArrayOESUnsafe,
-        createVertexArrayOESUnchecked, js_deleteVertexArrayOES,
+        createVertexArrayOES_, js_deleteVertexArrayOES,
         deleteVertexArrayOES, js_isVertexArrayOES, isVertexArrayOES,
         isVertexArrayOES_, js_bindVertexArrayOES, bindVertexArrayOES,
         pattern VERTEX_ARRAY_BINDING_OES, OESVertexArrayObject(..),
@@ -16,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,40 +32,22 @@
  
 foreign import javascript unsafe "$1[\"createVertexArrayOES\"]()"
         js_createVertexArrayOES ::
-        OESVertexArrayObject -> IO (Nullable WebGLVertexArrayObjectOES)
+        OESVertexArrayObject -> IO WebGLVertexArrayObjectOES
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject.createVertexArrayOES Mozilla OESVertexArrayObject.createVertexArrayOES documentation> 
 createVertexArrayOES ::
-                     (MonadIO m) =>
-                       OESVertexArrayObject -> m (Maybe WebGLVertexArrayObjectOES)
-createVertexArrayOES self
-  = liftIO (nullableToMaybe <$> (js_createVertexArrayOES (self)))
+                     (MonadIO m) => OESVertexArrayObject -> m WebGLVertexArrayObjectOES
+createVertexArrayOES self = liftIO (js_createVertexArrayOES self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject.createVertexArrayOES Mozilla OESVertexArrayObject.createVertexArrayOES documentation> 
 createVertexArrayOES_ ::
                       (MonadIO m) => OESVertexArrayObject -> m ()
 createVertexArrayOES_ self
-  = liftIO (void (js_createVertexArrayOES (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject.createVertexArrayOES Mozilla OESVertexArrayObject.createVertexArrayOES documentation> 
-createVertexArrayOESUnsafe ::
-                           (MonadIO m, HasCallStack) =>
-                             OESVertexArrayObject -> m WebGLVertexArrayObjectOES
-createVertexArrayOESUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createVertexArrayOES (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject.createVertexArrayOES Mozilla OESVertexArrayObject.createVertexArrayOES documentation> 
-createVertexArrayOESUnchecked ::
-                              (MonadIO m) => OESVertexArrayObject -> m WebGLVertexArrayObjectOES
-createVertexArrayOESUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_createVertexArrayOES (self)))
+  = liftIO (void (js_createVertexArrayOES self))
  
 foreign import javascript unsafe "$1[\"deleteVertexArrayOES\"]($2)"
         js_deleteVertexArrayOES ::
-        OESVertexArrayObject -> Nullable WebGLVertexArrayObjectOES -> IO ()
+        OESVertexArrayObject -> Optional WebGLVertexArrayObjectOES -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject.deleteVertexArrayOES Mozilla OESVertexArrayObject.deleteVertexArrayOES documentation> 
 deleteVertexArrayOES ::
@@ -73,19 +55,19 @@
                        OESVertexArrayObject -> Maybe WebGLVertexArrayObjectOES -> m ()
 deleteVertexArrayOES self arrayObject
   = liftIO
-      (js_deleteVertexArrayOES (self) (maybeToNullable arrayObject))
+      (js_deleteVertexArrayOES self (maybeToOptional arrayObject))
  
 foreign import javascript unsafe
         "($1[\"isVertexArrayOES\"]($2) ? 1 : 0)" js_isVertexArrayOES ::
         OESVertexArrayObject ->
-          Nullable WebGLVertexArrayObjectOES -> IO Bool
+          Optional WebGLVertexArrayObjectOES -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject.isVertexArrayOES Mozilla OESVertexArrayObject.isVertexArrayOES documentation> 
 isVertexArrayOES ::
                  (MonadIO m) =>
                    OESVertexArrayObject -> Maybe WebGLVertexArrayObjectOES -> m Bool
 isVertexArrayOES self arrayObject
-  = liftIO (js_isVertexArrayOES (self) (maybeToNullable arrayObject))
+  = liftIO (js_isVertexArrayOES self (maybeToOptional arrayObject))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject.isVertexArrayOES Mozilla OESVertexArrayObject.isVertexArrayOES documentation> 
 isVertexArrayOES_ ::
@@ -93,17 +75,16 @@
                     OESVertexArrayObject -> Maybe WebGLVertexArrayObjectOES -> m ()
 isVertexArrayOES_ self arrayObject
   = liftIO
-      (void (js_isVertexArrayOES (self) (maybeToNullable arrayObject)))
+      (void (js_isVertexArrayOES self (maybeToOptional arrayObject)))
  
 foreign import javascript unsafe "$1[\"bindVertexArrayOES\"]($2)"
         js_bindVertexArrayOES ::
-        OESVertexArrayObject -> Nullable WebGLVertexArrayObjectOES -> IO ()
+        OESVertexArrayObject -> Optional WebGLVertexArrayObjectOES -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject.bindVertexArrayOES Mozilla OESVertexArrayObject.bindVertexArrayOES documentation> 
 bindVertexArrayOES ::
                    (MonadIO m) =>
                      OESVertexArrayObject -> Maybe WebGLVertexArrayObjectOES -> m ()
 bindVertexArrayOES self arrayObject
-  = liftIO
-      (js_bindVertexArrayOES (self) (maybeToNullable arrayObject))
+  = liftIO (js_bindVertexArrayOES self (maybeToOptional arrayObject))
 pattern VERTEX_ARRAY_BINDING_OES = 34229
diff --git a/src/GHCJS/DOM/JSFFI/Generated/OfflineAudioCompletionEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/OfflineAudioCompletionEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/OfflineAudioCompletionEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/OfflineAudioCompletionEvent.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.OfflineAudioCompletionEvent
-       (js_getRenderedBuffer, getRenderedBuffer, getRenderedBufferUnsafe,
-        getRenderedBufferUnchecked, OfflineAudioCompletionEvent(..),
-        gTypeOfflineAudioCompletionEvent)
+       (js_getRenderedBuffer, getRenderedBuffer,
+        OfflineAudioCompletionEvent(..), gTypeOfflineAudioCompletionEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,26 +28,9 @@
  
 foreign import javascript unsafe "$1[\"renderedBuffer\"]"
         js_getRenderedBuffer ::
-        OfflineAudioCompletionEvent -> IO (Nullable AudioBuffer)
+        OfflineAudioCompletionEvent -> IO AudioBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioCompletionEvent.renderedBuffer Mozilla OfflineAudioCompletionEvent.renderedBuffer documentation> 
 getRenderedBuffer ::
-                  (MonadIO m) => OfflineAudioCompletionEvent -> m (Maybe AudioBuffer)
-getRenderedBuffer self
-  = liftIO (nullableToMaybe <$> (js_getRenderedBuffer (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioCompletionEvent.renderedBuffer Mozilla OfflineAudioCompletionEvent.renderedBuffer documentation> 
-getRenderedBufferUnsafe ::
-                        (MonadIO m, HasCallStack) =>
-                          OfflineAudioCompletionEvent -> m AudioBuffer
-getRenderedBufferUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRenderedBuffer (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioCompletionEvent.renderedBuffer Mozilla OfflineAudioCompletionEvent.renderedBuffer documentation> 
-getRenderedBufferUnchecked ::
-                           (MonadIO m) => OfflineAudioCompletionEvent -> m AudioBuffer
-getRenderedBufferUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRenderedBuffer (self)))
+                  (MonadIO m) => OfflineAudioCompletionEvent -> m AudioBuffer
+getRenderedBuffer self = liftIO (js_getRenderedBuffer self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/OfflineAudioContext.hs b/src/GHCJS/DOM/JSFFI/Generated/OfflineAudioContext.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/OfflineAudioContext.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/OfflineAudioContext.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/OscillatorNode.hs b/src/GHCJS/DOM/JSFFI/Generated/OscillatorNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/OscillatorNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/OscillatorNode.hs
@@ -4,21 +4,19 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.OscillatorNode
-       (js_start, start, js_stop, stop, js_noteOn, noteOn, js_noteOff,
-        noteOff, js_setPeriodicWave, setPeriodicWave, pattern SINE,
-        pattern SQUARE, pattern SAWTOOTH, pattern TRIANGLE, pattern CUSTOM,
-        pattern UNSCHEDULED_STATE, pattern SCHEDULED_STATE,
-        pattern PLAYING_STATE, pattern FINISHED_STATE, js_setType, setType,
-        js_getType, getType, js_getPlaybackState, getPlaybackState,
-        js_getFrequency, getFrequency, getFrequencyUnsafe,
-        getFrequencyUnchecked, js_getDetune, getDetune, getDetuneUnsafe,
-        getDetuneUnchecked, ended, OscillatorNode(..), gTypeOscillatorNode)
+       (js_start, start, js_stop, stop, js_setPeriodicWave,
+        setPeriodicWave, pattern UNSCHEDULED_STATE,
+        pattern SCHEDULED_STATE, pattern PLAYING_STATE,
+        pattern FINISHED_STATE, js_setType, setType, js_getType, getType,
+        js_getPlaybackState, getPlaybackState, js_getFrequency,
+        getFrequency, js_getDetune, getDetune, ended, OscillatorNode(..),
+        gTypeOscillatorNode)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,123 +25,74 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"start\"]($2)" js_start ::
-        OscillatorNode -> Double -> IO ()
+        OscillatorNode -> Optional Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.start Mozilla OscillatorNode.start documentation> 
-start :: (MonadIO m) => OscillatorNode -> Double -> m ()
-start self when = liftIO (js_start (self) when)
+start :: (MonadIO m) => OscillatorNode -> Maybe Double -> m ()
+start self when = liftIO (js_start self (maybeToOptional when))
  
 foreign import javascript unsafe "$1[\"stop\"]($2)" js_stop ::
-        OscillatorNode -> Double -> IO ()
+        OscillatorNode -> Optional Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.stop Mozilla OscillatorNode.stop documentation> 
-stop :: (MonadIO m) => OscillatorNode -> Double -> m ()
-stop self when = liftIO (js_stop (self) when)
- 
-foreign import javascript unsafe "$1[\"noteOn\"]($2)" js_noteOn ::
-        OscillatorNode -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.noteOn Mozilla OscillatorNode.noteOn documentation> 
-noteOn :: (MonadIO m) => OscillatorNode -> Double -> m ()
-noteOn self when = liftIO (js_noteOn (self) when)
- 
-foreign import javascript unsafe "$1[\"noteOff\"]($2)" js_noteOff
-        :: OscillatorNode -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.noteOff Mozilla OscillatorNode.noteOff documentation> 
-noteOff :: (MonadIO m) => OscillatorNode -> Double -> m ()
-noteOff self when = liftIO (js_noteOff (self) when)
+stop :: (MonadIO m) => OscillatorNode -> Maybe Double -> m ()
+stop self when = liftIO (js_stop self (maybeToOptional when))
  
 foreign import javascript unsafe "$1[\"setPeriodicWave\"]($2)"
         js_setPeriodicWave ::
-        OscillatorNode -> Nullable PeriodicWave -> IO ()
+        OscillatorNode -> Optional PeriodicWave -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.setPeriodicWave Mozilla OscillatorNode.setPeriodicWave documentation> 
 setPeriodicWave ::
                 (MonadIO m) => OscillatorNode -> Maybe PeriodicWave -> m ()
 setPeriodicWave self wave
-  = liftIO (js_setPeriodicWave (self) (maybeToNullable wave))
-pattern SINE = 0
-pattern SQUARE = 1
-pattern SAWTOOTH = 2
-pattern TRIANGLE = 3
-pattern CUSTOM = 4
+  = liftIO (js_setPeriodicWave self (maybeToOptional wave))
 pattern UNSCHEDULED_STATE = 0
 pattern SCHEDULED_STATE = 1
 pattern PLAYING_STATE = 2
 pattern FINISHED_STATE = 3
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
-        OscillatorNode -> JSString -> IO ()
+        OscillatorNode -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.type Mozilla OscillatorNode.type documentation> 
-setType ::
-        (MonadIO m, ToJSString val) => OscillatorNode -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType :: (MonadIO m) => OscillatorNode -> OscillatorType -> m ()
+setType self val = liftIO (js_setType self (pToJSVal val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
-        OscillatorNode -> IO JSString
+        OscillatorNode -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.type Mozilla OscillatorNode.type documentation> 
-getType ::
-        (MonadIO m, FromJSString result) => OscillatorNode -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType :: (MonadIO m) => OscillatorNode -> m OscillatorType
+getType self = liftIO ((js_getType self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "$1[\"playbackState\"]"
         js_getPlaybackState :: OscillatorNode -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.playbackState Mozilla OscillatorNode.playbackState documentation> 
 getPlaybackState :: (MonadIO m) => OscillatorNode -> m Word
-getPlaybackState self = liftIO (js_getPlaybackState (self))
+getPlaybackState self = liftIO (js_getPlaybackState self)
  
 foreign import javascript unsafe "$1[\"frequency\"]"
-        js_getFrequency :: OscillatorNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.frequency Mozilla OscillatorNode.frequency documentation> 
-getFrequency ::
-             (MonadIO m) => OscillatorNode -> m (Maybe AudioParam)
-getFrequency self
-  = liftIO (nullableToMaybe <$> (js_getFrequency (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.frequency Mozilla OscillatorNode.frequency documentation> 
-getFrequencyUnsafe ::
-                   (MonadIO m, HasCallStack) => OscillatorNode -> m AudioParam
-getFrequencyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFrequency (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getFrequency :: OscillatorNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.frequency Mozilla OscillatorNode.frequency documentation> 
-getFrequencyUnchecked ::
-                      (MonadIO m) => OscillatorNode -> m AudioParam
-getFrequencyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFrequency (self)))
+getFrequency :: (MonadIO m) => OscillatorNode -> m AudioParam
+getFrequency self = liftIO (js_getFrequency self)
  
 foreign import javascript unsafe "$1[\"detune\"]" js_getDetune ::
-        OscillatorNode -> IO (Nullable AudioParam)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.detune Mozilla OscillatorNode.detune documentation> 
-getDetune :: (MonadIO m) => OscillatorNode -> m (Maybe AudioParam)
-getDetune self = liftIO (nullableToMaybe <$> (js_getDetune (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.detune Mozilla OscillatorNode.detune documentation> 
-getDetuneUnsafe ::
-                (MonadIO m, HasCallStack) => OscillatorNode -> m AudioParam
-getDetuneUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDetune (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        OscillatorNode -> IO AudioParam
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.detune Mozilla OscillatorNode.detune documentation> 
-getDetuneUnchecked :: (MonadIO m) => OscillatorNode -> m AudioParam
-getDetuneUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getDetune (self)))
+getDetune :: (MonadIO m) => OscillatorNode -> m AudioParam
+getDetune self = liftIO (js_getDetune self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode.onended Mozilla OscillatorNode.onended documentation> 
 ended :: EventName OscillatorNode Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/OverconstrainedError.hs b/src/GHCJS/DOM/JSFFI/Generated/OverconstrainedError.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/OverconstrainedError.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.OverconstrainedError
+       (js_newOverconstrainedError, newOverconstrainedError,
+        js_getMessage, getMessage, js_getConstraint, getConstraint,
+        OverconstrainedError(..), gTypeOverconstrainedError)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"OverconstrainedError\"]($1,\n$2)"
+        js_newOverconstrainedError ::
+        Optional JSString -> Optional JSString -> IO OverconstrainedError
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/OverconstrainedError Mozilla OverconstrainedError documentation> 
+newOverconstrainedError ::
+                        (MonadIO m, ToJSString constraint, ToJSString message) =>
+                          Maybe constraint -> Maybe message -> m OverconstrainedError
+newOverconstrainedError constraint message
+  = liftIO
+      (js_newOverconstrainedError (toOptionalJSString constraint)
+         (toOptionalJSString message))
+ 
+foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
+        OverconstrainedError -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/OverconstrainedError.message Mozilla OverconstrainedError.message documentation> 
+getMessage ::
+           (MonadIO m, FromJSString result) =>
+             OverconstrainedError -> m result
+getMessage self = liftIO (fromJSString <$> (js_getMessage self))
+ 
+foreign import javascript unsafe "$1[\"constraint\"]"
+        js_getConstraint :: OverconstrainedError -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/OverconstrainedError.constraint Mozilla OverconstrainedError.constraint documentation> 
+getConstraint ::
+              (MonadIO m, FromJSString result) =>
+                OverconstrainedError -> m result
+getConstraint self
+  = liftIO (fromJSString <$> (js_getConstraint self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/OverconstrainedErrorEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/OverconstrainedErrorEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/OverconstrainedErrorEvent.hs
@@ -0,0 +1,69 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.OverconstrainedErrorEvent
+       (js_newOverconstrainedErrorEvent, newOverconstrainedErrorEvent,
+        js_getError, getError, getErrorUnsafe, getErrorUnchecked,
+        OverconstrainedErrorEvent(..), gTypeOverconstrainedErrorEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"OverconstrainedErrorEvent\"]($1,\n$2)"
+        js_newOverconstrainedErrorEvent ::
+        JSString ->
+          Optional OverconstrainedErrorEventInit ->
+            IO OverconstrainedErrorEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/OverconstrainedErrorEvent Mozilla OverconstrainedErrorEvent documentation> 
+newOverconstrainedErrorEvent ::
+                             (MonadIO m, ToJSString type') =>
+                               type' ->
+                                 Maybe OverconstrainedErrorEventInit -> m OverconstrainedErrorEvent
+newOverconstrainedErrorEvent type' eventInitDict
+  = liftIO
+      (js_newOverconstrainedErrorEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe "$1[\"error\"]" js_getError ::
+        OverconstrainedErrorEvent -> IO (Nullable OverconstrainedError)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/OverconstrainedErrorEvent.error Mozilla OverconstrainedErrorEvent.error documentation> 
+getError ::
+         (MonadIO m) =>
+           OverconstrainedErrorEvent -> m (Maybe OverconstrainedError)
+getError self = liftIO (nullableToMaybe <$> (js_getError self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/OverconstrainedErrorEvent.error Mozilla OverconstrainedErrorEvent.error documentation> 
+getErrorUnsafe ::
+               (MonadIO m, HasCallStack) =>
+                 OverconstrainedErrorEvent -> m OverconstrainedError
+getErrorUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getError self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/OverconstrainedErrorEvent.error Mozilla OverconstrainedErrorEvent.error documentation> 
+getErrorUnchecked ::
+                  (MonadIO m) => OverconstrainedErrorEvent -> m OverconstrainedError
+getErrorUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getError self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/OverflowEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/OverflowEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/OverflowEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/OverflowEvent.hs
@@ -4,8 +4,9 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.OverflowEvent
-       (pattern HORIZONTAL, pattern VERTICAL, pattern BOTH, js_getOrient,
-        getOrient, js_getHorizontalOverflow, getHorizontalOverflow,
+       (js_newOverflowEvent, newOverflowEvent, pattern HORIZONTAL,
+        pattern VERTICAL, pattern BOTH, js_getOrient, getOrient,
+        js_getHorizontalOverflow, getHorizontalOverflow,
         js_getVerticalOverflow, getVerticalOverflow, OverflowEvent(..),
         gTypeOverflowEvent)
        where
@@ -13,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,10 +23,24 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"OverflowEvent\"]($1,\n$2)" js_newOverflowEvent ::
+        JSString -> Optional OverflowEventInit -> IO OverflowEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/OverflowEvent Mozilla OverflowEvent documentation> 
+newOverflowEvent ::
+                 (MonadIO m, ToJSString type') =>
+                   type' -> Maybe OverflowEventInit -> m OverflowEvent
+newOverflowEvent type' eventInitDict
+  = liftIO
+      (js_newOverflowEvent (toJSString type')
+         (maybeToOptional eventInitDict))
 pattern HORIZONTAL = 0
 pattern VERTICAL = 1
 pattern BOTH = 2
@@ -35,7 +50,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OverflowEvent.orient Mozilla OverflowEvent.orient documentation> 
 getOrient :: (MonadIO m) => OverflowEvent -> m Word
-getOrient self = liftIO (js_getOrient (self))
+getOrient self = liftIO (js_getOrient self)
  
 foreign import javascript unsafe
         "($1[\"horizontalOverflow\"] ? 1 : 0)" js_getHorizontalOverflow ::
@@ -43,8 +58,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OverflowEvent.horizontalOverflow Mozilla OverflowEvent.horizontalOverflow documentation> 
 getHorizontalOverflow :: (MonadIO m) => OverflowEvent -> m Bool
-getHorizontalOverflow self
-  = liftIO (js_getHorizontalOverflow (self))
+getHorizontalOverflow self = liftIO (js_getHorizontalOverflow self)
  
 foreign import javascript unsafe
         "($1[\"verticalOverflow\"] ? 1 : 0)" js_getVerticalOverflow ::
@@ -52,4 +66,4 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/OverflowEvent.verticalOverflow Mozilla OverflowEvent.verticalOverflow documentation> 
 getVerticalOverflow :: (MonadIO m) => OverflowEvent -> m Bool
-getVerticalOverflow self = liftIO (js_getVerticalOverflow (self))
+getVerticalOverflow self = liftIO (js_getVerticalOverflow self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PageTransitionEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/PageTransitionEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/PageTransitionEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/PageTransitionEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.PageTransitionEvent
-       (js_getPersisted, getPersisted, PageTransitionEvent(..),
+       (js_newPageTransitionEvent, newPageTransitionEvent,
+        js_getPersisted, getPersisted, PageTransitionEvent(..),
         gTypePageTransitionEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,14 +21,30 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"PageTransitionEvent\"]($1,\n$2)"
+        js_newPageTransitionEvent ::
+        JSString ->
+          Optional PageTransitionEventInit -> IO PageTransitionEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PageTransitionEvent Mozilla PageTransitionEvent documentation> 
+newPageTransitionEvent ::
+                       (MonadIO m, ToJSString type') =>
+                         type' -> Maybe PageTransitionEventInit -> m PageTransitionEvent
+newPageTransitionEvent type' eventInitDict
+  = liftIO
+      (js_newPageTransitionEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "($1[\"persisted\"] ? 1 : 0)"
         js_getPersisted :: PageTransitionEvent -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PageTransitionEvent.persisted Mozilla PageTransitionEvent.persisted documentation> 
 getPersisted :: (MonadIO m) => PageTransitionEvent -> m Bool
-getPersisted self = liftIO (js_getPersisted (self))
+getPersisted self = liftIO (js_getPersisted self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PannerNode.hs b/src/GHCJS/DOM/JSFFI/Generated/PannerNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/PannerNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/PannerNode.hs
@@ -5,27 +5,24 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.PannerNode
        (js_setPosition, setPosition, js_setOrientation, setOrientation,
-        js_setVelocity, setVelocity, pattern EQUALPOWER, pattern HRTF,
-        pattern SOUNDFIELD, pattern LINEAR_DISTANCE,
-        pattern INVERSE_DISTANCE, pattern EXPONENTIAL_DISTANCE,
-        js_setPanningModel, setPanningModel, js_getPanningModel,
-        getPanningModel, js_setDistanceModel, setDistanceModel,
-        js_getDistanceModel, getDistanceModel, js_setRefDistance,
-        setRefDistance, js_getRefDistance, getRefDistance,
-        js_setMaxDistance, setMaxDistance, js_getMaxDistance,
-        getMaxDistance, js_setRolloffFactor, setRolloffFactor,
-        js_getRolloffFactor, getRolloffFactor, js_setConeInnerAngle,
-        setConeInnerAngle, js_getConeInnerAngle, getConeInnerAngle,
-        js_setConeOuterAngle, setConeOuterAngle, js_getConeOuterAngle,
-        getConeOuterAngle, js_setConeOuterGain, setConeOuterGain,
-        js_getConeOuterGain, getConeOuterGain, PannerNode(..),
-        gTypePannerNode)
+        js_setVelocity, setVelocity, js_setPanningModel, setPanningModel,
+        js_getPanningModel, getPanningModel, js_setDistanceModel,
+        setDistanceModel, js_getDistanceModel, getDistanceModel,
+        js_setRefDistance, setRefDistance, js_getRefDistance,
+        getRefDistance, js_setMaxDistance, setMaxDistance,
+        js_getMaxDistance, getMaxDistance, js_setRolloffFactor,
+        setRolloffFactor, js_getRolloffFactor, getRolloffFactor,
+        js_setConeInnerAngle, setConeInnerAngle, js_getConeInnerAngle,
+        getConeInnerAngle, js_setConeOuterAngle, setConeOuterAngle,
+        js_getConeOuterAngle, getConeOuterAngle, js_setConeOuterGain,
+        setConeOuterGain, js_getConeOuterGain, getConeOuterGain,
+        PannerNode(..), gTypePannerNode)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -34,6 +31,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -45,7 +43,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.setPosition Mozilla webkitAudioPannerNode.setPosition documentation> 
 setPosition ::
             (MonadIO m) => PannerNode -> Float -> Float -> Float -> m ()
-setPosition self x y z = liftIO (js_setPosition (self) x y z)
+setPosition self x y z = liftIO (js_setPosition self x y z)
  
 foreign import javascript unsafe
         "$1[\"setOrientation\"]($2, $3, $4)" js_setOrientation ::
@@ -54,7 +52,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.setOrientation Mozilla webkitAudioPannerNode.setOrientation documentation> 
 setOrientation ::
                (MonadIO m) => PannerNode -> Float -> Float -> Float -> m ()
-setOrientation self x y z = liftIO (js_setOrientation (self) x y z)
+setOrientation self x y z = liftIO (js_setOrientation self x y z)
  
 foreign import javascript unsafe "$1[\"setVelocity\"]($2, $3, $4)"
         js_setVelocity :: PannerNode -> Float -> Float -> Float -> IO ()
@@ -62,132 +60,123 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.setVelocity Mozilla webkitAudioPannerNode.setVelocity documentation> 
 setVelocity ::
             (MonadIO m) => PannerNode -> Float -> Float -> Float -> m ()
-setVelocity self x y z = liftIO (js_setVelocity (self) x y z)
-pattern EQUALPOWER = 0
-pattern HRTF = 1
-pattern SOUNDFIELD = 2
-pattern LINEAR_DISTANCE = 0
-pattern INVERSE_DISTANCE = 1
-pattern EXPONENTIAL_DISTANCE = 2
+setVelocity self x y z = liftIO (js_setVelocity self x y z)
  
 foreign import javascript unsafe "$1[\"panningModel\"] = $2;"
-        js_setPanningModel :: PannerNode -> JSString -> IO ()
+        js_setPanningModel :: PannerNode -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.panningModel Mozilla webkitAudioPannerNode.panningModel documentation> 
 setPanningModel ::
-                (MonadIO m, ToJSString val) => PannerNode -> val -> m ()
+                (MonadIO m) => PannerNode -> PanningModelType -> m ()
 setPanningModel self val
-  = liftIO (js_setPanningModel (self) (toJSString val))
+  = liftIO (js_setPanningModel self (pToJSVal val))
  
 foreign import javascript unsafe "$1[\"panningModel\"]"
-        js_getPanningModel :: PannerNode -> IO JSString
+        js_getPanningModel :: PannerNode -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.panningModel Mozilla webkitAudioPannerNode.panningModel documentation> 
-getPanningModel ::
-                (MonadIO m, FromJSString result) => PannerNode -> m result
+getPanningModel :: (MonadIO m) => PannerNode -> m PanningModelType
 getPanningModel self
-  = liftIO (fromJSString <$> (js_getPanningModel (self)))
+  = liftIO ((js_getPanningModel self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "$1[\"distanceModel\"] = $2;"
-        js_setDistanceModel :: PannerNode -> JSString -> IO ()
+        js_setDistanceModel :: PannerNode -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.distanceModel Mozilla webkitAudioPannerNode.distanceModel documentation> 
 setDistanceModel ::
-                 (MonadIO m, ToJSString val) => PannerNode -> val -> m ()
+                 (MonadIO m) => PannerNode -> DistanceModelType -> m ()
 setDistanceModel self val
-  = liftIO (js_setDistanceModel (self) (toJSString val))
+  = liftIO (js_setDistanceModel self (pToJSVal val))
  
 foreign import javascript unsafe "$1[\"distanceModel\"]"
-        js_getDistanceModel :: PannerNode -> IO JSString
+        js_getDistanceModel :: PannerNode -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.distanceModel Mozilla webkitAudioPannerNode.distanceModel documentation> 
 getDistanceModel ::
-                 (MonadIO m, FromJSString result) => PannerNode -> m result
+                 (MonadIO m) => PannerNode -> m DistanceModelType
 getDistanceModel self
-  = liftIO (fromJSString <$> (js_getDistanceModel (self)))
+  = liftIO ((js_getDistanceModel self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "$1[\"refDistance\"] = $2;"
         js_setRefDistance :: PannerNode -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.refDistance Mozilla webkitAudioPannerNode.refDistance documentation> 
 setRefDistance :: (MonadIO m) => PannerNode -> Double -> m ()
-setRefDistance self val = liftIO (js_setRefDistance (self) val)
+setRefDistance self val = liftIO (js_setRefDistance self val)
  
 foreign import javascript unsafe "$1[\"refDistance\"]"
         js_getRefDistance :: PannerNode -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.refDistance Mozilla webkitAudioPannerNode.refDistance documentation> 
 getRefDistance :: (MonadIO m) => PannerNode -> m Double
-getRefDistance self = liftIO (js_getRefDistance (self))
+getRefDistance self = liftIO (js_getRefDistance self)
  
 foreign import javascript unsafe "$1[\"maxDistance\"] = $2;"
         js_setMaxDistance :: PannerNode -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.maxDistance Mozilla webkitAudioPannerNode.maxDistance documentation> 
 setMaxDistance :: (MonadIO m) => PannerNode -> Double -> m ()
-setMaxDistance self val = liftIO (js_setMaxDistance (self) val)
+setMaxDistance self val = liftIO (js_setMaxDistance self val)
  
 foreign import javascript unsafe "$1[\"maxDistance\"]"
         js_getMaxDistance :: PannerNode -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.maxDistance Mozilla webkitAudioPannerNode.maxDistance documentation> 
 getMaxDistance :: (MonadIO m) => PannerNode -> m Double
-getMaxDistance self = liftIO (js_getMaxDistance (self))
+getMaxDistance self = liftIO (js_getMaxDistance self)
  
 foreign import javascript unsafe "$1[\"rolloffFactor\"] = $2;"
         js_setRolloffFactor :: PannerNode -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.rolloffFactor Mozilla webkitAudioPannerNode.rolloffFactor documentation> 
 setRolloffFactor :: (MonadIO m) => PannerNode -> Double -> m ()
-setRolloffFactor self val = liftIO (js_setRolloffFactor (self) val)
+setRolloffFactor self val = liftIO (js_setRolloffFactor self val)
  
 foreign import javascript unsafe "$1[\"rolloffFactor\"]"
         js_getRolloffFactor :: PannerNode -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.rolloffFactor Mozilla webkitAudioPannerNode.rolloffFactor documentation> 
 getRolloffFactor :: (MonadIO m) => PannerNode -> m Double
-getRolloffFactor self = liftIO (js_getRolloffFactor (self))
+getRolloffFactor self = liftIO (js_getRolloffFactor self)
  
 foreign import javascript unsafe "$1[\"coneInnerAngle\"] = $2;"
         js_setConeInnerAngle :: PannerNode -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.coneInnerAngle Mozilla webkitAudioPannerNode.coneInnerAngle documentation> 
 setConeInnerAngle :: (MonadIO m) => PannerNode -> Double -> m ()
-setConeInnerAngle self val
-  = liftIO (js_setConeInnerAngle (self) val)
+setConeInnerAngle self val = liftIO (js_setConeInnerAngle self val)
  
 foreign import javascript unsafe "$1[\"coneInnerAngle\"]"
         js_getConeInnerAngle :: PannerNode -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.coneInnerAngle Mozilla webkitAudioPannerNode.coneInnerAngle documentation> 
 getConeInnerAngle :: (MonadIO m) => PannerNode -> m Double
-getConeInnerAngle self = liftIO (js_getConeInnerAngle (self))
+getConeInnerAngle self = liftIO (js_getConeInnerAngle self)
  
 foreign import javascript unsafe "$1[\"coneOuterAngle\"] = $2;"
         js_setConeOuterAngle :: PannerNode -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.coneOuterAngle Mozilla webkitAudioPannerNode.coneOuterAngle documentation> 
 setConeOuterAngle :: (MonadIO m) => PannerNode -> Double -> m ()
-setConeOuterAngle self val
-  = liftIO (js_setConeOuterAngle (self) val)
+setConeOuterAngle self val = liftIO (js_setConeOuterAngle self val)
  
 foreign import javascript unsafe "$1[\"coneOuterAngle\"]"
         js_getConeOuterAngle :: PannerNode -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.coneOuterAngle Mozilla webkitAudioPannerNode.coneOuterAngle documentation> 
 getConeOuterAngle :: (MonadIO m) => PannerNode -> m Double
-getConeOuterAngle self = liftIO (js_getConeOuterAngle (self))
+getConeOuterAngle self = liftIO (js_getConeOuterAngle self)
  
 foreign import javascript unsafe "$1[\"coneOuterGain\"] = $2;"
         js_setConeOuterGain :: PannerNode -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.coneOuterGain Mozilla webkitAudioPannerNode.coneOuterGain documentation> 
 setConeOuterGain :: (MonadIO m) => PannerNode -> Double -> m ()
-setConeOuterGain self val = liftIO (js_setConeOuterGain (self) val)
+setConeOuterGain self val = liftIO (js_setConeOuterGain self val)
  
 foreign import javascript unsafe "$1[\"coneOuterGain\"]"
         js_getConeOuterGain :: PannerNode -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode.coneOuterGain Mozilla webkitAudioPannerNode.coneOuterGain documentation> 
 getConeOuterGain :: (MonadIO m) => PannerNode -> m Double
-getConeOuterGain self = liftIO (js_getConeOuterGain (self))
+getConeOuterGain self = liftIO (js_getConeOuterGain self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ParentNode.hs b/src/GHCJS/DOM/JSFFI/Generated/ParentNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ParentNode.hs
@@ -0,0 +1,131 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ParentNode
+       (js_prepend, prepend, js_append, append, js_querySelector,
+        querySelector, querySelector_, js_querySelectorAll,
+        querySelectorAll, querySelectorAll_, js_getChildren, getChildren,
+        js_getFirstElementChild, getFirstElementChild,
+        js_getLastElementChild, getLastElementChild,
+        js_getChildElementCount, getChildElementCount, ParentNode(..),
+        gTypeParentNode, IsParentNode, toParentNode)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"prepend\"]($2)" js_prepend
+        :: ParentNode -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ParentNode.prepend Mozilla ParentNode.prepend documentation> 
+prepend ::
+        (MonadIO m, IsParentNode self, IsNodeOrString nodes) =>
+          self -> [nodes] -> m ()
+prepend self nodes
+  = liftIO
+      (toJSVal nodes >>=
+         \ nodes' -> js_prepend (toParentNode self) nodes')
+ 
+foreign import javascript unsafe "$1[\"append\"]($2)" js_append ::
+        ParentNode -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ParentNode.append Mozilla ParentNode.append documentation> 
+append ::
+       (MonadIO m, IsParentNode self, IsNodeOrString nodes) =>
+         self -> [nodes] -> m ()
+append self nodes
+  = liftIO
+      (toJSVal nodes >>=
+         \ nodes' -> js_append (toParentNode self) nodes')
+ 
+foreign import javascript unsafe "$1[\"querySelector\"]($2)"
+        js_querySelector :: ParentNode -> JSString -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ParentNode.querySelector Mozilla ParentNode.querySelector documentation> 
+querySelector ::
+              (MonadIO m, IsParentNode self, ToJSString selectors) =>
+                self -> selectors -> m Element
+querySelector self selectors
+  = liftIO
+      (js_querySelector (toParentNode self) (toJSString selectors))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ParentNode.querySelector Mozilla ParentNode.querySelector documentation> 
+querySelector_ ::
+               (MonadIO m, IsParentNode self, ToJSString selectors) =>
+                 self -> selectors -> m ()
+querySelector_ self selectors
+  = liftIO
+      (void
+         (js_querySelector (toParentNode self) (toJSString selectors)))
+ 
+foreign import javascript unsafe "$1[\"querySelectorAll\"]($2)"
+        js_querySelectorAll :: ParentNode -> JSString -> IO NodeList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ParentNode.querySelectorAll Mozilla ParentNode.querySelectorAll documentation> 
+querySelectorAll ::
+                 (MonadIO m, IsParentNode self, ToJSString selectors) =>
+                   self -> selectors -> m NodeList
+querySelectorAll self selectors
+  = liftIO
+      (js_querySelectorAll (toParentNode self) (toJSString selectors))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ParentNode.querySelectorAll Mozilla ParentNode.querySelectorAll documentation> 
+querySelectorAll_ ::
+                  (MonadIO m, IsParentNode self, ToJSString selectors) =>
+                    self -> selectors -> m ()
+querySelectorAll_ self selectors
+  = liftIO
+      (void
+         (js_querySelectorAll (toParentNode self) (toJSString selectors)))
+ 
+foreign import javascript unsafe "$1[\"children\"]" js_getChildren
+        :: ParentNode -> IO HTMLCollection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ParentNode.children Mozilla ParentNode.children documentation> 
+getChildren ::
+            (MonadIO m, IsParentNode self) => self -> m HTMLCollection
+getChildren self = liftIO (js_getChildren (toParentNode self))
+ 
+foreign import javascript unsafe "$1[\"firstElementChild\"]"
+        js_getFirstElementChild :: ParentNode -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ParentNode.firstElementChild Mozilla ParentNode.firstElementChild documentation> 
+getFirstElementChild ::
+                     (MonadIO m, IsParentNode self) => self -> m Element
+getFirstElementChild self
+  = liftIO (js_getFirstElementChild (toParentNode self))
+ 
+foreign import javascript unsafe "$1[\"lastElementChild\"]"
+        js_getLastElementChild :: ParentNode -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ParentNode.lastElementChild Mozilla ParentNode.lastElementChild documentation> 
+getLastElementChild ::
+                    (MonadIO m, IsParentNode self) => self -> m Element
+getLastElementChild self
+  = liftIO (js_getLastElementChild (toParentNode self))
+ 
+foreign import javascript unsafe "$1[\"childElementCount\"]"
+        js_getChildElementCount :: ParentNode -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ParentNode.childElementCount Mozilla ParentNode.childElementCount documentation> 
+getChildElementCount ::
+                     (MonadIO m, IsParentNode self) => self -> m Word
+getChildElementCount self
+  = liftIO (js_getChildElementCount (toParentNode self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Path2D.hs b/src/GHCJS/DOM/JSFFI/Generated/Path2D.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Path2D.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Path2D.hs
@@ -5,17 +5,15 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Path2D
        (js_newPath2D, newPath2D, js_newPath2D', newPath2D',
-        js_newPath2D'', newPath2D'', js_addPath, addPath, js_closePath,
-        closePath, js_moveTo, moveTo, js_lineTo, lineTo,
-        js_quadraticCurveTo, quadraticCurveTo, js_bezierCurveTo,
-        bezierCurveTo, js_arcTo, arcTo, js_rect, rect, js_arc, arc,
-        Path2D(..), gTypePath2D)
+        js_newPath2D'', newPath2D'', js_addPath, addPath,
+        js_addPathWithTransform, addPathWithTransform, Path2D(..),
+        gTypePath2D)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -37,11 +36,11 @@
 newPath2D = liftIO (js_newPath2D)
  
 foreign import javascript unsafe "new window[\"Path2D\"]($1)"
-        js_newPath2D' :: Nullable Path2D -> IO Path2D
+        js_newPath2D' :: Path2D -> IO Path2D
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Path2D Mozilla Path2D documentation> 
-newPath2D' :: (MonadIO m) => Maybe Path2D -> m Path2D
-newPath2D' path = liftIO (js_newPath2D' (maybeToNullable path))
+newPath2D' :: (MonadIO m) => Path2D -> m Path2D
+newPath2D' path = liftIO (js_newPath2D' path)
  
 foreign import javascript unsafe "new window[\"Path2D\"]($1)"
         js_newPath2D'' :: JSString -> IO Path2D
@@ -50,92 +49,20 @@
 newPath2D'' :: (MonadIO m, ToJSString text) => text -> m Path2D
 newPath2D'' text = liftIO (js_newPath2D'' (toJSString text))
  
-foreign import javascript unsafe "$1[\"addPath\"]($2, $3)"
-        js_addPath ::
-        Path2D -> Nullable Path2D -> Nullable SVGMatrix -> IO ()
+foreign import javascript unsafe "$1[\"addPath\"]($2)" js_addPath
+        :: Path2D -> Optional Path2D -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Path2D.addPath Mozilla Path2D.addPath documentation> 
-addPath ::
-        (MonadIO m) => Path2D -> Maybe Path2D -> Maybe SVGMatrix -> m ()
-addPath self path transform
-  = liftIO
-      (js_addPath (self) (maybeToNullable path)
-         (maybeToNullable transform))
- 
-foreign import javascript unsafe "$1[\"closePath\"]()" js_closePath
-        :: Path2D -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Path2D.closePath Mozilla Path2D.closePath documentation> 
-closePath :: (MonadIO m) => Path2D -> m ()
-closePath self = liftIO (js_closePath (self))
- 
-foreign import javascript unsafe "$1[\"moveTo\"]($2, $3)" js_moveTo
-        :: Path2D -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Path2D.moveTo Mozilla Path2D.moveTo documentation> 
-moveTo :: (MonadIO m) => Path2D -> Float -> Float -> m ()
-moveTo self x y = liftIO (js_moveTo (self) x y)
- 
-foreign import javascript unsafe "$1[\"lineTo\"]($2, $3)" js_lineTo
-        :: Path2D -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Path2D.lineTo Mozilla Path2D.lineTo documentation> 
-lineTo :: (MonadIO m) => Path2D -> Float -> Float -> m ()
-lineTo self x y = liftIO (js_lineTo (self) x y)
- 
-foreign import javascript unsafe
-        "$1[\"quadraticCurveTo\"]($2, $3,\n$4, $5)" js_quadraticCurveTo ::
-        Path2D -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Path2D.quadraticCurveTo Mozilla Path2D.quadraticCurveTo documentation> 
-quadraticCurveTo ::
-                 (MonadIO m) => Path2D -> Float -> Float -> Float -> Float -> m ()
-quadraticCurveTo self cpx cpy x y
-  = liftIO (js_quadraticCurveTo (self) cpx cpy x y)
- 
-foreign import javascript unsafe
-        "$1[\"bezierCurveTo\"]($2, $3, $4,\n$5, $6, $7)" js_bezierCurveTo
-        ::
-        Path2D ->
-          Float -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Path2D.bezierCurveTo Mozilla Path2D.bezierCurveTo documentation> 
-bezierCurveTo ::
-              (MonadIO m) =>
-                Path2D ->
-                  Float -> Float -> Float -> Float -> Float -> Float -> m ()
-bezierCurveTo self cp1x cp1y cp2x cp2y x y
-  = liftIO (js_bezierCurveTo (self) cp1x cp1y cp2x cp2y x y)
- 
-foreign import javascript unsafe
-        "$1[\"arcTo\"]($2, $3, $4, $5, $6)" js_arcTo ::
-        Path2D -> Float -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Path2D.arcTo Mozilla Path2D.arcTo documentation> 
-arcTo ::
-      (MonadIO m) =>
-        Path2D -> Float -> Float -> Float -> Float -> Float -> m ()
-arcTo self x1 y1 x2 y2 radius
-  = liftIO (js_arcTo (self) x1 y1 x2 y2 radius)
- 
-foreign import javascript unsafe "$1[\"rect\"]($2, $3, $4, $5)"
-        js_rect :: Path2D -> Float -> Float -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Path2D.rect Mozilla Path2D.rect documentation> 
-rect ::
-     (MonadIO m) => Path2D -> Float -> Float -> Float -> Float -> m ()
-rect self x y width height
-  = liftIO (js_rect (self) x y width height)
+addPath :: (MonadIO m) => Path2D -> Maybe Path2D -> m ()
+addPath self path = liftIO (js_addPath self (maybeToOptional path))
  
-foreign import javascript unsafe
-        "$1[\"arc\"]($2, $3, $4, $5, $6,\n$7)" js_arc ::
-        Path2D ->
-          Float -> Float -> Float -> Float -> Float -> Bool -> IO ()
+foreign import javascript unsafe "$1[\"addPath\"]($2, $3)"
+        js_addPathWithTransform ::
+        Path2D -> Optional Path2D -> SVGMatrix -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Path2D.arc Mozilla Path2D.arc documentation> 
-arc ::
-    (MonadIO m) =>
-      Path2D -> Float -> Float -> Float -> Float -> Float -> Bool -> m ()
-arc self x y radius startAngle endAngle anticlockwise
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Path2D.addPath Mozilla Path2D.addPath documentation> 
+addPathWithTransform ::
+                     (MonadIO m) => Path2D -> Maybe Path2D -> SVGMatrix -> m ()
+addPathWithTransform self path transform
   = liftIO
-      (js_arc (self) x y radius startAngle endAngle anticlockwise)
+      (js_addPathWithTransform self (maybeToOptional path) transform)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Performance.hs b/src/GHCJS/DOM/JSFFI/Generated/Performance.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Performance.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Performance.hs
@@ -4,28 +4,21 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Performance
-       (js_webkitGetEntries, webkitGetEntries, webkitGetEntries_,
-        webkitGetEntriesUnsafe, webkitGetEntriesUnchecked,
-        js_webkitGetEntriesByType, webkitGetEntriesByType,
-        webkitGetEntriesByType_, webkitGetEntriesByTypeUnsafe,
-        webkitGetEntriesByTypeUnchecked, js_webkitGetEntriesByName,
-        webkitGetEntriesByName, webkitGetEntriesByName_,
-        webkitGetEntriesByNameUnsafe, webkitGetEntriesByNameUnchecked,
-        js_webkitClearResourceTimings, webkitClearResourceTimings,
-        js_webkitSetResourceTimingBufferSize,
-        webkitSetResourceTimingBufferSize, js_webkitMark, webkitMark,
-        js_webkitClearMarks, webkitClearMarks, js_webkitMeasure,
-        webkitMeasure, js_webkitClearMeasures, webkitClearMeasures, js_now,
-        now, now_, js_getNavigation, getNavigation, getNavigationUnsafe,
-        getNavigationUnchecked, js_getTiming, getTiming, getTimingUnsafe,
-        getTimingUnchecked, webKitResourceTimingBufferFull,
-        Performance(..), gTypePerformance)
+       (js_now, now, now_, js_getEntries, getEntries, getEntries_,
+        js_getEntriesByType, getEntriesByType, getEntriesByType_,
+        js_getEntriesByName, getEntriesByName, getEntriesByName_,
+        js_clearResourceTimings, clearResourceTimings,
+        js_setResourceTimingBufferSize, setResourceTimingBufferSize,
+        js_mark, mark, js_clearMarks, clearMarks, js_measure, measure,
+        js_clearMeasures, clearMeasures, js_getNavigation, getNavigation,
+        js_getTiming, getTiming, resourceTimingBufferFull, Performance(..),
+        gTypePerformance)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -34,248 +27,157 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"webkitGetEntries\"]()"
-        js_webkitGetEntries ::
-        Performance -> IO (Nullable PerformanceEntryList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntries Mozilla Performance.webkitGetEntries documentation> 
-webkitGetEntries ::
-                 (MonadIO m) => Performance -> m (Maybe PerformanceEntryList)
-webkitGetEntries self
-  = liftIO (nullableToMaybe <$> (js_webkitGetEntries (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntries Mozilla Performance.webkitGetEntries documentation> 
-webkitGetEntries_ :: (MonadIO m) => Performance -> m ()
-webkitGetEntries_ self = liftIO (void (js_webkitGetEntries (self)))
+foreign import javascript unsafe "$1[\"now\"]()" js_now ::
+        Performance -> IO DOMHighResTimeStamp
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntries Mozilla Performance.webkitGetEntries documentation> 
-webkitGetEntriesUnsafe ::
-                       (MonadIO m, HasCallStack) => Performance -> m PerformanceEntryList
-webkitGetEntriesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_webkitGetEntries (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.now Mozilla Performance.now documentation> 
+now :: (MonadIO m) => Performance -> m DOMHighResTimeStamp
+now self = liftIO (js_now self)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntries Mozilla Performance.webkitGetEntries documentation> 
-webkitGetEntriesUnchecked ::
-                          (MonadIO m) => Performance -> m PerformanceEntryList
-webkitGetEntriesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_webkitGetEntries (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.now Mozilla Performance.now documentation> 
+now_ :: (MonadIO m) => Performance -> m ()
+now_ self = liftIO (void (js_now self))
  
-foreign import javascript unsafe
-        "$1[\"webkitGetEntriesByType\"]($2)" js_webkitGetEntriesByType ::
-        Performance -> JSString -> IO (Nullable PerformanceEntryList)
+foreign import javascript unsafe "$1[\"getEntries\"]()"
+        js_getEntries :: Performance -> IO JSVal
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntriesByType Mozilla Performance.webkitGetEntriesByType documentation> 
-webkitGetEntriesByType ::
-                       (MonadIO m, ToJSString entryType) =>
-                         Performance -> entryType -> m (Maybe PerformanceEntryList)
-webkitGetEntriesByType self entryType
-  = liftIO
-      (nullableToMaybe <$>
-         (js_webkitGetEntriesByType (self) (toJSString entryType)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.getEntries Mozilla Performance.getEntries documentation> 
+getEntries :: (MonadIO m) => Performance -> m PerformanceEntryList
+getEntries self
+  = liftIO ((js_getEntries self) >>= fromJSValUnchecked)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntriesByType Mozilla Performance.webkitGetEntriesByType documentation> 
-webkitGetEntriesByType_ ::
-                        (MonadIO m, ToJSString entryType) =>
-                          Performance -> entryType -> m ()
-webkitGetEntriesByType_ self entryType
-  = liftIO
-      (void (js_webkitGetEntriesByType (self) (toJSString entryType)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.getEntries Mozilla Performance.getEntries documentation> 
+getEntries_ :: (MonadIO m) => Performance -> m ()
+getEntries_ self = liftIO (void (js_getEntries self))
+ 
+foreign import javascript unsafe "$1[\"getEntriesByType\"]($2)"
+        js_getEntriesByType :: Performance -> JSString -> IO JSVal
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntriesByType Mozilla Performance.webkitGetEntriesByType documentation> 
-webkitGetEntriesByTypeUnsafe ::
-                             (MonadIO m, ToJSString entryType, HasCallStack) =>
-                               Performance -> entryType -> m PerformanceEntryList
-webkitGetEntriesByTypeUnsafe self entryType
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.getEntriesByType Mozilla Performance.getEntriesByType documentation> 
+getEntriesByType ::
+                 (MonadIO m, ToJSString entryType) =>
+                   Performance -> entryType -> m PerformanceEntryList
+getEntriesByType self entryType
   = liftIO
-      ((nullableToMaybe <$>
-          (js_webkitGetEntriesByType (self) (toJSString entryType)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+      ((js_getEntriesByType self (toJSString entryType)) >>=
+         fromJSValUnchecked)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntriesByType Mozilla Performance.webkitGetEntriesByType documentation> 
-webkitGetEntriesByTypeUnchecked ::
-                                (MonadIO m, ToJSString entryType) =>
-                                  Performance -> entryType -> m PerformanceEntryList
-webkitGetEntriesByTypeUnchecked self entryType
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_webkitGetEntriesByType (self) (toJSString entryType)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.getEntriesByType Mozilla Performance.getEntriesByType documentation> 
+getEntriesByType_ ::
+                  (MonadIO m, ToJSString entryType) =>
+                    Performance -> entryType -> m ()
+getEntriesByType_ self entryType
+  = liftIO (void (js_getEntriesByType self (toJSString entryType)))
  
-foreign import javascript unsafe
-        "$1[\"webkitGetEntriesByName\"]($2,\n$3)" js_webkitGetEntriesByName
-        ::
-        Performance ->
-          JSString -> JSString -> IO (Nullable PerformanceEntryList)
+foreign import javascript unsafe "$1[\"getEntriesByName\"]($2, $3)"
+        js_getEntriesByName ::
+        Performance -> JSString -> Optional JSString -> IO JSVal
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntriesByName Mozilla Performance.webkitGetEntriesByName documentation> 
-webkitGetEntriesByName ::
-                       (MonadIO m, ToJSString name, ToJSString entryType) =>
-                         Performance -> name -> entryType -> m (Maybe PerformanceEntryList)
-webkitGetEntriesByName self name entryType
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.getEntriesByName Mozilla Performance.getEntriesByName documentation> 
+getEntriesByName ::
+                 (MonadIO m, ToJSString name, ToJSString entryType) =>
+                   Performance -> name -> Maybe entryType -> m PerformanceEntryList
+getEntriesByName self name entryType
   = liftIO
-      (nullableToMaybe <$>
-         (js_webkitGetEntriesByName (self) (toJSString name)
-            (toJSString entryType)))
+      ((js_getEntriesByName self (toJSString name)
+          (toOptionalJSString entryType))
+         >>= fromJSValUnchecked)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntriesByName Mozilla Performance.webkitGetEntriesByName documentation> 
-webkitGetEntriesByName_ ::
-                        (MonadIO m, ToJSString name, ToJSString entryType) =>
-                          Performance -> name -> entryType -> m ()
-webkitGetEntriesByName_ self name entryType
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.getEntriesByName Mozilla Performance.getEntriesByName documentation> 
+getEntriesByName_ ::
+                  (MonadIO m, ToJSString name, ToJSString entryType) =>
+                    Performance -> name -> Maybe entryType -> m ()
+getEntriesByName_ self name entryType
   = liftIO
       (void
-         (js_webkitGetEntriesByName (self) (toJSString name)
-            (toJSString entryType)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntriesByName Mozilla Performance.webkitGetEntriesByName documentation> 
-webkitGetEntriesByNameUnsafe ::
-                             (MonadIO m, ToJSString name, ToJSString entryType, HasCallStack) =>
-                               Performance -> name -> entryType -> m PerformanceEntryList
-webkitGetEntriesByNameUnsafe self name entryType
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_webkitGetEntriesByName (self) (toJSString name)
-             (toJSString entryType)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitGetEntriesByName Mozilla Performance.webkitGetEntriesByName documentation> 
-webkitGetEntriesByNameUnchecked ::
-                                (MonadIO m, ToJSString name, ToJSString entryType) =>
-                                  Performance -> name -> entryType -> m PerformanceEntryList
-webkitGetEntriesByNameUnchecked self name entryType
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_webkitGetEntriesByName (self) (toJSString name)
-            (toJSString entryType)))
+         (js_getEntriesByName self (toJSString name)
+            (toOptionalJSString entryType)))
  
-foreign import javascript unsafe
-        "$1[\"webkitClearResourceTimings\"]()"
-        js_webkitClearResourceTimings :: Performance -> IO ()
+foreign import javascript unsafe "$1[\"clearResourceTimings\"]()"
+        js_clearResourceTimings :: Performance -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitClearResourceTimings Mozilla Performance.webkitClearResourceTimings documentation> 
-webkitClearResourceTimings :: (MonadIO m) => Performance -> m ()
-webkitClearResourceTimings self
-  = liftIO (js_webkitClearResourceTimings (self))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.clearResourceTimings Mozilla Performance.clearResourceTimings documentation> 
+clearResourceTimings :: (MonadIO m) => Performance -> m ()
+clearResourceTimings self = liftIO (js_clearResourceTimings self)
  
 foreign import javascript unsafe
-        "$1[\"webkitSetResourceTimingBufferSize\"]($2)"
-        js_webkitSetResourceTimingBufferSize ::
-        Performance -> Word -> IO ()
+        "$1[\"setResourceTimingBufferSize\"]($2)"
+        js_setResourceTimingBufferSize :: Performance -> Word -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitSetResourceTimingBufferSize Mozilla Performance.webkitSetResourceTimingBufferSize documentation> 
-webkitSetResourceTimingBufferSize ::
-                                  (MonadIO m) => Performance -> Word -> m ()
-webkitSetResourceTimingBufferSize self maxSize
-  = liftIO (js_webkitSetResourceTimingBufferSize (self) maxSize)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.setResourceTimingBufferSize Mozilla Performance.setResourceTimingBufferSize documentation> 
+setResourceTimingBufferSize ::
+                            (MonadIO m) => Performance -> Word -> m ()
+setResourceTimingBufferSize self maxSize
+  = liftIO (js_setResourceTimingBufferSize self maxSize)
  
-foreign import javascript unsafe "$1[\"webkitMark\"]($2)"
-        js_webkitMark :: Performance -> JSString -> IO ()
+foreign import javascript unsafe "$1[\"mark\"]($2)" js_mark ::
+        Performance -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitMark Mozilla Performance.webkitMark documentation> 
-webkitMark ::
-           (MonadIO m, ToJSString markName) => Performance -> markName -> m ()
-webkitMark self markName
-  = liftIO (js_webkitMark (self) (toJSString markName))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.mark Mozilla Performance.mark documentation> 
+mark ::
+     (MonadIO m, ToJSString markName) => Performance -> markName -> m ()
+mark self markName = liftIO (js_mark self (toJSString markName))
  
-foreign import javascript unsafe "$1[\"webkitClearMarks\"]($2)"
-        js_webkitClearMarks :: Performance -> JSString -> IO ()
+foreign import javascript unsafe "$1[\"clearMarks\"]($2)"
+        js_clearMarks :: Performance -> Optional JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitClearMarks Mozilla Performance.webkitClearMarks documentation> 
-webkitClearMarks ::
-                 (MonadIO m, ToJSString markName) => Performance -> markName -> m ()
-webkitClearMarks self markName
-  = liftIO (js_webkitClearMarks (self) (toJSString markName))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.clearMarks Mozilla Performance.clearMarks documentation> 
+clearMarks ::
+           (MonadIO m, ToJSString markName) =>
+             Performance -> Maybe markName -> m ()
+clearMarks self markName
+  = liftIO (js_clearMarks self (toOptionalJSString markName))
  
-foreign import javascript unsafe
-        "$1[\"webkitMeasure\"]($2, $3, $4)" js_webkitMeasure ::
-        Performance -> JSString -> JSString -> JSString -> IO ()
+foreign import javascript unsafe "$1[\"measure\"]($2, $3, $4)"
+        js_measure ::
+        Performance ->
+          JSString -> Optional JSString -> Optional JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitMeasure Mozilla Performance.webkitMeasure documentation> 
-webkitMeasure ::
-              (MonadIO m, ToJSString measureName, ToJSString startMark,
-               ToJSString endMark) =>
-                Performance -> measureName -> startMark -> endMark -> m ()
-webkitMeasure self measureName startMark endMark
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.measure Mozilla Performance.measure documentation> 
+measure ::
+        (MonadIO m, ToJSString measureName, ToJSString startMark,
+         ToJSString endMark) =>
+          Performance ->
+            measureName -> Maybe startMark -> Maybe endMark -> m ()
+measure self measureName startMark endMark
   = liftIO
-      (js_webkitMeasure (self) (toJSString measureName)
-         (toJSString startMark)
-         (toJSString endMark))
- 
-foreign import javascript unsafe "$1[\"webkitClearMeasures\"]($2)"
-        js_webkitClearMeasures :: Performance -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.webkitClearMeasures Mozilla Performance.webkitClearMeasures documentation> 
-webkitClearMeasures ::
-                    (MonadIO m, ToJSString measureName) =>
-                      Performance -> measureName -> m ()
-webkitClearMeasures self measureName
-  = liftIO (js_webkitClearMeasures (self) (toJSString measureName))
+      (js_measure self (toJSString measureName)
+         (toOptionalJSString startMark)
+         (toOptionalJSString endMark))
  
-foreign import javascript unsafe "$1[\"now\"]()" js_now ::
-        Performance -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.now Mozilla Performance.now documentation> 
-now :: (MonadIO m) => Performance -> m Double
-now self = liftIO (js_now (self))
+foreign import javascript unsafe "$1[\"clearMeasures\"]($2)"
+        js_clearMeasures :: Performance -> Optional JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.now Mozilla Performance.now documentation> 
-now_ :: (MonadIO m) => Performance -> m ()
-now_ self = liftIO (void (js_now (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.clearMeasures Mozilla Performance.clearMeasures documentation> 
+clearMeasures ::
+              (MonadIO m, ToJSString measureName) =>
+                Performance -> Maybe measureName -> m ()
+clearMeasures self measureName
+  = liftIO (js_clearMeasures self (toOptionalJSString measureName))
  
 foreign import javascript unsafe "$1[\"navigation\"]"
-        js_getNavigation ::
-        Performance -> IO (Nullable PerformanceNavigation)
+        js_getNavigation :: Performance -> IO PerformanceNavigation
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.navigation Mozilla Performance.navigation documentation> 
 getNavigation ::
-              (MonadIO m) => Performance -> m (Maybe PerformanceNavigation)
-getNavigation self
-  = liftIO (nullableToMaybe <$> (js_getNavigation (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.navigation Mozilla Performance.navigation documentation> 
-getNavigationUnsafe ::
-                    (MonadIO m, HasCallStack) => Performance -> m PerformanceNavigation
-getNavigationUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getNavigation (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.navigation Mozilla Performance.navigation documentation> 
-getNavigationUnchecked ::
-                       (MonadIO m) => Performance -> m PerformanceNavigation
-getNavigationUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getNavigation (self)))
+              (MonadIO m) => Performance -> m PerformanceNavigation
+getNavigation self = liftIO (js_getNavigation self)
  
 foreign import javascript unsafe "$1[\"timing\"]" js_getTiming ::
-        Performance -> IO (Nullable PerformanceTiming)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.timing Mozilla Performance.timing documentation> 
-getTiming ::
-          (MonadIO m) => Performance -> m (Maybe PerformanceTiming)
-getTiming self = liftIO (nullableToMaybe <$> (js_getTiming (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.timing Mozilla Performance.timing documentation> 
-getTimingUnsafe ::
-                (MonadIO m, HasCallStack) => Performance -> m PerformanceTiming
-getTimingUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTiming (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        Performance -> IO PerformanceTiming
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.timing Mozilla Performance.timing documentation> 
-getTimingUnchecked ::
-                   (MonadIO m) => Performance -> m PerformanceTiming
-getTimingUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTiming (self)))
+getTiming :: (MonadIO m) => Performance -> m PerformanceTiming
+getTiming self = liftIO (js_getTiming self)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.onwebkitresourcetimingbufferfull Mozilla Performance.onwebkitresourcetimingbufferfull documentation> 
-webKitResourceTimingBufferFull :: EventName Performance Event
-webKitResourceTimingBufferFull
-  = unsafeEventName (toJSString "webkitresourcetimingbufferfull")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Performance.onresourcetimingbufferfull Mozilla Performance.onresourcetimingbufferfull documentation> 
+resourceTimingBufferFull ::
+                           EventName Performance onresourcetimingbufferfull
+resourceTimingBufferFull
+  = unsafeEventName (toJSString "resourcetimingbufferfull")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PerformanceEntry.hs b/src/GHCJS/DOM/JSFFI/Generated/PerformanceEntry.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/PerformanceEntry.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/PerformanceEntry.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -49,19 +50,21 @@
       (fromJSString <$> (js_getEntryType (toPerformanceEntry self)))
  
 foreign import javascript unsafe "$1[\"startTime\"]"
-        js_getStartTime :: PerformanceEntry -> IO Double
+        js_getStartTime :: PerformanceEntry -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry.startTime Mozilla PerformanceEntry.startTime documentation> 
 getStartTime ::
-             (MonadIO m, IsPerformanceEntry self) => self -> m Double
+             (MonadIO m, IsPerformanceEntry self) =>
+               self -> m DOMHighResTimeStamp
 getStartTime self
   = liftIO (js_getStartTime (toPerformanceEntry self))
  
 foreign import javascript unsafe "$1[\"duration\"]" js_getDuration
-        :: PerformanceEntry -> IO Double
+        :: PerformanceEntry -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry.duration Mozilla PerformanceEntry.duration documentation> 
 getDuration ::
-            (MonadIO m, IsPerformanceEntry self) => self -> m Double
+            (MonadIO m, IsPerformanceEntry self) =>
+              self -> m DOMHighResTimeStamp
 getDuration self
   = liftIO (js_getDuration (toPerformanceEntry self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PerformanceEntryList.hs b/src/GHCJS/DOM/JSFFI/Generated/PerformanceEntryList.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/PerformanceEntryList.hs
+++ /dev/null
@@ -1,62 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.PerformanceEntryList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getLength,
-        getLength, PerformanceEntryList(..), gTypePerformanceEntryList)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        PerformanceEntryList -> Word -> IO (Nullable PerformanceEntry)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntryList.item Mozilla PerformanceEntryList.item documentation> 
-item ::
-     (MonadIO m) =>
-       PerformanceEntryList -> Word -> m (Maybe PerformanceEntry)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntryList.item Mozilla PerformanceEntryList.item documentation> 
-item_ :: (MonadIO m) => PerformanceEntryList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntryList.item Mozilla PerformanceEntryList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             PerformanceEntryList -> Word -> m PerformanceEntry
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntryList.item Mozilla PerformanceEntryList.item documentation> 
-itemUnchecked ::
-              (MonadIO m) => PerformanceEntryList -> Word -> m PerformanceEntry
-itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
- 
-foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
-        PerformanceEntryList -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntryList.length Mozilla PerformanceEntryList.length documentation> 
-getLength :: (MonadIO m) => PerformanceEntryList -> m Word
-getLength self = liftIO (js_getLength (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PerformanceNavigation.hs b/src/GHCJS/DOM/JSFFI/Generated/PerformanceNavigation.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/PerformanceNavigation.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/PerformanceNavigation.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -36,11 +37,11 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigation.type Mozilla PerformanceNavigation.type documentation> 
 getType :: (MonadIO m) => PerformanceNavigation -> m Word
-getType self = liftIO (js_getType (self))
+getType self = liftIO (js_getType self)
  
 foreign import javascript unsafe "$1[\"redirectCount\"]"
         js_getRedirectCount :: PerformanceNavigation -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigation.redirectCount Mozilla PerformanceNavigation.redirectCount documentation> 
 getRedirectCount :: (MonadIO m) => PerformanceNavigation -> m Word
-getRedirectCount self = liftIO (js_getRedirectCount (self))
+getRedirectCount self = liftIO (js_getRedirectCount self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PerformanceObserver.hs b/src/GHCJS/DOM/JSFFI/Generated/PerformanceObserver.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/PerformanceObserver.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.PerformanceObserver
+       (js_newPerformanceObserver, newPerformanceObserver, js_observe,
+        observe, js_disconnect, disconnect, PerformanceObserver(..),
+        gTypePerformanceObserver)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"PerformanceObserver\"]($1)" js_newPerformanceObserver
+        :: PerformanceObserverCallback -> IO PerformanceObserver
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver Mozilla PerformanceObserver documentation> 
+newPerformanceObserver ::
+                       (MonadIO m) => PerformanceObserverCallback -> m PerformanceObserver
+newPerformanceObserver callback
+  = liftIO (js_newPerformanceObserver callback)
+ 
+foreign import javascript unsafe "$1[\"observe\"]($2)" js_observe
+        :: PerformanceObserver -> PerformanceObserverInit -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver.observe Mozilla PerformanceObserver.observe documentation> 
+observe ::
+        (MonadIO m) =>
+          PerformanceObserver -> PerformanceObserverInit -> m ()
+observe self options = liftIO (js_observe self options)
+ 
+foreign import javascript unsafe "$1[\"disconnect\"]()"
+        js_disconnect :: PerformanceObserver -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver.disconnect Mozilla PerformanceObserver.disconnect documentation> 
+disconnect :: (MonadIO m) => PerformanceObserver -> m ()
+disconnect self = liftIO (js_disconnect self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PerformanceObserverCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/PerformanceObserverCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/PerformanceObserverCallback.hs
@@ -0,0 +1,73 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.PerformanceObserverCallback
+       (newPerformanceObserverCallback,
+        newPerformanceObserverCallbackSync,
+        newPerformanceObserverCallbackAsync, PerformanceObserverCallback)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverCallback Mozilla PerformanceObserverCallback documentation> 
+newPerformanceObserverCallback ::
+                               (MonadIO m) =>
+                                 (PerformanceObserverEntryList -> PerformanceObserver -> IO ()) ->
+                                   m PerformanceObserverCallback
+newPerformanceObserverCallback callback
+  = liftIO
+      (PerformanceObserverCallback <$>
+         syncCallback2 ThrowWouldBlock
+           (\ entries observer ->
+              fromJSValUnchecked observer >>=
+                \ observer' ->
+                  fromJSValUnchecked entries >>= \ entries' -> callback entries'
+                    observer'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverCallback Mozilla PerformanceObserverCallback documentation> 
+newPerformanceObserverCallbackSync ::
+                                   (MonadIO m) =>
+                                     (PerformanceObserverEntryList -> PerformanceObserver -> IO ())
+                                       -> m PerformanceObserverCallback
+newPerformanceObserverCallbackSync callback
+  = liftIO
+      (PerformanceObserverCallback <$>
+         syncCallback2 ContinueAsync
+           (\ entries observer ->
+              fromJSValUnchecked observer >>=
+                \ observer' ->
+                  fromJSValUnchecked entries >>= \ entries' -> callback entries'
+                    observer'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverCallback Mozilla PerformanceObserverCallback documentation> 
+newPerformanceObserverCallbackAsync ::
+                                    (MonadIO m) =>
+                                      (PerformanceObserverEntryList -> PerformanceObserver -> IO ())
+                                        -> m PerformanceObserverCallback
+newPerformanceObserverCallbackAsync callback
+  = liftIO
+      (PerformanceObserverCallback <$>
+         asyncCallback2
+           (\ entries observer ->
+              fromJSValUnchecked observer >>=
+                \ observer' ->
+                  fromJSValUnchecked entries >>= \ entries' -> callback entries'
+                    observer'))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PerformanceObserverEntryList.hs b/src/GHCJS/DOM/JSFFI/Generated/PerformanceObserverEntryList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/PerformanceObserverEntryList.hs
@@ -0,0 +1,90 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.PerformanceObserverEntryList
+       (js_getEntries, getEntries, getEntries_, js_getEntriesByType,
+        getEntriesByType, getEntriesByType_, js_getEntriesByName,
+        getEntriesByName, getEntriesByName_,
+        PerformanceObserverEntryList(..),
+        gTypePerformanceObserverEntryList)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"getEntries\"]()"
+        js_getEntries :: PerformanceObserverEntryList -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverEntryList.getEntries Mozilla PerformanceObserverEntryList.getEntries documentation> 
+getEntries ::
+           (MonadIO m) =>
+             PerformanceObserverEntryList -> m PerformanceEntryList
+getEntries self
+  = liftIO ((js_getEntries self) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverEntryList.getEntries Mozilla PerformanceObserverEntryList.getEntries documentation> 
+getEntries_ :: (MonadIO m) => PerformanceObserverEntryList -> m ()
+getEntries_ self = liftIO (void (js_getEntries self))
+ 
+foreign import javascript unsafe "$1[\"getEntriesByType\"]($2)"
+        js_getEntriesByType ::
+        PerformanceObserverEntryList -> JSString -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverEntryList.getEntriesByType Mozilla PerformanceObserverEntryList.getEntriesByType documentation> 
+getEntriesByType ::
+                 (MonadIO m, ToJSString type') =>
+                   PerformanceObserverEntryList -> type' -> m PerformanceEntryList
+getEntriesByType self type'
+  = liftIO
+      ((js_getEntriesByType self (toJSString type')) >>=
+         fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverEntryList.getEntriesByType Mozilla PerformanceObserverEntryList.getEntriesByType documentation> 
+getEntriesByType_ ::
+                  (MonadIO m, ToJSString type') =>
+                    PerformanceObserverEntryList -> type' -> m ()
+getEntriesByType_ self type'
+  = liftIO (void (js_getEntriesByType self (toJSString type')))
+ 
+foreign import javascript unsafe "$1[\"getEntriesByName\"]($2, $3)"
+        js_getEntriesByName ::
+        PerformanceObserverEntryList ->
+          JSString -> Optional JSString -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverEntryList.getEntriesByName Mozilla PerformanceObserverEntryList.getEntriesByName documentation> 
+getEntriesByName ::
+                 (MonadIO m, ToJSString name, ToJSString type') =>
+                   PerformanceObserverEntryList ->
+                     name -> Maybe type' -> m PerformanceEntryList
+getEntriesByName self name type'
+  = liftIO
+      ((js_getEntriesByName self (toJSString name)
+          (toOptionalJSString type'))
+         >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverEntryList.getEntriesByName Mozilla PerformanceObserverEntryList.getEntriesByName documentation> 
+getEntriesByName_ ::
+                  (MonadIO m, ToJSString name, ToJSString type') =>
+                    PerformanceObserverEntryList -> name -> Maybe type' -> m ()
+getEntriesByName_ self name type'
+  = liftIO
+      (void
+         (js_getEntriesByName self (toJSString name)
+            (toOptionalJSString type')))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PerformanceResourceTiming.hs b/src/GHCJS/DOM/JSFFI/Generated/PerformanceResourceTiming.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/PerformanceResourceTiming.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/PerformanceResourceTiming.hs
@@ -4,21 +4,22 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.PerformanceResourceTiming
-       (js_getInitiatorType, getInitiatorType, js_getRedirectStart,
-        getRedirectStart, js_getRedirectEnd, getRedirectEnd,
-        js_getFetchStart, getFetchStart, js_getDomainLookupStart,
-        getDomainLookupStart, js_getDomainLookupEnd, getDomainLookupEnd,
-        js_getConnectStart, getConnectStart, js_getConnectEnd,
-        getConnectEnd, js_getSecureConnectionStart,
-        getSecureConnectionStart, js_getRequestStart, getRequestStart,
-        js_getResponseEnd, getResponseEnd, PerformanceResourceTiming(..),
-        gTypePerformanceResourceTiming)
+       (js_getInitiatorType, getInitiatorType, js_getWorkerStart,
+        getWorkerStart, js_getRedirectStart, getRedirectStart,
+        js_getRedirectEnd, getRedirectEnd, js_getFetchStart, getFetchStart,
+        js_getDomainLookupStart, getDomainLookupStart,
+        js_getDomainLookupEnd, getDomainLookupEnd, js_getConnectStart,
+        getConnectStart, js_getConnectEnd, getConnectEnd,
+        js_getSecureConnectionStart, getSecureConnectionStart,
+        js_getRequestStart, getRequestStart, js_getResponseStart,
+        getResponseStart, js_getResponseEnd, getResponseEnd,
+        PerformanceResourceTiming(..), gTypePerformanceResourceTiming)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,6 +28,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -40,86 +42,113 @@
                  (MonadIO m, FromJSString result) =>
                    PerformanceResourceTiming -> m result
 getInitiatorType self
-  = liftIO (fromJSString <$> (js_getInitiatorType (self)))
+  = liftIO (fromJSString <$> (js_getInitiatorType self))
  
+foreign import javascript unsafe "$1[\"workerStart\"]"
+        js_getWorkerStart ::
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.workerStart Mozilla PerformanceResourceTiming.workerStart documentation> 
+getWorkerStart ::
+               (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
+getWorkerStart self = liftIO (js_getWorkerStart self)
+ 
 foreign import javascript unsafe "$1[\"redirectStart\"]"
-        js_getRedirectStart :: PerformanceResourceTiming -> IO Double
+        js_getRedirectStart ::
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.redirectStart Mozilla PerformanceResourceTiming.redirectStart documentation> 
 getRedirectStart ::
-                 (MonadIO m) => PerformanceResourceTiming -> m Double
-getRedirectStart self = liftIO (js_getRedirectStart (self))
+                 (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
+getRedirectStart self = liftIO (js_getRedirectStart self)
  
 foreign import javascript unsafe "$1[\"redirectEnd\"]"
-        js_getRedirectEnd :: PerformanceResourceTiming -> IO Double
+        js_getRedirectEnd ::
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.redirectEnd Mozilla PerformanceResourceTiming.redirectEnd documentation> 
 getRedirectEnd ::
-               (MonadIO m) => PerformanceResourceTiming -> m Double
-getRedirectEnd self = liftIO (js_getRedirectEnd (self))
+               (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
+getRedirectEnd self = liftIO (js_getRedirectEnd self)
  
 foreign import javascript unsafe "$1[\"fetchStart\"]"
-        js_getFetchStart :: PerformanceResourceTiming -> IO Double
+        js_getFetchStart ::
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.fetchStart Mozilla PerformanceResourceTiming.fetchStart documentation> 
 getFetchStart ::
-              (MonadIO m) => PerformanceResourceTiming -> m Double
-getFetchStart self = liftIO (js_getFetchStart (self))
+              (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
+getFetchStart self = liftIO (js_getFetchStart self)
  
 foreign import javascript unsafe "$1[\"domainLookupStart\"]"
-        js_getDomainLookupStart :: PerformanceResourceTiming -> IO Double
+        js_getDomainLookupStart ::
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.domainLookupStart Mozilla PerformanceResourceTiming.domainLookupStart documentation> 
 getDomainLookupStart ::
-                     (MonadIO m) => PerformanceResourceTiming -> m Double
-getDomainLookupStart self = liftIO (js_getDomainLookupStart (self))
+                     (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
+getDomainLookupStart self = liftIO (js_getDomainLookupStart self)
  
 foreign import javascript unsafe "$1[\"domainLookupEnd\"]"
-        js_getDomainLookupEnd :: PerformanceResourceTiming -> IO Double
+        js_getDomainLookupEnd ::
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.domainLookupEnd Mozilla PerformanceResourceTiming.domainLookupEnd documentation> 
 getDomainLookupEnd ::
-                   (MonadIO m) => PerformanceResourceTiming -> m Double
-getDomainLookupEnd self = liftIO (js_getDomainLookupEnd (self))
+                   (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
+getDomainLookupEnd self = liftIO (js_getDomainLookupEnd self)
  
 foreign import javascript unsafe "$1[\"connectStart\"]"
-        js_getConnectStart :: PerformanceResourceTiming -> IO Double
+        js_getConnectStart ::
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.connectStart Mozilla PerformanceResourceTiming.connectStart documentation> 
 getConnectStart ::
-                (MonadIO m) => PerformanceResourceTiming -> m Double
-getConnectStart self = liftIO (js_getConnectStart (self))
+                (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
+getConnectStart self = liftIO (js_getConnectStart self)
  
 foreign import javascript unsafe "$1[\"connectEnd\"]"
-        js_getConnectEnd :: PerformanceResourceTiming -> IO Double
+        js_getConnectEnd ::
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.connectEnd Mozilla PerformanceResourceTiming.connectEnd documentation> 
 getConnectEnd ::
-              (MonadIO m) => PerformanceResourceTiming -> m Double
-getConnectEnd self = liftIO (js_getConnectEnd (self))
+              (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
+getConnectEnd self = liftIO (js_getConnectEnd self)
  
 foreign import javascript unsafe "$1[\"secureConnectionStart\"]"
         js_getSecureConnectionStart ::
-        PerformanceResourceTiming -> IO Double
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.secureConnectionStart Mozilla PerformanceResourceTiming.secureConnectionStart documentation> 
 getSecureConnectionStart ::
-                         (MonadIO m) => PerformanceResourceTiming -> m Double
+                         (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
 getSecureConnectionStart self
-  = liftIO (js_getSecureConnectionStart (self))
+  = liftIO (js_getSecureConnectionStart self)
  
 foreign import javascript unsafe "$1[\"requestStart\"]"
-        js_getRequestStart :: PerformanceResourceTiming -> IO Double
+        js_getRequestStart ::
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.requestStart Mozilla PerformanceResourceTiming.requestStart documentation> 
 getRequestStart ::
-                (MonadIO m) => PerformanceResourceTiming -> m Double
-getRequestStart self = liftIO (js_getRequestStart (self))
+                (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
+getRequestStart self = liftIO (js_getRequestStart self)
  
+foreign import javascript unsafe "$1[\"responseStart\"]"
+        js_getResponseStart ::
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.responseStart Mozilla PerformanceResourceTiming.responseStart documentation> 
+getResponseStart ::
+                 (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
+getResponseStart self = liftIO (js_getResponseStart self)
+ 
 foreign import javascript unsafe "$1[\"responseEnd\"]"
-        js_getResponseEnd :: PerformanceResourceTiming -> IO Double
+        js_getResponseEnd ::
+        PerformanceResourceTiming -> IO DOMHighResTimeStamp
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.responseEnd Mozilla PerformanceResourceTiming.responseEnd documentation> 
 getResponseEnd ::
-               (MonadIO m) => PerformanceResourceTiming -> m Double
-getResponseEnd self = liftIO (js_getResponseEnd (self))
+               (MonadIO m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
+getResponseEnd self = liftIO (js_getResponseEnd self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PerformanceTiming.hs b/src/GHCJS/DOM/JSFFI/Generated/PerformanceTiming.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/PerformanceTiming.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/PerformanceTiming.hs
@@ -25,7 +25,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -34,6 +34,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -45,7 +46,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.navigationStart Mozilla PerformanceTiming.navigationStart documentation> 
 getNavigationStart :: (MonadIO m) => PerformanceTiming -> m Word64
 getNavigationStart self
-  = liftIO (round <$> (js_getNavigationStart (self)))
+  = liftIO (round <$> (js_getNavigationStart self))
  
 foreign import javascript unsafe "$1[\"unloadEventStart\"]"
         js_getUnloadEventStart :: PerformanceTiming -> IO Double
@@ -53,7 +54,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.unloadEventStart Mozilla PerformanceTiming.unloadEventStart documentation> 
 getUnloadEventStart :: (MonadIO m) => PerformanceTiming -> m Word64
 getUnloadEventStart self
-  = liftIO (round <$> (js_getUnloadEventStart (self)))
+  = liftIO (round <$> (js_getUnloadEventStart self))
  
 foreign import javascript unsafe "$1[\"unloadEventEnd\"]"
         js_getUnloadEventEnd :: PerformanceTiming -> IO Double
@@ -61,7 +62,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.unloadEventEnd Mozilla PerformanceTiming.unloadEventEnd documentation> 
 getUnloadEventEnd :: (MonadIO m) => PerformanceTiming -> m Word64
 getUnloadEventEnd self
-  = liftIO (round <$> (js_getUnloadEventEnd (self)))
+  = liftIO (round <$> (js_getUnloadEventEnd self))
  
 foreign import javascript unsafe "$1[\"redirectStart\"]"
         js_getRedirectStart :: PerformanceTiming -> IO Double
@@ -69,21 +70,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.redirectStart Mozilla PerformanceTiming.redirectStart documentation> 
 getRedirectStart :: (MonadIO m) => PerformanceTiming -> m Word64
 getRedirectStart self
-  = liftIO (round <$> (js_getRedirectStart (self)))
+  = liftIO (round <$> (js_getRedirectStart self))
  
 foreign import javascript unsafe "$1[\"redirectEnd\"]"
         js_getRedirectEnd :: PerformanceTiming -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.redirectEnd Mozilla PerformanceTiming.redirectEnd documentation> 
 getRedirectEnd :: (MonadIO m) => PerformanceTiming -> m Word64
-getRedirectEnd self = liftIO (round <$> (js_getRedirectEnd (self)))
+getRedirectEnd self = liftIO (round <$> (js_getRedirectEnd self))
  
 foreign import javascript unsafe "$1[\"fetchStart\"]"
         js_getFetchStart :: PerformanceTiming -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.fetchStart Mozilla PerformanceTiming.fetchStart documentation> 
 getFetchStart :: (MonadIO m) => PerformanceTiming -> m Word64
-getFetchStart self = liftIO (round <$> (js_getFetchStart (self)))
+getFetchStart self = liftIO (round <$> (js_getFetchStart self))
  
 foreign import javascript unsafe "$1[\"domainLookupStart\"]"
         js_getDomainLookupStart :: PerformanceTiming -> IO Double
@@ -92,7 +93,7 @@
 getDomainLookupStart ::
                      (MonadIO m) => PerformanceTiming -> m Word64
 getDomainLookupStart self
-  = liftIO (round <$> (js_getDomainLookupStart (self)))
+  = liftIO (round <$> (js_getDomainLookupStart self))
  
 foreign import javascript unsafe "$1[\"domainLookupEnd\"]"
         js_getDomainLookupEnd :: PerformanceTiming -> IO Double
@@ -100,22 +101,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.domainLookupEnd Mozilla PerformanceTiming.domainLookupEnd documentation> 
 getDomainLookupEnd :: (MonadIO m) => PerformanceTiming -> m Word64
 getDomainLookupEnd self
-  = liftIO (round <$> (js_getDomainLookupEnd (self)))
+  = liftIO (round <$> (js_getDomainLookupEnd self))
  
 foreign import javascript unsafe "$1[\"connectStart\"]"
         js_getConnectStart :: PerformanceTiming -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.connectStart Mozilla PerformanceTiming.connectStart documentation> 
 getConnectStart :: (MonadIO m) => PerformanceTiming -> m Word64
-getConnectStart self
-  = liftIO (round <$> (js_getConnectStart (self)))
+getConnectStart self = liftIO (round <$> (js_getConnectStart self))
  
 foreign import javascript unsafe "$1[\"connectEnd\"]"
         js_getConnectEnd :: PerformanceTiming -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.connectEnd Mozilla PerformanceTiming.connectEnd documentation> 
 getConnectEnd :: (MonadIO m) => PerformanceTiming -> m Word64
-getConnectEnd self = liftIO (round <$> (js_getConnectEnd (self)))
+getConnectEnd self = liftIO (round <$> (js_getConnectEnd self))
  
 foreign import javascript unsafe "$1[\"secureConnectionStart\"]"
         js_getSecureConnectionStart :: PerformanceTiming -> IO Double
@@ -124,15 +124,14 @@
 getSecureConnectionStart ::
                          (MonadIO m) => PerformanceTiming -> m Word64
 getSecureConnectionStart self
-  = liftIO (round <$> (js_getSecureConnectionStart (self)))
+  = liftIO (round <$> (js_getSecureConnectionStart self))
  
 foreign import javascript unsafe "$1[\"requestStart\"]"
         js_getRequestStart :: PerformanceTiming -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.requestStart Mozilla PerformanceTiming.requestStart documentation> 
 getRequestStart :: (MonadIO m) => PerformanceTiming -> m Word64
-getRequestStart self
-  = liftIO (round <$> (js_getRequestStart (self)))
+getRequestStart self = liftIO (round <$> (js_getRequestStart self))
  
 foreign import javascript unsafe "$1[\"responseStart\"]"
         js_getResponseStart :: PerformanceTiming -> IO Double
@@ -140,21 +139,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.responseStart Mozilla PerformanceTiming.responseStart documentation> 
 getResponseStart :: (MonadIO m) => PerformanceTiming -> m Word64
 getResponseStart self
-  = liftIO (round <$> (js_getResponseStart (self)))
+  = liftIO (round <$> (js_getResponseStart self))
  
 foreign import javascript unsafe "$1[\"responseEnd\"]"
         js_getResponseEnd :: PerformanceTiming -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.responseEnd Mozilla PerformanceTiming.responseEnd documentation> 
 getResponseEnd :: (MonadIO m) => PerformanceTiming -> m Word64
-getResponseEnd self = liftIO (round <$> (js_getResponseEnd (self)))
+getResponseEnd self = liftIO (round <$> (js_getResponseEnd self))
  
 foreign import javascript unsafe "$1[\"domLoading\"]"
         js_getDomLoading :: PerformanceTiming -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.domLoading Mozilla PerformanceTiming.domLoading documentation> 
 getDomLoading :: (MonadIO m) => PerformanceTiming -> m Word64
-getDomLoading self = liftIO (round <$> (js_getDomLoading (self)))
+getDomLoading self = liftIO (round <$> (js_getDomLoading self))
  
 foreign import javascript unsafe "$1[\"domInteractive\"]"
         js_getDomInteractive :: PerformanceTiming -> IO Double
@@ -162,7 +161,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.domInteractive Mozilla PerformanceTiming.domInteractive documentation> 
 getDomInteractive :: (MonadIO m) => PerformanceTiming -> m Word64
 getDomInteractive self
-  = liftIO (round <$> (js_getDomInteractive (self)))
+  = liftIO (round <$> (js_getDomInteractive self))
  
 foreign import javascript unsafe
         "$1[\"domContentLoadedEventStart\"]"
@@ -172,7 +171,7 @@
 getDomContentLoadedEventStart ::
                               (MonadIO m) => PerformanceTiming -> m Word64
 getDomContentLoadedEventStart self
-  = liftIO (round <$> (js_getDomContentLoadedEventStart (self)))
+  = liftIO (round <$> (js_getDomContentLoadedEventStart self))
  
 foreign import javascript unsafe "$1[\"domContentLoadedEventEnd\"]"
         js_getDomContentLoadedEventEnd :: PerformanceTiming -> IO Double
@@ -181,14 +180,14 @@
 getDomContentLoadedEventEnd ::
                             (MonadIO m) => PerformanceTiming -> m Word64
 getDomContentLoadedEventEnd self
-  = liftIO (round <$> (js_getDomContentLoadedEventEnd (self)))
+  = liftIO (round <$> (js_getDomContentLoadedEventEnd self))
  
 foreign import javascript unsafe "$1[\"domComplete\"]"
         js_getDomComplete :: PerformanceTiming -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.domComplete Mozilla PerformanceTiming.domComplete documentation> 
 getDomComplete :: (MonadIO m) => PerformanceTiming -> m Word64
-getDomComplete self = liftIO (round <$> (js_getDomComplete (self)))
+getDomComplete self = liftIO (round <$> (js_getDomComplete self))
  
 foreign import javascript unsafe "$1[\"loadEventStart\"]"
         js_getLoadEventStart :: PerformanceTiming -> IO Double
@@ -196,12 +195,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.loadEventStart Mozilla PerformanceTiming.loadEventStart documentation> 
 getLoadEventStart :: (MonadIO m) => PerformanceTiming -> m Word64
 getLoadEventStart self
-  = liftIO (round <$> (js_getLoadEventStart (self)))
+  = liftIO (round <$> (js_getLoadEventStart self))
  
 foreign import javascript unsafe "$1[\"loadEventEnd\"]"
         js_getLoadEventEnd :: PerformanceTiming -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming.loadEventEnd Mozilla PerformanceTiming.loadEventEnd documentation> 
 getLoadEventEnd :: (MonadIO m) => PerformanceTiming -> m Word64
-getLoadEventEnd self
-  = liftIO (round <$> (js_getLoadEventEnd (self)))
+getLoadEventEnd self = liftIO (round <$> (js_getLoadEventEnd self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Plugin.hs b/src/GHCJS/DOM/JSFFI/Generated/Plugin.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Plugin.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Plugin.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,38 +23,38 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
+foreign import javascript unsafe "$1[$2]" js_item ::
         Plugin -> Word -> IO (Nullable MimeType)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Plugin.item Mozilla Plugin.item documentation> 
 item :: (MonadIO m) => Plugin -> Word -> m (Maybe MimeType)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item self index = liftIO (nullableToMaybe <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Plugin.item Mozilla Plugin.item documentation> 
 item_ :: (MonadIO m) => Plugin -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Plugin.item Mozilla Plugin.item documentation> 
 itemUnsafe ::
            (MonadIO m, HasCallStack) => Plugin -> Word -> m MimeType
 itemUnsafe self index
   = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
+      ((nullableToMaybe <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Plugin.item Mozilla Plugin.item documentation> 
 itemUnchecked :: (MonadIO m) => Plugin -> Word -> m MimeType
 itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+  = liftIO (fromJust . nullableToMaybe <$> (js_item self index))
  
-foreign import javascript unsafe "$1[\"namedItem\"]($2)"
-        js_namedItem :: Plugin -> JSString -> IO (Nullable MimeType)
+foreign import javascript unsafe "$1[$2]" js_namedItem ::
+        Plugin -> JSString -> IO (Nullable MimeType)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Plugin.namedItem Mozilla Plugin.namedItem documentation> 
 namedItem ::
@@ -62,13 +62,13 @@
             Plugin -> name -> m (Maybe MimeType)
 namedItem self name
   = liftIO
-      (nullableToMaybe <$> (js_namedItem (self) (toJSString name)))
+      (nullableToMaybe <$> (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Plugin.namedItem Mozilla Plugin.namedItem documentation> 
 namedItem_ ::
            (MonadIO m, ToJSString name) => Plugin -> name -> m ()
 namedItem_ self name
-  = liftIO (void (js_namedItem (self) (toJSString name)))
+  = liftIO (void (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Plugin.namedItem Mozilla Plugin.namedItem documentation> 
 namedItemUnsafe ::
@@ -76,7 +76,7 @@
                   Plugin -> name -> m MimeType
 namedItemUnsafe self name
   = liftIO
-      ((nullableToMaybe <$> (js_namedItem (self) (toJSString name))) >>=
+      ((nullableToMaybe <$> (js_namedItem self (toJSString name))) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Plugin.namedItem Mozilla Plugin.namedItem documentation> 
@@ -85,14 +85,14 @@
 namedItemUnchecked self name
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_namedItem (self) (toJSString name)))
+         (js_namedItem self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         Plugin -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Plugin.name Mozilla Plugin.name documentation> 
 getName :: (MonadIO m, FromJSString result) => Plugin -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"filename\"]" js_getFilename
         :: Plugin -> IO JSString
@@ -100,8 +100,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Plugin.filename Mozilla Plugin.filename documentation> 
 getFilename ::
             (MonadIO m, FromJSString result) => Plugin -> m result
-getFilename self
-  = liftIO (fromJSString <$> (js_getFilename (self)))
+getFilename self = liftIO (fromJSString <$> (js_getFilename self))
  
 foreign import javascript unsafe "$1[\"description\"]"
         js_getDescription :: Plugin -> IO JSString
@@ -110,11 +109,11 @@
 getDescription ::
                (MonadIO m, FromJSString result) => Plugin -> m result
 getDescription self
-  = liftIO (fromJSString <$> (js_getDescription (self)))
+  = liftIO (fromJSString <$> (js_getDescription self))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         Plugin -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Plugin.length Mozilla Plugin.length documentation> 
 getLength :: (MonadIO m) => Plugin -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PluginArray.hs b/src/GHCJS/DOM/JSFFI/Generated/PluginArray.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/PluginArray.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/PluginArray.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,38 +22,38 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
+foreign import javascript unsafe "$1[$2]" js_item ::
         PluginArray -> Word -> IO (Nullable Plugin)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray.item Mozilla PluginArray.item documentation> 
 item :: (MonadIO m) => PluginArray -> Word -> m (Maybe Plugin)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item self index = liftIO (nullableToMaybe <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray.item Mozilla PluginArray.item documentation> 
 item_ :: (MonadIO m) => PluginArray -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray.item Mozilla PluginArray.item documentation> 
 itemUnsafe ::
            (MonadIO m, HasCallStack) => PluginArray -> Word -> m Plugin
 itemUnsafe self index
   = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
+      ((nullableToMaybe <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray.item Mozilla PluginArray.item documentation> 
 itemUnchecked :: (MonadIO m) => PluginArray -> Word -> m Plugin
 itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+  = liftIO (fromJust . nullableToMaybe <$> (js_item self index))
  
-foreign import javascript unsafe "$1[\"namedItem\"]($2)"
-        js_namedItem :: PluginArray -> JSString -> IO (Nullable Plugin)
+foreign import javascript unsafe "$1[$2]" js_namedItem ::
+        PluginArray -> JSString -> IO (Nullable Plugin)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray.namedItem Mozilla PluginArray.namedItem documentation> 
 namedItem ::
@@ -61,13 +61,13 @@
             PluginArray -> name -> m (Maybe Plugin)
 namedItem self name
   = liftIO
-      (nullableToMaybe <$> (js_namedItem (self) (toJSString name)))
+      (nullableToMaybe <$> (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray.namedItem Mozilla PluginArray.namedItem documentation> 
 namedItem_ ::
            (MonadIO m, ToJSString name) => PluginArray -> name -> m ()
 namedItem_ self name
-  = liftIO (void (js_namedItem (self) (toJSString name)))
+  = liftIO (void (js_namedItem self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray.namedItem Mozilla PluginArray.namedItem documentation> 
 namedItemUnsafe ::
@@ -75,7 +75,7 @@
                   PluginArray -> name -> m Plugin
 namedItemUnsafe self name
   = liftIO
-      ((nullableToMaybe <$> (js_namedItem (self) (toJSString name))) >>=
+      ((nullableToMaybe <$> (js_namedItem self (toJSString name))) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray.namedItem Mozilla PluginArray.namedItem documentation> 
@@ -84,18 +84,18 @@
 namedItemUnchecked self name
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_namedItem (self) (toJSString name)))
+         (js_namedItem self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"refresh\"]($2)" js_refresh
         :: PluginArray -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray.refresh Mozilla PluginArray.refresh documentation> 
 refresh :: (MonadIO m) => PluginArray -> Bool -> m ()
-refresh self reload = liftIO (js_refresh (self) reload)
+refresh self reload = liftIO (js_refresh self reload)
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         PluginArray -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray.length Mozilla PluginArray.length documentation> 
 getLength :: (MonadIO m) => PluginArray -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PopStateEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/PopStateEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/PopStateEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/PopStateEvent.hs
@@ -4,13 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.PopStateEvent
-       (js_getState, getState, PopStateEvent(..), gTypePopStateEvent)
+       (js_newPopStateEvent, newPopStateEvent, js_getState, getState,
+        PopStateEvent(..), gTypePopStateEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -19,14 +20,28 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"PopStateEvent\"]($1,\n$2)" js_newPopStateEvent ::
+        JSString -> Optional PopStateEventInit -> IO PopStateEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/PopStateEvent Mozilla PopStateEvent documentation> 
+newPopStateEvent ::
+                 (MonadIO m, ToJSString type') =>
+                   type' -> Maybe PopStateEventInit -> m PopStateEvent
+newPopStateEvent type' eventInitDict
+  = liftIO
+      (js_newPopStateEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"state\"]" js_getState ::
         PopStateEvent -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PopStateEvent.state Mozilla PopStateEvent.state documentation> 
 getState :: (MonadIO m) => PopStateEvent -> m JSVal
-getState self = liftIO (js_getState (self))
+getState self = liftIO (js_getState self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PositionCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/PositionCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/PositionCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/PositionCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -27,7 +28,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PositionCallback Mozilla PositionCallback documentation> 
 newPositionCallback ::
-                    (MonadIO m) => (Maybe Geoposition -> IO ()) -> m PositionCallback
+                    (MonadIO m) => (Geoposition -> IO ()) -> m PositionCallback
 newPositionCallback callback
   = liftIO
       (PositionCallback <$>
@@ -37,7 +38,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PositionCallback Mozilla PositionCallback documentation> 
 newPositionCallbackSync ::
-                        (MonadIO m) => (Maybe Geoposition -> IO ()) -> m PositionCallback
+                        (MonadIO m) => (Geoposition -> IO ()) -> m PositionCallback
 newPositionCallbackSync callback
   = liftIO
       (PositionCallback <$>
@@ -47,7 +48,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PositionCallback Mozilla PositionCallback documentation> 
 newPositionCallbackAsync ::
-                         (MonadIO m) => (Maybe Geoposition -> IO ()) -> m PositionCallback
+                         (MonadIO m) => (Geoposition -> IO ()) -> m PositionCallback
 newPositionCallbackAsync callback
   = liftIO
       (PositionCallback <$>
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PositionError.hs b/src/GHCJS/DOM/JSFFI/Generated/PositionError.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/PositionError.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/PositionError.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,7 +35,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PositionError.code Mozilla PositionError.code documentation> 
 getCode :: (MonadIO m) => PositionError -> m Word
-getCode self = liftIO (js_getCode (self))
+getCode self = liftIO (js_getCode self)
  
 foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
         PositionError -> IO JSString
@@ -42,4 +43,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PositionError.message Mozilla PositionError.message documentation> 
 getMessage ::
            (MonadIO m, FromJSString result) => PositionError -> m result
-getMessage self = liftIO (fromJSString <$> (js_getMessage (self)))
+getMessage self = liftIO (fromJSString <$> (js_getMessage self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/PositionErrorCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/PositionErrorCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/PositionErrorCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/PositionErrorCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -27,8 +28,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PositionErrorCallback Mozilla PositionErrorCallback documentation> 
 newPositionErrorCallback ::
-                         (MonadIO m) =>
-                           (Maybe PositionError -> IO ()) -> m PositionErrorCallback
+                         (MonadIO m) => (PositionError -> IO ()) -> m PositionErrorCallback
 newPositionErrorCallback callback
   = liftIO
       (PositionErrorCallback <$>
@@ -38,8 +38,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PositionErrorCallback Mozilla PositionErrorCallback documentation> 
 newPositionErrorCallbackSync ::
-                             (MonadIO m) =>
-                               (Maybe PositionError -> IO ()) -> m PositionErrorCallback
+                             (MonadIO m) => (PositionError -> IO ()) -> m PositionErrorCallback
 newPositionErrorCallbackSync callback
   = liftIO
       (PositionErrorCallback <$>
@@ -49,8 +48,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/PositionErrorCallback Mozilla PositionErrorCallback documentation> 
 newPositionErrorCallbackAsync ::
-                              (MonadIO m) =>
-                                (Maybe PositionError -> IO ()) -> m PositionErrorCallback
+                              (MonadIO m) => (PositionError -> IO ()) -> m PositionErrorCallback
 newPositionErrorCallbackAsync callback
   = liftIO
       (PositionErrorCallback <$>
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ProcessingInstruction.hs b/src/GHCJS/DOM/JSFFI/Generated/ProcessingInstruction.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ProcessingInstruction.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ProcessingInstruction.hs
@@ -5,14 +5,14 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.ProcessingInstruction
        (js_getTarget, getTarget, getTargetUnsafe, getTargetUnchecked,
-        js_getSheet, getSheet, getSheetUnsafe, getSheetUnchecked,
-        ProcessingInstruction(..), gTypeProcessingInstruction)
+        js_getSheet, getSheet, ProcessingInstruction(..),
+        gTypeProcessingInstruction)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,8 +34,7 @@
 getTarget ::
           (MonadIO m, FromJSString result) =>
             ProcessingInstruction -> m (Maybe result)
-getTarget self
-  = liftIO (fromMaybeJSString <$> (js_getTarget (self)))
+getTarget self = liftIO (fromMaybeJSString <$> (js_getTarget self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ProcessingInstruction.target Mozilla ProcessingInstruction.target documentation> 
 getTargetUnsafe ::
@@ -42,7 +42,7 @@
                   ProcessingInstruction -> m result
 getTargetUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getTarget (self))) >>=
+      ((fromMaybeJSString <$> (js_getTarget self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ProcessingInstruction.target Mozilla ProcessingInstruction.target documentation> 
@@ -50,26 +50,11 @@
                    (MonadIO m, FromJSString result) =>
                      ProcessingInstruction -> m result
 getTargetUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getTarget (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getTarget self))
  
 foreign import javascript unsafe "$1[\"sheet\"]" js_getSheet ::
-        ProcessingInstruction -> IO (Nullable StyleSheet)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ProcessingInstruction.sheet Mozilla ProcessingInstruction.sheet documentation> 
-getSheet ::
-         (MonadIO m) => ProcessingInstruction -> m (Maybe StyleSheet)
-getSheet self = liftIO (nullableToMaybe <$> (js_getSheet (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ProcessingInstruction.sheet Mozilla ProcessingInstruction.sheet documentation> 
-getSheetUnsafe ::
-               (MonadIO m, HasCallStack) => ProcessingInstruction -> m StyleSheet
-getSheetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSheet (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        ProcessingInstruction -> IO StyleSheet
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ProcessingInstruction.sheet Mozilla ProcessingInstruction.sheet documentation> 
-getSheetUnchecked ::
-                  (MonadIO m) => ProcessingInstruction -> m StyleSheet
-getSheetUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getSheet (self)))
+getSheet :: (MonadIO m) => ProcessingInstruction -> m StyleSheet
+getSheet self = liftIO (js_getSheet self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ProgressEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/ProgressEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ProgressEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ProgressEvent.hs
@@ -4,15 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.ProgressEvent
-       (js_getLengthComputable, getLengthComputable, js_getLoaded,
-        getLoaded, js_getTotal, getTotal, ProgressEvent(..),
-        gTypeProgressEvent, IsProgressEvent, toProgressEvent)
+       (js_newProgressEvent, newProgressEvent, js_getLengthComputable,
+        getLengthComputable, js_getLoaded, getLoaded, js_getTotal,
+        getTotal, ProgressEvent(..), gTypeProgressEvent, IsProgressEvent,
+        toProgressEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,10 +22,24 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"ProgressEvent\"]($1,\n$2)" js_newProgressEvent ::
+        JSString -> Optional ProgressEventInit -> IO ProgressEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ProgressEvent Mozilla ProgressEvent documentation> 
+newProgressEvent ::
+                 (MonadIO m, ToJSString type') =>
+                   type' -> Maybe ProgressEventInit -> m ProgressEvent
+newProgressEvent type' eventInitDict
+  = liftIO
+      (js_newProgressEvent (toJSString type')
+         (maybeToOptional eventInitDict))
  
 foreign import javascript unsafe
         "($1[\"lengthComputable\"] ? 1 : 0)" js_getLengthComputable ::
diff --git a/src/GHCJS/DOM/JSFFI/Generated/QuickTimePluginReplacement.hs b/src/GHCJS/DOM/JSFFI/Generated/QuickTimePluginReplacement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/QuickTimePluginReplacement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/QuickTimePluginReplacement.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -35,7 +36,7 @@
           (MonadIO m, ToJSString eventName) =>
             QuickTimePluginReplacement -> eventName -> m ()
 postEvent self eventName
-  = liftIO (js_postEvent (self) (toJSString eventName))
+  = liftIO (js_postEvent self (toJSString eventName))
  
 foreign import javascript unsafe "$1[\"movieSize\"]"
         js_getMovieSize :: QuickTimePluginReplacement -> IO Double
@@ -43,7 +44,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement.movieSize Mozilla QuickTimePluginReplacement.movieSize documentation> 
 getMovieSize ::
              (MonadIO m) => QuickTimePluginReplacement -> m Word64
-getMovieSize self = liftIO (round <$> (js_getMovieSize (self)))
+getMovieSize self = liftIO (round <$> (js_getMovieSize self))
  
 foreign import javascript unsafe "$1[\"timedMetaData\"]"
         js_getTimedMetaData :: QuickTimePluginReplacement -> IO JSVal
@@ -51,7 +52,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement.timedMetaData Mozilla QuickTimePluginReplacement.timedMetaData documentation> 
 getTimedMetaData ::
                  (MonadIO m) => QuickTimePluginReplacement -> m JSVal
-getTimedMetaData self = liftIO (js_getTimedMetaData (self))
+getTimedMetaData self = liftIO (js_getTimedMetaData self)
  
 foreign import javascript unsafe "$1[\"accessLog\"]"
         js_getAccessLog :: QuickTimePluginReplacement -> IO JSVal
@@ -59,11 +60,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement.accessLog Mozilla QuickTimePluginReplacement.accessLog documentation> 
 getAccessLog ::
              (MonadIO m) => QuickTimePluginReplacement -> m JSVal
-getAccessLog self = liftIO (js_getAccessLog (self))
+getAccessLog self = liftIO (js_getAccessLog self)
  
 foreign import javascript unsafe "$1[\"errorLog\"]" js_getErrorLog
         :: QuickTimePluginReplacement -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement.errorLog Mozilla QuickTimePluginReplacement.errorLog documentation> 
 getErrorLog :: (MonadIO m) => QuickTimePluginReplacement -> m JSVal
-getErrorLog self = liftIO (js_getErrorLog (self))
+getErrorLog self = liftIO (js_getErrorLog self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RGBColor.hs b/src/GHCJS/DOM/JSFFI/Generated/RGBColor.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/RGBColor.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/RGBColor.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.RGBColor
-       (js_getRed, getRed, getRedUnsafe, getRedUnchecked, js_getGreen,
-        getGreen, getGreenUnsafe, getGreenUnchecked, js_getBlue, getBlue,
-        getBlueUnsafe, getBlueUnchecked, RGBColor(..), gTypeRGBColor)
+       (js_getRed, getRed, js_getGreen, getGreen, js_getBlue, getBlue,
+        js_getAlpha, getAlpha, RGBColor(..), gTypeRGBColor)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,67 +20,36 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"red\"]" js_getRed ::
-        RGBColor -> IO (Nullable CSSPrimitiveValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor.red Mozilla RGBColor.red documentation> 
-getRed :: (MonadIO m) => RGBColor -> m (Maybe CSSPrimitiveValue)
-getRed self = liftIO (nullableToMaybe <$> (js_getRed (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor.red Mozilla RGBColor.red documentation> 
-getRedUnsafe ::
-             (MonadIO m, HasCallStack) => RGBColor -> m CSSPrimitiveValue
-getRedUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRed (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        RGBColor -> IO CSSPrimitiveValue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor.red Mozilla RGBColor.red documentation> 
-getRedUnchecked :: (MonadIO m) => RGBColor -> m CSSPrimitiveValue
-getRedUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRed (self)))
+getRed :: (MonadIO m) => RGBColor -> m CSSPrimitiveValue
+getRed self = liftIO (js_getRed self)
  
 foreign import javascript unsafe "$1[\"green\"]" js_getGreen ::
-        RGBColor -> IO (Nullable CSSPrimitiveValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor.green Mozilla RGBColor.green documentation> 
-getGreen :: (MonadIO m) => RGBColor -> m (Maybe CSSPrimitiveValue)
-getGreen self = liftIO (nullableToMaybe <$> (js_getGreen (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor.green Mozilla RGBColor.green documentation> 
-getGreenUnsafe ::
-               (MonadIO m, HasCallStack) => RGBColor -> m CSSPrimitiveValue
-getGreenUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getGreen (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        RGBColor -> IO CSSPrimitiveValue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor.green Mozilla RGBColor.green documentation> 
-getGreenUnchecked :: (MonadIO m) => RGBColor -> m CSSPrimitiveValue
-getGreenUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getGreen (self)))
+getGreen :: (MonadIO m) => RGBColor -> m CSSPrimitiveValue
+getGreen self = liftIO (js_getGreen self)
  
 foreign import javascript unsafe "$1[\"blue\"]" js_getBlue ::
-        RGBColor -> IO (Nullable CSSPrimitiveValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor.blue Mozilla RGBColor.blue documentation> 
-getBlue :: (MonadIO m) => RGBColor -> m (Maybe CSSPrimitiveValue)
-getBlue self = liftIO (nullableToMaybe <$> (js_getBlue (self)))
+        RGBColor -> IO CSSPrimitiveValue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor.blue Mozilla RGBColor.blue documentation> 
-getBlueUnsafe ::
-              (MonadIO m, HasCallStack) => RGBColor -> m CSSPrimitiveValue
-getBlueUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBlue (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+getBlue :: (MonadIO m) => RGBColor -> m CSSPrimitiveValue
+getBlue self = liftIO (js_getBlue self)
+ 
+foreign import javascript unsafe "$1[\"alpha\"]" js_getAlpha ::
+        RGBColor -> IO CSSPrimitiveValue
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor.blue Mozilla RGBColor.blue documentation> 
-getBlueUnchecked :: (MonadIO m) => RGBColor -> m CSSPrimitiveValue
-getBlueUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBlue (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor.alpha Mozilla RGBColor.alpha documentation> 
+getAlpha :: (MonadIO m) => RGBColor -> m CSSPrimitiveValue
+getAlpha self = liftIO (js_getAlpha self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCConfiguration.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCConfiguration.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCConfiguration.hs
+++ /dev/null
@@ -1,54 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.RTCConfiguration
-       (js_getIceServers, getIceServers, js_getIceTransports,
-        getIceTransports, js_getRequestIdentity, getRequestIdentity,
-        RTCConfiguration(..), gTypeRTCConfiguration)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"iceServers\"]"
-        js_getIceServers :: RTCConfiguration -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration.iceServers Mozilla RTCConfiguration.iceServers documentation> 
-getIceServers ::
-              (MonadIO m) => RTCConfiguration -> m [Maybe RTCIceServer]
-getIceServers self
-  = liftIO ((js_getIceServers (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"iceTransports\"]"
-        js_getIceTransports :: RTCConfiguration -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration.iceTransports Mozilla RTCConfiguration.iceTransports documentation> 
-getIceTransports ::
-                 (MonadIO m) => RTCConfiguration -> m RTCIceTransportsEnum
-getIceTransports self
-  = liftIO ((js_getIceTransports (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"requestIdentity\"]"
-        js_getRequestIdentity :: RTCConfiguration -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration.requestIdentity Mozilla RTCConfiguration.requestIdentity documentation> 
-getRequestIdentity ::
-                   (MonadIO m) => RTCConfiguration -> m RTCIdentityOptionEnum
-getRequestIdentity self
-  = liftIO ((js_getRequestIdentity (self)) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCDTMFSender.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCDTMFSender.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCDTMFSender.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCDTMFSender.hs
@@ -5,16 +5,15 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.RTCDTMFSender
        (js_insertDTMF, insertDTMF, js_getCanInsertDTMF, getCanInsertDTMF,
-        js_getTrack, getTrack, getTrackUnsafe, getTrackUnchecked,
-        js_getToneBuffer, getToneBuffer, js_getDuration, getDuration,
-        js_getInterToneGap, getInterToneGap, toneChange, RTCDTMFSender(..),
-        gTypeRTCDTMFSender)
+        js_getTrack, getTrack, js_getToneBuffer, getToneBuffer,
+        js_getDuration, getDuration, js_getInterToneGap, getInterToneGap,
+        toneChange, RTCDTMFSender(..), gTypeRTCDTMFSender)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,50 +22,38 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"insertDTMF\"]($2, $3, $4)"
-        js_insertDTMF :: RTCDTMFSender -> JSString -> Int -> Int -> IO ()
+        js_insertDTMF ::
+        RTCDTMFSender -> JSString -> Optional Int -> Optional Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender.insertDTMF Mozilla RTCDTMFSender.insertDTMF documentation> 
 insertDTMF ::
            (MonadIO m, ToJSString tones) =>
-             RTCDTMFSender -> tones -> Int -> Int -> m ()
+             RTCDTMFSender -> tones -> Maybe Int -> Maybe Int -> m ()
 insertDTMF self tones duration interToneGap
   = liftIO
-      (js_insertDTMF (self) (toJSString tones) duration interToneGap)
+      (js_insertDTMF self (toJSString tones) (maybeToOptional duration)
+         (maybeToOptional interToneGap))
  
 foreign import javascript unsafe "($1[\"canInsertDTMF\"] ? 1 : 0)"
         js_getCanInsertDTMF :: RTCDTMFSender -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender.canInsertDTMF Mozilla RTCDTMFSender.canInsertDTMF documentation> 
 getCanInsertDTMF :: (MonadIO m) => RTCDTMFSender -> m Bool
-getCanInsertDTMF self = liftIO (js_getCanInsertDTMF (self))
+getCanInsertDTMF self = liftIO (js_getCanInsertDTMF self)
  
 foreign import javascript unsafe "$1[\"track\"]" js_getTrack ::
-        RTCDTMFSender -> IO (Nullable MediaStreamTrack)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender.track Mozilla RTCDTMFSender.track documentation> 
-getTrack ::
-         (MonadIO m) => RTCDTMFSender -> m (Maybe MediaStreamTrack)
-getTrack self = liftIO (nullableToMaybe <$> (js_getTrack (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender.track Mozilla RTCDTMFSender.track documentation> 
-getTrackUnsafe ::
-               (MonadIO m, HasCallStack) => RTCDTMFSender -> m MediaStreamTrack
-getTrackUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTrack (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        RTCDTMFSender -> IO MediaStreamTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender.track Mozilla RTCDTMFSender.track documentation> 
-getTrackUnchecked ::
-                  (MonadIO m) => RTCDTMFSender -> m MediaStreamTrack
-getTrackUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTrack (self)))
+getTrack :: (MonadIO m) => RTCDTMFSender -> m MediaStreamTrack
+getTrack self = liftIO (js_getTrack self)
  
 foreign import javascript unsafe "$1[\"toneBuffer\"]"
         js_getToneBuffer :: RTCDTMFSender -> IO JSString
@@ -75,21 +62,21 @@
 getToneBuffer ::
               (MonadIO m, FromJSString result) => RTCDTMFSender -> m result
 getToneBuffer self
-  = liftIO (fromJSString <$> (js_getToneBuffer (self)))
+  = liftIO (fromJSString <$> (js_getToneBuffer self))
  
 foreign import javascript unsafe "$1[\"duration\"]" js_getDuration
         :: RTCDTMFSender -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender.duration Mozilla RTCDTMFSender.duration documentation> 
 getDuration :: (MonadIO m) => RTCDTMFSender -> m Int
-getDuration self = liftIO (js_getDuration (self))
+getDuration self = liftIO (js_getDuration self)
  
 foreign import javascript unsafe "$1[\"interToneGap\"]"
         js_getInterToneGap :: RTCDTMFSender -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender.interToneGap Mozilla RTCDTMFSender.interToneGap documentation> 
 getInterToneGap :: (MonadIO m) => RTCDTMFSender -> m Int
-getInterToneGap self = liftIO (js_getInterToneGap (self))
+getInterToneGap self = liftIO (js_getInterToneGap self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender.ontonechange Mozilla RTCDTMFSender.ontonechange documentation> 
 toneChange :: EventName RTCDTMFSender Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCDTMFToneChangeEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCDTMFToneChangeEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCDTMFToneChangeEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCDTMFToneChangeEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.RTCDTMFToneChangeEvent
-       (js_getTone, getTone, RTCDTMFToneChangeEvent(..),
+       (js_newRTCDTMFToneChangeEvent, newRTCDTMFToneChangeEvent,
+        js_getTone, getTone, RTCDTMFToneChangeEvent(..),
         gTypeRTCDTMFToneChangeEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,11 +21,28 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"RTCDTMFToneChangeEvent\"]($1,\n$2)"
+        js_newRTCDTMFToneChangeEvent ::
+        JSString ->
+          Optional RTCDTMFToneChangeEventInit -> IO RTCDTMFToneChangeEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFToneChangeEvent Mozilla RTCDTMFToneChangeEvent documentation> 
+newRTCDTMFToneChangeEvent ::
+                          (MonadIO m, ToJSString type') =>
+                            type' ->
+                              Maybe RTCDTMFToneChangeEventInit -> m RTCDTMFToneChangeEvent
+newRTCDTMFToneChangeEvent type' eventInitDict
+  = liftIO
+      (js_newRTCDTMFToneChangeEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"tone\"]" js_getTone ::
         RTCDTMFToneChangeEvent -> IO JSString
 
@@ -32,4 +50,4 @@
 getTone ::
         (MonadIO m, FromJSString result) =>
           RTCDTMFToneChangeEvent -> m result
-getTone self = liftIO (fromJSString <$> (js_getTone (self)))
+getTone self = liftIO (fromJSString <$> (js_getTone self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCDataChannel.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCDataChannel.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCDataChannel.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCDataChannel.hs
@@ -18,7 +18,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,42 +27,37 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"send\"]($2)" js_send ::
-        RTCDataChannel -> Nullable ArrayBuffer -> IO ()
+        RTCDataChannel -> ArrayBuffer -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.send Mozilla RTCDataChannel.send documentation> 
 send ::
-     (MonadIO m, IsArrayBuffer data') =>
-       RTCDataChannel -> Maybe data' -> m ()
-send self data'
-  = liftIO
-      (js_send (self) (maybeToNullable (fmap toArrayBuffer data')))
+     (MonadIO m, IsArrayBuffer data') => RTCDataChannel -> data' -> m ()
+send self data' = liftIO (js_send self (toArrayBuffer data'))
  
 foreign import javascript unsafe "$1[\"send\"]($2)" js_sendView ::
-        RTCDataChannel -> Nullable ArrayBufferView -> IO ()
+        RTCDataChannel -> ArrayBufferView -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.send Mozilla RTCDataChannel.send documentation> 
 sendView ::
          (MonadIO m, IsArrayBufferView data') =>
-           RTCDataChannel -> Maybe data' -> m ()
+           RTCDataChannel -> data' -> m ()
 sendView self data'
-  = liftIO
-      (js_sendView (self)
-         (maybeToNullable (fmap toArrayBufferView data')))
+  = liftIO (js_sendView self (toArrayBufferView data'))
  
 foreign import javascript unsafe "$1[\"send\"]($2)" js_sendBlob ::
-        RTCDataChannel -> Nullable Blob -> IO ()
+        RTCDataChannel -> Blob -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.send Mozilla RTCDataChannel.send documentation> 
 sendBlob ::
-         (MonadIO m, IsBlob data') => RTCDataChannel -> Maybe data' -> m ()
-sendBlob self data'
-  = liftIO (js_sendBlob (self) (maybeToNullable (fmap toBlob data')))
+         (MonadIO m, IsBlob data') => RTCDataChannel -> data' -> m ()
+sendBlob self data' = liftIO (js_sendBlob self (toBlob data'))
  
 foreign import javascript unsafe "$1[\"send\"]($2)" js_sendString
         :: RTCDataChannel -> JSString -> IO ()
@@ -71,14 +66,14 @@
 sendString ::
            (MonadIO m, ToJSString data') => RTCDataChannel -> data' -> m ()
 sendString self data'
-  = liftIO (js_sendString (self) (toJSString data'))
+  = liftIO (js_sendString self (toJSString data'))
  
 foreign import javascript unsafe "$1[\"close\"]()" js_close ::
         RTCDataChannel -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.close Mozilla RTCDataChannel.close documentation> 
 close :: (MonadIO m) => RTCDataChannel -> m ()
-close self = liftIO (js_close (self))
+close self = liftIO (js_close self)
  
 foreign import javascript unsafe "$1[\"label\"]" js_getLabel ::
         RTCDataChannel -> IO JSString
@@ -86,28 +81,28 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.label Mozilla RTCDataChannel.label documentation> 
 getLabel ::
          (MonadIO m, FromJSString result) => RTCDataChannel -> m result
-getLabel self = liftIO (fromJSString <$> (js_getLabel (self)))
+getLabel self = liftIO (fromJSString <$> (js_getLabel self))
  
 foreign import javascript unsafe "($1[\"ordered\"] ? 1 : 0)"
         js_getOrdered :: RTCDataChannel -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.ordered Mozilla RTCDataChannel.ordered documentation> 
 getOrdered :: (MonadIO m) => RTCDataChannel -> m Bool
-getOrdered self = liftIO (js_getOrdered (self))
+getOrdered self = liftIO (js_getOrdered self)
  
 foreign import javascript unsafe "$1[\"maxRetransmitTime\"]"
         js_getMaxRetransmitTime :: RTCDataChannel -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.maxRetransmitTime Mozilla RTCDataChannel.maxRetransmitTime documentation> 
 getMaxRetransmitTime :: (MonadIO m) => RTCDataChannel -> m Word
-getMaxRetransmitTime self = liftIO (js_getMaxRetransmitTime (self))
+getMaxRetransmitTime self = liftIO (js_getMaxRetransmitTime self)
  
 foreign import javascript unsafe "$1[\"maxRetransmits\"]"
         js_getMaxRetransmits :: RTCDataChannel -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.maxRetransmits Mozilla RTCDataChannel.maxRetransmits documentation> 
 getMaxRetransmits :: (MonadIO m) => RTCDataChannel -> m Word
-getMaxRetransmits self = liftIO (js_getMaxRetransmits (self))
+getMaxRetransmits self = liftIO (js_getMaxRetransmits self)
  
 foreign import javascript unsafe "$1[\"protocol\"]" js_getProtocol
         :: RTCDataChannel -> IO JSString
@@ -115,22 +110,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.protocol Mozilla RTCDataChannel.protocol documentation> 
 getProtocol ::
             (MonadIO m, FromJSString result) => RTCDataChannel -> m result
-getProtocol self
-  = liftIO (fromJSString <$> (js_getProtocol (self)))
+getProtocol self = liftIO (fromJSString <$> (js_getProtocol self))
  
 foreign import javascript unsafe "($1[\"negotiated\"] ? 1 : 0)"
         js_getNegotiated :: RTCDataChannel -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.negotiated Mozilla RTCDataChannel.negotiated documentation> 
 getNegotiated :: (MonadIO m) => RTCDataChannel -> m Bool
-getNegotiated self = liftIO (js_getNegotiated (self))
+getNegotiated self = liftIO (js_getNegotiated self)
  
 foreign import javascript unsafe "$1[\"id\"]" js_getId ::
         RTCDataChannel -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.id Mozilla RTCDataChannel.id documentation> 
 getId :: (MonadIO m) => RTCDataChannel -> m Word
-getId self = liftIO (js_getId (self))
+getId self = liftIO (js_getId self)
  
 foreign import javascript unsafe "$1[\"readyState\"]"
         js_getReadyState :: RTCDataChannel -> IO JSString
@@ -139,14 +133,14 @@
 getReadyState ::
               (MonadIO m, FromJSString result) => RTCDataChannel -> m result
 getReadyState self
-  = liftIO (fromJSString <$> (js_getReadyState (self)))
+  = liftIO (fromJSString <$> (js_getReadyState self))
  
 foreign import javascript unsafe "$1[\"bufferedAmount\"]"
         js_getBufferedAmount :: RTCDataChannel -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.bufferedAmount Mozilla RTCDataChannel.bufferedAmount documentation> 
 getBufferedAmount :: (MonadIO m) => RTCDataChannel -> m Word
-getBufferedAmount self = liftIO (js_getBufferedAmount (self))
+getBufferedAmount self = liftIO (js_getBufferedAmount self)
  
 foreign import javascript unsafe "$1[\"binaryType\"] = $2;"
         js_setBinaryType :: RTCDataChannel -> JSString -> IO ()
@@ -155,7 +149,7 @@
 setBinaryType ::
               (MonadIO m, ToJSString val) => RTCDataChannel -> val -> m ()
 setBinaryType self val
-  = liftIO (js_setBinaryType (self) (toJSString val))
+  = liftIO (js_setBinaryType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"binaryType\"]"
         js_getBinaryType :: RTCDataChannel -> IO JSString
@@ -164,7 +158,7 @@
 getBinaryType ::
               (MonadIO m, FromJSString result) => RTCDataChannel -> m result
 getBinaryType self
-  = liftIO (fromJSString <$> (js_getBinaryType (self)))
+  = liftIO (fromJSString <$> (js_getBinaryType self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel.onopen Mozilla RTCDataChannel.onopen documentation> 
 open :: EventName RTCDataChannel Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCDataChannelEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCDataChannelEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCDataChannelEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCDataChannelEvent.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.RTCDataChannelEvent
-       (js_getChannel, getChannel, getChannelUnsafe, getChannelUnchecked,
-        RTCDataChannelEvent(..), gTypeRTCDataChannelEvent)
+       (js_getChannel, getChannel, RTCDataChannelEvent(..),
+        gTypeRTCDataChannelEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,31 +20,16 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"channel\"]" js_getChannel ::
-        RTCDataChannelEvent -> IO (Nullable RTCDataChannel)
+        RTCDataChannelEvent -> IO RTCDataChannel
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannelEvent.channel Mozilla RTCDataChannelEvent.channel documentation> 
 getChannel ::
-           (MonadIO m) => RTCDataChannelEvent -> m (Maybe RTCDataChannel)
-getChannel self
-  = liftIO (nullableToMaybe <$> (js_getChannel (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannelEvent.channel Mozilla RTCDataChannelEvent.channel documentation> 
-getChannelUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   RTCDataChannelEvent -> m RTCDataChannel
-getChannelUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getChannel (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannelEvent.channel Mozilla RTCDataChannelEvent.channel documentation> 
-getChannelUnchecked ::
-                    (MonadIO m) => RTCDataChannelEvent -> m RTCDataChannel
-getChannelUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getChannel (self)))
+           (MonadIO m) => RTCDataChannelEvent -> m RTCDataChannel
+getChannel self = liftIO (js_getChannel self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCIceCandidate.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCIceCandidate.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCIceCandidate.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCIceCandidate.hs
@@ -5,14 +5,16 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.RTCIceCandidate
        (js_newRTCIceCandidate, newRTCIceCandidate, js_getCandidate,
-        getCandidate, js_getSdpMid, getSdpMid, js_getSdpMLineIndex,
-        getSdpMLineIndex, RTCIceCandidate(..), gTypeRTCIceCandidate)
+        getCandidate, js_getSdpMid, getSdpMid, getSdpMidUnsafe,
+        getSdpMidUnchecked, js_getSdpMLineIndex, getSdpMLineIndex,
+        getSdpMLineIndexUnsafe, getSdpMLineIndexUnchecked,
+        RTCIceCandidate(..), gTypeRTCIceCandidate)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,16 +31,13 @@
  
 foreign import javascript unsafe
         "new window[\"RTCIceCandidate\"]($1)" js_newRTCIceCandidate ::
-        Nullable Dictionary -> IO RTCIceCandidate
+        RTCIceCandidateInit -> IO RTCIceCandidate
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate Mozilla RTCIceCandidate documentation> 
 newRTCIceCandidate ::
-                   (MonadIO m, IsDictionary dictionary) =>
-                     Maybe dictionary -> m RTCIceCandidate
-newRTCIceCandidate dictionary
-  = liftIO
-      (js_newRTCIceCandidate
-         (maybeToNullable (fmap toDictionary dictionary)))
+                   (MonadIO m) => RTCIceCandidateInit -> m RTCIceCandidate
+newRTCIceCandidate candidateInitDict
+  = liftIO (js_newRTCIceCandidate candidateInitDict)
  
 foreign import javascript unsafe "$1[\"candidate\"]"
         js_getCandidate :: RTCIceCandidate -> IO JSString
@@ -46,19 +46,52 @@
 getCandidate ::
              (MonadIO m, FromJSString result) => RTCIceCandidate -> m result
 getCandidate self
-  = liftIO (fromJSString <$> (js_getCandidate (self)))
+  = liftIO (fromJSString <$> (js_getCandidate self))
  
 foreign import javascript unsafe "$1[\"sdpMid\"]" js_getSdpMid ::
-        RTCIceCandidate -> IO JSString
+        RTCIceCandidate -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate.sdpMid Mozilla RTCIceCandidate.sdpMid documentation> 
 getSdpMid ::
-          (MonadIO m, FromJSString result) => RTCIceCandidate -> m result
-getSdpMid self = liftIO (fromJSString <$> (js_getSdpMid (self)))
+          (MonadIO m, FromJSString result) =>
+            RTCIceCandidate -> m (Maybe result)
+getSdpMid self = liftIO (fromMaybeJSString <$> (js_getSdpMid self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate.sdpMid Mozilla RTCIceCandidate.sdpMid documentation> 
+getSdpMidUnsafe ::
+                (MonadIO m, HasCallStack, FromJSString result) =>
+                  RTCIceCandidate -> m result
+getSdpMidUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getSdpMid self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate.sdpMid Mozilla RTCIceCandidate.sdpMid documentation> 
+getSdpMidUnchecked ::
+                   (MonadIO m, FromJSString result) => RTCIceCandidate -> m result
+getSdpMidUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getSdpMid self))
  
 foreign import javascript unsafe "$1[\"sdpMLineIndex\"]"
-        js_getSdpMLineIndex :: RTCIceCandidate -> IO Word
+        js_getSdpMLineIndex :: RTCIceCandidate -> IO (Nullable Word)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate.sdpMLineIndex Mozilla RTCIceCandidate.sdpMLineIndex documentation> 
-getSdpMLineIndex :: (MonadIO m) => RTCIceCandidate -> m Word
-getSdpMLineIndex self = liftIO (js_getSdpMLineIndex (self))
+getSdpMLineIndex ::
+                 (MonadIO m) => RTCIceCandidate -> m (Maybe Word)
+getSdpMLineIndex self
+  = liftIO (nullableToMaybe <$> (js_getSdpMLineIndex self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate.sdpMLineIndex Mozilla RTCIceCandidate.sdpMLineIndex documentation> 
+getSdpMLineIndexUnsafe ::
+                       (MonadIO m, HasCallStack) => RTCIceCandidate -> m Word
+getSdpMLineIndexUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getSdpMLineIndex self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate.sdpMLineIndex Mozilla RTCIceCandidate.sdpMLineIndex documentation> 
+getSdpMLineIndexUnchecked ::
+                          (MonadIO m) => RTCIceCandidate -> m Word
+getSdpMLineIndexUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$> (js_getSdpMLineIndex self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCIceCandidateEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCIceCandidateEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCIceCandidateEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCIceCandidateEvent.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.RTCIceCandidateEvent
-       (js_getCandidate, getCandidate, getCandidateUnsafe,
-        getCandidateUnchecked, RTCIceCandidateEvent(..),
+       (js_getCandidate, getCandidate, RTCIceCandidateEvent(..),
         gTypeRTCIceCandidateEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,32 +20,16 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"candidate\"]"
-        js_getCandidate ::
-        RTCIceCandidateEvent -> IO (Nullable RTCIceCandidate)
+        js_getCandidate :: RTCIceCandidateEvent -> IO RTCIceCandidate
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidateEvent.candidate Mozilla RTCIceCandidateEvent.candidate documentation> 
 getCandidate ::
-             (MonadIO m) => RTCIceCandidateEvent -> m (Maybe RTCIceCandidate)
-getCandidate self
-  = liftIO (nullableToMaybe <$> (js_getCandidate (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidateEvent.candidate Mozilla RTCIceCandidateEvent.candidate documentation> 
-getCandidateUnsafe ::
-                   (MonadIO m, HasCallStack) =>
-                     RTCIceCandidateEvent -> m RTCIceCandidate
-getCandidateUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCandidate (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidateEvent.candidate Mozilla RTCIceCandidateEvent.candidate documentation> 
-getCandidateUnchecked ::
-                      (MonadIO m) => RTCIceCandidateEvent -> m RTCIceCandidate
-getCandidateUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCandidate (self)))
+             (MonadIO m) => RTCIceCandidateEvent -> m RTCIceCandidate
+getCandidate self = liftIO (js_getCandidate self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCIceServer.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCIceServer.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCIceServer.hs
+++ /dev/null
@@ -1,53 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.RTCIceServer
-       (js_getUrls, getUrls, js_getUsername, getUsername,
-        js_getCredential, getCredential, RTCIceServer(..),
-        gTypeRTCIceServer)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"urls\"]" js_getUrls ::
-        RTCIceServer -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer.urls Mozilla RTCIceServer.urls documentation> 
-getUrls ::
-        (MonadIO m, FromJSString result) => RTCIceServer -> m [result]
-getUrls self = liftIO ((js_getUrls (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"username\"]" js_getUsername
-        :: RTCIceServer -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer.username Mozilla RTCIceServer.username documentation> 
-getUsername ::
-            (MonadIO m, FromJSString result) => RTCIceServer -> m result
-getUsername self
-  = liftIO (fromJSString <$> (js_getUsername (self)))
- 
-foreign import javascript unsafe "$1[\"credential\"]"
-        js_getCredential :: RTCIceServer -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer.credential Mozilla RTCIceServer.credential documentation> 
-getCredential ::
-              (MonadIO m, FromJSString result) => RTCIceServer -> m result
-getCredential self
-  = liftIO (fromJSString <$> (js_getCredential (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCPeerConnection.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCPeerConnection.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCPeerConnection.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCPeerConnection.hs
@@ -4,37 +4,40 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.RTCPeerConnection
-       (js_newRTCPeerConnection, newRTCPeerConnection, js_createOffer,
-        createOffer, js_createAnswer, createAnswer, js_setLocalDescription,
+       (js_getSenders, getSenders, getSenders_, js_getReceivers,
+        getReceivers, getReceivers_, js_getTransceivers, getTransceivers,
+        getTransceivers_, js_addTrack, addTrack, addTrack_, js_removeTrack,
+        removeTrack, js_addTransceiverTrack, addTransceiverTrack,
+        addTransceiverTrack_, js_addTransceiver, addTransceiver,
+        addTransceiver_, js_getLocalStreams, getLocalStreams,
+        getLocalStreams_, js_getRemoteStreams, getRemoteStreams,
+        getRemoteStreams_, js_getStreamById, getStreamById, getStreamById_,
+        js_addStream, addStream, js_removeStream, removeStream,
+        js_createOffer, createOffer, createOffer_, js_createAnswer,
+        createAnswer, createAnswer_, js_setLocalDescription,
         setLocalDescription, js_setRemoteDescription, setRemoteDescription,
-        js_updateIce, updateIce, js_addIceCandidate, addIceCandidate,
-        js_getLocalStreams, getLocalStreams, getLocalStreams_,
-        js_getRemoteStreams, getRemoteStreams, getRemoteStreams_,
-        js_getStreamById, getStreamById, getStreamById_,
-        getStreamByIdUnsafe, getStreamByIdUnchecked, js_getConfiguration,
-        getConfiguration, getConfiguration_, getConfigurationUnsafe,
-        getConfigurationUnchecked, js_addStream, addStream,
-        js_removeStream, removeStream, js_getStats, getStats,
+        js_addIceCandidate, addIceCandidate, js_getConfiguration,
+        getConfiguration, getConfiguration_, js_setConfiguration,
+        setConfiguration, js_getStats, getStats, getStats_,
         js_createDataChannel, createDataChannel, createDataChannel_,
-        createDataChannelUnsafe, createDataChannelUnchecked,
-        js_createDTMFSender, createDTMFSender, createDTMFSender_,
-        createDTMFSenderUnsafe, createDTMFSenderUnchecked, js_close, close,
-        js_getLocalDescription, getLocalDescription,
-        getLocalDescriptionUnsafe, getLocalDescriptionUnchecked,
+        js_close, close, js_getLocalDescription, getLocalDescription,
+        js_getCurrentLocalDescription, getCurrentLocalDescription,
+        js_getPendingLocalDescription, getPendingLocalDescription,
         js_getRemoteDescription, getRemoteDescription,
-        getRemoteDescriptionUnsafe, getRemoteDescriptionUnchecked,
+        js_getCurrentRemoteDescription, getCurrentRemoteDescription,
+        js_getPendingRemoteDescription, getPendingRemoteDescription,
         js_getSignalingState, getSignalingState, js_getIceGatheringState,
         getIceGatheringState, js_getIceConnectionState,
         getIceConnectionState, negotiationNeeded, iceCandidate,
-        signalingStateChange, addStreamEvent, removeStreamEvent,
-        iceConnectionStateChange, dataChannel, RTCPeerConnection(..),
-        gTypeRTCPeerConnection)
+        signalingStateChange, track, iceConnectionStateChange,
+        icegatheringstatechange, dataChannel, addStreamEvent,
+        RTCPeerConnection(..), gTypeRTCPeerConnection)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -43,424 +46,389 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe
-        "new window[\"webkitRTCPeerConnection\"]($1)"
-        js_newRTCPeerConnection ::
-        Nullable Dictionary -> IO RTCPeerConnection
+foreign import javascript unsafe "$1[\"getSenders\"]()"
+        js_getSenders :: RTCPeerConnection -> IO JSVal
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection Mozilla webkitRTCPeerConnection documentation> 
-newRTCPeerConnection ::
-                     (MonadIO m, IsDictionary rtcConfiguration) =>
-                       Maybe rtcConfiguration -> m RTCPeerConnection
-newRTCPeerConnection rtcConfiguration
-  = liftIO
-      (js_newRTCPeerConnection
-         (maybeToNullable (fmap toDictionary rtcConfiguration)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getSenders Mozilla webkitRTCPeerConnection.getSenders documentation> 
+getSenders :: (MonadIO m) => RTCPeerConnection -> m [RTCRtpSender]
+getSenders self
+  = liftIO ((js_getSenders self) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getSenders Mozilla webkitRTCPeerConnection.getSenders documentation> 
+getSenders_ :: (MonadIO m) => RTCPeerConnection -> m ()
+getSenders_ self = liftIO (void (js_getSenders self))
  
-foreign import javascript unsafe "$1[\"createOffer\"]($2, $3, $4)"
-        js_createOffer ::
-        RTCPeerConnection ->
-          Nullable RTCSessionDescriptionCallback ->
-            Nullable RTCPeerConnectionErrorCallback ->
-              Nullable Dictionary -> IO ()
+foreign import javascript unsafe "$1[\"getReceivers\"]()"
+        js_getReceivers :: RTCPeerConnection -> IO JSVal
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createOffer Mozilla webkitRTCPeerConnection.createOffer documentation> 
-createOffer ::
-            (MonadIO m, IsDictionary offerOptions) =>
-              RTCPeerConnection ->
-                Maybe RTCSessionDescriptionCallback ->
-                  Maybe RTCPeerConnectionErrorCallback -> Maybe offerOptions -> m ()
-createOffer self successCallback failureCallback offerOptions
-  = liftIO
-      (js_createOffer (self) (maybeToNullable successCallback)
-         (maybeToNullable failureCallback)
-         (maybeToNullable (fmap toDictionary offerOptions)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getReceivers Mozilla webkitRTCPeerConnection.getReceivers documentation> 
+getReceivers ::
+             (MonadIO m) => RTCPeerConnection -> m [RTCRtpReceiver]
+getReceivers self
+  = liftIO ((js_getReceivers self) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getReceivers Mozilla webkitRTCPeerConnection.getReceivers documentation> 
+getReceivers_ :: (MonadIO m) => RTCPeerConnection -> m ()
+getReceivers_ self = liftIO (void (js_getReceivers self))
  
-foreign import javascript unsafe "$1[\"createAnswer\"]($2, $3, $4)"
-        js_createAnswer ::
-        RTCPeerConnection ->
-          Nullable RTCSessionDescriptionCallback ->
-            Nullable RTCPeerConnectionErrorCallback ->
-              Nullable Dictionary -> IO ()
+foreign import javascript unsafe "$1[\"getTransceivers\"]()"
+        js_getTransceivers :: RTCPeerConnection -> IO JSVal
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createAnswer Mozilla webkitRTCPeerConnection.createAnswer documentation> 
-createAnswer ::
-             (MonadIO m, IsDictionary answerOptions) =>
-               RTCPeerConnection ->
-                 Maybe RTCSessionDescriptionCallback ->
-                   Maybe RTCPeerConnectionErrorCallback -> Maybe answerOptions -> m ()
-createAnswer self successCallback failureCallback answerOptions
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getTransceivers Mozilla webkitRTCPeerConnection.getTransceivers documentation> 
+getTransceivers ::
+                (MonadIO m) => RTCPeerConnection -> m [RTCRtpTransceiver]
+getTransceivers self
+  = liftIO ((js_getTransceivers self) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getTransceivers Mozilla webkitRTCPeerConnection.getTransceivers documentation> 
+getTransceivers_ :: (MonadIO m) => RTCPeerConnection -> m ()
+getTransceivers_ self = liftIO (void (js_getTransceivers self))
+ 
+foreign import javascript unsafe "$1[\"addTrack\"]($2, $3)"
+        js_addTrack ::
+        RTCPeerConnection -> MediaStreamTrack -> JSVal -> IO RTCRtpSender
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.addTrack Mozilla webkitRTCPeerConnection.addTrack documentation> 
+addTrack ::
+         (MonadIO m) =>
+           RTCPeerConnection ->
+             MediaStreamTrack -> [MediaStream] -> m RTCRtpSender
+addTrack self track streams
   = liftIO
-      (js_createAnswer (self) (maybeToNullable successCallback)
-         (maybeToNullable failureCallback)
-         (maybeToNullable (fmap toDictionary answerOptions)))
+      (toJSVal streams >>= \ streams' -> js_addTrack self track streams')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.addTrack Mozilla webkitRTCPeerConnection.addTrack documentation> 
+addTrack_ ::
+          (MonadIO m) =>
+            RTCPeerConnection -> MediaStreamTrack -> [MediaStream] -> m ()
+addTrack_ self track streams
+  = liftIO
+      (void
+         (toJSVal streams >>=
+            \ streams' -> js_addTrack self track streams'))
  
-foreign import javascript unsafe
-        "$1[\"setLocalDescription\"]($2,\n$3, $4)" js_setLocalDescription
-        ::
+foreign import javascript unsafe "$1[\"removeTrack\"]($2)"
+        js_removeTrack :: RTCPeerConnection -> RTCRtpSender -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.removeTrack Mozilla webkitRTCPeerConnection.removeTrack documentation> 
+removeTrack ::
+            (MonadIO m) => RTCPeerConnection -> RTCRtpSender -> m ()
+removeTrack self sender = liftIO (js_removeTrack self sender)
+ 
+foreign import javascript unsafe "$1[\"addTransceiver\"]($2, $3)"
+        js_addTransceiverTrack ::
         RTCPeerConnection ->
-          Nullable RTCSessionDescription ->
-            Nullable VoidCallback ->
-              Nullable RTCPeerConnectionErrorCallback -> IO ()
+          MediaStreamTrack ->
+            Optional RTCRtpTransceiverInit -> IO RTCRtpTransceiver
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.setLocalDescription Mozilla webkitRTCPeerConnection.setLocalDescription documentation> 
-setLocalDescription ::
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.addTransceiver Mozilla webkitRTCPeerConnection.addTransceiver documentation> 
+addTransceiverTrack ::
                     (MonadIO m) =>
                       RTCPeerConnection ->
-                        Maybe RTCSessionDescription ->
-                          Maybe VoidCallback -> Maybe RTCPeerConnectionErrorCallback -> m ()
-setLocalDescription self description successCallback
-  failureCallback
-  = liftIO
-      (js_setLocalDescription (self) (maybeToNullable description)
-         (maybeToNullable successCallback)
-         (maybeToNullable failureCallback))
- 
-foreign import javascript unsafe
-        "$1[\"setRemoteDescription\"]($2,\n$3, $4)" js_setRemoteDescription
-        ::
-        RTCPeerConnection ->
-          Nullable RTCSessionDescription ->
-            Nullable VoidCallback ->
-              Nullable RTCPeerConnectionErrorCallback -> IO ()
+                        MediaStreamTrack ->
+                          Maybe RTCRtpTransceiverInit -> m RTCRtpTransceiver
+addTransceiverTrack self track init
+  = liftIO (js_addTransceiverTrack self track (maybeToOptional init))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.setRemoteDescription Mozilla webkitRTCPeerConnection.setRemoteDescription documentation> 
-setRemoteDescription ::
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.addTransceiver Mozilla webkitRTCPeerConnection.addTransceiver documentation> 
+addTransceiverTrack_ ::
                      (MonadIO m) =>
                        RTCPeerConnection ->
-                         Maybe RTCSessionDescription ->
-                           Maybe VoidCallback -> Maybe RTCPeerConnectionErrorCallback -> m ()
-setRemoteDescription self description successCallback
-  failureCallback
+                         MediaStreamTrack -> Maybe RTCRtpTransceiverInit -> m ()
+addTransceiverTrack_ self track init
   = liftIO
-      (js_setRemoteDescription (self) (maybeToNullable description)
-         (maybeToNullable successCallback)
-         (maybeToNullable failureCallback))
+      (void (js_addTransceiverTrack self track (maybeToOptional init)))
  
-foreign import javascript unsafe "$1[\"updateIce\"]($2)"
-        js_updateIce :: RTCPeerConnection -> Nullable Dictionary -> IO ()
+foreign import javascript unsafe "$1[\"addTransceiver\"]($2, $3)"
+        js_addTransceiver ::
+        RTCPeerConnection ->
+          JSString -> Optional RTCRtpTransceiverInit -> IO RTCRtpTransceiver
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.updateIce Mozilla webkitRTCPeerConnection.updateIce documentation> 
-updateIce ::
-          (MonadIO m, IsDictionary configuration) =>
-            RTCPeerConnection -> Maybe configuration -> m ()
-updateIce self configuration
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.addTransceiver Mozilla webkitRTCPeerConnection.addTransceiver documentation> 
+addTransceiver ::
+               (MonadIO m, ToJSString kind) =>
+                 RTCPeerConnection ->
+                   kind -> Maybe RTCRtpTransceiverInit -> m RTCRtpTransceiver
+addTransceiver self kind init
   = liftIO
-      (js_updateIce (self)
-         (maybeToNullable (fmap toDictionary configuration)))
- 
-foreign import javascript unsafe
-        "$1[\"addIceCandidate\"]($2, $3,\n$4)" js_addIceCandidate ::
-        RTCPeerConnection ->
-          Nullable RTCIceCandidate ->
-            Nullable VoidCallback ->
-              Nullable RTCPeerConnectionErrorCallback -> IO ()
+      (js_addTransceiver self (toJSString kind) (maybeToOptional init))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.addIceCandidate Mozilla webkitRTCPeerConnection.addIceCandidate documentation> 
-addIceCandidate ::
-                (MonadIO m) =>
-                  RTCPeerConnection ->
-                    Maybe RTCIceCandidate ->
-                      Maybe VoidCallback -> Maybe RTCPeerConnectionErrorCallback -> m ()
-addIceCandidate self candidate successCallback failureCallback
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.addTransceiver Mozilla webkitRTCPeerConnection.addTransceiver documentation> 
+addTransceiver_ ::
+                (MonadIO m, ToJSString kind) =>
+                  RTCPeerConnection -> kind -> Maybe RTCRtpTransceiverInit -> m ()
+addTransceiver_ self kind init
   = liftIO
-      (js_addIceCandidate (self) (maybeToNullable candidate)
-         (maybeToNullable successCallback)
-         (maybeToNullable failureCallback))
+      (void
+         (js_addTransceiver self (toJSString kind) (maybeToOptional init)))
  
 foreign import javascript unsafe "$1[\"getLocalStreams\"]()"
         js_getLocalStreams :: RTCPeerConnection -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getLocalStreams Mozilla webkitRTCPeerConnection.getLocalStreams documentation> 
 getLocalStreams ::
-                (MonadIO m) => RTCPeerConnection -> m [Maybe MediaStream]
+                (MonadIO m) => RTCPeerConnection -> m [MediaStream]
 getLocalStreams self
-  = liftIO ((js_getLocalStreams (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_getLocalStreams self) >>= fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getLocalStreams Mozilla webkitRTCPeerConnection.getLocalStreams documentation> 
 getLocalStreams_ :: (MonadIO m) => RTCPeerConnection -> m ()
-getLocalStreams_ self = liftIO (void (js_getLocalStreams (self)))
+getLocalStreams_ self = liftIO (void (js_getLocalStreams self))
  
 foreign import javascript unsafe "$1[\"getRemoteStreams\"]()"
         js_getRemoteStreams :: RTCPeerConnection -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getRemoteStreams Mozilla webkitRTCPeerConnection.getRemoteStreams documentation> 
 getRemoteStreams ::
-                 (MonadIO m) => RTCPeerConnection -> m [Maybe MediaStream]
+                 (MonadIO m) => RTCPeerConnection -> m [MediaStream]
 getRemoteStreams self
-  = liftIO ((js_getRemoteStreams (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_getRemoteStreams self) >>= fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getRemoteStreams Mozilla webkitRTCPeerConnection.getRemoteStreams documentation> 
 getRemoteStreams_ :: (MonadIO m) => RTCPeerConnection -> m ()
-getRemoteStreams_ self = liftIO (void (js_getRemoteStreams (self)))
+getRemoteStreams_ self = liftIO (void (js_getRemoteStreams self))
  
 foreign import javascript unsafe "$1[\"getStreamById\"]($2)"
-        js_getStreamById ::
-        RTCPeerConnection -> JSString -> IO (Nullable MediaStream)
+        js_getStreamById :: RTCPeerConnection -> JSString -> IO MediaStream
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getStreamById Mozilla webkitRTCPeerConnection.getStreamById documentation> 
 getStreamById ::
               (MonadIO m, ToJSString streamId) =>
-                RTCPeerConnection -> streamId -> m (Maybe MediaStream)
+                RTCPeerConnection -> streamId -> m MediaStream
 getStreamById self streamId
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getStreamById (self) (toJSString streamId)))
+  = liftIO (js_getStreamById self (toJSString streamId))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getStreamById Mozilla webkitRTCPeerConnection.getStreamById documentation> 
 getStreamById_ ::
                (MonadIO m, ToJSString streamId) =>
                  RTCPeerConnection -> streamId -> m ()
 getStreamById_ self streamId
-  = liftIO (void (js_getStreamById (self) (toJSString streamId)))
+  = liftIO (void (js_getStreamById self (toJSString streamId)))
+ 
+foreign import javascript unsafe "$1[\"addStream\"]($2)"
+        js_addStream :: RTCPeerConnection -> MediaStream -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getStreamById Mozilla webkitRTCPeerConnection.getStreamById documentation> 
-getStreamByIdUnsafe ::
-                    (MonadIO m, ToJSString streamId, HasCallStack) =>
-                      RTCPeerConnection -> streamId -> m MediaStream
-getStreamByIdUnsafe self streamId
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.addStream Mozilla webkitRTCPeerConnection.addStream documentation> 
+addStream ::
+          (MonadIO m) => RTCPeerConnection -> MediaStream -> m ()
+addStream self stream = liftIO (js_addStream self stream)
+ 
+foreign import javascript unsafe "$1[\"removeStream\"]($2)"
+        js_removeStream :: RTCPeerConnection -> MediaStream -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.removeStream Mozilla webkitRTCPeerConnection.removeStream documentation> 
+removeStream ::
+             (MonadIO m) => RTCPeerConnection -> MediaStream -> m ()
+removeStream self stream = liftIO (js_removeStream self stream)
+ 
+foreign import javascript interruptible
+        "$1[\"createOffer\"]($2).then($c);" js_createOffer ::
+        RTCPeerConnection ->
+          Optional RTCOfferOptions -> IO RTCSessionDescriptionInit
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createOffer Mozilla webkitRTCPeerConnection.createOffer documentation> 
+createOffer ::
+            (MonadIO m) =>
+              RTCPeerConnection ->
+                Maybe RTCOfferOptions -> m RTCSessionDescriptionInit
+createOffer self offerOptions
+  = liftIO (js_createOffer self (maybeToOptional offerOptions))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createOffer Mozilla webkitRTCPeerConnection.createOffer documentation> 
+createOffer_ ::
+             (MonadIO m) => RTCPeerConnection -> Maybe RTCOfferOptions -> m ()
+createOffer_ self offerOptions
   = liftIO
-      ((nullableToMaybe <$>
-          (js_getStreamById (self) (toJSString streamId)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+      (void (js_createOffer self (maybeToOptional offerOptions)))
+ 
+foreign import javascript interruptible
+        "$1[\"createAnswer\"]($2).then($c);" js_createAnswer ::
+        RTCPeerConnection ->
+          Optional RTCAnswerOptions -> IO RTCSessionDescriptionInit
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getStreamById Mozilla webkitRTCPeerConnection.getStreamById documentation> 
-getStreamByIdUnchecked ::
-                       (MonadIO m, ToJSString streamId) =>
-                         RTCPeerConnection -> streamId -> m MediaStream
-getStreamByIdUnchecked self streamId
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createAnswer Mozilla webkitRTCPeerConnection.createAnswer documentation> 
+createAnswer ::
+             (MonadIO m) =>
+               RTCPeerConnection ->
+                 Maybe RTCAnswerOptions -> m RTCSessionDescriptionInit
+createAnswer self answerOptions
+  = liftIO (js_createAnswer self (maybeToOptional answerOptions))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createAnswer Mozilla webkitRTCPeerConnection.createAnswer documentation> 
+createAnswer_ ::
+              (MonadIO m) => RTCPeerConnection -> Maybe RTCAnswerOptions -> m ()
+createAnswer_ self answerOptions
   = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getStreamById (self) (toJSString streamId)))
+      (void (js_createAnswer self (maybeToOptional answerOptions)))
  
+foreign import javascript interruptible
+        "$1[\"setLocalDescription\"]($2).\nthen($c);"
+        js_setLocalDescription ::
+        RTCPeerConnection -> RTCSessionDescription -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.setLocalDescription Mozilla webkitRTCPeerConnection.setLocalDescription documentation> 
+setLocalDescription ::
+                    (MonadIO m) => RTCPeerConnection -> RTCSessionDescription -> m ()
+setLocalDescription self description
+  = liftIO (js_setLocalDescription self description)
+ 
+foreign import javascript interruptible
+        "$1[\"setRemoteDescription\"]($2).\nthen($c);"
+        js_setRemoteDescription ::
+        RTCPeerConnection -> RTCSessionDescription -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.setRemoteDescription Mozilla webkitRTCPeerConnection.setRemoteDescription documentation> 
+setRemoteDescription ::
+                     (MonadIO m) => RTCPeerConnection -> RTCSessionDescription -> m ()
+setRemoteDescription self description
+  = liftIO (js_setRemoteDescription self description)
+ 
+foreign import javascript interruptible
+        "$1[\"addIceCandidate\"]($2).\nthen($c);" js_addIceCandidate ::
+        RTCPeerConnection -> RTCIceCandidate -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.addIceCandidate Mozilla webkitRTCPeerConnection.addIceCandidate documentation> 
+addIceCandidate ::
+                (MonadIO m) => RTCPeerConnection -> RTCIceCandidate -> m ()
+addIceCandidate self candidate
+  = liftIO (js_addIceCandidate self candidate)
+ 
 foreign import javascript unsafe "$1[\"getConfiguration\"]()"
-        js_getConfiguration ::
-        RTCPeerConnection -> IO (Nullable RTCConfiguration)
+        js_getConfiguration :: RTCPeerConnection -> IO RTCConfiguration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getConfiguration Mozilla webkitRTCPeerConnection.getConfiguration documentation> 
 getConfiguration ::
-                 (MonadIO m) => RTCPeerConnection -> m (Maybe RTCConfiguration)
-getConfiguration self
-  = liftIO (nullableToMaybe <$> (js_getConfiguration (self)))
+                 (MonadIO m) => RTCPeerConnection -> m RTCConfiguration
+getConfiguration self = liftIO (js_getConfiguration self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getConfiguration Mozilla webkitRTCPeerConnection.getConfiguration documentation> 
 getConfiguration_ :: (MonadIO m) => RTCPeerConnection -> m ()
-getConfiguration_ self = liftIO (void (js_getConfiguration (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getConfiguration Mozilla webkitRTCPeerConnection.getConfiguration documentation> 
-getConfigurationUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         RTCPeerConnection -> m RTCConfiguration
-getConfigurationUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getConfiguration (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getConfiguration Mozilla webkitRTCPeerConnection.getConfiguration documentation> 
-getConfigurationUnchecked ::
-                          (MonadIO m) => RTCPeerConnection -> m RTCConfiguration
-getConfigurationUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getConfiguration (self)))
- 
-foreign import javascript unsafe "$1[\"addStream\"]($2)"
-        js_addStream :: RTCPeerConnection -> Nullable MediaStream -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.addStream Mozilla webkitRTCPeerConnection.addStream documentation> 
-addStream ::
-          (MonadIO m) => RTCPeerConnection -> Maybe MediaStream -> m ()
-addStream self stream
-  = liftIO (js_addStream (self) (maybeToNullable stream))
+getConfiguration_ self = liftIO (void (js_getConfiguration self))
  
-foreign import javascript unsafe "$1[\"removeStream\"]($2)"
-        js_removeStream ::
-        RTCPeerConnection -> Nullable MediaStream -> IO ()
+foreign import javascript unsafe "$1[\"setConfiguration\"]($2)"
+        js_setConfiguration ::
+        RTCPeerConnection -> RTCConfiguration -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.removeStream Mozilla webkitRTCPeerConnection.removeStream documentation> 
-removeStream ::
-             (MonadIO m) => RTCPeerConnection -> Maybe MediaStream -> m ()
-removeStream self stream
-  = liftIO (js_removeStream (self) (maybeToNullable stream))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.setConfiguration Mozilla webkitRTCPeerConnection.setConfiguration documentation> 
+setConfiguration ::
+                 (MonadIO m) => RTCPeerConnection -> RTCConfiguration -> m ()
+setConfiguration self configuration
+  = liftIO (js_setConfiguration self configuration)
  
-foreign import javascript unsafe "$1[\"getStats\"]($2, $3, $4)"
-        js_getStats ::
-        RTCPeerConnection ->
-          Nullable RTCStatsCallback ->
-            Nullable RTCPeerConnectionErrorCallback ->
-              Nullable MediaStreamTrack -> IO ()
+foreign import javascript interruptible
+        "$1[\"getStats\"]($2).then($c);" js_getStats ::
+        RTCPeerConnection -> Optional MediaStreamTrack -> IO RTCStatsReport
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getStats Mozilla webkitRTCPeerConnection.getStats documentation> 
 getStats ::
-         (MonadIO m, IsMediaStreamTrack selector) =>
-           RTCPeerConnection ->
-             Maybe RTCStatsCallback ->
-               Maybe RTCPeerConnectionErrorCallback -> Maybe selector -> m ()
-getStats self successCallback failureCallback selector
-  = liftIO
-      (js_getStats (self) (maybeToNullable successCallback)
-         (maybeToNullable failureCallback)
-         (maybeToNullable (fmap toMediaStreamTrack selector)))
+         (MonadIO m) =>
+           RTCPeerConnection -> Maybe MediaStreamTrack -> m RTCStatsReport
+getStats self selector
+  = liftIO (js_getStats self (maybeToOptional selector))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.getStats Mozilla webkitRTCPeerConnection.getStats documentation> 
+getStats_ ::
+          (MonadIO m) => RTCPeerConnection -> Maybe MediaStreamTrack -> m ()
+getStats_ self selector
+  = liftIO (void (js_getStats self (maybeToOptional selector)))
  
 foreign import javascript unsafe
         "$1[\"createDataChannel\"]($2, $3)" js_createDataChannel ::
         RTCPeerConnection ->
-          Nullable JSString ->
-            Nullable Dictionary -> IO (Nullable RTCDataChannel)
+          Optional JSString ->
+            Optional RTCDataChannelInit -> IO RTCDataChannel
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createDataChannel Mozilla webkitRTCPeerConnection.createDataChannel documentation> 
 createDataChannel ::
-                  (MonadIO m, ToJSString label, IsDictionary options) =>
+                  (MonadIO m, ToJSString label) =>
                     RTCPeerConnection ->
-                      Maybe label -> Maybe options -> m (Maybe RTCDataChannel)
+                      Maybe label -> Maybe RTCDataChannelInit -> m RTCDataChannel
 createDataChannel self label options
   = liftIO
-      (nullableToMaybe <$>
-         (js_createDataChannel (self) (toMaybeJSString label)
-            (maybeToNullable (fmap toDictionary options))))
+      (js_createDataChannel self (toOptionalJSString label)
+         (maybeToOptional options))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createDataChannel Mozilla webkitRTCPeerConnection.createDataChannel documentation> 
 createDataChannel_ ::
-                   (MonadIO m, ToJSString label, IsDictionary options) =>
-                     RTCPeerConnection -> Maybe label -> Maybe options -> m ()
+                   (MonadIO m, ToJSString label) =>
+                     RTCPeerConnection ->
+                       Maybe label -> Maybe RTCDataChannelInit -> m ()
 createDataChannel_ self label options
   = liftIO
       (void
-         (js_createDataChannel (self) (toMaybeJSString label)
-            (maybeToNullable (fmap toDictionary options))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createDataChannel Mozilla webkitRTCPeerConnection.createDataChannel documentation> 
-createDataChannelUnsafe ::
-                        (MonadIO m, ToJSString label, IsDictionary options,
-                         HasCallStack) =>
-                          RTCPeerConnection ->
-                            Maybe label -> Maybe options -> m RTCDataChannel
-createDataChannelUnsafe self label options
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createDataChannel (self) (toMaybeJSString label)
-             (maybeToNullable (fmap toDictionary options))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createDataChannel Mozilla webkitRTCPeerConnection.createDataChannel documentation> 
-createDataChannelUnchecked ::
-                           (MonadIO m, ToJSString label, IsDictionary options) =>
-                             RTCPeerConnection ->
-                               Maybe label -> Maybe options -> m RTCDataChannel
-createDataChannelUnchecked self label options
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createDataChannel (self) (toMaybeJSString label)
-            (maybeToNullable (fmap toDictionary options))))
- 
-foreign import javascript unsafe "$1[\"createDTMFSender\"]($2)"
-        js_createDTMFSender ::
-        RTCPeerConnection ->
-          Nullable MediaStreamTrack -> IO (Nullable RTCDTMFSender)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createDTMFSender Mozilla webkitRTCPeerConnection.createDTMFSender documentation> 
-createDTMFSender ::
-                 (MonadIO m, IsMediaStreamTrack track) =>
-                   RTCPeerConnection -> Maybe track -> m (Maybe RTCDTMFSender)
-createDTMFSender self track
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createDTMFSender (self)
-            (maybeToNullable (fmap toMediaStreamTrack track))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createDTMFSender Mozilla webkitRTCPeerConnection.createDTMFSender documentation> 
-createDTMFSender_ ::
-                  (MonadIO m, IsMediaStreamTrack track) =>
-                    RTCPeerConnection -> Maybe track -> m ()
-createDTMFSender_ self track
-  = liftIO
-      (void
-         (js_createDTMFSender (self)
-            (maybeToNullable (fmap toMediaStreamTrack track))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createDTMFSender Mozilla webkitRTCPeerConnection.createDTMFSender documentation> 
-createDTMFSenderUnsafe ::
-                       (MonadIO m, IsMediaStreamTrack track, HasCallStack) =>
-                         RTCPeerConnection -> Maybe track -> m RTCDTMFSender
-createDTMFSenderUnsafe self track
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createDTMFSender (self)
-             (maybeToNullable (fmap toMediaStreamTrack track))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.createDTMFSender Mozilla webkitRTCPeerConnection.createDTMFSender documentation> 
-createDTMFSenderUnchecked ::
-                          (MonadIO m, IsMediaStreamTrack track) =>
-                            RTCPeerConnection -> Maybe track -> m RTCDTMFSender
-createDTMFSenderUnchecked self track
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createDTMFSender (self)
-            (maybeToNullable (fmap toMediaStreamTrack track))))
+         (js_createDataChannel self (toOptionalJSString label)
+            (maybeToOptional options)))
  
 foreign import javascript unsafe "$1[\"close\"]()" js_close ::
         RTCPeerConnection -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.close Mozilla webkitRTCPeerConnection.close documentation> 
 close :: (MonadIO m) => RTCPeerConnection -> m ()
-close self = liftIO (js_close (self))
+close self = liftIO (js_close self)
  
 foreign import javascript unsafe "$1[\"localDescription\"]"
         js_getLocalDescription ::
-        RTCPeerConnection -> IO (Nullable RTCSessionDescription)
+        RTCPeerConnection -> IO RTCSessionDescription
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.localDescription Mozilla webkitRTCPeerConnection.localDescription documentation> 
 getLocalDescription ::
-                    (MonadIO m) => RTCPeerConnection -> m (Maybe RTCSessionDescription)
-getLocalDescription self
-  = liftIO (nullableToMaybe <$> (js_getLocalDescription (self)))
+                    (MonadIO m) => RTCPeerConnection -> m RTCSessionDescription
+getLocalDescription self = liftIO (js_getLocalDescription self)
+ 
+foreign import javascript unsafe "$1[\"currentLocalDescription\"]"
+        js_getCurrentLocalDescription ::
+        RTCPeerConnection -> IO RTCSessionDescription
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.localDescription Mozilla webkitRTCPeerConnection.localDescription documentation> 
-getLocalDescriptionUnsafe ::
-                          (MonadIO m, HasCallStack) =>
-                            RTCPeerConnection -> m RTCSessionDescription
-getLocalDescriptionUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLocalDescription (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.currentLocalDescription Mozilla webkitRTCPeerConnection.currentLocalDescription documentation> 
+getCurrentLocalDescription ::
+                           (MonadIO m) => RTCPeerConnection -> m RTCSessionDescription
+getCurrentLocalDescription self
+  = liftIO (js_getCurrentLocalDescription self)
+ 
+foreign import javascript unsafe "$1[\"pendingLocalDescription\"]"
+        js_getPendingLocalDescription ::
+        RTCPeerConnection -> IO RTCSessionDescription
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.localDescription Mozilla webkitRTCPeerConnection.localDescription documentation> 
-getLocalDescriptionUnchecked ::
-                             (MonadIO m) => RTCPeerConnection -> m RTCSessionDescription
-getLocalDescriptionUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getLocalDescription (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.pendingLocalDescription Mozilla webkitRTCPeerConnection.pendingLocalDescription documentation> 
+getPendingLocalDescription ::
+                           (MonadIO m) => RTCPeerConnection -> m RTCSessionDescription
+getPendingLocalDescription self
+  = liftIO (js_getPendingLocalDescription self)
  
 foreign import javascript unsafe "$1[\"remoteDescription\"]"
         js_getRemoteDescription ::
-        RTCPeerConnection -> IO (Nullable RTCSessionDescription)
+        RTCPeerConnection -> IO RTCSessionDescription
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.remoteDescription Mozilla webkitRTCPeerConnection.remoteDescription documentation> 
 getRemoteDescription ::
-                     (MonadIO m) => RTCPeerConnection -> m (Maybe RTCSessionDescription)
-getRemoteDescription self
-  = liftIO (nullableToMaybe <$> (js_getRemoteDescription (self)))
+                     (MonadIO m) => RTCPeerConnection -> m RTCSessionDescription
+getRemoteDescription self = liftIO (js_getRemoteDescription self)
+ 
+foreign import javascript unsafe "$1[\"currentRemoteDescription\"]"
+        js_getCurrentRemoteDescription ::
+        RTCPeerConnection -> IO RTCSessionDescription
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.remoteDescription Mozilla webkitRTCPeerConnection.remoteDescription documentation> 
-getRemoteDescriptionUnsafe ::
-                           (MonadIO m, HasCallStack) =>
-                             RTCPeerConnection -> m RTCSessionDescription
-getRemoteDescriptionUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRemoteDescription (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.currentRemoteDescription Mozilla webkitRTCPeerConnection.currentRemoteDescription documentation> 
+getCurrentRemoteDescription ::
+                            (MonadIO m) => RTCPeerConnection -> m RTCSessionDescription
+getCurrentRemoteDescription self
+  = liftIO (js_getCurrentRemoteDescription self)
+ 
+foreign import javascript unsafe "$1[\"pendingRemoteDescription\"]"
+        js_getPendingRemoteDescription ::
+        RTCPeerConnection -> IO RTCSessionDescription
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.remoteDescription Mozilla webkitRTCPeerConnection.remoteDescription documentation> 
-getRemoteDescriptionUnchecked ::
-                              (MonadIO m) => RTCPeerConnection -> m RTCSessionDescription
-getRemoteDescriptionUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRemoteDescription (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.pendingRemoteDescription Mozilla webkitRTCPeerConnection.pendingRemoteDescription documentation> 
+getPendingRemoteDescription ::
+                            (MonadIO m) => RTCPeerConnection -> m RTCSessionDescription
+getPendingRemoteDescription self
+  = liftIO (js_getPendingRemoteDescription self)
  
 foreign import javascript unsafe "$1[\"signalingState\"]"
         js_getSignalingState :: RTCPeerConnection -> IO JSString
@@ -469,7 +437,7 @@
 getSignalingState ::
                   (MonadIO m, FromJSString result) => RTCPeerConnection -> m result
 getSignalingState self
-  = liftIO (fromJSString <$> (js_getSignalingState (self)))
+  = liftIO (fromJSString <$> (js_getSignalingState self))
  
 foreign import javascript unsafe "$1[\"iceGatheringState\"]"
         js_getIceGatheringState :: RTCPeerConnection -> IO JSString
@@ -478,7 +446,7 @@
 getIceGatheringState ::
                      (MonadIO m, FromJSString result) => RTCPeerConnection -> m result
 getIceGatheringState self
-  = liftIO (fromJSString <$> (js_getIceGatheringState (self)))
+  = liftIO (fromJSString <$> (js_getIceGatheringState self))
  
 foreign import javascript unsafe "$1[\"iceConnectionState\"]"
         js_getIceConnectionState :: RTCPeerConnection -> IO JSString
@@ -487,7 +455,7 @@
 getIceConnectionState ::
                       (MonadIO m, FromJSString result) => RTCPeerConnection -> m result
 getIceConnectionState self
-  = liftIO (fromJSString <$> (js_getIceConnectionState (self)))
+  = liftIO (fromJSString <$> (js_getIceConnectionState self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.onnegotiationneeded Mozilla webkitRTCPeerConnection.onnegotiationneeded documentation> 
 negotiationNeeded :: EventName RTCPeerConnection Event
@@ -503,19 +471,25 @@
 signalingStateChange
   = unsafeEventName (toJSString "signalingstatechange")
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.onaddstream Mozilla webkitRTCPeerConnection.onaddstream documentation> 
-addStreamEvent :: EventName RTCPeerConnection Event
-addStreamEvent = unsafeEventName (toJSString "addstream")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.onremovestream Mozilla webkitRTCPeerConnection.onremovestream documentation> 
-removeStreamEvent :: EventName RTCPeerConnection Event
-removeStreamEvent = unsafeEventName (toJSString "removestream")
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.ontrack Mozilla webkitRTCPeerConnection.ontrack documentation> 
+track :: EventName RTCPeerConnection ontrack
+track = unsafeEventName (toJSString "track")
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.oniceconnectionstatechange Mozilla webkitRTCPeerConnection.oniceconnectionstatechange documentation> 
 iceConnectionStateChange :: EventName RTCPeerConnection Event
 iceConnectionStateChange
   = unsafeEventName (toJSString "iceconnectionstatechange")
 
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.onicegatheringstatechange Mozilla webkitRTCPeerConnection.onicegatheringstatechange documentation> 
+icegatheringstatechange ::
+                          EventName RTCPeerConnection onicegatheringstatechange
+icegatheringstatechange
+  = unsafeEventName (toJSString "icegatheringstatechange")
+
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.ondatachannel Mozilla webkitRTCPeerConnection.ondatachannel documentation> 
 dataChannel :: EventName RTCPeerConnection Event
 dataChannel = unsafeEventName (toJSString "datachannel")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection.onaddstream Mozilla webkitRTCPeerConnection.onaddstream documentation> 
+addStreamEvent :: EventName RTCPeerConnection Event
+addStreamEvent = unsafeEventName (toJSString "addstream")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCPeerConnectionErrorCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCPeerConnectionErrorCallback.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCPeerConnectionErrorCallback.hs
+++ /dev/null
@@ -1,63 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.RTCPeerConnectionErrorCallback
-       (newRTCPeerConnectionErrorCallback,
-        newRTCPeerConnectionErrorCallbackSync,
-        newRTCPeerConnectionErrorCallbackAsync,
-        RTCPeerConnectionErrorCallback)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnectionErrorCallback Mozilla RTCPeerConnectionErrorCallback documentation> 
-newRTCPeerConnectionErrorCallback ::
-                                  (MonadIO m) =>
-                                    (Maybe DOMError -> IO ()) -> m RTCPeerConnectionErrorCallback
-newRTCPeerConnectionErrorCallback callback
-  = liftIO
-      (RTCPeerConnectionErrorCallback <$>
-         syncCallback1 ThrowWouldBlock
-           (\ error ->
-              fromJSValUnchecked error >>= \ error' -> callback error'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnectionErrorCallback Mozilla RTCPeerConnectionErrorCallback documentation> 
-newRTCPeerConnectionErrorCallbackSync ::
-                                      (MonadIO m) =>
-                                        (Maybe DOMError -> IO ()) ->
-                                          m RTCPeerConnectionErrorCallback
-newRTCPeerConnectionErrorCallbackSync callback
-  = liftIO
-      (RTCPeerConnectionErrorCallback <$>
-         syncCallback1 ContinueAsync
-           (\ error ->
-              fromJSValUnchecked error >>= \ error' -> callback error'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnectionErrorCallback Mozilla RTCPeerConnectionErrorCallback documentation> 
-newRTCPeerConnectionErrorCallbackAsync ::
-                                       (MonadIO m) =>
-                                         (Maybe DOMError -> IO ()) ->
-                                           m RTCPeerConnectionErrorCallback
-newRTCPeerConnectionErrorCallbackAsync callback
-  = liftIO
-      (RTCPeerConnectionErrorCallback <$>
-         asyncCallback1
-           (\ error ->
-              fromJSValUnchecked error >>= \ error' -> callback error'))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCRtpReceiver.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCRtpReceiver.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCRtpReceiver.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.RTCRtpReceiver
+       (js_getTrack, getTrack, RTCRtpReceiver(..), gTypeRTCRtpReceiver)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"track\"]" js_getTrack ::
+        RTCRtpReceiver -> IO MediaStreamTrack
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpReceiver.track Mozilla RTCRtpReceiver.track documentation> 
+getTrack :: (MonadIO m) => RTCRtpReceiver -> m MediaStreamTrack
+getTrack self = liftIO (js_getTrack self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCRtpSender.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCRtpSender.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCRtpSender.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.RTCRtpSender
+       (js_replaceTrack, replaceTrack, js_getTrack, getTrack,
+        getTrackUnsafe, getTrackUnchecked, RTCRtpSender(..),
+        gTypeRTCRtpSender)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript interruptible
+        "$1[\"replaceTrack\"]($2).then($c);" js_replaceTrack ::
+        RTCRtpSender -> MediaStreamTrack -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpSender.replaceTrack Mozilla RTCRtpSender.replaceTrack documentation> 
+replaceTrack ::
+             (MonadIO m) => RTCRtpSender -> MediaStreamTrack -> m ()
+replaceTrack self withTrack
+  = liftIO (js_replaceTrack self withTrack)
+ 
+foreign import javascript unsafe "$1[\"track\"]" js_getTrack ::
+        RTCRtpSender -> IO (Nullable MediaStreamTrack)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpSender.track Mozilla RTCRtpSender.track documentation> 
+getTrack ::
+         (MonadIO m) => RTCRtpSender -> m (Maybe MediaStreamTrack)
+getTrack self = liftIO (nullableToMaybe <$> (js_getTrack self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpSender.track Mozilla RTCRtpSender.track documentation> 
+getTrackUnsafe ::
+               (MonadIO m, HasCallStack) => RTCRtpSender -> m MediaStreamTrack
+getTrackUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getTrack self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpSender.track Mozilla RTCRtpSender.track documentation> 
+getTrackUnchecked ::
+                  (MonadIO m) => RTCRtpSender -> m MediaStreamTrack
+getTrackUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getTrack self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCRtpTransceiver.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCRtpTransceiver.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCRtpTransceiver.hs
@@ -0,0 +1,101 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.RTCRtpTransceiver
+       (js_setDirection, setDirection, js_stop, stop, js_getMid, getMid,
+        getMidUnsafe, getMidUnchecked, js_getSender, getSender,
+        js_getReceiver, getReceiver, js_getStopped, getStopped,
+        js_getDirection, getDirection, RTCRtpTransceiver(..),
+        gTypeRTCRtpTransceiver)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"setDirection\"]($2)"
+        js_setDirection :: RTCRtpTransceiver -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver.setDirection Mozilla RTCRtpTransceiver.setDirection documentation> 
+setDirection ::
+             (MonadIO m) =>
+               RTCRtpTransceiver -> RTCRtpTransceiverDirection -> m ()
+setDirection self direction
+  = liftIO (js_setDirection self (pToJSVal direction))
+ 
+foreign import javascript unsafe "$1[\"stop\"]()" js_stop ::
+        RTCRtpTransceiver -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver.stop Mozilla RTCRtpTransceiver.stop documentation> 
+stop :: (MonadIO m) => RTCRtpTransceiver -> m ()
+stop self = liftIO (js_stop self)
+ 
+foreign import javascript unsafe "$1[\"mid\"]" js_getMid ::
+        RTCRtpTransceiver -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver.mid Mozilla RTCRtpTransceiver.mid documentation> 
+getMid ::
+       (MonadIO m, FromJSString result) =>
+         RTCRtpTransceiver -> m (Maybe result)
+getMid self = liftIO (fromMaybeJSString <$> (js_getMid self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver.mid Mozilla RTCRtpTransceiver.mid documentation> 
+getMidUnsafe ::
+             (MonadIO m, HasCallStack, FromJSString result) =>
+               RTCRtpTransceiver -> m result
+getMidUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getMid self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver.mid Mozilla RTCRtpTransceiver.mid documentation> 
+getMidUnchecked ::
+                (MonadIO m, FromJSString result) => RTCRtpTransceiver -> m result
+getMidUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getMid self))
+ 
+foreign import javascript unsafe "$1[\"sender\"]" js_getSender ::
+        RTCRtpTransceiver -> IO RTCRtpSender
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver.sender Mozilla RTCRtpTransceiver.sender documentation> 
+getSender :: (MonadIO m) => RTCRtpTransceiver -> m RTCRtpSender
+getSender self = liftIO (js_getSender self)
+ 
+foreign import javascript unsafe "$1[\"receiver\"]" js_getReceiver
+        :: RTCRtpTransceiver -> IO RTCRtpReceiver
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver.receiver Mozilla RTCRtpTransceiver.receiver documentation> 
+getReceiver :: (MonadIO m) => RTCRtpTransceiver -> m RTCRtpReceiver
+getReceiver self = liftIO (js_getReceiver self)
+ 
+foreign import javascript unsafe "($1[\"stopped\"] ? 1 : 0)"
+        js_getStopped :: RTCRtpTransceiver -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver.stopped Mozilla RTCRtpTransceiver.stopped documentation> 
+getStopped :: (MonadIO m) => RTCRtpTransceiver -> m Bool
+getStopped self = liftIO (js_getStopped self)
+ 
+foreign import javascript unsafe "$1[\"direction\"]"
+        js_getDirection :: RTCRtpTransceiver -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver.direction Mozilla RTCRtpTransceiver.direction documentation> 
+getDirection ::
+             (MonadIO m) => RTCRtpTransceiver -> m RTCRtpTransceiverDirection
+getDirection self
+  = liftIO ((js_getDirection self) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCSessionDescription.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCSessionDescription.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCSessionDescription.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCSessionDescription.hs
@@ -4,15 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.RTCSessionDescription
-       (js_newRTCSessionDescription, newRTCSessionDescription, js_setType,
-        setType, js_getType, getType, js_setSdp, setSdp, js_getSdp, getSdp,
-        RTCSessionDescription(..), gTypeRTCSessionDescription)
+       (js_newRTCSessionDescription, newRTCSessionDescription, js_getType,
+        getType, js_getSdp, getSdp, RTCSessionDescription(..),
+        gTypeRTCSessionDescription)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -29,41 +30,20 @@
 foreign import javascript unsafe
         "new window[\"RTCSessionDescription\"]($1)"
         js_newRTCSessionDescription ::
-        Nullable Dictionary -> IO RTCSessionDescription
+        RTCSessionDescriptionInit -> IO RTCSessionDescription
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescription Mozilla RTCSessionDescription documentation> 
 newRTCSessionDescription ::
-                         (MonadIO m, IsDictionary dictionary) =>
-                           Maybe dictionary -> m RTCSessionDescription
-newRTCSessionDescription dictionary
-  = liftIO
-      (js_newRTCSessionDescription
-         (maybeToNullable (fmap toDictionary dictionary)))
- 
-foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
-        RTCSessionDescription -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescription.type Mozilla RTCSessionDescription.type documentation> 
-setType ::
-        (MonadIO m, ToJSString val) => RTCSessionDescription -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+                         (MonadIO m) => RTCSessionDescriptionInit -> m RTCSessionDescription
+newRTCSessionDescription descriptionInitDict
+  = liftIO (js_newRTCSessionDescription descriptionInitDict)
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
-        RTCSessionDescription -> IO JSString
+        RTCSessionDescription -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescription.type Mozilla RTCSessionDescription.type documentation> 
-getType ::
-        (MonadIO m, FromJSString result) =>
-          RTCSessionDescription -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
- 
-foreign import javascript unsafe "$1[\"sdp\"] = $2;" js_setSdp ::
-        RTCSessionDescription -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescription.sdp Mozilla RTCSessionDescription.sdp documentation> 
-setSdp ::
-       (MonadIO m, ToJSString val) => RTCSessionDescription -> val -> m ()
-setSdp self val = liftIO (js_setSdp (self) (toJSString val))
+getType :: (MonadIO m) => RTCSessionDescription -> m RTCSdpType
+getType self = liftIO ((js_getType self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "$1[\"sdp\"]" js_getSdp ::
         RTCSessionDescription -> IO JSString
@@ -72,4 +52,4 @@
 getSdp ::
        (MonadIO m, FromJSString result) =>
          RTCSessionDescription -> m result
-getSdp self = liftIO (fromJSString <$> (js_getSdp (self)))
+getSdp self = liftIO (fromJSString <$> (js_getSdp self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCSessionDescriptionCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCSessionDescriptionCallback.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCSessionDescriptionCallback.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.RTCSessionDescriptionCallback
-       (newRTCSessionDescriptionCallback,
-        newRTCSessionDescriptionCallbackSync,
-        newRTCSessionDescriptionCallbackAsync,
-        RTCSessionDescriptionCallback)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescriptionCallback Mozilla RTCSessionDescriptionCallback documentation> 
-newRTCSessionDescriptionCallback ::
-                                 (MonadIO m) =>
-                                   (Maybe RTCSessionDescription -> IO ()) ->
-                                     m RTCSessionDescriptionCallback
-newRTCSessionDescriptionCallback callback
-  = liftIO
-      (RTCSessionDescriptionCallback <$>
-         syncCallback1 ThrowWouldBlock
-           (\ sdp -> fromJSValUnchecked sdp >>= \ sdp' -> callback sdp'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescriptionCallback Mozilla RTCSessionDescriptionCallback documentation> 
-newRTCSessionDescriptionCallbackSync ::
-                                     (MonadIO m) =>
-                                       (Maybe RTCSessionDescription -> IO ()) ->
-                                         m RTCSessionDescriptionCallback
-newRTCSessionDescriptionCallbackSync callback
-  = liftIO
-      (RTCSessionDescriptionCallback <$>
-         syncCallback1 ContinueAsync
-           (\ sdp -> fromJSValUnchecked sdp >>= \ sdp' -> callback sdp'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescriptionCallback Mozilla RTCSessionDescriptionCallback documentation> 
-newRTCSessionDescriptionCallbackAsync ::
-                                      (MonadIO m) =>
-                                        (Maybe RTCSessionDescription -> IO ()) ->
-                                          m RTCSessionDescriptionCallback
-newRTCSessionDescriptionCallbackAsync callback
-  = liftIO
-      (RTCSessionDescriptionCallback <$>
-         asyncCallback1
-           (\ sdp -> fromJSValUnchecked sdp >>= \ sdp' -> callback sdp'))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCStatsCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCStatsCallback.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCStatsCallback.hs
+++ /dev/null
@@ -1,59 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.RTCStatsCallback
-       (newRTCStatsCallback, newRTCStatsCallbackSync,
-        newRTCStatsCallbackAsync, RTCStatsCallback)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsCallback Mozilla RTCStatsCallback documentation> 
-newRTCStatsCallback ::
-                    (MonadIO m) =>
-                      (Maybe RTCStatsResponse -> IO ()) -> m RTCStatsCallback
-newRTCStatsCallback callback
-  = liftIO
-      (RTCStatsCallback <$>
-         syncCallback1 ThrowWouldBlock
-           (\ response ->
-              fromJSValUnchecked response >>= \ response' -> callback response'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsCallback Mozilla RTCStatsCallback documentation> 
-newRTCStatsCallbackSync ::
-                        (MonadIO m) =>
-                          (Maybe RTCStatsResponse -> IO ()) -> m RTCStatsCallback
-newRTCStatsCallbackSync callback
-  = liftIO
-      (RTCStatsCallback <$>
-         syncCallback1 ContinueAsync
-           (\ response ->
-              fromJSValUnchecked response >>= \ response' -> callback response'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsCallback Mozilla RTCStatsCallback documentation> 
-newRTCStatsCallbackAsync ::
-                         (MonadIO m) =>
-                           (Maybe RTCStatsResponse -> IO ()) -> m RTCStatsCallback
-newRTCStatsCallbackAsync callback
-  = liftIO
-      (RTCStatsCallback <$>
-         asyncCallback1
-           (\ response ->
-              fromJSValUnchecked response >>= \ response' -> callback response'))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCStatsReport.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCStatsReport.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCStatsReport.hs
+++ /dev/null
@@ -1,137 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.RTCStatsReport
-       (js_stat, stat, stat_, js_names, names, names_, js_getTimestamp,
-        getTimestamp, getTimestampUnsafe, getTimestampUnchecked, js_getId,
-        getId, js_getType, getType, js_getLocal, getLocal, getLocalUnsafe,
-        getLocalUnchecked, js_getRemote, getRemote, getRemoteUnsafe,
-        getRemoteUnchecked, RTCStatsReport(..), gTypeRTCStatsReport)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"stat\"]($2)" js_stat ::
-        RTCStatsReport -> JSString -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.stat Mozilla RTCStatsReport.stat documentation> 
-stat ::
-     (MonadIO m, ToJSString name, FromJSString result) =>
-       RTCStatsReport -> name -> m result
-stat self name
-  = liftIO (fromJSString <$> (js_stat (self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.stat Mozilla RTCStatsReport.stat documentation> 
-stat_ ::
-      (MonadIO m, ToJSString name) => RTCStatsReport -> name -> m ()
-stat_ self name = liftIO (void (js_stat (self) (toJSString name)))
- 
-foreign import javascript unsafe "$1[\"names\"]()" js_names ::
-        RTCStatsReport -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.names Mozilla RTCStatsReport.names documentation> 
-names ::
-      (MonadIO m, FromJSString result) => RTCStatsReport -> m [result]
-names self = liftIO ((js_names (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.names Mozilla RTCStatsReport.names documentation> 
-names_ :: (MonadIO m) => RTCStatsReport -> m ()
-names_ self = liftIO (void (js_names (self)))
- 
-foreign import javascript unsafe "$1[\"timestamp\"]"
-        js_getTimestamp :: RTCStatsReport -> IO (Nullable Date)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.timestamp Mozilla RTCStatsReport.timestamp documentation> 
-getTimestamp :: (MonadIO m) => RTCStatsReport -> m (Maybe Date)
-getTimestamp self
-  = liftIO (nullableToMaybe <$> (js_getTimestamp (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.timestamp Mozilla RTCStatsReport.timestamp documentation> 
-getTimestampUnsafe ::
-                   (MonadIO m, HasCallStack) => RTCStatsReport -> m Date
-getTimestampUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTimestamp (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.timestamp Mozilla RTCStatsReport.timestamp documentation> 
-getTimestampUnchecked :: (MonadIO m) => RTCStatsReport -> m Date
-getTimestampUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTimestamp (self)))
- 
-foreign import javascript unsafe "$1[\"id\"]" js_getId ::
-        RTCStatsReport -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.id Mozilla RTCStatsReport.id documentation> 
-getId ::
-      (MonadIO m, FromJSString result) => RTCStatsReport -> m result
-getId self = liftIO (fromJSString <$> (js_getId (self)))
- 
-foreign import javascript unsafe "$1[\"type\"]" js_getType ::
-        RTCStatsReport -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.type Mozilla RTCStatsReport.type documentation> 
-getType ::
-        (MonadIO m, FromJSString result) => RTCStatsReport -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
- 
-foreign import javascript unsafe "$1[\"local\"]" js_getLocal ::
-        RTCStatsReport -> IO (Nullable RTCStatsReport)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.local Mozilla RTCStatsReport.local documentation> 
-getLocal ::
-         (MonadIO m) => RTCStatsReport -> m (Maybe RTCStatsReport)
-getLocal self = liftIO (nullableToMaybe <$> (js_getLocal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.local Mozilla RTCStatsReport.local documentation> 
-getLocalUnsafe ::
-               (MonadIO m, HasCallStack) => RTCStatsReport -> m RTCStatsReport
-getLocalUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLocal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.local Mozilla RTCStatsReport.local documentation> 
-getLocalUnchecked ::
-                  (MonadIO m) => RTCStatsReport -> m RTCStatsReport
-getLocalUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getLocal (self)))
- 
-foreign import javascript unsafe "$1[\"remote\"]" js_getRemote ::
-        RTCStatsReport -> IO (Nullable RTCStatsReport)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.remote Mozilla RTCStatsReport.remote documentation> 
-getRemote ::
-          (MonadIO m) => RTCStatsReport -> m (Maybe RTCStatsReport)
-getRemote self = liftIO (nullableToMaybe <$> (js_getRemote (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.remote Mozilla RTCStatsReport.remote documentation> 
-getRemoteUnsafe ::
-                (MonadIO m, HasCallStack) => RTCStatsReport -> m RTCStatsReport
-getRemoteUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRemote (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport.remote Mozilla RTCStatsReport.remote documentation> 
-getRemoteUnchecked ::
-                   (MonadIO m) => RTCStatsReport -> m RTCStatsReport
-getRemoteUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRemote (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCStatsResponse.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCStatsResponse.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/RTCStatsResponse.hs
+++ /dev/null
@@ -1,75 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.RTCStatsResponse
-       (js_result, result, result_, js_namedItem, namedItem, namedItem_,
-        namedItemUnsafe, namedItemUnchecked, RTCStatsResponse(..),
-        gTypeRTCStatsResponse)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"result\"]()" js_result ::
-        RTCStatsResponse -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsResponse.result Mozilla RTCStatsResponse.result documentation> 
-result ::
-       (MonadIO m) => RTCStatsResponse -> m [Maybe RTCStatsReport]
-result self = liftIO ((js_result (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsResponse.result Mozilla RTCStatsResponse.result documentation> 
-result_ :: (MonadIO m) => RTCStatsResponse -> m ()
-result_ self = liftIO (void (js_result (self)))
- 
-foreign import javascript unsafe "$1[\"namedItem\"]($2)"
-        js_namedItem ::
-        RTCStatsResponse -> JSString -> IO (Nullable RTCStatsReport)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsResponse.namedItem Mozilla RTCStatsResponse.namedItem documentation> 
-namedItem ::
-          (MonadIO m, ToJSString name) =>
-            RTCStatsResponse -> name -> m (Maybe RTCStatsReport)
-namedItem self name
-  = liftIO
-      (nullableToMaybe <$> (js_namedItem (self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsResponse.namedItem Mozilla RTCStatsResponse.namedItem documentation> 
-namedItem_ ::
-           (MonadIO m, ToJSString name) => RTCStatsResponse -> name -> m ()
-namedItem_ self name
-  = liftIO (void (js_namedItem (self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsResponse.namedItem Mozilla RTCStatsResponse.namedItem documentation> 
-namedItemUnsafe ::
-                (MonadIO m, ToJSString name, HasCallStack) =>
-                  RTCStatsResponse -> name -> m RTCStatsReport
-namedItemUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$> (js_namedItem (self) (toJSString name))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsResponse.namedItem Mozilla RTCStatsResponse.namedItem documentation> 
-namedItemUnchecked ::
-                   (MonadIO m, ToJSString name) =>
-                     RTCStatsResponse -> name -> m RTCStatsReport
-namedItemUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_namedItem (self) (toJSString name)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RTCTrackEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/RTCTrackEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/RTCTrackEvent.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.RTCTrackEvent
+       (js_newRTCTrackEvent, newRTCTrackEvent, js_getReceiver,
+        getReceiver, js_getTrack, getTrack, js_getStreams, getStreams,
+        js_getTransceiver, getTransceiver, RTCTrackEvent(..),
+        gTypeRTCTrackEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"RTCTrackEvent\"]($1,\n$2)" js_newRTCTrackEvent ::
+        JSString -> RTCTrackEventInit -> IO RTCTrackEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCTrackEvent Mozilla RTCTrackEvent documentation> 
+newRTCTrackEvent ::
+                 (MonadIO m, ToJSString type') =>
+                   type' -> RTCTrackEventInit -> m RTCTrackEvent
+newRTCTrackEvent type' eventInitDict
+  = liftIO (js_newRTCTrackEvent (toJSString type') eventInitDict)
+ 
+foreign import javascript unsafe "$1[\"receiver\"]" js_getReceiver
+        :: RTCTrackEvent -> IO RTCRtpReceiver
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCTrackEvent.receiver Mozilla RTCTrackEvent.receiver documentation> 
+getReceiver :: (MonadIO m) => RTCTrackEvent -> m RTCRtpReceiver
+getReceiver self = liftIO (js_getReceiver self)
+ 
+foreign import javascript unsafe "$1[\"track\"]" js_getTrack ::
+        RTCTrackEvent -> IO MediaStreamTrack
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCTrackEvent.track Mozilla RTCTrackEvent.track documentation> 
+getTrack :: (MonadIO m) => RTCTrackEvent -> m MediaStreamTrack
+getTrack self = liftIO (js_getTrack self)
+ 
+foreign import javascript unsafe "$1[\"streams\"]" js_getStreams ::
+        RTCTrackEvent -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCTrackEvent.streams Mozilla RTCTrackEvent.streams documentation> 
+getStreams :: (MonadIO m) => RTCTrackEvent -> m [MediaStream]
+getStreams self
+  = liftIO ((js_getStreams self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"transceiver\"]"
+        js_getTransceiver :: RTCTrackEvent -> IO RTCRtpTransceiver
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCTrackEvent.transceiver Mozilla RTCTrackEvent.transceiver documentation> 
+getTransceiver ::
+               (MonadIO m) => RTCTrackEvent -> m RTCRtpTransceiver
+getTransceiver self = liftIO (js_getTransceiver self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RadioNodeList.hs b/src/GHCJS/DOM/JSFFI/Generated/RadioNodeList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/RadioNodeList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/RadioNodeList.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.RadioNodeList
-       (js__get, _get, _get_, _getUnsafe, _getUnchecked, js_setValue,
-        setValue, js_getValue, getValue, RadioNodeList(..),
-        gTypeRadioNodeList)
+       (js_get, get, get_, js_setValue, setValue, js_getValue, getValue,
+        RadioNodeList(..), gTypeRadioNodeList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,35 +20,22 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"_get\"]($2)" js__get ::
-        RadioNodeList -> Word -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList._get Mozilla RadioNodeList._get documentation> 
-_get :: (MonadIO m) => RadioNodeList -> Word -> m (Maybe Node)
-_get self index
-  = liftIO (nullableToMaybe <$> (js__get (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList._get Mozilla RadioNodeList._get documentation> 
-_get_ :: (MonadIO m) => RadioNodeList -> Word -> m ()
-_get_ self index = liftIO (void (js__get (self) index))
+foreign import javascript unsafe "$1[$2]" js_get ::
+        RadioNodeList -> Word -> IO HTMLElement
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList._get Mozilla RadioNodeList._get documentation> 
-_getUnsafe ::
-           (MonadIO m, HasCallStack) => RadioNodeList -> Word -> m Node
-_getUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js__get (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList.get Mozilla RadioNodeList.get documentation> 
+get :: (MonadIO m) => RadioNodeList -> Word -> m HTMLElement
+get self index = liftIO (js_get self index)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList._get Mozilla RadioNodeList._get documentation> 
-_getUnchecked :: (MonadIO m) => RadioNodeList -> Word -> m Node
-_getUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js__get (self) index))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList.get Mozilla RadioNodeList.get documentation> 
+get_ :: (MonadIO m) => RadioNodeList -> Word -> m ()
+get_ self index = liftIO (void (js_get self index))
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
         :: RadioNodeList -> JSString -> IO ()
@@ -57,7 +43,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList.value Mozilla RadioNodeList.value documentation> 
 setValue ::
          (MonadIO m, ToJSString val) => RadioNodeList -> val -> m ()
-setValue self val = liftIO (js_setValue (self) (toJSString val))
+setValue self val = liftIO (js_setValue self (toJSString val))
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         RadioNodeList -> IO JSString
@@ -65,4 +51,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList.value Mozilla RadioNodeList.value documentation> 
 getValue ::
          (MonadIO m, FromJSString result) => RadioNodeList -> m result
-getValue self = liftIO (fromJSString <$> (js_getValue (self)))
+getValue self = liftIO (fromJSString <$> (js_getValue self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Range.hs b/src/GHCJS/DOM/JSFFI/Generated/Range.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Range.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Range.hs
@@ -7,44 +7,35 @@
        (js_newRange, newRange, js_setStart, setStart, js_setEnd, setEnd,
         js_setStartBefore, setStartBefore, js_setStartAfter, setStartAfter,
         js_setEndBefore, setEndBefore, js_setEndAfter, setEndAfter,
-        js_collapse, collapse, js_selectNode, selectNode,
-        js_selectNodeContents, selectNodeContents,
+        js_collapse, collapse, js_expand, expand, js_selectNode,
+        selectNode, js_selectNodeContents, selectNodeContents,
         js_compareBoundaryPoints, compareBoundaryPoints,
         compareBoundaryPoints_, js_deleteContents, deleteContents,
         js_extractContents, extractContents, extractContents_,
-        extractContentsUnsafe, extractContentsUnchecked, js_cloneContents,
-        cloneContents, cloneContents_, cloneContentsUnsafe,
-        cloneContentsUnchecked, js_insertNode, insertNode,
-        js_surroundContents, surroundContents, js_cloneRange, cloneRange,
-        cloneRange_, cloneRangeUnsafe, cloneRangeUnchecked, js_toString,
-        toString, toString_, js_detach, detach, js_getClientRects,
-        getClientRects, getClientRects_, getClientRectsUnsafe,
-        getClientRectsUnchecked, js_getBoundingClientRect,
-        getBoundingClientRect, getBoundingClientRect_,
-        getBoundingClientRectUnsafe, getBoundingClientRectUnchecked,
-        js_createContextualFragment, createContextualFragment,
-        createContextualFragment_, createContextualFragmentUnsafe,
-        createContextualFragmentUnchecked, js_intersectsNode,
-        intersectsNode, intersectsNode_, js_compareNode, compareNode,
-        compareNode_, js_comparePoint, comparePoint, comparePoint_,
-        js_isPointInRange, isPointInRange, isPointInRange_, js_expand,
-        expand, pattern START_TO_START, pattern START_TO_END,
-        pattern END_TO_END, pattern END_TO_START, pattern NODE_BEFORE,
-        pattern NODE_AFTER, pattern NODE_BEFORE_AND_AFTER,
-        pattern NODE_INSIDE, js_getStartContainer, getStartContainer,
-        getStartContainerUnsafe, getStartContainerUnchecked,
-        js_getStartOffset, getStartOffset, js_getEndContainer,
-        getEndContainer, getEndContainerUnsafe, getEndContainerUnchecked,
+        js_cloneContents, cloneContents, cloneContents_, js_insertNode,
+        insertNode, js_surroundContents, surroundContents, js_cloneRange,
+        cloneRange, cloneRange_, js_toString, toString, toString_,
+        js_detach, detach, js_getClientRects, getClientRects,
+        getClientRects_, js_getBoundingClientRect, getBoundingClientRect,
+        getBoundingClientRect_, js_createContextualFragment,
+        createContextualFragment, createContextualFragment_,
+        js_compareNode, compareNode, compareNode_, js_intersectsNode,
+        intersectsNode, intersectsNode_, js_comparePoint, comparePoint,
+        comparePoint_, js_isPointInRange, isPointInRange, isPointInRange_,
+        pattern START_TO_START, pattern START_TO_END, pattern END_TO_END,
+        pattern END_TO_START, pattern NODE_BEFORE, pattern NODE_AFTER,
+        pattern NODE_BEFORE_AND_AFTER, pattern NODE_INSIDE,
+        js_getStartContainer, getStartContainer, js_getStartOffset,
+        getStartOffset, js_getEndContainer, getEndContainer,
         js_getEndOffset, getEndOffset, js_getCollapsed, getCollapsed,
         js_getCommonAncestorContainer, getCommonAncestorContainer,
-        getCommonAncestorContainerUnsafe,
-        getCommonAncestorContainerUnchecked, Range(..), gTypeRange)
+        Range(..), gTypeRange)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -53,6 +44,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -66,421 +58,286 @@
 newRange = liftIO (js_newRange)
  
 foreign import javascript unsafe "$1[\"setStart\"]($2, $3)"
-        js_setStart :: Range -> Nullable Node -> Int -> IO ()
+        js_setStart :: Range -> Node -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.setStart Mozilla Range.setStart documentation> 
 setStart ::
-         (MonadIO m, IsNode refNode) =>
-           Range -> Maybe refNode -> Int -> m ()
+         (MonadIO m, IsNode refNode) => Range -> refNode -> Word -> m ()
 setStart self refNode offset
-  = liftIO
-      (js_setStart (self) (maybeToNullable (fmap toNode refNode)) offset)
+  = liftIO (js_setStart self (toNode refNode) offset)
  
 foreign import javascript unsafe "$1[\"setEnd\"]($2, $3)" js_setEnd
-        :: Range -> Nullable Node -> Int -> IO ()
+        :: Range -> Node -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.setEnd Mozilla Range.setEnd documentation> 
 setEnd ::
-       (MonadIO m, IsNode refNode) =>
-         Range -> Maybe refNode -> Int -> m ()
+       (MonadIO m, IsNode refNode) => Range -> refNode -> Word -> m ()
 setEnd self refNode offset
-  = liftIO
-      (js_setEnd (self) (maybeToNullable (fmap toNode refNode)) offset)
+  = liftIO (js_setEnd self (toNode refNode) offset)
  
 foreign import javascript unsafe "$1[\"setStartBefore\"]($2)"
-        js_setStartBefore :: Range -> Nullable Node -> IO ()
+        js_setStartBefore :: Range -> Node -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.setStartBefore Mozilla Range.setStartBefore documentation> 
 setStartBefore ::
-               (MonadIO m, IsNode refNode) => Range -> Maybe refNode -> m ()
+               (MonadIO m, IsNode refNode) => Range -> refNode -> m ()
 setStartBefore self refNode
-  = liftIO
-      (js_setStartBefore (self) (maybeToNullable (fmap toNode refNode)))
+  = liftIO (js_setStartBefore self (toNode refNode))
  
 foreign import javascript unsafe "$1[\"setStartAfter\"]($2)"
-        js_setStartAfter :: Range -> Nullable Node -> IO ()
+        js_setStartAfter :: Range -> Node -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.setStartAfter Mozilla Range.setStartAfter documentation> 
 setStartAfter ::
-              (MonadIO m, IsNode refNode) => Range -> Maybe refNode -> m ()
+              (MonadIO m, IsNode refNode) => Range -> refNode -> m ()
 setStartAfter self refNode
-  = liftIO
-      (js_setStartAfter (self) (maybeToNullable (fmap toNode refNode)))
+  = liftIO (js_setStartAfter self (toNode refNode))
  
 foreign import javascript unsafe "$1[\"setEndBefore\"]($2)"
-        js_setEndBefore :: Range -> Nullable Node -> IO ()
+        js_setEndBefore :: Range -> Node -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.setEndBefore Mozilla Range.setEndBefore documentation> 
 setEndBefore ::
-             (MonadIO m, IsNode refNode) => Range -> Maybe refNode -> m ()
+             (MonadIO m, IsNode refNode) => Range -> refNode -> m ()
 setEndBefore self refNode
-  = liftIO
-      (js_setEndBefore (self) (maybeToNullable (fmap toNode refNode)))
+  = liftIO (js_setEndBefore self (toNode refNode))
  
 foreign import javascript unsafe "$1[\"setEndAfter\"]($2)"
-        js_setEndAfter :: Range -> Nullable Node -> IO ()
+        js_setEndAfter :: Range -> Node -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.setEndAfter Mozilla Range.setEndAfter documentation> 
 setEndAfter ::
-            (MonadIO m, IsNode refNode) => Range -> Maybe refNode -> m ()
+            (MonadIO m, IsNode refNode) => Range -> refNode -> m ()
 setEndAfter self refNode
-  = liftIO
-      (js_setEndAfter (self) (maybeToNullable (fmap toNode refNode)))
+  = liftIO (js_setEndAfter self (toNode refNode))
  
 foreign import javascript unsafe "$1[\"collapse\"]($2)" js_collapse
         :: Range -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.collapse Mozilla Range.collapse documentation> 
 collapse :: (MonadIO m) => Range -> Bool -> m ()
-collapse self toStart = liftIO (js_collapse (self) toStart)
+collapse self toStart = liftIO (js_collapse self toStart)
  
+foreign import javascript unsafe "$1[\"expand\"]($2)" js_expand ::
+        Range -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.expand Mozilla Range.expand documentation> 
+expand ::
+       (MonadIO m, ToJSString unit) => Range -> Maybe unit -> m ()
+expand self unit
+  = liftIO (js_expand self (toOptionalJSString unit))
+ 
 foreign import javascript unsafe "$1[\"selectNode\"]($2)"
-        js_selectNode :: Range -> Nullable Node -> IO ()
+        js_selectNode :: Range -> Node -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.selectNode Mozilla Range.selectNode documentation> 
 selectNode ::
-           (MonadIO m, IsNode refNode) => Range -> Maybe refNode -> m ()
+           (MonadIO m, IsNode refNode) => Range -> refNode -> m ()
 selectNode self refNode
-  = liftIO
-      (js_selectNode (self) (maybeToNullable (fmap toNode refNode)))
+  = liftIO (js_selectNode self (toNode refNode))
  
 foreign import javascript unsafe "$1[\"selectNodeContents\"]($2)"
-        js_selectNodeContents :: Range -> Nullable Node -> IO ()
+        js_selectNodeContents :: Range -> Node -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.selectNodeContents Mozilla Range.selectNodeContents documentation> 
 selectNodeContents ::
-                   (MonadIO m, IsNode refNode) => Range -> Maybe refNode -> m ()
+                   (MonadIO m, IsNode refNode) => Range -> refNode -> m ()
 selectNodeContents self refNode
-  = liftIO
-      (js_selectNodeContents (self)
-         (maybeToNullable (fmap toNode refNode)))
+  = liftIO (js_selectNodeContents self (toNode refNode))
  
 foreign import javascript unsafe
         "$1[\"compareBoundaryPoints\"]($2,\n$3)" js_compareBoundaryPoints
-        :: Range -> Word -> Nullable Range -> IO Int
+        :: Range -> Word -> Range -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.compareBoundaryPoints Mozilla Range.compareBoundaryPoints documentation> 
 compareBoundaryPoints ::
-                      (MonadIO m) => Range -> Word -> Maybe Range -> m Int
+                      (MonadIO m) => Range -> Word -> Range -> m Int
 compareBoundaryPoints self how sourceRange
-  = liftIO
-      (js_compareBoundaryPoints (self) how (maybeToNullable sourceRange))
+  = liftIO (js_compareBoundaryPoints self how sourceRange)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.compareBoundaryPoints Mozilla Range.compareBoundaryPoints documentation> 
 compareBoundaryPoints_ ::
-                       (MonadIO m) => Range -> Word -> Maybe Range -> m ()
+                       (MonadIO m) => Range -> Word -> Range -> m ()
 compareBoundaryPoints_ self how sourceRange
-  = liftIO
-      (void
-         (js_compareBoundaryPoints (self) how
-            (maybeToNullable sourceRange)))
+  = liftIO (void (js_compareBoundaryPoints self how sourceRange))
  
 foreign import javascript unsafe "$1[\"deleteContents\"]()"
         js_deleteContents :: Range -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.deleteContents Mozilla Range.deleteContents documentation> 
 deleteContents :: (MonadIO m) => Range -> m ()
-deleteContents self = liftIO (js_deleteContents (self))
+deleteContents self = liftIO (js_deleteContents self)
  
 foreign import javascript unsafe "$1[\"extractContents\"]()"
-        js_extractContents :: Range -> IO (Nullable DocumentFragment)
+        js_extractContents :: Range -> IO DocumentFragment
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.extractContents Mozilla Range.extractContents documentation> 
-extractContents ::
-                (MonadIO m) => Range -> m (Maybe DocumentFragment)
-extractContents self
-  = liftIO (nullableToMaybe <$> (js_extractContents (self)))
+extractContents :: (MonadIO m) => Range -> m DocumentFragment
+extractContents self = liftIO (js_extractContents self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.extractContents Mozilla Range.extractContents documentation> 
 extractContents_ :: (MonadIO m) => Range -> m ()
-extractContents_ self = liftIO (void (js_extractContents (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.extractContents Mozilla Range.extractContents documentation> 
-extractContentsUnsafe ::
-                      (MonadIO m, HasCallStack) => Range -> m DocumentFragment
-extractContentsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_extractContents (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.extractContents Mozilla Range.extractContents documentation> 
-extractContentsUnchecked ::
-                         (MonadIO m) => Range -> m DocumentFragment
-extractContentsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_extractContents (self)))
+extractContents_ self = liftIO (void (js_extractContents self))
  
 foreign import javascript unsafe "$1[\"cloneContents\"]()"
-        js_cloneContents :: Range -> IO (Nullable DocumentFragment)
+        js_cloneContents :: Range -> IO DocumentFragment
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.cloneContents Mozilla Range.cloneContents documentation> 
-cloneContents :: (MonadIO m) => Range -> m (Maybe DocumentFragment)
-cloneContents self
-  = liftIO (nullableToMaybe <$> (js_cloneContents (self)))
+cloneContents :: (MonadIO m) => Range -> m DocumentFragment
+cloneContents self = liftIO (js_cloneContents self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.cloneContents Mozilla Range.cloneContents documentation> 
 cloneContents_ :: (MonadIO m) => Range -> m ()
-cloneContents_ self = liftIO (void (js_cloneContents (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.cloneContents Mozilla Range.cloneContents documentation> 
-cloneContentsUnsafe ::
-                    (MonadIO m, HasCallStack) => Range -> m DocumentFragment
-cloneContentsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_cloneContents (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.cloneContents Mozilla Range.cloneContents documentation> 
-cloneContentsUnchecked ::
-                       (MonadIO m) => Range -> m DocumentFragment
-cloneContentsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_cloneContents (self)))
+cloneContents_ self = liftIO (void (js_cloneContents self))
  
 foreign import javascript unsafe "$1[\"insertNode\"]($2)"
-        js_insertNode :: Range -> Nullable Node -> IO ()
+        js_insertNode :: Range -> Node -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.insertNode Mozilla Range.insertNode documentation> 
 insertNode ::
-           (MonadIO m, IsNode newNode) => Range -> Maybe newNode -> m ()
+           (MonadIO m, IsNode newNode) => Range -> newNode -> m ()
 insertNode self newNode
-  = liftIO
-      (js_insertNode (self) (maybeToNullable (fmap toNode newNode)))
+  = liftIO (js_insertNode self (toNode newNode))
  
 foreign import javascript unsafe "$1[\"surroundContents\"]($2)"
-        js_surroundContents :: Range -> Nullable Node -> IO ()
+        js_surroundContents :: Range -> Node -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.surroundContents Mozilla Range.surroundContents documentation> 
 surroundContents ::
-                 (MonadIO m, IsNode newParent) => Range -> Maybe newParent -> m ()
+                 (MonadIO m, IsNode newParent) => Range -> newParent -> m ()
 surroundContents self newParent
-  = liftIO
-      (js_surroundContents (self)
-         (maybeToNullable (fmap toNode newParent)))
+  = liftIO (js_surroundContents self (toNode newParent))
  
 foreign import javascript unsafe "$1[\"cloneRange\"]()"
-        js_cloneRange :: Range -> IO (Nullable Range)
+        js_cloneRange :: Range -> IO Range
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.cloneRange Mozilla Range.cloneRange documentation> 
-cloneRange :: (MonadIO m) => Range -> m (Maybe Range)
-cloneRange self
-  = liftIO (nullableToMaybe <$> (js_cloneRange (self)))
+cloneRange :: (MonadIO m) => Range -> m Range
+cloneRange self = liftIO (js_cloneRange self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.cloneRange Mozilla Range.cloneRange documentation> 
 cloneRange_ :: (MonadIO m) => Range -> m ()
-cloneRange_ self = liftIO (void (js_cloneRange (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.cloneRange Mozilla Range.cloneRange documentation> 
-cloneRangeUnsafe :: (MonadIO m, HasCallStack) => Range -> m Range
-cloneRangeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_cloneRange (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.cloneRange Mozilla Range.cloneRange documentation> 
-cloneRangeUnchecked :: (MonadIO m) => Range -> m Range
-cloneRangeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_cloneRange (self)))
+cloneRange_ self = liftIO (void (js_cloneRange self))
  
 foreign import javascript unsafe "$1[\"toString\"]()" js_toString
         :: Range -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.toString Mozilla Range.toString documentation> 
 toString :: (MonadIO m, FromJSString result) => Range -> m result
-toString self = liftIO (fromJSString <$> (js_toString (self)))
+toString self = liftIO (fromJSString <$> (js_toString self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.toString Mozilla Range.toString documentation> 
 toString_ :: (MonadIO m) => Range -> m ()
-toString_ self = liftIO (void (js_toString (self)))
+toString_ self = liftIO (void (js_toString self))
  
 foreign import javascript unsafe "$1[\"detach\"]()" js_detach ::
         Range -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.detach Mozilla Range.detach documentation> 
 detach :: (MonadIO m) => Range -> m ()
-detach self = liftIO (js_detach (self))
+detach self = liftIO (js_detach self)
  
 foreign import javascript unsafe "$1[\"getClientRects\"]()"
-        js_getClientRects :: Range -> IO (Nullable ClientRectList)
+        js_getClientRects :: Range -> IO ClientRectList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.getClientRects Mozilla Range.getClientRects documentation> 
-getClientRects :: (MonadIO m) => Range -> m (Maybe ClientRectList)
-getClientRects self
-  = liftIO (nullableToMaybe <$> (js_getClientRects (self)))
+getClientRects :: (MonadIO m) => Range -> m ClientRectList
+getClientRects self = liftIO (js_getClientRects self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.getClientRects Mozilla Range.getClientRects documentation> 
 getClientRects_ :: (MonadIO m) => Range -> m ()
-getClientRects_ self = liftIO (void (js_getClientRects (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.getClientRects Mozilla Range.getClientRects documentation> 
-getClientRectsUnsafe ::
-                     (MonadIO m, HasCallStack) => Range -> m ClientRectList
-getClientRectsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getClientRects (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.getClientRects Mozilla Range.getClientRects documentation> 
-getClientRectsUnchecked :: (MonadIO m) => Range -> m ClientRectList
-getClientRectsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getClientRects (self)))
+getClientRects_ self = liftIO (void (js_getClientRects self))
  
 foreign import javascript unsafe "$1[\"getBoundingClientRect\"]()"
-        js_getBoundingClientRect :: Range -> IO (Nullable ClientRect)
+        js_getBoundingClientRect :: Range -> IO ClientRect
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.getBoundingClientRect Mozilla Range.getBoundingClientRect documentation> 
-getBoundingClientRect ::
-                      (MonadIO m) => Range -> m (Maybe ClientRect)
-getBoundingClientRect self
-  = liftIO (nullableToMaybe <$> (js_getBoundingClientRect (self)))
+getBoundingClientRect :: (MonadIO m) => Range -> m ClientRect
+getBoundingClientRect self = liftIO (js_getBoundingClientRect self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.getBoundingClientRect Mozilla Range.getBoundingClientRect documentation> 
 getBoundingClientRect_ :: (MonadIO m) => Range -> m ()
 getBoundingClientRect_ self
-  = liftIO (void (js_getBoundingClientRect (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.getBoundingClientRect Mozilla Range.getBoundingClientRect documentation> 
-getBoundingClientRectUnsafe ::
-                            (MonadIO m, HasCallStack) => Range -> m ClientRect
-getBoundingClientRectUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBoundingClientRect (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.getBoundingClientRect Mozilla Range.getBoundingClientRect documentation> 
-getBoundingClientRectUnchecked ::
-                               (MonadIO m) => Range -> m ClientRect
-getBoundingClientRectUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getBoundingClientRect (self)))
+  = liftIO (void (js_getBoundingClientRect self))
  
 foreign import javascript unsafe
         "$1[\"createContextualFragment\"]($2)" js_createContextualFragment
-        :: Range -> JSString -> IO (Nullable DocumentFragment)
+        :: Range -> JSString -> IO DocumentFragment
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.createContextualFragment Mozilla Range.createContextualFragment documentation> 
 createContextualFragment ::
-                         (MonadIO m, ToJSString html) =>
-                           Range -> html -> m (Maybe DocumentFragment)
+                         (MonadIO m, ToJSString html) => Range -> html -> m DocumentFragment
 createContextualFragment self html
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createContextualFragment (self) (toJSString html)))
+  = liftIO (js_createContextualFragment self (toJSString html))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.createContextualFragment Mozilla Range.createContextualFragment documentation> 
 createContextualFragment_ ::
                           (MonadIO m, ToJSString html) => Range -> html -> m ()
 createContextualFragment_ self html
   = liftIO
-      (void (js_createContextualFragment (self) (toJSString html)))
+      (void (js_createContextualFragment self (toJSString html)))
+ 
+foreign import javascript unsafe "$1[\"compareNode\"]($2)"
+        js_compareNode :: Range -> Node -> IO Int
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.createContextualFragment Mozilla Range.createContextualFragment documentation> 
-createContextualFragmentUnsafe ::
-                               (MonadIO m, ToJSString html, HasCallStack) =>
-                                 Range -> html -> m DocumentFragment
-createContextualFragmentUnsafe self html
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createContextualFragment (self) (toJSString html)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.compareNode Mozilla Range.compareNode documentation> 
+compareNode ::
+            (MonadIO m, IsNode refNode) => Range -> refNode -> m Int
+compareNode self refNode
+  = liftIO (js_compareNode self (toNode refNode))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.createContextualFragment Mozilla Range.createContextualFragment documentation> 
-createContextualFragmentUnchecked ::
-                                  (MonadIO m, ToJSString html) =>
-                                    Range -> html -> m DocumentFragment
-createContextualFragmentUnchecked self html
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createContextualFragment (self) (toJSString html)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.compareNode Mozilla Range.compareNode documentation> 
+compareNode_ ::
+             (MonadIO m, IsNode refNode) => Range -> refNode -> m ()
+compareNode_ self refNode
+  = liftIO (void (js_compareNode self (toNode refNode)))
  
 foreign import javascript unsafe
         "($1[\"intersectsNode\"]($2) ? 1 : 0)" js_intersectsNode ::
-        Range -> Nullable Node -> IO Bool
+        Range -> Node -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.intersectsNode Mozilla Range.intersectsNode documentation> 
 intersectsNode ::
-               (MonadIO m, IsNode refNode) => Range -> Maybe refNode -> m Bool
+               (MonadIO m, IsNode refNode) => Range -> refNode -> m Bool
 intersectsNode self refNode
-  = liftIO
-      (js_intersectsNode (self) (maybeToNullable (fmap toNode refNode)))
+  = liftIO (js_intersectsNode self (toNode refNode))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.intersectsNode Mozilla Range.intersectsNode documentation> 
 intersectsNode_ ::
-                (MonadIO m, IsNode refNode) => Range -> Maybe refNode -> m ()
+                (MonadIO m, IsNode refNode) => Range -> refNode -> m ()
 intersectsNode_ self refNode
-  = liftIO
-      (void
-         (js_intersectsNode (self) (maybeToNullable (fmap toNode refNode))))
- 
-foreign import javascript unsafe "$1[\"compareNode\"]($2)"
-        js_compareNode :: Range -> Nullable Node -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.compareNode Mozilla Range.compareNode documentation> 
-compareNode ::
-            (MonadIO m, IsNode refNode) => Range -> Maybe refNode -> m Int
-compareNode self refNode
-  = liftIO
-      (js_compareNode (self) (maybeToNullable (fmap toNode refNode)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.compareNode Mozilla Range.compareNode documentation> 
-compareNode_ ::
-             (MonadIO m, IsNode refNode) => Range -> Maybe refNode -> m ()
-compareNode_ self refNode
-  = liftIO
-      (void
-         (js_compareNode (self) (maybeToNullable (fmap toNode refNode))))
+  = liftIO (void (js_intersectsNode self (toNode refNode)))
  
 foreign import javascript unsafe "$1[\"comparePoint\"]($2, $3)"
-        js_comparePoint :: Range -> Nullable Node -> Int -> IO Int
+        js_comparePoint :: Range -> Node -> Word -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.comparePoint Mozilla Range.comparePoint documentation> 
 comparePoint ::
-             (MonadIO m, IsNode refNode) =>
-               Range -> Maybe refNode -> Int -> m Int
+             (MonadIO m, IsNode refNode) => Range -> refNode -> Word -> m Int
 comparePoint self refNode offset
-  = liftIO
-      (js_comparePoint (self) (maybeToNullable (fmap toNode refNode))
-         offset)
+  = liftIO (js_comparePoint self (toNode refNode) offset)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.comparePoint Mozilla Range.comparePoint documentation> 
 comparePoint_ ::
-              (MonadIO m, IsNode refNode) =>
-                Range -> Maybe refNode -> Int -> m ()
+              (MonadIO m, IsNode refNode) => Range -> refNode -> Word -> m ()
 comparePoint_ self refNode offset
-  = liftIO
-      (void
-         (js_comparePoint (self) (maybeToNullable (fmap toNode refNode))
-            offset))
+  = liftIO (void (js_comparePoint self (toNode refNode) offset))
  
 foreign import javascript unsafe
         "($1[\"isPointInRange\"]($2,\n$3) ? 1 : 0)" js_isPointInRange ::
-        Range -> Nullable Node -> Int -> IO Bool
+        Range -> Node -> Word -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.isPointInRange Mozilla Range.isPointInRange documentation> 
 isPointInRange ::
-               (MonadIO m, IsNode refNode) =>
-                 Range -> Maybe refNode -> Int -> m Bool
+               (MonadIO m, IsNode refNode) => Range -> refNode -> Word -> m Bool
 isPointInRange self refNode offset
-  = liftIO
-      (js_isPointInRange (self) (maybeToNullable (fmap toNode refNode))
-         offset)
+  = liftIO (js_isPointInRange self (toNode refNode) offset)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.isPointInRange Mozilla Range.isPointInRange documentation> 
 isPointInRange_ ::
-                (MonadIO m, IsNode refNode) =>
-                  Range -> Maybe refNode -> Int -> m ()
+                (MonadIO m, IsNode refNode) => Range -> refNode -> Word -> m ()
 isPointInRange_ self refNode offset
-  = liftIO
-      (void
-         (js_isPointInRange (self) (maybeToNullable (fmap toNode refNode))
-            offset))
- 
-foreign import javascript unsafe "$1[\"expand\"]($2)" js_expand ::
-        Range -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.expand Mozilla Range.expand documentation> 
-expand :: (MonadIO m, ToJSString unit) => Range -> unit -> m ()
-expand self unit = liftIO (js_expand (self) (toJSString unit))
+  = liftIO (void (js_isPointInRange self (toNode refNode) offset))
 pattern START_TO_START = 0
 pattern START_TO_END = 1
 pattern END_TO_END = 2
@@ -491,92 +348,44 @@
 pattern NODE_INSIDE = 3
  
 foreign import javascript unsafe "$1[\"startContainer\"]"
-        js_getStartContainer :: Range -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.startContainer Mozilla Range.startContainer documentation> 
-getStartContainer :: (MonadIO m) => Range -> m (Maybe Node)
-getStartContainer self
-  = liftIO (nullableToMaybe <$> (js_getStartContainer (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.startContainer Mozilla Range.startContainer documentation> 
-getStartContainerUnsafe ::
-                        (MonadIO m, HasCallStack) => Range -> m Node
-getStartContainerUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStartContainer (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getStartContainer :: Range -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.startContainer Mozilla Range.startContainer documentation> 
-getStartContainerUnchecked :: (MonadIO m) => Range -> m Node
-getStartContainerUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getStartContainer (self)))
+getStartContainer :: (MonadIO m) => Range -> m Node
+getStartContainer self = liftIO (js_getStartContainer self)
  
 foreign import javascript unsafe "$1[\"startOffset\"]"
         js_getStartOffset :: Range -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.startOffset Mozilla Range.startOffset documentation> 
 getStartOffset :: (MonadIO m) => Range -> m Int
-getStartOffset self = liftIO (js_getStartOffset (self))
+getStartOffset self = liftIO (js_getStartOffset self)
  
 foreign import javascript unsafe "$1[\"endContainer\"]"
-        js_getEndContainer :: Range -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.endContainer Mozilla Range.endContainer documentation> 
-getEndContainer :: (MonadIO m) => Range -> m (Maybe Node)
-getEndContainer self
-  = liftIO (nullableToMaybe <$> (js_getEndContainer (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.endContainer Mozilla Range.endContainer documentation> 
-getEndContainerUnsafe ::
-                      (MonadIO m, HasCallStack) => Range -> m Node
-getEndContainerUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getEndContainer (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getEndContainer :: Range -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.endContainer Mozilla Range.endContainer documentation> 
-getEndContainerUnchecked :: (MonadIO m) => Range -> m Node
-getEndContainerUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getEndContainer (self)))
+getEndContainer :: (MonadIO m) => Range -> m Node
+getEndContainer self = liftIO (js_getEndContainer self)
  
 foreign import javascript unsafe "$1[\"endOffset\"]"
         js_getEndOffset :: Range -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.endOffset Mozilla Range.endOffset documentation> 
 getEndOffset :: (MonadIO m) => Range -> m Int
-getEndOffset self = liftIO (js_getEndOffset (self))
+getEndOffset self = liftIO (js_getEndOffset self)
  
 foreign import javascript unsafe "($1[\"collapsed\"] ? 1 : 0)"
         js_getCollapsed :: Range -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.collapsed Mozilla Range.collapsed documentation> 
 getCollapsed :: (MonadIO m) => Range -> m Bool
-getCollapsed self = liftIO (js_getCollapsed (self))
+getCollapsed self = liftIO (js_getCollapsed self)
  
 foreign import javascript unsafe "$1[\"commonAncestorContainer\"]"
-        js_getCommonAncestorContainer :: Range -> IO (Nullable Node)
+        js_getCommonAncestorContainer :: Range -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.commonAncestorContainer Mozilla Range.commonAncestorContainer documentation> 
-getCommonAncestorContainer ::
-                           (MonadIO m) => Range -> m (Maybe Node)
+getCommonAncestorContainer :: (MonadIO m) => Range -> m Node
 getCommonAncestorContainer self
-  = liftIO
-      (nullableToMaybe <$> (js_getCommonAncestorContainer (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.commonAncestorContainer Mozilla Range.commonAncestorContainer documentation> 
-getCommonAncestorContainerUnsafe ::
-                                 (MonadIO m, HasCallStack) => Range -> m Node
-getCommonAncestorContainerUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCommonAncestorContainer (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Range.commonAncestorContainer Mozilla Range.commonAncestorContainer documentation> 
-getCommonAncestorContainerUnchecked ::
-                                    (MonadIO m) => Range -> m Node
-getCommonAncestorContainerUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getCommonAncestorContainer (self)))
+  = liftIO (js_getCommonAncestorContainer self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ReadableByteStreamController.hs b/src/GHCJS/DOM/JSFFI/Generated/ReadableByteStreamController.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ReadableByteStreamController.hs
@@ -0,0 +1,87 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ReadableByteStreamController
+       (js_newReadableByteStreamController,
+        newReadableByteStreamController, js_enqueue, enqueue, js_close,
+        close, js_error, error, js_getDesiredSize, getDesiredSize,
+        ReadableByteStreamController(..),
+        gTypeReadableByteStreamController)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"ReadableByteStreamController\"]($1,\n$2, $3)"
+        js_newReadableByteStreamController ::
+        ReadableStream -> JSVal -> Word -> IO ReadableByteStreamController
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController Mozilla ReadableByteStreamController documentation> 
+newReadableByteStreamController ::
+                                (MonadIO m, ToJSVal underlyingByteSource) =>
+                                  ReadableStream ->
+                                    underlyingByteSource -> Word -> m ReadableByteStreamController
+newReadableByteStreamController stream underlyingByteSource
+  highWaterMark
+  = liftIO
+      (toJSVal underlyingByteSource >>=
+         \ underlyingByteSource' ->
+           js_newReadableByteStreamController stream underlyingByteSource'
+         highWaterMark)
+ 
+foreign import javascript unsafe "$1[\"enqueue\"]($2)" js_enqueue
+        :: ReadableByteStreamController -> Optional JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController.enqueue Mozilla ReadableByteStreamController.enqueue documentation> 
+enqueue ::
+        (MonadIO m, ToJSVal chunk) =>
+          ReadableByteStreamController -> Maybe chunk -> m ()
+enqueue self chunk
+  = liftIO
+      (mapM toJSVal chunk >>=
+         \ chunk' -> js_enqueue self (maybeToOptional chunk'))
+ 
+foreign import javascript unsafe "$1[\"close\"]()" js_close ::
+        ReadableByteStreamController -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController.close Mozilla ReadableByteStreamController.close documentation> 
+close :: (MonadIO m) => ReadableByteStreamController -> m ()
+close self = liftIO (js_close self)
+ 
+foreign import javascript unsafe "$1[\"error\"]($2)" js_error ::
+        ReadableByteStreamController -> Optional JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController.error Mozilla ReadableByteStreamController.error documentation> 
+error ::
+      (MonadIO m, ToJSVal error) =>
+        ReadableByteStreamController -> Maybe error -> m ()
+error self error
+  = liftIO
+      (mapM toJSVal error >>=
+         \ error' -> js_error self (maybeToOptional error'))
+ 
+foreign import javascript unsafe "$1[\"desiredSize\"]"
+        js_getDesiredSize :: ReadableByteStreamController -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController.desiredSize Mozilla ReadableByteStreamController.desiredSize documentation> 
+getDesiredSize ::
+               (MonadIO m) => ReadableByteStreamController -> m Double
+getDesiredSize self = liftIO (js_getDesiredSize self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ReadableStream.hs b/src/GHCJS/DOM/JSFFI/Generated/ReadableStream.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ReadableStream.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ReadableStream.hs
@@ -4,20 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.ReadableStream
-       (js_newReadableStream, newReadableStream, js_read, read, read_,
-        readUnsafe, readUnchecked, js_cancel, cancel, cancel_,
-        cancelUnsafe, cancelUnchecked, js_pipeTo, pipeTo, pipeTo_,
-        pipeToUnsafe, pipeToUnchecked, js_pipeThrough, pipeThrough,
-        pipeThrough_, pipeThroughUnsafe, pipeThroughUnchecked, js_getState,
-        getState, js_getClosed, getClosed, getClosedUnsafe,
-        getClosedUnchecked, js_getReady, getReady, getReadyUnsafe,
-        getReadyUnchecked, ReadableStream(..), gTypeReadableStream)
+       (js_newReadableStream, newReadableStream, js_cancel, cancel,
+        cancel_, js_getReader, getReader, getReader_, js_pipeTo, pipeTo,
+        pipeTo_, js_pipeThrough, pipeThrough, pipeThrough_, js_tee, tee,
+        tee_, js_getLocked, getLocked, ReadableStream(..),
+        gTypeReadableStream)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,189 +23,139 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
-        "new window[\"ReadableStream\"]($1)" js_newReadableStream ::
-        JSVal -> IO ReadableStream
+        "new window[\"ReadableStream\"]($1,\n$2)" js_newReadableStream ::
+        Optional JSVal -> Optional JSVal -> IO ReadableStream
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream Mozilla ReadableStream documentation> 
-newReadableStream :: (MonadIO m) => JSVal -> m ReadableStream
-newReadableStream properties
-  = liftIO (js_newReadableStream properties)
- 
-foreign import javascript unsafe "$1[\"read\"]()" js_read ::
-        ReadableStream -> IO (Nullable GObject)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.read Mozilla ReadableStream.read documentation> 
-read :: (MonadIO m) => ReadableStream -> m (Maybe GObject)
-read self = liftIO (nullableToMaybe <$> (js_read (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.read Mozilla ReadableStream.read documentation> 
-read_ :: (MonadIO m) => ReadableStream -> m ()
-read_ self = liftIO (void (js_read (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.read Mozilla ReadableStream.read documentation> 
-readUnsafe ::
-           (MonadIO m, HasCallStack) => ReadableStream -> m GObject
-readUnsafe self
+newReadableStream ::
+                  (MonadIO m, ToJSVal underlyingSource, ToJSVal options) =>
+                    Maybe underlyingSource -> Maybe options -> m ReadableStream
+newReadableStream underlyingSource options
   = liftIO
-      ((nullableToMaybe <$> (js_read (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.read Mozilla ReadableStream.read documentation> 
-readUnchecked :: (MonadIO m) => ReadableStream -> m GObject
-readUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_read (self)))
+      (mapM toJSVal options >>=
+         \ options' ->
+           mapM toJSVal underlyingSource >>=
+             \ underlyingSource' ->
+               js_newReadableStream (maybeToOptional underlyingSource')
+             (maybeToOptional options'))
  
-foreign import javascript unsafe "$1[\"cancel\"]($2)" js_cancel ::
-        ReadableStream -> JSString -> IO (Nullable Promise)
+foreign import javascript interruptible
+        "$1[\"cancel\"]($2).then($c);" js_cancel ::
+        ReadableStream -> Optional JSVal -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.cancel Mozilla ReadableStream.cancel documentation> 
 cancel ::
-       (MonadIO m, ToJSString reason) =>
-         ReadableStream -> reason -> m (Maybe Promise)
+       (MonadIO m, ToJSVal reason) =>
+         ReadableStream -> Maybe reason -> m JSVal
 cancel self reason
   = liftIO
-      (nullableToMaybe <$> (js_cancel (self) (toJSString reason)))
+      (mapM toJSVal reason >>=
+         \ reason' -> js_cancel self (maybeToOptional reason'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.cancel Mozilla ReadableStream.cancel documentation> 
 cancel_ ::
-        (MonadIO m, ToJSString reason) => ReadableStream -> reason -> m ()
+        (MonadIO m, ToJSVal reason) =>
+          ReadableStream -> Maybe reason -> m ()
 cancel_ self reason
-  = liftIO (void (js_cancel (self) (toJSString reason)))
+  = liftIO
+      (void
+         (mapM toJSVal reason >>=
+            \ reason' -> js_cancel self (maybeToOptional reason')))
+ 
+foreign import javascript unsafe "$1[\"getReader\"]($2)"
+        js_getReader :: ReadableStream -> Optional JSVal -> IO GObject
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.cancel Mozilla ReadableStream.cancel documentation> 
-cancelUnsafe ::
-             (MonadIO m, ToJSString reason, HasCallStack) =>
-               ReadableStream -> reason -> m Promise
-cancelUnsafe self reason
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.getReader Mozilla ReadableStream.getReader documentation> 
+getReader ::
+          (MonadIO m, ToJSVal options) =>
+            ReadableStream -> Maybe options -> m GObject
+getReader self options
   = liftIO
-      ((nullableToMaybe <$> (js_cancel (self) (toJSString reason))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (mapM toJSVal options >>=
+         \ options' -> js_getReader self (maybeToOptional options'))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.cancel Mozilla ReadableStream.cancel documentation> 
-cancelUnchecked ::
-                (MonadIO m, ToJSString reason) =>
-                  ReadableStream -> reason -> m Promise
-cancelUnchecked self reason
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.getReader Mozilla ReadableStream.getReader documentation> 
+getReader_ ::
+           (MonadIO m, ToJSVal options) =>
+             ReadableStream -> Maybe options -> m ()
+getReader_ self options
   = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_cancel (self) (toJSString reason)))
+      (void
+         (mapM toJSVal options >>=
+            \ options' -> js_getReader self (maybeToOptional options')))
  
-foreign import javascript unsafe "$1[\"pipeTo\"]($2, $3)" js_pipeTo
-        :: ReadableStream -> JSVal -> JSVal -> IO (Nullable Promise)
+foreign import javascript interruptible
+        "$1[\"pipeTo\"]($2, $3).then($c);" js_pipeTo ::
+        ReadableStream -> JSVal -> Optional JSVal -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.pipeTo Mozilla ReadableStream.pipeTo documentation> 
 pipeTo ::
-       (MonadIO m) =>
-         ReadableStream -> JSVal -> JSVal -> m (Maybe Promise)
+       (MonadIO m, ToJSVal streams, ToJSVal options) =>
+         ReadableStream -> streams -> Maybe options -> m JSVal
 pipeTo self streams options
-  = liftIO (nullableToMaybe <$> (js_pipeTo (self) streams options))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.pipeTo Mozilla ReadableStream.pipeTo documentation> 
-pipeTo_ :: (MonadIO m) => ReadableStream -> JSVal -> JSVal -> m ()
-pipeTo_ self streams options
-  = liftIO (void (js_pipeTo (self) streams options))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.pipeTo Mozilla ReadableStream.pipeTo documentation> 
-pipeToUnsafe ::
-             (MonadIO m, HasCallStack) =>
-               ReadableStream -> JSVal -> JSVal -> m Promise
-pipeToUnsafe self streams options
   = liftIO
-      ((nullableToMaybe <$> (js_pipeTo (self) streams options)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (mapM toJSVal options >>=
+         \ options' ->
+           toJSVal streams >>= \ streams' -> js_pipeTo self streams'
+             (maybeToOptional options'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.pipeTo Mozilla ReadableStream.pipeTo documentation> 
-pipeToUnchecked ::
-                (MonadIO m) => ReadableStream -> JSVal -> JSVal -> m Promise
-pipeToUnchecked self streams options
+pipeTo_ ::
+        (MonadIO m, ToJSVal streams, ToJSVal options) =>
+          ReadableStream -> streams -> Maybe options -> m ()
+pipeTo_ self streams options
   = liftIO
-      (fromJust . nullableToMaybe <$> (js_pipeTo (self) streams options))
+      (void
+         (mapM toJSVal options >>=
+            \ options' ->
+              toJSVal streams >>= \ streams' -> js_pipeTo self streams'
+                (maybeToOptional options')))
  
 foreign import javascript unsafe "$1[\"pipeThrough\"]($2, $3)"
-        js_pipeThrough ::
-        ReadableStream -> JSVal -> JSVal -> IO (Nullable GObject)
+        js_pipeThrough :: ReadableStream -> JSVal -> JSVal -> IO GObject
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.pipeThrough Mozilla ReadableStream.pipeThrough documentation> 
 pipeThrough ::
-            (MonadIO m) =>
-              ReadableStream -> JSVal -> JSVal -> m (Maybe GObject)
+            (MonadIO m, ToJSVal dest, ToJSVal options) =>
+              ReadableStream -> dest -> options -> m GObject
 pipeThrough self dest options
-  = liftIO (nullableToMaybe <$> (js_pipeThrough (self) dest options))
+  = liftIO
+      (toJSVal options >>=
+         \ options' ->
+           toJSVal dest >>= \ dest' -> js_pipeThrough self dest' options')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.pipeThrough Mozilla ReadableStream.pipeThrough documentation> 
 pipeThrough_ ::
-             (MonadIO m) => ReadableStream -> JSVal -> JSVal -> m ()
+             (MonadIO m, ToJSVal dest, ToJSVal options) =>
+               ReadableStream -> dest -> options -> m ()
 pipeThrough_ self dest options
-  = liftIO (void (js_pipeThrough (self) dest options))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.pipeThrough Mozilla ReadableStream.pipeThrough documentation> 
-pipeThroughUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    ReadableStream -> JSVal -> JSVal -> m GObject
-pipeThroughUnsafe self dest options
   = liftIO
-      ((nullableToMaybe <$> (js_pipeThrough (self) dest options)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.pipeThrough Mozilla ReadableStream.pipeThrough documentation> 
-pipeThroughUnchecked ::
-                     (MonadIO m) => ReadableStream -> JSVal -> JSVal -> m GObject
-pipeThroughUnchecked self dest options
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_pipeThrough (self) dest options))
- 
-foreign import javascript unsafe "$1[\"state\"]" js_getState ::
-        ReadableStream -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.state Mozilla ReadableStream.state documentation> 
-getState ::
-         (MonadIO m) => ReadableStream -> m ReadableStreamStateType
-getState self
-  = liftIO ((js_getState (self)) >>= fromJSValUnchecked)
+      (void
+         (toJSVal options >>=
+            \ options' ->
+              toJSVal dest >>= \ dest' -> js_pipeThrough self dest' options'))
  
-foreign import javascript unsafe "$1[\"closed\"]" js_getClosed ::
-        ReadableStream -> IO (Nullable Promise)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.closed Mozilla ReadableStream.closed documentation> 
-getClosed :: (MonadIO m) => ReadableStream -> m (Maybe Promise)
-getClosed self = liftIO (nullableToMaybe <$> (js_getClosed (self)))
+foreign import javascript unsafe "$1[\"tee\"]()" js_tee ::
+        ReadableStream -> IO GObject
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.closed Mozilla ReadableStream.closed documentation> 
-getClosedUnsafe ::
-                (MonadIO m, HasCallStack) => ReadableStream -> m Promise
-getClosedUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getClosed (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.tee Mozilla ReadableStream.tee documentation> 
+tee :: (MonadIO m) => ReadableStream -> m GObject
+tee self = liftIO (js_tee self)
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.closed Mozilla ReadableStream.closed documentation> 
-getClosedUnchecked :: (MonadIO m) => ReadableStream -> m Promise
-getClosedUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getClosed (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.tee Mozilla ReadableStream.tee documentation> 
+tee_ :: (MonadIO m) => ReadableStream -> m ()
+tee_ self = liftIO (void (js_tee self))
  
-foreign import javascript unsafe "$1[\"ready\"]" js_getReady ::
-        ReadableStream -> IO (Nullable Promise)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.ready Mozilla ReadableStream.ready documentation> 
-getReady :: (MonadIO m) => ReadableStream -> m (Maybe Promise)
-getReady self = liftIO (nullableToMaybe <$> (js_getReady (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.ready Mozilla ReadableStream.ready documentation> 
-getReadyUnsafe ::
-               (MonadIO m, HasCallStack) => ReadableStream -> m Promise
-getReadyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getReady (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+foreign import javascript unsafe "($1[\"locked\"] ? 1 : 0)"
+        js_getLocked :: ReadableStream -> IO Bool
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.ready Mozilla ReadableStream.ready documentation> 
-getReadyUnchecked :: (MonadIO m) => ReadableStream -> m Promise
-getReadyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getReady (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.locked Mozilla ReadableStream.locked documentation> 
+getLocked :: (MonadIO m) => ReadableStream -> m Bool
+getLocked self = liftIO (js_getLocked self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ReadableStreamDefaultController.hs b/src/GHCJS/DOM/JSFFI/Generated/ReadableStreamDefaultController.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ReadableStreamDefaultController.hs
@@ -0,0 +1,90 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ReadableStreamDefaultController
+       (js_newReadableStreamDefaultController,
+        newReadableStreamDefaultController, js_enqueue, enqueue, js_close,
+        close, js_error, error, js_getDesiredSize, getDesiredSize,
+        ReadableStreamDefaultController(..),
+        gTypeReadableStreamDefaultController)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"ReadableStreamDefaultController\"]($1,\n$2, $3, $4)"
+        js_newReadableStreamDefaultController ::
+        ReadableStream ->
+          JSVal -> Word -> Word -> IO ReadableStreamDefaultController
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController Mozilla ReadableStreamDefaultController documentation> 
+newReadableStreamDefaultController ::
+                                   (MonadIO m, ToJSVal underlyingSource) =>
+                                     ReadableStream ->
+                                       underlyingSource ->
+                                         Word -> Word -> m ReadableStreamDefaultController
+newReadableStreamDefaultController stream underlyingSource size
+  highWaterMark
+  = liftIO
+      (toJSVal underlyingSource >>=
+         \ underlyingSource' ->
+           js_newReadableStreamDefaultController stream underlyingSource'
+         size
+         highWaterMark)
+ 
+foreign import javascript unsafe "$1[\"enqueue\"]($2)" js_enqueue
+        :: ReadableStreamDefaultController -> Optional JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController.enqueue Mozilla ReadableStreamDefaultController.enqueue documentation> 
+enqueue ::
+        (MonadIO m, ToJSVal chunk) =>
+          ReadableStreamDefaultController -> Maybe chunk -> m ()
+enqueue self chunk
+  = liftIO
+      (mapM toJSVal chunk >>=
+         \ chunk' -> js_enqueue self (maybeToOptional chunk'))
+ 
+foreign import javascript unsafe "$1[\"close\"]()" js_close ::
+        ReadableStreamDefaultController -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController.close Mozilla ReadableStreamDefaultController.close documentation> 
+close :: (MonadIO m) => ReadableStreamDefaultController -> m ()
+close self = liftIO (js_close self)
+ 
+foreign import javascript unsafe "$1[\"error\"]($2)" js_error ::
+        ReadableStreamDefaultController -> Optional JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController.error Mozilla ReadableStreamDefaultController.error documentation> 
+error ::
+      (MonadIO m, ToJSVal error) =>
+        ReadableStreamDefaultController -> Maybe error -> m ()
+error self error
+  = liftIO
+      (mapM toJSVal error >>=
+         \ error' -> js_error self (maybeToOptional error'))
+ 
+foreign import javascript unsafe "$1[\"desiredSize\"]"
+        js_getDesiredSize :: ReadableStreamDefaultController -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController.desiredSize Mozilla ReadableStreamDefaultController.desiredSize documentation> 
+getDesiredSize ::
+               (MonadIO m) => ReadableStreamDefaultController -> m Double
+getDesiredSize self = liftIO (js_getDesiredSize self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ReadableStreamDefaultReader.hs b/src/GHCJS/DOM/JSFFI/Generated/ReadableStreamDefaultReader.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ReadableStreamDefaultReader.hs
@@ -0,0 +1,90 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ReadableStreamDefaultReader
+       (js_newReadableStreamDefaultReader, newReadableStreamDefaultReader,
+        js_read, read, read_, js_cancel, cancel, cancel_, js_releaseLock,
+        releaseLock, js_getClosed, getClosed,
+        ReadableStreamDefaultReader(..), gTypeReadableStreamDefaultReader)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"ReadableStreamDefaultReader\"]($1)"
+        js_newReadableStreamDefaultReader ::
+        ReadableStream -> IO ReadableStreamDefaultReader
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader Mozilla ReadableStreamDefaultReader documentation> 
+newReadableStreamDefaultReader ::
+                               (MonadIO m) => ReadableStream -> m ReadableStreamDefaultReader
+newReadableStreamDefaultReader stream
+  = liftIO (js_newReadableStreamDefaultReader stream)
+ 
+foreign import javascript interruptible
+        "$1[\"read\"]().then($c);" js_read ::
+        ReadableStreamDefaultReader -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader.read Mozilla ReadableStreamDefaultReader.read documentation> 
+read :: (MonadIO m) => ReadableStreamDefaultReader -> m JSVal
+read self = liftIO (js_read self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader.read Mozilla ReadableStreamDefaultReader.read documentation> 
+read_ :: (MonadIO m) => ReadableStreamDefaultReader -> m ()
+read_ self = liftIO (void (js_read self))
+ 
+foreign import javascript interruptible
+        "$1[\"cancel\"]($2).then($c);" js_cancel ::
+        ReadableStreamDefaultReader -> Optional JSVal -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader.cancel Mozilla ReadableStreamDefaultReader.cancel documentation> 
+cancel ::
+       (MonadIO m, ToJSVal reason) =>
+         ReadableStreamDefaultReader -> Maybe reason -> m JSVal
+cancel self reason
+  = liftIO
+      (mapM toJSVal reason >>=
+         \ reason' -> js_cancel self (maybeToOptional reason'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader.cancel Mozilla ReadableStreamDefaultReader.cancel documentation> 
+cancel_ ::
+        (MonadIO m, ToJSVal reason) =>
+          ReadableStreamDefaultReader -> Maybe reason -> m ()
+cancel_ self reason
+  = liftIO
+      (void
+         (mapM toJSVal reason >>=
+            \ reason' -> js_cancel self (maybeToOptional reason')))
+ 
+foreign import javascript unsafe "$1[\"releaseLock\"]()"
+        js_releaseLock :: ReadableStreamDefaultReader -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader.releaseLock Mozilla ReadableStreamDefaultReader.releaseLock documentation> 
+releaseLock :: (MonadIO m) => ReadableStreamDefaultReader -> m ()
+releaseLock self = liftIO (js_releaseLock self)
+ 
+foreign import javascript interruptible
+        "$1[\"closed\"].then($c);" js_getClosed ::
+        ReadableStreamDefaultReader -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader.closed Mozilla ReadableStreamDefaultReader.closed documentation> 
+getClosed :: (MonadIO m) => ReadableStreamDefaultReader -> m Bool
+getClosed self = liftIO (js_getClosed self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ReadableStreamSource.hs b/src/GHCJS/DOM/JSFFI/Generated/ReadableStreamSource.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ReadableStreamSource.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ReadableStreamSource
+       (js_start, start, js_pull, pull, js_cancel, cancel,
+        js_getController, getController, ReadableStreamSource(..),
+        gTypeReadableStreamSource)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript interruptible
+        "$1[\"start\"]($2).then($c);" js_start ::
+        ReadableStreamSource -> ReadableStreamDefaultController -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamSource.start Mozilla ReadableStreamSource.start documentation> 
+start ::
+      (MonadIO m) =>
+        ReadableStreamSource -> ReadableStreamDefaultController -> m ()
+start self controller = liftIO (js_start self controller)
+ 
+foreign import javascript interruptible
+        "$1[\"pull\"]($2).then($c);" js_pull ::
+        ReadableStreamSource -> ReadableStreamDefaultController -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamSource.pull Mozilla ReadableStreamSource.pull documentation> 
+pull ::
+     (MonadIO m) =>
+       ReadableStreamSource -> ReadableStreamDefaultController -> m ()
+pull self controller = liftIO (js_pull self controller)
+ 
+foreign import javascript unsafe "$1[\"cancel\"]($2)" js_cancel ::
+        ReadableStreamSource -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamSource.cancel Mozilla ReadableStreamSource.cancel documentation> 
+cancel ::
+       (MonadIO m, ToJSVal reason) =>
+         ReadableStreamSource -> reason -> m ()
+cancel self reason
+  = liftIO (toJSVal reason >>= \ reason' -> js_cancel self reason')
+ 
+foreign import javascript unsafe "$1[\"controller\"]"
+        js_getController :: ReadableStreamSource -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamSource.controller Mozilla ReadableStreamSource.controller documentation> 
+getController :: (MonadIO m) => ReadableStreamSource -> m JSVal
+getController self = liftIO (js_getController self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Rect.hs b/src/GHCJS/DOM/JSFFI/Generated/Rect.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Rect.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Rect.hs
@@ -4,16 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Rect
-       (js_getTop, getTop, getTopUnsafe, getTopUnchecked, js_getRight,
-        getRight, getRightUnsafe, getRightUnchecked, js_getBottom,
-        getBottom, getBottomUnsafe, getBottomUnchecked, js_getLeft,
-        getLeft, getLeftUnsafe, getLeftUnchecked, Rect(..), gTypeRect)
+       (js_getTop, getTop, js_getRight, getRight, js_getBottom, getBottom,
+        js_getLeft, getLeft, Rect(..), gTypeRect)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,87 +20,36 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"top\"]" js_getTop ::
-        Rect -> IO (Nullable CSSPrimitiveValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.top Mozilla Rect.top documentation> 
-getTop :: (MonadIO m) => Rect -> m (Maybe CSSPrimitiveValue)
-getTop self = liftIO (nullableToMaybe <$> (js_getTop (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.top Mozilla Rect.top documentation> 
-getTopUnsafe ::
-             (MonadIO m, HasCallStack) => Rect -> m CSSPrimitiveValue
-getTopUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTop (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        Rect -> IO CSSPrimitiveValue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.top Mozilla Rect.top documentation> 
-getTopUnchecked :: (MonadIO m) => Rect -> m CSSPrimitiveValue
-getTopUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTop (self)))
+getTop :: (MonadIO m) => Rect -> m CSSPrimitiveValue
+getTop self = liftIO (js_getTop self)
  
 foreign import javascript unsafe "$1[\"right\"]" js_getRight ::
-        Rect -> IO (Nullable CSSPrimitiveValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.right Mozilla Rect.right documentation> 
-getRight :: (MonadIO m) => Rect -> m (Maybe CSSPrimitiveValue)
-getRight self = liftIO (nullableToMaybe <$> (js_getRight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.right Mozilla Rect.right documentation> 
-getRightUnsafe ::
-               (MonadIO m, HasCallStack) => Rect -> m CSSPrimitiveValue
-getRightUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        Rect -> IO CSSPrimitiveValue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.right Mozilla Rect.right documentation> 
-getRightUnchecked :: (MonadIO m) => Rect -> m CSSPrimitiveValue
-getRightUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRight (self)))
+getRight :: (MonadIO m) => Rect -> m CSSPrimitiveValue
+getRight self = liftIO (js_getRight self)
  
 foreign import javascript unsafe "$1[\"bottom\"]" js_getBottom ::
-        Rect -> IO (Nullable CSSPrimitiveValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.bottom Mozilla Rect.bottom documentation> 
-getBottom :: (MonadIO m) => Rect -> m (Maybe CSSPrimitiveValue)
-getBottom self = liftIO (nullableToMaybe <$> (js_getBottom (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.bottom Mozilla Rect.bottom documentation> 
-getBottomUnsafe ::
-                (MonadIO m, HasCallStack) => Rect -> m CSSPrimitiveValue
-getBottomUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBottom (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        Rect -> IO CSSPrimitiveValue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.bottom Mozilla Rect.bottom documentation> 
-getBottomUnchecked :: (MonadIO m) => Rect -> m CSSPrimitiveValue
-getBottomUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBottom (self)))
+getBottom :: (MonadIO m) => Rect -> m CSSPrimitiveValue
+getBottom self = liftIO (js_getBottom self)
  
 foreign import javascript unsafe "$1[\"left\"]" js_getLeft ::
-        Rect -> IO (Nullable CSSPrimitiveValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.left Mozilla Rect.left documentation> 
-getLeft :: (MonadIO m) => Rect -> m (Maybe CSSPrimitiveValue)
-getLeft self = liftIO (nullableToMaybe <$> (js_getLeft (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.left Mozilla Rect.left documentation> 
-getLeftUnsafe ::
-              (MonadIO m, HasCallStack) => Rect -> m CSSPrimitiveValue
-getLeftUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLeft (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        Rect -> IO CSSPrimitiveValue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Rect.left Mozilla Rect.left documentation> 
-getLeftUnchecked :: (MonadIO m) => Rect -> m CSSPrimitiveValue
-getLeftUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getLeft (self)))
+getLeft :: (MonadIO m) => Rect -> m CSSPrimitiveValue
+getLeft self = liftIO (js_getLeft self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Request.hs b/src/GHCJS/DOM/JSFFI/Generated/Request.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/Request.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.Request
+       (js_newRequest, newRequest, js_clone, clone, clone_, js_getMethod,
+        getMethod, js_getUrl, getUrl, js_getHeaders, getHeaders,
+        js_getType, getType, js_getDestination, getDestination,
+        js_getReferrer, getReferrer, js_getReferrerPolicy,
+        getReferrerPolicy, js_getMode, getMode, js_getCredentials,
+        getCredentials, js_getCache, getCache, js_getRedirect, getRedirect,
+        js_getIntegrity, getIntegrity, Request(..), gTypeRequest)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "new window[\"Request\"]($1, $2)"
+        js_newRequest :: JSVal -> Optional RequestInit -> IO Request
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request Mozilla Request documentation> 
+newRequest ::
+           (MonadIO m, ToJSVal input) =>
+             input -> Maybe RequestInit -> m Request
+newRequest input init
+  = liftIO
+      (toJSVal input >>= \ input' -> js_newRequest input'
+         (maybeToOptional init))
+ 
+foreign import javascript unsafe "$1[\"clone\"]()" js_clone ::
+        Request -> IO Request
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.clone Mozilla Request.clone documentation> 
+clone :: (MonadIO m) => Request -> m Request
+clone self = liftIO (js_clone self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.clone Mozilla Request.clone documentation> 
+clone_ :: (MonadIO m) => Request -> m ()
+clone_ self = liftIO (void (js_clone self))
+ 
+foreign import javascript unsafe "$1[\"method\"]" js_getMethod ::
+        Request -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.method Mozilla Request.method documentation> 
+getMethod ::
+          (MonadIO m, FromJSString result) => Request -> m result
+getMethod self = liftIO (fromJSString <$> (js_getMethod self))
+ 
+foreign import javascript unsafe "$1[\"url\"]" js_getUrl ::
+        Request -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.url Mozilla Request.url documentation> 
+getUrl :: (MonadIO m, FromJSString result) => Request -> m result
+getUrl self = liftIO (fromJSString <$> (js_getUrl self))
+ 
+foreign import javascript unsafe "$1[\"headers\"]" js_getHeaders ::
+        Request -> IO Headers
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.headers Mozilla Request.headers documentation> 
+getHeaders :: (MonadIO m) => Request -> m Headers
+getHeaders self = liftIO (js_getHeaders self)
+ 
+foreign import javascript unsafe "$1[\"type\"]" js_getType ::
+        Request -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.type Mozilla Request.type documentation> 
+getType :: (MonadIO m) => Request -> m RequestType
+getType self = liftIO ((js_getType self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"destination\"]"
+        js_getDestination :: Request -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.destination Mozilla Request.destination documentation> 
+getDestination :: (MonadIO m) => Request -> m RequestDestination
+getDestination self
+  = liftIO ((js_getDestination self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"referrer\"]" js_getReferrer
+        :: Request -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.referrer Mozilla Request.referrer documentation> 
+getReferrer ::
+            (MonadIO m, FromJSString result) => Request -> m result
+getReferrer self = liftIO (fromJSString <$> (js_getReferrer self))
+ 
+foreign import javascript unsafe "$1[\"referrerPolicy\"]"
+        js_getReferrerPolicy :: Request -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.referrerPolicy Mozilla Request.referrerPolicy documentation> 
+getReferrerPolicy :: (MonadIO m) => Request -> m ReferrerPolicy
+getReferrerPolicy self
+  = liftIO ((js_getReferrerPolicy self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"mode\"]" js_getMode ::
+        Request -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.mode Mozilla Request.mode documentation> 
+getMode :: (MonadIO m) => Request -> m RequestMode
+getMode self = liftIO ((js_getMode self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"credentials\"]"
+        js_getCredentials :: Request -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.credentials Mozilla Request.credentials documentation> 
+getCredentials :: (MonadIO m) => Request -> m RequestCredentials
+getCredentials self
+  = liftIO ((js_getCredentials self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"cache\"]" js_getCache ::
+        Request -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.cache Mozilla Request.cache documentation> 
+getCache :: (MonadIO m) => Request -> m RequestCache
+getCache self = liftIO ((js_getCache self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"redirect\"]" js_getRedirect
+        :: Request -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.redirect Mozilla Request.redirect documentation> 
+getRedirect :: (MonadIO m) => Request -> m RequestRedirect
+getRedirect self
+  = liftIO ((js_getRedirect self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"integrity\"]"
+        js_getIntegrity :: Request -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Request.integrity Mozilla Request.integrity documentation> 
+getIntegrity ::
+             (MonadIO m, FromJSString result) => Request -> m result
+getIntegrity self
+  = liftIO (fromJSString <$> (js_getIntegrity self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/RequestAnimationFrameCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/RequestAnimationFrameCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/RequestAnimationFrameCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/RequestAnimationFrameCallback.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Response.hs b/src/GHCJS/DOM/JSFFI/Generated/Response.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/Response.hs
@@ -0,0 +1,209 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.Response
+       (js_error, error, error_, js_redirect, redirect, redirect_,
+        js_arrayBuffer, arrayBuffer, arrayBuffer_, js_blob, blob, blob_,
+        js_formData, formData, formData_, js_json, json, json_, js_text,
+        text, text_, js_clone, clone, clone_, js_getType, getType,
+        js_getUrl, getUrl, js_getRedirected, getRedirected, js_getStatus,
+        getStatus, js_getOk, getOk, js_getStatusText, getStatusText,
+        js_getHeaders, getHeaders, js_getBody, getBody, getBodyUnsafe,
+        getBodyUnchecked, js_getBodyUsed, getBodyUsed, Response(..),
+        gTypeResponse)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"error\"]()" js_error ::
+        Response -> IO Response
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.error Mozilla Response.error documentation> 
+error :: (MonadIO m) => Response -> m Response
+error self = liftIO (js_error self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.error Mozilla Response.error documentation> 
+error_ :: (MonadIO m) => Response -> m ()
+error_ self = liftIO (void (js_error self))
+ 
+foreign import javascript unsafe "$1[\"redirect\"]($2, $3)"
+        js_redirect :: Response -> JSString -> Optional Word -> IO Response
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.redirect Mozilla Response.redirect documentation> 
+redirect ::
+         (MonadIO m, ToJSString url) =>
+           Response -> url -> Maybe Word -> m Response
+redirect self url status
+  = liftIO
+      (js_redirect self (toJSString url) (maybeToOptional status))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.redirect Mozilla Response.redirect documentation> 
+redirect_ ::
+          (MonadIO m, ToJSString url) =>
+            Response -> url -> Maybe Word -> m ()
+redirect_ self url status
+  = liftIO
+      (void (js_redirect self (toJSString url) (maybeToOptional status)))
+ 
+foreign import javascript interruptible
+        "$1[\"arrayBuffer\"]().then($c);" js_arrayBuffer ::
+        Response -> IO ArrayBuffer
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.arrayBuffer Mozilla Response.arrayBuffer documentation> 
+arrayBuffer :: (MonadIO m) => Response -> m ArrayBuffer
+arrayBuffer self = liftIO (js_arrayBuffer self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.arrayBuffer Mozilla Response.arrayBuffer documentation> 
+arrayBuffer_ :: (MonadIO m) => Response -> m ()
+arrayBuffer_ self = liftIO (void (js_arrayBuffer self))
+ 
+foreign import javascript interruptible
+        "$1[\"blob\"]().then($c);" js_blob :: Response -> IO Blob
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.blob Mozilla Response.blob documentation> 
+blob :: (MonadIO m) => Response -> m Blob
+blob self = liftIO (js_blob self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.blob Mozilla Response.blob documentation> 
+blob_ :: (MonadIO m) => Response -> m ()
+blob_ self = liftIO (void (js_blob self))
+ 
+foreign import javascript interruptible
+        "$1[\"formData\"]().then($c);" js_formData :: Response -> IO Blob
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.formData Mozilla Response.formData documentation> 
+formData :: (MonadIO m) => Response -> m Blob
+formData self = liftIO (js_formData self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.formData Mozilla Response.formData documentation> 
+formData_ :: (MonadIO m) => Response -> m ()
+formData_ self = liftIO (void (js_formData self))
+ 
+foreign import javascript interruptible
+        "$1[\"json\"]().then($c);" js_json :: Response -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.json Mozilla Response.json documentation> 
+json :: (MonadIO m) => Response -> m JSVal
+json self = liftIO (js_json self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.json Mozilla Response.json documentation> 
+json_ :: (MonadIO m) => Response -> m ()
+json_ self = liftIO (void (js_json self))
+ 
+foreign import javascript interruptible
+        "$1[\"text\"]().then($c);" js_text :: Response -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.text Mozilla Response.text documentation> 
+text :: (MonadIO m, FromJSString result) => Response -> m result
+text self = liftIO (fromJSString <$> (js_text self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.text Mozilla Response.text documentation> 
+text_ :: (MonadIO m) => Response -> m ()
+text_ self = liftIO (void (js_text self))
+ 
+foreign import javascript unsafe "$1[\"clone\"]()" js_clone ::
+        Response -> IO Response
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.clone Mozilla Response.clone documentation> 
+clone :: (MonadIO m) => Response -> m Response
+clone self = liftIO (js_clone self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.clone Mozilla Response.clone documentation> 
+clone_ :: (MonadIO m) => Response -> m ()
+clone_ self = liftIO (void (js_clone self))
+ 
+foreign import javascript unsafe "$1[\"type\"]" js_getType ::
+        Response -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.type Mozilla Response.type documentation> 
+getType :: (MonadIO m) => Response -> m ResponseType
+getType self = liftIO ((js_getType self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"url\"]" js_getUrl ::
+        Response -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.url Mozilla Response.url documentation> 
+getUrl :: (MonadIO m, FromJSString result) => Response -> m result
+getUrl self = liftIO (fromJSString <$> (js_getUrl self))
+ 
+foreign import javascript unsafe "($1[\"redirected\"] ? 1 : 0)"
+        js_getRedirected :: Response -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.redirected Mozilla Response.redirected documentation> 
+getRedirected :: (MonadIO m) => Response -> m Bool
+getRedirected self = liftIO (js_getRedirected self)
+ 
+foreign import javascript unsafe "$1[\"status\"]" js_getStatus ::
+        Response -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.status Mozilla Response.status documentation> 
+getStatus :: (MonadIO m) => Response -> m Word
+getStatus self = liftIO (js_getStatus self)
+ 
+foreign import javascript unsafe "($1[\"ok\"] ? 1 : 0)" js_getOk ::
+        Response -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.ok Mozilla Response.ok documentation> 
+getOk :: (MonadIO m) => Response -> m Bool
+getOk self = liftIO (js_getOk self)
+ 
+foreign import javascript unsafe "$1[\"statusText\"]"
+        js_getStatusText :: Response -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.statusText Mozilla Response.statusText documentation> 
+getStatusText ::
+              (MonadIO m, FromJSString result) => Response -> m result
+getStatusText self
+  = liftIO (fromJSString <$> (js_getStatusText self))
+ 
+foreign import javascript unsafe "$1[\"headers\"]" js_getHeaders ::
+        Response -> IO Headers
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.headers Mozilla Response.headers documentation> 
+getHeaders :: (MonadIO m) => Response -> m Headers
+getHeaders self = liftIO (js_getHeaders self)
+ 
+foreign import javascript unsafe "$1[\"body\"]" js_getBody ::
+        Response -> IO (Nullable ReadableStream)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.body Mozilla Response.body documentation> 
+getBody :: (MonadIO m) => Response -> m (Maybe ReadableStream)
+getBody self = liftIO (nullableToMaybe <$> (js_getBody self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.body Mozilla Response.body documentation> 
+getBodyUnsafe ::
+              (MonadIO m, HasCallStack) => Response -> m ReadableStream
+getBodyUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getBody self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.body Mozilla Response.body documentation> 
+getBodyUnchecked :: (MonadIO m) => Response -> m ReadableStream
+getBodyUnchecked self
+  = liftIO (fromJust . nullableToMaybe <$> (js_getBody self))
+ 
+foreign import javascript unsafe "($1[\"bodyUsed\"] ? 1 : 0)"
+        js_getBodyUsed :: Response -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.bodyUsed Mozilla Response.bodyUsed documentation> 
+getBodyUsed :: (MonadIO m) => Response -> m Bool
+getBodyUsed self = liftIO (js_getBodyUsed self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SQLError.hs b/src/GHCJS/DOM/JSFFI/Generated/SQLError.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SQLError.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SQLError.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -40,7 +41,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLError.code Mozilla SQLError.code documentation> 
 getCode :: (MonadIO m) => SQLError -> m Word
-getCode self = liftIO (js_getCode (self))
+getCode self = liftIO (js_getCode self)
  
 foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
         SQLError -> IO JSString
@@ -48,4 +49,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLError.message Mozilla SQLError.message documentation> 
 getMessage ::
            (MonadIO m, FromJSString result) => SQLError -> m result
-getMessage self = liftIO (fromJSString <$> (js_getMessage (self)))
+getMessage self = liftIO (fromJSString <$> (js_getMessage self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SQLException.hs b/src/GHCJS/DOM/JSFFI/Generated/SQLException.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/SQLException.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.SQLException
+       (pattern UNKNOWN_ERR, pattern DATABASE_ERR, pattern VERSION_ERR,
+        pattern TOO_LARGE_ERR, pattern QUOTA_ERR, pattern SYNTAX_ERR,
+        pattern CONSTRAINT_ERR, pattern TIMEOUT_ERR, js_getCode, getCode,
+        js_getMessage, getMessage, SQLException(..), gTypeSQLException)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+pattern UNKNOWN_ERR = 0
+pattern DATABASE_ERR = 1
+pattern VERSION_ERR = 2
+pattern TOO_LARGE_ERR = 3
+pattern QUOTA_ERR = 4
+pattern SYNTAX_ERR = 5
+pattern CONSTRAINT_ERR = 6
+pattern TIMEOUT_ERR = 7
+ 
+foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
+        SQLException -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLException.code Mozilla SQLException.code documentation> 
+getCode :: (MonadIO m) => SQLException -> m Word
+getCode self = liftIO (js_getCode self)
+ 
+foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
+        SQLException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLException.message Mozilla SQLException.message documentation> 
+getMessage ::
+           (MonadIO m, FromJSString result) => SQLException -> m result
+getMessage self = liftIO (fromJSString <$> (js_getMessage self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SQLResultSet.hs b/src/GHCJS/DOM/JSFFI/Generated/SQLResultSet.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SQLResultSet.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SQLResultSet.hs
@@ -4,15 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SQLResultSet
-       (js_getRows, getRows, getRowsUnsafe, getRowsUnchecked,
-        js_getInsertId, getInsertId, js_getRowsAffected, getRowsAffected,
-        SQLResultSet(..), gTypeSQLResultSet)
+       (js_getRows, getRows, js_getInsertId, getInsertId,
+        js_getRowsAffected, getRowsAffected, SQLResultSet(..),
+        gTypeSQLResultSet)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,43 +21,29 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"rows\"]" js_getRows ::
-        SQLResultSet -> IO (Nullable SQLResultSetRowList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSet.rows Mozilla SQLResultSet.rows documentation> 
-getRows ::
-        (MonadIO m) => SQLResultSet -> m (Maybe SQLResultSetRowList)
-getRows self = liftIO (nullableToMaybe <$> (js_getRows (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSet.rows Mozilla SQLResultSet.rows documentation> 
-getRowsUnsafe ::
-              (MonadIO m, HasCallStack) => SQLResultSet -> m SQLResultSetRowList
-getRowsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRows (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SQLResultSet -> IO SQLResultSetRowList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSet.rows Mozilla SQLResultSet.rows documentation> 
-getRowsUnchecked ::
-                 (MonadIO m) => SQLResultSet -> m SQLResultSetRowList
-getRowsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRows (self)))
+getRows :: (MonadIO m) => SQLResultSet -> m SQLResultSetRowList
+getRows self = liftIO (js_getRows self)
  
 foreign import javascript unsafe "$1[\"insertId\"]" js_getInsertId
-        :: SQLResultSet -> IO Int
+        :: SQLResultSet -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSet.insertId Mozilla SQLResultSet.insertId documentation> 
-getInsertId :: (MonadIO m) => SQLResultSet -> m Int
-getInsertId self = liftIO (js_getInsertId (self))
+getInsertId :: (MonadIO m) => SQLResultSet -> m Int64
+getInsertId self = liftIO (round <$> (js_getInsertId self))
  
 foreign import javascript unsafe "$1[\"rowsAffected\"]"
         js_getRowsAffected :: SQLResultSet -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSet.rowsAffected Mozilla SQLResultSet.rowsAffected documentation> 
 getRowsAffected :: (MonadIO m) => SQLResultSet -> m Int
-getRowsAffected self = liftIO (js_getRowsAffected (self))
+getRowsAffected self = liftIO (js_getRowsAffected self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SQLResultSetRowList.hs b/src/GHCJS/DOM/JSFFI/Generated/SQLResultSetRowList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SQLResultSetRowList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SQLResultSetRowList.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,25 +20,28 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        SQLResultSetRowList -> Word -> IO JSVal
+        SQLResultSetRowList -> Word -> IO (Record DOMString SQLValue)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSetRowList.item Mozilla SQLResultSetRowList.item documentation> 
-item :: (MonadIO m) => SQLResultSetRowList -> Word -> m JSVal
-item self index = liftIO (js_item (self) index)
+item ::
+     (MonadIO m) =>
+       SQLResultSetRowList -> Word -> m (Record DOMString SQLValue)
+item self index = liftIO (js_item self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSetRowList.item Mozilla SQLResultSetRowList.item documentation> 
 item_ :: (MonadIO m) => SQLResultSetRowList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         SQLResultSetRowList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSetRowList.length Mozilla SQLResultSetRowList.length documentation> 
 getLength :: (MonadIO m) => SQLResultSetRowList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SQLStatementCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/SQLStatementCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SQLStatementCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SQLStatementCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,8 +29,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLStatementCallback Mozilla SQLStatementCallback documentation> 
 newSQLStatementCallback ::
                         (MonadIO m) =>
-                          (Maybe SQLTransaction -> Maybe SQLResultSet -> IO ()) ->
-                            m SQLStatementCallback
+                          (SQLTransaction -> SQLResultSet -> IO ()) -> m SQLStatementCallback
 newSQLStatementCallback callback
   = liftIO
       (SQLStatementCallback <$>
@@ -44,8 +44,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLStatementCallback Mozilla SQLStatementCallback documentation> 
 newSQLStatementCallbackSync ::
                             (MonadIO m) =>
-                              (Maybe SQLTransaction -> Maybe SQLResultSet -> IO ()) ->
-                                m SQLStatementCallback
+                              (SQLTransaction -> SQLResultSet -> IO ()) -> m SQLStatementCallback
 newSQLStatementCallbackSync callback
   = liftIO
       (SQLStatementCallback <$>
@@ -60,8 +59,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLStatementCallback Mozilla SQLStatementCallback documentation> 
 newSQLStatementCallbackAsync ::
                              (MonadIO m) =>
-                               (Maybe SQLTransaction -> Maybe SQLResultSet -> IO ()) ->
-                                 m SQLStatementCallback
+                               (SQLTransaction -> SQLResultSet -> IO ()) -> m SQLStatementCallback
 newSQLStatementCallbackAsync callback
   = liftIO
       (SQLStatementCallback <$>
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SQLStatementErrorCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/SQLStatementErrorCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SQLStatementErrorCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SQLStatementErrorCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,7 +29,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLStatementErrorCallback Mozilla SQLStatementErrorCallback documentation> 
 newSQLStatementErrorCallback ::
                              (MonadIO m) =>
-                               (Maybe SQLTransaction -> Maybe SQLError -> IO ()) ->
+                               (SQLTransaction -> SQLError -> IO ()) ->
                                  m SQLStatementErrorCallback
 newSQLStatementErrorCallback callback
   = liftIO
@@ -44,7 +45,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLStatementErrorCallback Mozilla SQLStatementErrorCallback documentation> 
 newSQLStatementErrorCallbackSync ::
                                  (MonadIO m) =>
-                                   (Maybe SQLTransaction -> Maybe SQLError -> IO ()) ->
+                                   (SQLTransaction -> SQLError -> IO ()) ->
                                      m SQLStatementErrorCallback
 newSQLStatementErrorCallbackSync callback
   = liftIO
@@ -60,7 +61,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLStatementErrorCallback Mozilla SQLStatementErrorCallback documentation> 
 newSQLStatementErrorCallbackAsync ::
                                   (MonadIO m) =>
-                                    (Maybe SQLTransaction -> Maybe SQLError -> IO ()) ->
+                                    (SQLTransaction -> SQLError -> IO ()) ->
                                       m SQLStatementErrorCallback
 newSQLStatementErrorCallbackAsync callback
   = liftIO
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SQLTransaction.hs b/src/GHCJS/DOM/JSFFI/Generated/SQLTransaction.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SQLTransaction.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SQLTransaction.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -29,21 +30,22 @@
         "$1[\"executeSql\"]($2, $3, $4, $5)" js_executeSql ::
         SQLTransaction ->
           JSString ->
-            Nullable ObjectArray ->
-              Nullable SQLStatementCallback ->
-                Nullable SQLStatementErrorCallback -> IO ()
+            JSVal ->
+              Optional SQLStatementCallback ->
+                Optional SQLStatementErrorCallback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransaction.executeSql Mozilla SQLTransaction.executeSql documentation> 
 executeSql ::
-           (MonadIO m, ToJSString sqlStatement, IsObjectArray arguments) =>
+           (MonadIO m, ToJSString sqlStatement, IsSQLValue arguments) =>
              SQLTransaction ->
                sqlStatement ->
-                 Maybe arguments ->
+                 [arguments] ->
                    Maybe SQLStatementCallback ->
                      Maybe SQLStatementErrorCallback -> m ()
 executeSql self sqlStatement arguments callback errorCallback
   = liftIO
-      (js_executeSql (self) (toJSString sqlStatement)
-         (maybeToNullable (fmap toObjectArray arguments))
-         (maybeToNullable callback)
-         (maybeToNullable errorCallback))
+      (toJSVal arguments >>=
+         \ arguments' ->
+           js_executeSql self (toJSString sqlStatement) arguments'
+         (maybeToOptional callback)
+         (maybeToOptional errorCallback))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SQLTransactionCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/SQLTransactionCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SQLTransactionCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SQLTransactionCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,7 +29,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransactionCallback Mozilla SQLTransactionCallback documentation> 
 newSQLTransactionCallback ::
                           (MonadIO m) =>
-                            (Maybe SQLTransaction -> IO ()) -> m SQLTransactionCallback
+                            (SQLTransaction -> IO ()) -> m SQLTransactionCallback
 newSQLTransactionCallback callback
   = liftIO
       (SQLTransactionCallback <$>
@@ -40,7 +41,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransactionCallback Mozilla SQLTransactionCallback documentation> 
 newSQLTransactionCallbackSync ::
                               (MonadIO m) =>
-                                (Maybe SQLTransaction -> IO ()) -> m SQLTransactionCallback
+                                (SQLTransaction -> IO ()) -> m SQLTransactionCallback
 newSQLTransactionCallbackSync callback
   = liftIO
       (SQLTransactionCallback <$>
@@ -52,7 +53,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransactionCallback Mozilla SQLTransactionCallback documentation> 
 newSQLTransactionCallbackAsync ::
                                (MonadIO m) =>
-                                 (Maybe SQLTransaction -> IO ()) -> m SQLTransactionCallback
+                                 (SQLTransaction -> IO ()) -> m SQLTransactionCallback
 newSQLTransactionCallbackAsync callback
   = liftIO
       (SQLTransactionCallback <$>
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SQLTransactionErrorCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/SQLTransactionErrorCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SQLTransactionErrorCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SQLTransactionErrorCallback.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,8 +29,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransactionErrorCallback Mozilla SQLTransactionErrorCallback documentation> 
 newSQLTransactionErrorCallback ::
-                               (MonadIO m) =>
-                                 (Maybe SQLError -> IO ()) -> m SQLTransactionErrorCallback
+                               (MonadIO m) => (SQLError -> IO ()) -> m SQLTransactionErrorCallback
 newSQLTransactionErrorCallback callback
   = liftIO
       (SQLTransactionErrorCallback <$>
@@ -40,7 +40,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransactionErrorCallback Mozilla SQLTransactionErrorCallback documentation> 
 newSQLTransactionErrorCallbackSync ::
                                    (MonadIO m) =>
-                                     (Maybe SQLError -> IO ()) -> m SQLTransactionErrorCallback
+                                     (SQLError -> IO ()) -> m SQLTransactionErrorCallback
 newSQLTransactionErrorCallbackSync callback
   = liftIO
       (SQLTransactionErrorCallback <$>
@@ -51,7 +51,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransactionErrorCallback Mozilla SQLTransactionErrorCallback documentation> 
 newSQLTransactionErrorCallbackAsync ::
                                     (MonadIO m) =>
-                                      (Maybe SQLError -> IO ()) -> m SQLTransactionErrorCallback
+                                      (SQLError -> IO ()) -> m SQLTransactionErrorCallback
 newSQLTransactionErrorCallbackAsync callback
   = liftIO
       (SQLTransactionErrorCallback <$>
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAElement.hs
@@ -4,14 +4,12 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGAElement
-       (js_getTarget, getTarget, getTargetUnsafe, getTargetUnchecked,
-        SVGAElement(..), gTypeSVGAElement)
-       where
+       (js_getTarget, getTarget, SVGAElement(..), gTypeSVGAElement) where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,29 +18,15 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"target\"]" js_getTarget ::
-        SVGAElement -> IO (Nullable SVGAnimatedString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAElement.target Mozilla SVGAElement.target documentation> 
-getTarget ::
-          (MonadIO m) => SVGAElement -> m (Maybe SVGAnimatedString)
-getTarget self = liftIO (nullableToMaybe <$> (js_getTarget (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAElement.target Mozilla SVGAElement.target documentation> 
-getTargetUnsafe ::
-                (MonadIO m, HasCallStack) => SVGAElement -> m SVGAnimatedString
-getTargetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTarget (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGAElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAElement.target Mozilla SVGAElement.target documentation> 
-getTargetUnchecked ::
-                   (MonadIO m) => SVGAElement -> m SVGAnimatedString
-getTargetUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTarget (self)))
+getTarget :: (MonadIO m) => SVGAElement -> m SVGAnimatedString
+getTarget self = liftIO (js_getTarget self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAltGlyphElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAltGlyphElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAltGlyphElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAltGlyphElement.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,7 +34,7 @@
 setGlyphRef ::
             (MonadIO m, ToJSString val) => SVGAltGlyphElement -> val -> m ()
 setGlyphRef self val
-  = liftIO (js_setGlyphRef (self) (toJSString val))
+  = liftIO (js_setGlyphRef self (toJSString val))
  
 foreign import javascript unsafe "$1[\"glyphRef\"]" js_getGlyphRef
         :: SVGAltGlyphElement -> IO JSString
@@ -41,8 +42,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphElement.glyphRef Mozilla SVGAltGlyphElement.glyphRef documentation> 
 getGlyphRef ::
             (MonadIO m, FromJSString result) => SVGAltGlyphElement -> m result
-getGlyphRef self
-  = liftIO (fromJSString <$> (js_getGlyphRef (self)))
+getGlyphRef self = liftIO (fromJSString <$> (js_getGlyphRef self))
  
 foreign import javascript unsafe "$1[\"format\"] = $2;"
         js_setFormat :: SVGAltGlyphElement -> JSString -> IO ()
@@ -50,7 +50,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphElement.format Mozilla SVGAltGlyphElement.format documentation> 
 setFormat ::
           (MonadIO m, ToJSString val) => SVGAltGlyphElement -> val -> m ()
-setFormat self val = liftIO (js_setFormat (self) (toJSString val))
+setFormat self val = liftIO (js_setFormat self (toJSString val))
  
 foreign import javascript unsafe "$1[\"format\"]" js_getFormat ::
         SVGAltGlyphElement -> IO JSString
@@ -58,4 +58,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphElement.format Mozilla SVGAltGlyphElement.format documentation> 
 getFormat ::
           (MonadIO m, FromJSString result) => SVGAltGlyphElement -> m result
-getFormat self = liftIO (fromJSString <$> (js_getFormat (self)))
+getFormat self = liftIO (fromJSString <$> (js_getFormat self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAngle.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAngle.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAngle.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAngle.hs
@@ -13,14 +13,13 @@
         js_setValueInSpecifiedUnits, setValueInSpecifiedUnits,
         js_getValueInSpecifiedUnits, getValueInSpecifiedUnits,
         js_setValueAsString, setValueAsString, js_getValueAsString,
-        getValueAsString, getValueAsStringUnsafe,
-        getValueAsStringUnchecked, SVGAngle(..), gTypeSVGAngle)
+        getValueAsString, SVGAngle(..), gTypeSVGAngle)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -29,6 +28,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -43,7 +43,7 @@
                        (MonadIO m) => SVGAngle -> Word -> Float -> m ()
 newValueSpecifiedUnits self unitType valueInSpecifiedUnits
   = liftIO
-      (js_newValueSpecifiedUnits (self) unitType valueInSpecifiedUnits)
+      (js_newValueSpecifiedUnits self unitType valueInSpecifiedUnits)
  
 foreign import javascript unsafe
         "$1[\"convertToSpecifiedUnits\"]($2)" js_convertToSpecifiedUnits ::
@@ -52,7 +52,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle.convertToSpecifiedUnits Mozilla SVGAngle.convertToSpecifiedUnits documentation> 
 convertToSpecifiedUnits :: (MonadIO m) => SVGAngle -> Word -> m ()
 convertToSpecifiedUnits self unitType
-  = liftIO (js_convertToSpecifiedUnits (self) unitType)
+  = liftIO (js_convertToSpecifiedUnits self unitType)
 pattern SVG_ANGLETYPE_UNKNOWN = 0
 pattern SVG_ANGLETYPE_UNSPECIFIED = 1
 pattern SVG_ANGLETYPE_DEG = 2
@@ -64,21 +64,21 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle.unitType Mozilla SVGAngle.unitType documentation> 
 getUnitType :: (MonadIO m) => SVGAngle -> m Word
-getUnitType self = liftIO (js_getUnitType (self))
+getUnitType self = liftIO (js_getUnitType self)
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
         :: SVGAngle -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle.value Mozilla SVGAngle.value documentation> 
 setValue :: (MonadIO m) => SVGAngle -> Float -> m ()
-setValue self val = liftIO (js_setValue (self) val)
+setValue self val = liftIO (js_setValue self val)
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         SVGAngle -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle.value Mozilla SVGAngle.value documentation> 
 getValue :: (MonadIO m) => SVGAngle -> m Float
-getValue self = liftIO (js_getValue (self))
+getValue self = liftIO (js_getValue self)
  
 foreign import javascript unsafe
         "$1[\"valueInSpecifiedUnits\"] = $2;" js_setValueInSpecifiedUnits
@@ -88,7 +88,7 @@
 setValueInSpecifiedUnits ::
                          (MonadIO m) => SVGAngle -> Float -> m ()
 setValueInSpecifiedUnits self val
-  = liftIO (js_setValueInSpecifiedUnits (self) val)
+  = liftIO (js_setValueInSpecifiedUnits self val)
  
 foreign import javascript unsafe "$1[\"valueInSpecifiedUnits\"]"
         js_getValueInSpecifiedUnits :: SVGAngle -> IO Float
@@ -96,38 +96,22 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle.valueInSpecifiedUnits Mozilla SVGAngle.valueInSpecifiedUnits documentation> 
 getValueInSpecifiedUnits :: (MonadIO m) => SVGAngle -> m Float
 getValueInSpecifiedUnits self
-  = liftIO (js_getValueInSpecifiedUnits (self))
+  = liftIO (js_getValueInSpecifiedUnits self)
  
 foreign import javascript unsafe "$1[\"valueAsString\"] = $2;"
-        js_setValueAsString :: SVGAngle -> Nullable JSString -> IO ()
+        js_setValueAsString :: SVGAngle -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle.valueAsString Mozilla SVGAngle.valueAsString documentation> 
 setValueAsString ::
-                 (MonadIO m, ToJSString val) => SVGAngle -> Maybe val -> m ()
+                 (MonadIO m, ToJSString val) => SVGAngle -> val -> m ()
 setValueAsString self val
-  = liftIO (js_setValueAsString (self) (toMaybeJSString val))
+  = liftIO (js_setValueAsString self (toJSString val))
  
 foreign import javascript unsafe "$1[\"valueAsString\"]"
-        js_getValueAsString :: SVGAngle -> IO (Nullable JSString)
+        js_getValueAsString :: SVGAngle -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle.valueAsString Mozilla SVGAngle.valueAsString documentation> 
 getValueAsString ::
-                 (MonadIO m, FromJSString result) => SVGAngle -> m (Maybe result)
+                 (MonadIO m, FromJSString result) => SVGAngle -> m result
 getValueAsString self
-  = liftIO (fromMaybeJSString <$> (js_getValueAsString (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle.valueAsString Mozilla SVGAngle.valueAsString documentation> 
-getValueAsStringUnsafe ::
-                       (MonadIO m, HasCallStack, FromJSString result) =>
-                         SVGAngle -> m result
-getValueAsStringUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getValueAsString (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle.valueAsString Mozilla SVGAngle.valueAsString documentation> 
-getValueAsStringUnchecked ::
-                          (MonadIO m, FromJSString result) => SVGAngle -> m result
-getValueAsStringUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getValueAsString (self)))
+  = liftIO (fromJSString <$> (js_getValueAsString self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedAngle.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedAngle.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedAngle.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedAngle.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGAnimatedAngle
-       (js_getBaseVal, getBaseVal, getBaseValUnsafe, getBaseValUnchecked,
-        js_getAnimVal, getAnimVal, getAnimValUnsafe, getAnimValUnchecked,
+       (js_getBaseVal, getBaseVal, js_getAnimVal, getAnimVal,
         SVGAnimatedAngle(..), gTypeSVGAnimatedAngle)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,51 +20,22 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"baseVal\"]" js_getBaseVal ::
-        SVGAnimatedAngle -> IO (Nullable SVGAngle)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedAngle.baseVal Mozilla SVGAnimatedAngle.baseVal documentation> 
-getBaseVal :: (MonadIO m) => SVGAnimatedAngle -> m (Maybe SVGAngle)
-getBaseVal self
-  = liftIO (nullableToMaybe <$> (js_getBaseVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedAngle.baseVal Mozilla SVGAnimatedAngle.baseVal documentation> 
-getBaseValUnsafe ::
-                 (MonadIO m, HasCallStack) => SVGAnimatedAngle -> m SVGAngle
-getBaseValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBaseVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGAnimatedAngle -> IO SVGAngle
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedAngle.baseVal Mozilla SVGAnimatedAngle.baseVal documentation> 
-getBaseValUnchecked ::
-                    (MonadIO m) => SVGAnimatedAngle -> m SVGAngle
-getBaseValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBaseVal (self)))
+getBaseVal :: (MonadIO m) => SVGAnimatedAngle -> m SVGAngle
+getBaseVal self = liftIO (js_getBaseVal self)
  
 foreign import javascript unsafe "$1[\"animVal\"]" js_getAnimVal ::
-        SVGAnimatedAngle -> IO (Nullable SVGAngle)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedAngle.animVal Mozilla SVGAnimatedAngle.animVal documentation> 
-getAnimVal :: (MonadIO m) => SVGAnimatedAngle -> m (Maybe SVGAngle)
-getAnimVal self
-  = liftIO (nullableToMaybe <$> (js_getAnimVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedAngle.animVal Mozilla SVGAnimatedAngle.animVal documentation> 
-getAnimValUnsafe ::
-                 (MonadIO m, HasCallStack) => SVGAnimatedAngle -> m SVGAngle
-getAnimValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnimVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGAnimatedAngle -> IO SVGAngle
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedAngle.animVal Mozilla SVGAnimatedAngle.animVal documentation> 
-getAnimValUnchecked ::
-                    (MonadIO m) => SVGAnimatedAngle -> m SVGAngle
-getAnimValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAnimVal (self)))
+getAnimVal :: (MonadIO m) => SVGAnimatedAngle -> m SVGAngle
+getAnimVal self = liftIO (js_getAnimVal self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedBoolean.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedBoolean.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedBoolean.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedBoolean.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,18 +32,18 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedBoolean.baseVal Mozilla SVGAnimatedBoolean.baseVal documentation> 
 setBaseVal :: (MonadIO m) => SVGAnimatedBoolean -> Bool -> m ()
-setBaseVal self val = liftIO (js_setBaseVal (self) val)
+setBaseVal self val = liftIO (js_setBaseVal self val)
  
 foreign import javascript unsafe "($1[\"baseVal\"] ? 1 : 0)"
         js_getBaseVal :: SVGAnimatedBoolean -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedBoolean.baseVal Mozilla SVGAnimatedBoolean.baseVal documentation> 
 getBaseVal :: (MonadIO m) => SVGAnimatedBoolean -> m Bool
-getBaseVal self = liftIO (js_getBaseVal (self))
+getBaseVal self = liftIO (js_getBaseVal self)
  
 foreign import javascript unsafe "($1[\"animVal\"] ? 1 : 0)"
         js_getAnimVal :: SVGAnimatedBoolean -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedBoolean.animVal Mozilla SVGAnimatedBoolean.animVal documentation> 
 getAnimVal :: (MonadIO m) => SVGAnimatedBoolean -> m Bool
-getAnimVal self = liftIO (js_getAnimVal (self))
+getAnimVal self = liftIO (js_getAnimVal self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedEnumeration.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedEnumeration.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedEnumeration.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedEnumeration.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,18 +32,18 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedEnumeration.baseVal Mozilla SVGAnimatedEnumeration.baseVal documentation> 
 setBaseVal :: (MonadIO m) => SVGAnimatedEnumeration -> Word -> m ()
-setBaseVal self val = liftIO (js_setBaseVal (self) val)
+setBaseVal self val = liftIO (js_setBaseVal self val)
  
 foreign import javascript unsafe "$1[\"baseVal\"]" js_getBaseVal ::
         SVGAnimatedEnumeration -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedEnumeration.baseVal Mozilla SVGAnimatedEnumeration.baseVal documentation> 
 getBaseVal :: (MonadIO m) => SVGAnimatedEnumeration -> m Word
-getBaseVal self = liftIO (js_getBaseVal (self))
+getBaseVal self = liftIO (js_getBaseVal self)
  
 foreign import javascript unsafe "$1[\"animVal\"]" js_getAnimVal ::
         SVGAnimatedEnumeration -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedEnumeration.animVal Mozilla SVGAnimatedEnumeration.animVal documentation> 
 getAnimVal :: (MonadIO m) => SVGAnimatedEnumeration -> m Word
-getAnimVal self = liftIO (js_getAnimVal (self))
+getAnimVal self = liftIO (js_getAnimVal self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedInteger.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedInteger.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedInteger.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedInteger.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,18 +32,18 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedInteger.baseVal Mozilla SVGAnimatedInteger.baseVal documentation> 
 setBaseVal :: (MonadIO m) => SVGAnimatedInteger -> Int -> m ()
-setBaseVal self val = liftIO (js_setBaseVal (self) val)
+setBaseVal self val = liftIO (js_setBaseVal self val)
  
 foreign import javascript unsafe "$1[\"baseVal\"]" js_getBaseVal ::
         SVGAnimatedInteger -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedInteger.baseVal Mozilla SVGAnimatedInteger.baseVal documentation> 
 getBaseVal :: (MonadIO m) => SVGAnimatedInteger -> m Int
-getBaseVal self = liftIO (js_getBaseVal (self))
+getBaseVal self = liftIO (js_getBaseVal self)
  
 foreign import javascript unsafe "$1[\"animVal\"]" js_getAnimVal ::
         SVGAnimatedInteger -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedInteger.animVal Mozilla SVGAnimatedInteger.animVal documentation> 
 getAnimVal :: (MonadIO m) => SVGAnimatedInteger -> m Int
-getAnimVal self = liftIO (js_getAnimVal (self))
+getAnimVal self = liftIO (js_getAnimVal self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedLength.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedLength.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedLength.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedLength.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGAnimatedLength
-       (js_getBaseVal, getBaseVal, getBaseValUnsafe, getBaseValUnchecked,
-        js_getAnimVal, getAnimVal, getAnimValUnsafe, getAnimValUnchecked,
+       (js_getBaseVal, getBaseVal, js_getAnimVal, getAnimVal,
         SVGAnimatedLength(..), gTypeSVGAnimatedLength)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,53 +20,22 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"baseVal\"]" js_getBaseVal ::
-        SVGAnimatedLength -> IO (Nullable SVGLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLength.baseVal Mozilla SVGAnimatedLength.baseVal documentation> 
-getBaseVal ::
-           (MonadIO m) => SVGAnimatedLength -> m (Maybe SVGLength)
-getBaseVal self
-  = liftIO (nullableToMaybe <$> (js_getBaseVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLength.baseVal Mozilla SVGAnimatedLength.baseVal documentation> 
-getBaseValUnsafe ::
-                 (MonadIO m, HasCallStack) => SVGAnimatedLength -> m SVGLength
-getBaseValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBaseVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGAnimatedLength -> IO SVGLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLength.baseVal Mozilla SVGAnimatedLength.baseVal documentation> 
-getBaseValUnchecked ::
-                    (MonadIO m) => SVGAnimatedLength -> m SVGLength
-getBaseValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBaseVal (self)))
+getBaseVal :: (MonadIO m) => SVGAnimatedLength -> m SVGLength
+getBaseVal self = liftIO (js_getBaseVal self)
  
 foreign import javascript unsafe "$1[\"animVal\"]" js_getAnimVal ::
-        SVGAnimatedLength -> IO (Nullable SVGLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLength.animVal Mozilla SVGAnimatedLength.animVal documentation> 
-getAnimVal ::
-           (MonadIO m) => SVGAnimatedLength -> m (Maybe SVGLength)
-getAnimVal self
-  = liftIO (nullableToMaybe <$> (js_getAnimVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLength.animVal Mozilla SVGAnimatedLength.animVal documentation> 
-getAnimValUnsafe ::
-                 (MonadIO m, HasCallStack) => SVGAnimatedLength -> m SVGLength
-getAnimValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnimVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGAnimatedLength -> IO SVGLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLength.animVal Mozilla SVGAnimatedLength.animVal documentation> 
-getAnimValUnchecked ::
-                    (MonadIO m) => SVGAnimatedLength -> m SVGLength
-getAnimValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAnimVal (self)))
+getAnimVal :: (MonadIO m) => SVGAnimatedLength -> m SVGLength
+getAnimVal self = liftIO (js_getAnimVal self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedLengthList.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedLengthList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedLengthList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedLengthList.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGAnimatedLengthList
-       (js_getBaseVal, getBaseVal, getBaseValUnsafe, getBaseValUnchecked,
-        js_getAnimVal, getAnimVal, getAnimValUnsafe, getAnimValUnchecked,
+       (js_getBaseVal, getBaseVal, js_getAnimVal, getAnimVal,
         SVGAnimatedLengthList(..), gTypeSVGAnimatedLengthList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,55 +20,24 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"baseVal\"]" js_getBaseVal ::
-        SVGAnimatedLengthList -> IO (Nullable SVGLengthList)
+        SVGAnimatedLengthList -> IO SVGLengthList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLengthList.baseVal Mozilla SVGAnimatedLengthList.baseVal documentation> 
 getBaseVal ::
-           (MonadIO m) => SVGAnimatedLengthList -> m (Maybe SVGLengthList)
-getBaseVal self
-  = liftIO (nullableToMaybe <$> (js_getBaseVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLengthList.baseVal Mozilla SVGAnimatedLengthList.baseVal documentation> 
-getBaseValUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGAnimatedLengthList -> m SVGLengthList
-getBaseValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBaseVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLengthList.baseVal Mozilla SVGAnimatedLengthList.baseVal documentation> 
-getBaseValUnchecked ::
-                    (MonadIO m) => SVGAnimatedLengthList -> m SVGLengthList
-getBaseValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBaseVal (self)))
+           (MonadIO m) => SVGAnimatedLengthList -> m SVGLengthList
+getBaseVal self = liftIO (js_getBaseVal self)
  
 foreign import javascript unsafe "$1[\"animVal\"]" js_getAnimVal ::
-        SVGAnimatedLengthList -> IO (Nullable SVGLengthList)
+        SVGAnimatedLengthList -> IO SVGLengthList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLengthList.animVal Mozilla SVGAnimatedLengthList.animVal documentation> 
 getAnimVal ::
-           (MonadIO m) => SVGAnimatedLengthList -> m (Maybe SVGLengthList)
-getAnimVal self
-  = liftIO (nullableToMaybe <$> (js_getAnimVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLengthList.animVal Mozilla SVGAnimatedLengthList.animVal documentation> 
-getAnimValUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGAnimatedLengthList -> m SVGLengthList
-getAnimValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnimVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLengthList.animVal Mozilla SVGAnimatedLengthList.animVal documentation> 
-getAnimValUnchecked ::
-                    (MonadIO m) => SVGAnimatedLengthList -> m SVGLengthList
-getAnimValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAnimVal (self)))
+           (MonadIO m) => SVGAnimatedLengthList -> m SVGLengthList
+getAnimVal self = liftIO (js_getAnimVal self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedNumber.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedNumber.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedNumber.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedNumber.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,18 +32,18 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumber.baseVal Mozilla SVGAnimatedNumber.baseVal documentation> 
 setBaseVal :: (MonadIO m) => SVGAnimatedNumber -> Float -> m ()
-setBaseVal self val = liftIO (js_setBaseVal (self) val)
+setBaseVal self val = liftIO (js_setBaseVal self val)
  
 foreign import javascript unsafe "$1[\"baseVal\"]" js_getBaseVal ::
         SVGAnimatedNumber -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumber.baseVal Mozilla SVGAnimatedNumber.baseVal documentation> 
 getBaseVal :: (MonadIO m) => SVGAnimatedNumber -> m Float
-getBaseVal self = liftIO (js_getBaseVal (self))
+getBaseVal self = liftIO (js_getBaseVal self)
  
 foreign import javascript unsafe "$1[\"animVal\"]" js_getAnimVal ::
         SVGAnimatedNumber -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumber.animVal Mozilla SVGAnimatedNumber.animVal documentation> 
 getAnimVal :: (MonadIO m) => SVGAnimatedNumber -> m Float
-getAnimVal self = liftIO (js_getAnimVal (self))
+getAnimVal self = liftIO (js_getAnimVal self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedNumberList.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedNumberList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedNumberList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedNumberList.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGAnimatedNumberList
-       (js_getBaseVal, getBaseVal, getBaseValUnsafe, getBaseValUnchecked,
-        js_getAnimVal, getAnimVal, getAnimValUnsafe, getAnimValUnchecked,
+       (js_getBaseVal, getBaseVal, js_getAnimVal, getAnimVal,
         SVGAnimatedNumberList(..), gTypeSVGAnimatedNumberList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,55 +20,24 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"baseVal\"]" js_getBaseVal ::
-        SVGAnimatedNumberList -> IO (Nullable SVGNumberList)
+        SVGAnimatedNumberList -> IO SVGNumberList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumberList.baseVal Mozilla SVGAnimatedNumberList.baseVal documentation> 
 getBaseVal ::
-           (MonadIO m) => SVGAnimatedNumberList -> m (Maybe SVGNumberList)
-getBaseVal self
-  = liftIO (nullableToMaybe <$> (js_getBaseVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumberList.baseVal Mozilla SVGAnimatedNumberList.baseVal documentation> 
-getBaseValUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGAnimatedNumberList -> m SVGNumberList
-getBaseValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBaseVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumberList.baseVal Mozilla SVGAnimatedNumberList.baseVal documentation> 
-getBaseValUnchecked ::
-                    (MonadIO m) => SVGAnimatedNumberList -> m SVGNumberList
-getBaseValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBaseVal (self)))
+           (MonadIO m) => SVGAnimatedNumberList -> m SVGNumberList
+getBaseVal self = liftIO (js_getBaseVal self)
  
 foreign import javascript unsafe "$1[\"animVal\"]" js_getAnimVal ::
-        SVGAnimatedNumberList -> IO (Nullable SVGNumberList)
+        SVGAnimatedNumberList -> IO SVGNumberList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumberList.animVal Mozilla SVGAnimatedNumberList.animVal documentation> 
 getAnimVal ::
-           (MonadIO m) => SVGAnimatedNumberList -> m (Maybe SVGNumberList)
-getAnimVal self
-  = liftIO (nullableToMaybe <$> (js_getAnimVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumberList.animVal Mozilla SVGAnimatedNumberList.animVal documentation> 
-getAnimValUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGAnimatedNumberList -> m SVGNumberList
-getAnimValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnimVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumberList.animVal Mozilla SVGAnimatedNumberList.animVal documentation> 
-getAnimValUnchecked ::
-                    (MonadIO m) => SVGAnimatedNumberList -> m SVGNumberList
-getAnimValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAnimVal (self)))
+           (MonadIO m) => SVGAnimatedNumberList -> m SVGNumberList
+getAnimVal self = liftIO (js_getAnimVal self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedPreserveAspectRatio.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedPreserveAspectRatio.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedPreserveAspectRatio.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedPreserveAspectRatio.hs
@@ -4,8 +4,7 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGAnimatedPreserveAspectRatio
-       (js_getBaseVal, getBaseVal, getBaseValUnsafe, getBaseValUnchecked,
-        js_getAnimVal, getAnimVal, getAnimValUnsafe, getAnimValUnchecked,
+       (js_getBaseVal, getBaseVal, js_getAnimVal, getAnimVal,
         SVGAnimatedPreserveAspectRatio(..),
         gTypeSVGAnimatedPreserveAspectRatio)
        where
@@ -13,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,61 +21,26 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"baseVal\"]" js_getBaseVal ::
-        SVGAnimatedPreserveAspectRatio ->
-          IO (Nullable SVGPreserveAspectRatio)
+        SVGAnimatedPreserveAspectRatio -> IO SVGPreserveAspectRatio
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedPreserveAspectRatio.baseVal Mozilla SVGAnimatedPreserveAspectRatio.baseVal documentation> 
 getBaseVal ::
            (MonadIO m) =>
-             SVGAnimatedPreserveAspectRatio -> m (Maybe SVGPreserveAspectRatio)
-getBaseVal self
-  = liftIO (nullableToMaybe <$> (js_getBaseVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedPreserveAspectRatio.baseVal Mozilla SVGAnimatedPreserveAspectRatio.baseVal documentation> 
-getBaseValUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGAnimatedPreserveAspectRatio -> m SVGPreserveAspectRatio
-getBaseValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBaseVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedPreserveAspectRatio.baseVal Mozilla SVGAnimatedPreserveAspectRatio.baseVal documentation> 
-getBaseValUnchecked ::
-                    (MonadIO m) =>
-                      SVGAnimatedPreserveAspectRatio -> m SVGPreserveAspectRatio
-getBaseValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBaseVal (self)))
+             SVGAnimatedPreserveAspectRatio -> m SVGPreserveAspectRatio
+getBaseVal self = liftIO (js_getBaseVal self)
  
 foreign import javascript unsafe "$1[\"animVal\"]" js_getAnimVal ::
-        SVGAnimatedPreserveAspectRatio ->
-          IO (Nullable SVGPreserveAspectRatio)
+        SVGAnimatedPreserveAspectRatio -> IO SVGPreserveAspectRatio
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedPreserveAspectRatio.animVal Mozilla SVGAnimatedPreserveAspectRatio.animVal documentation> 
 getAnimVal ::
            (MonadIO m) =>
-             SVGAnimatedPreserveAspectRatio -> m (Maybe SVGPreserveAspectRatio)
-getAnimVal self
-  = liftIO (nullableToMaybe <$> (js_getAnimVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedPreserveAspectRatio.animVal Mozilla SVGAnimatedPreserveAspectRatio.animVal documentation> 
-getAnimValUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGAnimatedPreserveAspectRatio -> m SVGPreserveAspectRatio
-getAnimValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnimVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedPreserveAspectRatio.animVal Mozilla SVGAnimatedPreserveAspectRatio.animVal documentation> 
-getAnimValUnchecked ::
-                    (MonadIO m) =>
-                      SVGAnimatedPreserveAspectRatio -> m SVGPreserveAspectRatio
-getAnimValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAnimVal (self)))
+             SVGAnimatedPreserveAspectRatio -> m SVGPreserveAspectRatio
+getAnimVal self = liftIO (js_getAnimVal self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedRect.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedRect.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedRect.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedRect.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGAnimatedRect
-       (js_getBaseVal, getBaseVal, getBaseValUnsafe, getBaseValUnchecked,
-        js_getAnimVal, getAnimVal, getAnimValUnsafe, getAnimValUnchecked,
+       (js_getBaseVal, getBaseVal, js_getAnimVal, getAnimVal,
         SVGAnimatedRect(..), gTypeSVGAnimatedRect)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,49 +20,22 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"baseVal\"]" js_getBaseVal ::
-        SVGAnimatedRect -> IO (Nullable SVGRect)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedRect.baseVal Mozilla SVGAnimatedRect.baseVal documentation> 
-getBaseVal :: (MonadIO m) => SVGAnimatedRect -> m (Maybe SVGRect)
-getBaseVal self
-  = liftIO (nullableToMaybe <$> (js_getBaseVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedRect.baseVal Mozilla SVGAnimatedRect.baseVal documentation> 
-getBaseValUnsafe ::
-                 (MonadIO m, HasCallStack) => SVGAnimatedRect -> m SVGRect
-getBaseValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBaseVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGAnimatedRect -> IO SVGRect
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedRect.baseVal Mozilla SVGAnimatedRect.baseVal documentation> 
-getBaseValUnchecked :: (MonadIO m) => SVGAnimatedRect -> m SVGRect
-getBaseValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBaseVal (self)))
+getBaseVal :: (MonadIO m) => SVGAnimatedRect -> m SVGRect
+getBaseVal self = liftIO (js_getBaseVal self)
  
 foreign import javascript unsafe "$1[\"animVal\"]" js_getAnimVal ::
-        SVGAnimatedRect -> IO (Nullable SVGRect)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedRect.animVal Mozilla SVGAnimatedRect.animVal documentation> 
-getAnimVal :: (MonadIO m) => SVGAnimatedRect -> m (Maybe SVGRect)
-getAnimVal self
-  = liftIO (nullableToMaybe <$> (js_getAnimVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedRect.animVal Mozilla SVGAnimatedRect.animVal documentation> 
-getAnimValUnsafe ::
-                 (MonadIO m, HasCallStack) => SVGAnimatedRect -> m SVGRect
-getAnimValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnimVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGAnimatedRect -> IO SVGRect
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedRect.animVal Mozilla SVGAnimatedRect.animVal documentation> 
-getAnimValUnchecked :: (MonadIO m) => SVGAnimatedRect -> m SVGRect
-getAnimValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAnimVal (self)))
+getAnimVal :: (MonadIO m) => SVGAnimatedRect -> m SVGRect
+getAnimVal self = liftIO (js_getAnimVal self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedString.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedString.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedString.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedString.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,8 +33,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedString.baseVal Mozilla SVGAnimatedString.baseVal documentation> 
 setBaseVal ::
            (MonadIO m, ToJSString val) => SVGAnimatedString -> val -> m ()
-setBaseVal self val
-  = liftIO (js_setBaseVal (self) (toJSString val))
+setBaseVal self val = liftIO (js_setBaseVal self (toJSString val))
  
 foreign import javascript unsafe "$1[\"baseVal\"]" js_getBaseVal ::
         SVGAnimatedString -> IO JSString
@@ -41,7 +41,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedString.baseVal Mozilla SVGAnimatedString.baseVal documentation> 
 getBaseVal ::
            (MonadIO m, FromJSString result) => SVGAnimatedString -> m result
-getBaseVal self = liftIO (fromJSString <$> (js_getBaseVal (self)))
+getBaseVal self = liftIO (fromJSString <$> (js_getBaseVal self))
  
 foreign import javascript unsafe "$1[\"animVal\"]" js_getAnimVal ::
         SVGAnimatedString -> IO JSString
@@ -49,4 +49,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedString.animVal Mozilla SVGAnimatedString.animVal documentation> 
 getAnimVal ::
            (MonadIO m, FromJSString result) => SVGAnimatedString -> m result
-getAnimVal self = liftIO (fromJSString <$> (js_getAnimVal (self)))
+getAnimVal self = liftIO (fromJSString <$> (js_getAnimVal self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedTransformList.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedTransformList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedTransformList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimatedTransformList.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGAnimatedTransformList
-       (js_getBaseVal, getBaseVal, getBaseValUnsafe, getBaseValUnchecked,
-        js_getAnimVal, getAnimVal, getAnimValUnsafe, getAnimValUnchecked,
+       (js_getBaseVal, getBaseVal, js_getAnimVal, getAnimVal,
         SVGAnimatedTransformList(..), gTypeSVGAnimatedTransformList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,57 +20,24 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"baseVal\"]" js_getBaseVal ::
-        SVGAnimatedTransformList -> IO (Nullable SVGTransformList)
+        SVGAnimatedTransformList -> IO SVGTransformList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedTransformList.baseVal Mozilla SVGAnimatedTransformList.baseVal documentation> 
 getBaseVal ::
-           (MonadIO m) =>
-             SVGAnimatedTransformList -> m (Maybe SVGTransformList)
-getBaseVal self
-  = liftIO (nullableToMaybe <$> (js_getBaseVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedTransformList.baseVal Mozilla SVGAnimatedTransformList.baseVal documentation> 
-getBaseValUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGAnimatedTransformList -> m SVGTransformList
-getBaseValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBaseVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedTransformList.baseVal Mozilla SVGAnimatedTransformList.baseVal documentation> 
-getBaseValUnchecked ::
-                    (MonadIO m) => SVGAnimatedTransformList -> m SVGTransformList
-getBaseValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBaseVal (self)))
+           (MonadIO m) => SVGAnimatedTransformList -> m SVGTransformList
+getBaseVal self = liftIO (js_getBaseVal self)
  
 foreign import javascript unsafe "$1[\"animVal\"]" js_getAnimVal ::
-        SVGAnimatedTransformList -> IO (Nullable SVGTransformList)
+        SVGAnimatedTransformList -> IO SVGTransformList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedTransformList.animVal Mozilla SVGAnimatedTransformList.animVal documentation> 
 getAnimVal ::
-           (MonadIO m) =>
-             SVGAnimatedTransformList -> m (Maybe SVGTransformList)
-getAnimVal self
-  = liftIO (nullableToMaybe <$> (js_getAnimVal (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedTransformList.animVal Mozilla SVGAnimatedTransformList.animVal documentation> 
-getAnimValUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGAnimatedTransformList -> m SVGTransformList
-getAnimValUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnimVal (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedTransformList.animVal Mozilla SVGAnimatedTransformList.animVal documentation> 
-getAnimValUnchecked ::
-                    (MonadIO m) => SVGAnimatedTransformList -> m SVGTransformList
-getAnimValUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAnimVal (self)))
+           (MonadIO m) => SVGAnimatedTransformList -> m SVGTransformList
+getAnimVal self = liftIO (js_getAnimVal self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimationElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimationElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGAnimationElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGAnimationElement.hs
@@ -9,8 +9,7 @@
         getSimpleDuration, getSimpleDuration_, js_beginElement,
         beginElement, js_beginElementAt, beginElementAt, js_endElement,
         endElement, js_endElementAt, endElementAt, js_getTargetElement,
-        getTargetElement, getTargetElementUnsafe,
-        getTargetElementUnchecked, SVGAnimationElement(..),
+        getTargetElement, SVGAnimationElement(..),
         gTypeSVGAnimationElement, IsSVGAnimationElement,
         toSVGAnimationElement)
        where
@@ -18,7 +17,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,6 +26,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -87,13 +87,16 @@
   = liftIO (js_beginElement (toSVGAnimationElement self))
  
 foreign import javascript unsafe "$1[\"beginElementAt\"]($2)"
-        js_beginElementAt :: SVGAnimationElement -> Float -> IO ()
+        js_beginElementAt :: SVGAnimationElement -> Optional Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimationElement.beginElementAt Mozilla SVGAnimationElement.beginElementAt documentation> 
 beginElementAt ::
-               (MonadIO m, IsSVGAnimationElement self) => self -> Float -> m ()
+               (MonadIO m, IsSVGAnimationElement self) =>
+                 self -> Maybe Float -> m ()
 beginElementAt self offset
-  = liftIO (js_beginElementAt (toSVGAnimationElement self) offset)
+  = liftIO
+      (js_beginElementAt (toSVGAnimationElement self)
+         (maybeToOptional offset))
  
 foreign import javascript unsafe "$1[\"endElement\"]()"
         js_endElement :: SVGAnimationElement -> IO ()
@@ -105,41 +108,22 @@
   = liftIO (js_endElement (toSVGAnimationElement self))
  
 foreign import javascript unsafe "$1[\"endElementAt\"]($2)"
-        js_endElementAt :: SVGAnimationElement -> Float -> IO ()
+        js_endElementAt :: SVGAnimationElement -> Optional Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimationElement.endElementAt Mozilla SVGAnimationElement.endElementAt documentation> 
 endElementAt ::
-             (MonadIO m, IsSVGAnimationElement self) => self -> Float -> m ()
+             (MonadIO m, IsSVGAnimationElement self) =>
+               self -> Maybe Float -> m ()
 endElementAt self offset
-  = liftIO (js_endElementAt (toSVGAnimationElement self) offset)
+  = liftIO
+      (js_endElementAt (toSVGAnimationElement self)
+         (maybeToOptional offset))
  
 foreign import javascript unsafe "$1[\"targetElement\"]"
-        js_getTargetElement ::
-        SVGAnimationElement -> IO (Nullable SVGElement)
+        js_getTargetElement :: SVGAnimationElement -> IO SVGElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimationElement.targetElement Mozilla SVGAnimationElement.targetElement documentation> 
 getTargetElement ::
-                 (MonadIO m, IsSVGAnimationElement self) =>
-                   self -> m (Maybe SVGElement)
+                 (MonadIO m, IsSVGAnimationElement self) => self -> m SVGElement
 getTargetElement self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getTargetElement (toSVGAnimationElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimationElement.targetElement Mozilla SVGAnimationElement.targetElement documentation> 
-getTargetElementUnsafe ::
-                       (MonadIO m, IsSVGAnimationElement self, HasCallStack) =>
-                         self -> m SVGElement
-getTargetElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getTargetElement (toSVGAnimationElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimationElement.targetElement Mozilla SVGAnimationElement.targetElement documentation> 
-getTargetElementUnchecked ::
-                          (MonadIO m, IsSVGAnimationElement self) => self -> m SVGElement
-getTargetElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTargetElement (toSVGAnimationElement self)))
+  = liftIO (js_getTargetElement (toSVGAnimationElement self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGCircleElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGCircleElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGCircleElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGCircleElement.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGCircleElement
-       (js_getCx, getCx, getCxUnsafe, getCxUnchecked, js_getCy, getCy,
-        getCyUnsafe, getCyUnchecked, js_getR, getR, getRUnsafe,
-        getRUnchecked, SVGCircleElement(..), gTypeSVGCircleElement)
+       (js_getCx, getCx, js_getCy, getCy, js_getR, getR,
+        SVGCircleElement(..), gTypeSVGCircleElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,76 +20,29 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"cx\"]" js_getCx ::
-        SVGCircleElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement.cx Mozilla SVGCircleElement.cx documentation> 
-getCx ::
-      (MonadIO m) => SVGCircleElement -> m (Maybe SVGAnimatedLength)
-getCx self = liftIO (nullableToMaybe <$> (js_getCx (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement.cx Mozilla SVGCircleElement.cx documentation> 
-getCxUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGCircleElement -> m SVGAnimatedLength
-getCxUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCx (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGCircleElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement.cx Mozilla SVGCircleElement.cx documentation> 
-getCxUnchecked ::
-               (MonadIO m) => SVGCircleElement -> m SVGAnimatedLength
-getCxUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCx (self)))
+getCx :: (MonadIO m) => SVGCircleElement -> m SVGAnimatedLength
+getCx self = liftIO (js_getCx self)
  
 foreign import javascript unsafe "$1[\"cy\"]" js_getCy ::
-        SVGCircleElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement.cy Mozilla SVGCircleElement.cy documentation> 
-getCy ::
-      (MonadIO m) => SVGCircleElement -> m (Maybe SVGAnimatedLength)
-getCy self = liftIO (nullableToMaybe <$> (js_getCy (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement.cy Mozilla SVGCircleElement.cy documentation> 
-getCyUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGCircleElement -> m SVGAnimatedLength
-getCyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCy (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGCircleElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement.cy Mozilla SVGCircleElement.cy documentation> 
-getCyUnchecked ::
-               (MonadIO m) => SVGCircleElement -> m SVGAnimatedLength
-getCyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCy (self)))
+getCy :: (MonadIO m) => SVGCircleElement -> m SVGAnimatedLength
+getCy self = liftIO (js_getCy self)
  
 foreign import javascript unsafe "$1[\"r\"]" js_getR ::
-        SVGCircleElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement.r Mozilla SVGCircleElement.r documentation> 
-getR ::
-     (MonadIO m) => SVGCircleElement -> m (Maybe SVGAnimatedLength)
-getR self = liftIO (nullableToMaybe <$> (js_getR (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement.r Mozilla SVGCircleElement.r documentation> 
-getRUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGCircleElement -> m SVGAnimatedLength
-getRUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getR (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGCircleElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement.r Mozilla SVGCircleElement.r documentation> 
-getRUnchecked ::
-              (MonadIO m) => SVGCircleElement -> m SVGAnimatedLength
-getRUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getR (self)))
+getR :: (MonadIO m) => SVGCircleElement -> m SVGAnimatedLength
+getR self = liftIO (js_getR self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGClipPathElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGClipPathElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGClipPathElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGClipPathElement.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGClipPathElement
-       (js_getClipPathUnits, getClipPathUnits, getClipPathUnitsUnsafe,
-        getClipPathUnitsUnchecked, SVGClipPathElement(..),
+       (js_getClipPathUnits, getClipPathUnits, SVGClipPathElement(..),
         gTypeSVGClipPathElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,27 +28,9 @@
  
 foreign import javascript unsafe "$1[\"clipPathUnits\"]"
         js_getClipPathUnits ::
-        SVGClipPathElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGClipPathElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGClipPathElement.clipPathUnits Mozilla SVGClipPathElement.clipPathUnits documentation> 
 getClipPathUnits ::
-                 (MonadIO m) =>
-                   SVGClipPathElement -> m (Maybe SVGAnimatedEnumeration)
-getClipPathUnits self
-  = liftIO (nullableToMaybe <$> (js_getClipPathUnits (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGClipPathElement.clipPathUnits Mozilla SVGClipPathElement.clipPathUnits documentation> 
-getClipPathUnitsUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         SVGClipPathElement -> m SVGAnimatedEnumeration
-getClipPathUnitsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getClipPathUnits (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGClipPathElement.clipPathUnits Mozilla SVGClipPathElement.clipPathUnits documentation> 
-getClipPathUnitsUnchecked ::
-                          (MonadIO m) => SVGClipPathElement -> m SVGAnimatedEnumeration
-getClipPathUnitsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getClipPathUnits (self)))
+                 (MonadIO m) => SVGClipPathElement -> m SVGAnimatedEnumeration
+getClipPathUnits self = liftIO (js_getClipPathUnits self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGColor.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGColor.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGColor.hs
+++ /dev/null
@@ -1,104 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.SVGColor
-       (js_setRGBColor, setRGBColor, js_setRGBColorICCColor,
-        setRGBColorICCColor, js_setColor, setColor,
-        pattern SVG_COLORTYPE_UNKNOWN, pattern SVG_COLORTYPE_RGBCOLOR,
-        pattern SVG_COLORTYPE_RGBCOLOR_ICCCOLOR,
-        pattern SVG_COLORTYPE_CURRENTCOLOR, js_getColorType, getColorType,
-        js_getRgbColor, getRgbColor, getRgbColorUnsafe,
-        getRgbColorUnchecked, SVGColor(..), gTypeSVGColor, IsSVGColor,
-        toSVGColor)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"setRGBColor\"]($2)"
-        js_setRGBColor :: SVGColor -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGColor.setRGBColor Mozilla SVGColor.setRGBColor documentation> 
-setRGBColor ::
-            (MonadIO m, IsSVGColor self, ToJSString rgbColor) =>
-              self -> rgbColor -> m ()
-setRGBColor self rgbColor
-  = liftIO (js_setRGBColor (toSVGColor self) (toJSString rgbColor))
- 
-foreign import javascript unsafe
-        "$1[\"setRGBColorICCColor\"]($2,\n$3)" js_setRGBColorICCColor ::
-        SVGColor -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGColor.setRGBColorICCColor Mozilla SVGColor.setRGBColorICCColor documentation> 
-setRGBColorICCColor ::
-                    (MonadIO m, IsSVGColor self, ToJSString rgbColor,
-                     ToJSString iccColor) =>
-                      self -> rgbColor -> iccColor -> m ()
-setRGBColorICCColor self rgbColor iccColor
-  = liftIO
-      (js_setRGBColorICCColor (toSVGColor self) (toJSString rgbColor)
-         (toJSString iccColor))
- 
-foreign import javascript unsafe "$1[\"setColor\"]($2, $3, $4)"
-        js_setColor :: SVGColor -> Word -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGColor.setColor Mozilla SVGColor.setColor documentation> 
-setColor ::
-         (MonadIO m, IsSVGColor self, ToJSString rgbColor,
-          ToJSString iccColor) =>
-           self -> Word -> rgbColor -> iccColor -> m ()
-setColor self colorType rgbColor iccColor
-  = liftIO
-      (js_setColor (toSVGColor self) colorType (toJSString rgbColor)
-         (toJSString iccColor))
-pattern SVG_COLORTYPE_UNKNOWN = 0
-pattern SVG_COLORTYPE_RGBCOLOR = 1
-pattern SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2
-pattern SVG_COLORTYPE_CURRENTCOLOR = 3
- 
-foreign import javascript unsafe "$1[\"colorType\"]"
-        js_getColorType :: SVGColor -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGColor.colorType Mozilla SVGColor.colorType documentation> 
-getColorType :: (MonadIO m, IsSVGColor self) => self -> m Word
-getColorType self = liftIO (js_getColorType (toSVGColor self))
- 
-foreign import javascript unsafe "$1[\"rgbColor\"]" js_getRgbColor
-        :: SVGColor -> IO (Nullable RGBColor)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGColor.rgbColor Mozilla SVGColor.rgbColor documentation> 
-getRgbColor ::
-            (MonadIO m, IsSVGColor self) => self -> m (Maybe RGBColor)
-getRgbColor self
-  = liftIO (nullableToMaybe <$> (js_getRgbColor (toSVGColor self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGColor.rgbColor Mozilla SVGColor.rgbColor documentation> 
-getRgbColorUnsafe ::
-                  (MonadIO m, IsSVGColor self, HasCallStack) => self -> m RGBColor
-getRgbColorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRgbColor (toSVGColor self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGColor.rgbColor Mozilla SVGColor.rgbColor documentation> 
-getRgbColorUnchecked ::
-                     (MonadIO m, IsSVGColor self) => self -> m RGBColor
-getRgbColorUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRgbColor (toSVGColor self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGComponentTransferFunctionElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGComponentTransferFunctionElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGComponentTransferFunctionElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGComponentTransferFunctionElement.hs
@@ -10,14 +10,9 @@
         pattern SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE,
         pattern SVG_FECOMPONENTTRANSFER_TYPE_LINEAR,
         pattern SVG_FECOMPONENTTRANSFER_TYPE_GAMMA, js_getType, getType,
-        getTypeUnsafe, getTypeUnchecked, js_getTableValues, getTableValues,
-        getTableValuesUnsafe, getTableValuesUnchecked, js_getSlope,
-        getSlope, getSlopeUnsafe, getSlopeUnchecked, js_getIntercept,
-        getIntercept, getInterceptUnsafe, getInterceptUnchecked,
-        js_getAmplitude, getAmplitude, getAmplitudeUnsafe,
-        getAmplitudeUnchecked, js_getExponent, getExponent,
-        getExponentUnsafe, getExponentUnchecked, js_getOffset, getOffset,
-        getOffsetUnsafe, getOffsetUnchecked,
+        js_getTableValues, getTableValues, js_getSlope, getSlope,
+        js_getIntercept, getIntercept, js_getAmplitude, getAmplitude,
+        js_getExponent, getExponent, js_getOffset, getOffset,
         SVGComponentTransferFunctionElement(..),
         gTypeSVGComponentTransferFunctionElement,
         IsSVGComponentTransferFunctionElement,
@@ -27,7 +22,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -36,6 +31,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -48,236 +44,79 @@
 pattern SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
-        SVGComponentTransferFunctionElement ->
-          IO (Nullable SVGAnimatedEnumeration)
+        SVGComponentTransferFunctionElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.type Mozilla SVGComponentTransferFunctionElement.type documentation> 
 getType ::
         (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-          self -> m (Maybe SVGAnimatedEnumeration)
+          self -> m SVGAnimatedEnumeration
 getType self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getType (toSVGComponentTransferFunctionElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.type Mozilla SVGComponentTransferFunctionElement.type documentation> 
-getTypeUnsafe ::
-              (MonadIO m, IsSVGComponentTransferFunctionElement self,
-               HasCallStack) =>
-                self -> m SVGAnimatedEnumeration
-getTypeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getType (toSVGComponentTransferFunctionElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.type Mozilla SVGComponentTransferFunctionElement.type documentation> 
-getTypeUnchecked ::
-                 (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-                   self -> m SVGAnimatedEnumeration
-getTypeUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getType (toSVGComponentTransferFunctionElement self)))
+  = liftIO (js_getType (toSVGComponentTransferFunctionElement self))
  
 foreign import javascript unsafe "$1[\"tableValues\"]"
         js_getTableValues ::
-        SVGComponentTransferFunctionElement ->
-          IO (Nullable SVGAnimatedNumberList)
+        SVGComponentTransferFunctionElement -> IO SVGAnimatedNumberList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.tableValues Mozilla SVGComponentTransferFunctionElement.tableValues documentation> 
 getTableValues ::
                (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-                 self -> m (Maybe SVGAnimatedNumberList)
+                 self -> m SVGAnimatedNumberList
 getTableValues self
   = liftIO
-      (nullableToMaybe <$>
-         (js_getTableValues (toSVGComponentTransferFunctionElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.tableValues Mozilla SVGComponentTransferFunctionElement.tableValues documentation> 
-getTableValuesUnsafe ::
-                     (MonadIO m, IsSVGComponentTransferFunctionElement self,
-                      HasCallStack) =>
-                       self -> m SVGAnimatedNumberList
-getTableValuesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getTableValues (toSVGComponentTransferFunctionElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.tableValues Mozilla SVGComponentTransferFunctionElement.tableValues documentation> 
-getTableValuesUnchecked ::
-                        (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-                          self -> m SVGAnimatedNumberList
-getTableValuesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTableValues (toSVGComponentTransferFunctionElement self)))
+      (js_getTableValues (toSVGComponentTransferFunctionElement self))
  
 foreign import javascript unsafe "$1[\"slope\"]" js_getSlope ::
-        SVGComponentTransferFunctionElement ->
-          IO (Nullable SVGAnimatedNumber)
+        SVGComponentTransferFunctionElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.slope Mozilla SVGComponentTransferFunctionElement.slope documentation> 
 getSlope ::
          (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-           self -> m (Maybe SVGAnimatedNumber)
+           self -> m SVGAnimatedNumber
 getSlope self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getSlope (toSVGComponentTransferFunctionElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.slope Mozilla SVGComponentTransferFunctionElement.slope documentation> 
-getSlopeUnsafe ::
-               (MonadIO m, IsSVGComponentTransferFunctionElement self,
-                HasCallStack) =>
-                 self -> m SVGAnimatedNumber
-getSlopeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getSlope (toSVGComponentTransferFunctionElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.slope Mozilla SVGComponentTransferFunctionElement.slope documentation> 
-getSlopeUnchecked ::
-                  (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-                    self -> m SVGAnimatedNumber
-getSlopeUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getSlope (toSVGComponentTransferFunctionElement self)))
+  = liftIO (js_getSlope (toSVGComponentTransferFunctionElement self))
  
 foreign import javascript unsafe "$1[\"intercept\"]"
         js_getIntercept ::
-        SVGComponentTransferFunctionElement ->
-          IO (Nullable SVGAnimatedNumber)
+        SVGComponentTransferFunctionElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.intercept Mozilla SVGComponentTransferFunctionElement.intercept documentation> 
 getIntercept ::
              (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-               self -> m (Maybe SVGAnimatedNumber)
+               self -> m SVGAnimatedNumber
 getIntercept self
   = liftIO
-      (nullableToMaybe <$>
-         (js_getIntercept (toSVGComponentTransferFunctionElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.intercept Mozilla SVGComponentTransferFunctionElement.intercept documentation> 
-getInterceptUnsafe ::
-                   (MonadIO m, IsSVGComponentTransferFunctionElement self,
-                    HasCallStack) =>
-                     self -> m SVGAnimatedNumber
-getInterceptUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getIntercept (toSVGComponentTransferFunctionElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.intercept Mozilla SVGComponentTransferFunctionElement.intercept documentation> 
-getInterceptUnchecked ::
-                      (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-                        self -> m SVGAnimatedNumber
-getInterceptUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getIntercept (toSVGComponentTransferFunctionElement self)))
+      (js_getIntercept (toSVGComponentTransferFunctionElement self))
  
 foreign import javascript unsafe "$1[\"amplitude\"]"
         js_getAmplitude ::
-        SVGComponentTransferFunctionElement ->
-          IO (Nullable SVGAnimatedNumber)
+        SVGComponentTransferFunctionElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.amplitude Mozilla SVGComponentTransferFunctionElement.amplitude documentation> 
 getAmplitude ::
              (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-               self -> m (Maybe SVGAnimatedNumber)
+               self -> m SVGAnimatedNumber
 getAmplitude self
   = liftIO
-      (nullableToMaybe <$>
-         (js_getAmplitude (toSVGComponentTransferFunctionElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.amplitude Mozilla SVGComponentTransferFunctionElement.amplitude documentation> 
-getAmplitudeUnsafe ::
-                   (MonadIO m, IsSVGComponentTransferFunctionElement self,
-                    HasCallStack) =>
-                     self -> m SVGAnimatedNumber
-getAmplitudeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getAmplitude (toSVGComponentTransferFunctionElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.amplitude Mozilla SVGComponentTransferFunctionElement.amplitude documentation> 
-getAmplitudeUnchecked ::
-                      (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-                        self -> m SVGAnimatedNumber
-getAmplitudeUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getAmplitude (toSVGComponentTransferFunctionElement self)))
+      (js_getAmplitude (toSVGComponentTransferFunctionElement self))
  
 foreign import javascript unsafe "$1[\"exponent\"]" js_getExponent
-        ::
-        SVGComponentTransferFunctionElement ->
-          IO (Nullable SVGAnimatedNumber)
+        :: SVGComponentTransferFunctionElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.exponent Mozilla SVGComponentTransferFunctionElement.exponent documentation> 
 getExponent ::
             (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-              self -> m (Maybe SVGAnimatedNumber)
+              self -> m SVGAnimatedNumber
 getExponent self
   = liftIO
-      (nullableToMaybe <$>
-         (js_getExponent (toSVGComponentTransferFunctionElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.exponent Mozilla SVGComponentTransferFunctionElement.exponent documentation> 
-getExponentUnsafe ::
-                  (MonadIO m, IsSVGComponentTransferFunctionElement self,
-                   HasCallStack) =>
-                    self -> m SVGAnimatedNumber
-getExponentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getExponent (toSVGComponentTransferFunctionElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.exponent Mozilla SVGComponentTransferFunctionElement.exponent documentation> 
-getExponentUnchecked ::
-                     (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-                       self -> m SVGAnimatedNumber
-getExponentUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getExponent (toSVGComponentTransferFunctionElement self)))
+      (js_getExponent (toSVGComponentTransferFunctionElement self))
  
 foreign import javascript unsafe "$1[\"offset\"]" js_getOffset ::
-        SVGComponentTransferFunctionElement ->
-          IO (Nullable SVGAnimatedNumber)
+        SVGComponentTransferFunctionElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.offset Mozilla SVGComponentTransferFunctionElement.offset documentation> 
 getOffset ::
           (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-            self -> m (Maybe SVGAnimatedNumber)
+            self -> m SVGAnimatedNumber
 getOffset self
   = liftIO
-      (nullableToMaybe <$>
-         (js_getOffset (toSVGComponentTransferFunctionElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.offset Mozilla SVGComponentTransferFunctionElement.offset documentation> 
-getOffsetUnsafe ::
-                (MonadIO m, IsSVGComponentTransferFunctionElement self,
-                 HasCallStack) =>
-                  self -> m SVGAnimatedNumber
-getOffsetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getOffset (toSVGComponentTransferFunctionElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement.offset Mozilla SVGComponentTransferFunctionElement.offset documentation> 
-getOffsetUnchecked ::
-                   (MonadIO m, IsSVGComponentTransferFunctionElement self) =>
-                     self -> m SVGAnimatedNumber
-getOffsetUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getOffset (toSVGComponentTransferFunctionElement self)))
+      (js_getOffset (toSVGComponentTransferFunctionElement self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGCursorElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGCursorElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGCursorElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGCursorElement.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGCursorElement
-       (js_getX, getX, getXUnsafe, getXUnchecked, js_getY, getY,
-        getYUnsafe, getYUnchecked, SVGCursorElement(..),
+       (js_getX, getX, js_getY, getY, SVGCursorElement(..),
         gTypeSVGCursorElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,53 +20,22 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGCursorElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCursorElement.x Mozilla SVGCursorElement.x documentation> 
-getX ::
-     (MonadIO m) => SVGCursorElement -> m (Maybe SVGAnimatedLength)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCursorElement.x Mozilla SVGCursorElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGCursorElement -> m SVGAnimatedLength
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGCursorElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCursorElement.x Mozilla SVGCursorElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m) => SVGCursorElement -> m SVGAnimatedLength
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+getX :: (MonadIO m) => SVGCursorElement -> m SVGAnimatedLength
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGCursorElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCursorElement.y Mozilla SVGCursorElement.y documentation> 
-getY ::
-     (MonadIO m) => SVGCursorElement -> m (Maybe SVGAnimatedLength)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCursorElement.y Mozilla SVGCursorElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGCursorElement -> m SVGAnimatedLength
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGCursorElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGCursorElement.y Mozilla SVGCursorElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m) => SVGCursorElement -> m SVGAnimatedLength
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+getY :: (MonadIO m) => SVGCursorElement -> m SVGAnimatedLength
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGDocument.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGDocument.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGDocument.hs
+++ /dev/null
@@ -1,90 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.SVGDocument
-       (js_createEvent, createEvent, createEvent_, createEventUnsafe,
-        createEventUnchecked, js_getRootElement, getRootElement,
-        getRootElementUnsafe, getRootElementUnchecked, SVGDocument(..),
-        gTypeSVGDocument)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"createEvent\"]($2)"
-        js_createEvent :: SVGDocument -> JSString -> IO (Nullable Event)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGDocument.createEvent Mozilla SVGDocument.createEvent documentation> 
-createEvent ::
-            (MonadIO m, ToJSString eventType) =>
-              SVGDocument -> eventType -> m (Maybe Event)
-createEvent self eventType
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createEvent (self) (toJSString eventType)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGDocument.createEvent Mozilla SVGDocument.createEvent documentation> 
-createEvent_ ::
-             (MonadIO m, ToJSString eventType) =>
-               SVGDocument -> eventType -> m ()
-createEvent_ self eventType
-  = liftIO (void (js_createEvent (self) (toJSString eventType)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGDocument.createEvent Mozilla SVGDocument.createEvent documentation> 
-createEventUnsafe ::
-                  (MonadIO m, ToJSString eventType, HasCallStack) =>
-                    SVGDocument -> eventType -> m Event
-createEventUnsafe self eventType
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createEvent (self) (toJSString eventType)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGDocument.createEvent Mozilla SVGDocument.createEvent documentation> 
-createEventUnchecked ::
-                     (MonadIO m, ToJSString eventType) =>
-                       SVGDocument -> eventType -> m Event
-createEventUnchecked self eventType
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createEvent (self) (toJSString eventType)))
- 
-foreign import javascript unsafe "$1[\"rootElement\"]"
-        js_getRootElement :: SVGDocument -> IO (Nullable SVGSVGElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGDocument.rootElement Mozilla SVGDocument.rootElement documentation> 
-getRootElement ::
-               (MonadIO m) => SVGDocument -> m (Maybe SVGSVGElement)
-getRootElement self
-  = liftIO (nullableToMaybe <$> (js_getRootElement (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGDocument.rootElement Mozilla SVGDocument.rootElement documentation> 
-getRootElementUnsafe ::
-                     (MonadIO m, HasCallStack) => SVGDocument -> m SVGSVGElement
-getRootElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRootElement (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGDocument.rootElement Mozilla SVGDocument.rootElement documentation> 
-getRootElementUnchecked ::
-                        (MonadIO m) => SVGDocument -> m SVGSVGElement
-getRootElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRootElement (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGElement.hs
@@ -5,26 +5,20 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGElement
        (js_getPresentationAttribute, getPresentationAttribute,
-        getPresentationAttribute_, getPresentationAttributeUnsafe,
-        getPresentationAttributeUnchecked, js_setXmlbase, setXmlbase,
-        js_getXmlbase, getXmlbase, getXmlbaseUnsafe, getXmlbaseUnchecked,
-        js_getOwnerSVGElement, getOwnerSVGElement,
-        getOwnerSVGElementUnsafe, getOwnerSVGElementUnchecked,
-        js_getViewportElement, getViewportElement,
-        getViewportElementUnsafe, getViewportElementUnchecked,
-        js_setXmllang, setXmllang, js_getXmllang, getXmllang,
-        js_setXmlspace, setXmlspace, js_getXmlspace, getXmlspace,
-        js_getClassName, getClassName, getClassNameUnsafe,
-        getClassNameUnchecked, js_getStyle, getStyle, getStyleUnsafe,
-        getStyleUnchecked, js_setTabIndex, setTabIndex, js_getTabIndex,
-        getTabIndex, SVGElement(..), gTypeSVGElement, IsSVGElement,
-        toSVGElement)
+        getPresentationAttribute_, js_focus, focus, js_blur, blur,
+        js_getOwnerSVGElement, getOwnerSVGElement, js_getViewportElement,
+        getViewportElement, js_setXmllang, setXmllang, js_getXmllang,
+        getXmllang, js_setXmlspace, setXmlspace, js_getXmlspace,
+        getXmlspace, js_getClassName, getClassName, js_getStyle, getStyle,
+        js_setTabIndex, setTabIndex, js_getTabIndex, getTabIndex,
+        js_getDataset, getDataset, SVGElement(..), gTypeSVGElement,
+        IsSVGElement, toSVGElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -33,6 +27,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -40,142 +35,58 @@
  
 foreign import javascript unsafe
         "$1[\"getPresentationAttribute\"]($2)" js_getPresentationAttribute
-        :: SVGElement -> JSString -> IO (Nullable CSSValue)
+        :: SVGElement -> Optional JSString -> IO CSSValue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.getPresentationAttribute Mozilla SVGElement.getPresentationAttribute documentation> 
 getPresentationAttribute ::
                          (MonadIO m, IsSVGElement self, ToJSString name) =>
-                           self -> name -> m (Maybe CSSValue)
+                           self -> Maybe name -> m CSSValue
 getPresentationAttribute self name
   = liftIO
-      (nullableToMaybe <$>
-         (js_getPresentationAttribute (toSVGElement self)
-            (toJSString name)))
+      (js_getPresentationAttribute (toSVGElement self)
+         (toOptionalJSString name))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.getPresentationAttribute Mozilla SVGElement.getPresentationAttribute documentation> 
 getPresentationAttribute_ ::
                           (MonadIO m, IsSVGElement self, ToJSString name) =>
-                            self -> name -> m ()
+                            self -> Maybe name -> m ()
 getPresentationAttribute_ self name
   = liftIO
       (void
          (js_getPresentationAttribute (toSVGElement self)
-            (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.getPresentationAttribute Mozilla SVGElement.getPresentationAttribute documentation> 
-getPresentationAttributeUnsafe ::
-                               (MonadIO m, IsSVGElement self, ToJSString name, HasCallStack) =>
-                                 self -> name -> m CSSValue
-getPresentationAttributeUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getPresentationAttribute (toSVGElement self)
-             (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.getPresentationAttribute Mozilla SVGElement.getPresentationAttribute documentation> 
-getPresentationAttributeUnchecked ::
-                                  (MonadIO m, IsSVGElement self, ToJSString name) =>
-                                    self -> name -> m CSSValue
-getPresentationAttributeUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getPresentationAttribute (toSVGElement self)
-            (toJSString name)))
+            (toOptionalJSString name)))
  
-foreign import javascript unsafe "$1[\"xmlbase\"] = $2;"
-        js_setXmlbase :: SVGElement -> Nullable JSString -> IO ()
+foreign import javascript unsafe "$1[\"focus\"]()" js_focus ::
+        SVGElement -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.xmlbase Mozilla SVGElement.xmlbase documentation> 
-setXmlbase ::
-           (MonadIO m, IsSVGElement self, ToJSString val) =>
-             self -> Maybe val -> m ()
-setXmlbase self val
-  = liftIO (js_setXmlbase (toSVGElement self) (toMaybeJSString val))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.focus Mozilla SVGElement.focus documentation> 
+focus :: (MonadIO m, IsSVGElement self) => self -> m ()
+focus self = liftIO (js_focus (toSVGElement self))
  
-foreign import javascript unsafe "$1[\"xmlbase\"]" js_getXmlbase ::
-        SVGElement -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.xmlbase Mozilla SVGElement.xmlbase documentation> 
-getXmlbase ::
-           (MonadIO m, IsSVGElement self, FromJSString result) =>
-             self -> m (Maybe result)
-getXmlbase self
-  = liftIO
-      (fromMaybeJSString <$> (js_getXmlbase (toSVGElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.xmlbase Mozilla SVGElement.xmlbase documentation> 
-getXmlbaseUnsafe ::
-                 (MonadIO m, IsSVGElement self, HasCallStack,
-                  FromJSString result) =>
-                   self -> m result
-getXmlbaseUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getXmlbase (toSVGElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+foreign import javascript unsafe "$1[\"blur\"]()" js_blur ::
+        SVGElement -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.xmlbase Mozilla SVGElement.xmlbase documentation> 
-getXmlbaseUnchecked ::
-                    (MonadIO m, IsSVGElement self, FromJSString result) =>
-                      self -> m result
-getXmlbaseUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getXmlbase (toSVGElement self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.blur Mozilla SVGElement.blur documentation> 
+blur :: (MonadIO m, IsSVGElement self) => self -> m ()
+blur self = liftIO (js_blur (toSVGElement self))
  
 foreign import javascript unsafe "$1[\"ownerSVGElement\"]"
-        js_getOwnerSVGElement :: SVGElement -> IO (Nullable SVGSVGElement)
+        js_getOwnerSVGElement :: SVGElement -> IO SVGSVGElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.ownerSVGElement Mozilla SVGElement.ownerSVGElement documentation> 
 getOwnerSVGElement ::
-                   (MonadIO m, IsSVGElement self) => self -> m (Maybe SVGSVGElement)
+                   (MonadIO m, IsSVGElement self) => self -> m SVGSVGElement
 getOwnerSVGElement self
-  = liftIO
-      (nullableToMaybe <$> (js_getOwnerSVGElement (toSVGElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.ownerSVGElement Mozilla SVGElement.ownerSVGElement documentation> 
-getOwnerSVGElementUnsafe ::
-                         (MonadIO m, IsSVGElement self, HasCallStack) =>
-                           self -> m SVGSVGElement
-getOwnerSVGElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOwnerSVGElement (toSVGElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.ownerSVGElement Mozilla SVGElement.ownerSVGElement documentation> 
-getOwnerSVGElementUnchecked ::
-                            (MonadIO m, IsSVGElement self) => self -> m SVGSVGElement
-getOwnerSVGElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getOwnerSVGElement (toSVGElement self)))
+  = liftIO (js_getOwnerSVGElement (toSVGElement self))
  
 foreign import javascript unsafe "$1[\"viewportElement\"]"
-        js_getViewportElement :: SVGElement -> IO (Nullable SVGElement)
+        js_getViewportElement :: SVGElement -> IO SVGElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.viewportElement Mozilla SVGElement.viewportElement documentation> 
 getViewportElement ::
-                   (MonadIO m, IsSVGElement self) => self -> m (Maybe SVGElement)
+                   (MonadIO m, IsSVGElement self) => self -> m SVGElement
 getViewportElement self
-  = liftIO
-      (nullableToMaybe <$> (js_getViewportElement (toSVGElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.viewportElement Mozilla SVGElement.viewportElement documentation> 
-getViewportElementUnsafe ::
-                         (MonadIO m, IsSVGElement self, HasCallStack) =>
-                           self -> m SVGElement
-getViewportElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getViewportElement (toSVGElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.viewportElement Mozilla SVGElement.viewportElement documentation> 
-getViewportElementUnchecked ::
-                            (MonadIO m, IsSVGElement self) => self -> m SVGElement
-getViewportElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getViewportElement (toSVGElement self)))
+  = liftIO (js_getViewportElement (toSVGElement self))
  
 foreign import javascript unsafe "$1[\"xmllang\"] = $2;"
         js_setXmllang :: SVGElement -> JSString -> IO ()
@@ -218,58 +129,20 @@
   = liftIO (fromJSString <$> (js_getXmlspace (toSVGElement self)))
  
 foreign import javascript unsafe "$1[\"className\"]"
-        js_getClassName :: SVGElement -> IO (Nullable SVGAnimatedString)
+        js_getClassName :: SVGElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.className Mozilla SVGElement.className documentation> 
 getClassName ::
-             (MonadIO m, IsSVGElement self) =>
-               self -> m (Maybe SVGAnimatedString)
-getClassName self
-  = liftIO
-      (nullableToMaybe <$> (js_getClassName (toSVGElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.className Mozilla SVGElement.className documentation> 
-getClassNameUnsafe ::
-                   (MonadIO m, IsSVGElement self, HasCallStack) =>
-                     self -> m SVGAnimatedString
-getClassNameUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getClassName (toSVGElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.className Mozilla SVGElement.className documentation> 
-getClassNameUnchecked ::
-                      (MonadIO m, IsSVGElement self) => self -> m SVGAnimatedString
-getClassNameUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getClassName (toSVGElement self)))
+             (MonadIO m, IsSVGElement self) => self -> m SVGAnimatedString
+getClassName self = liftIO (js_getClassName (toSVGElement self))
  
 foreign import javascript unsafe "$1[\"style\"]" js_getStyle ::
-        SVGElement -> IO (Nullable CSSStyleDeclaration)
+        SVGElement -> IO CSSStyleDeclaration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.style Mozilla SVGElement.style documentation> 
 getStyle ::
-         (MonadIO m, IsSVGElement self) =>
-           self -> m (Maybe CSSStyleDeclaration)
-getStyle self
-  = liftIO (nullableToMaybe <$> (js_getStyle (toSVGElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.style Mozilla SVGElement.style documentation> 
-getStyleUnsafe ::
-               (MonadIO m, IsSVGElement self, HasCallStack) =>
-                 self -> m CSSStyleDeclaration
-getStyleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStyle (toSVGElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.style Mozilla SVGElement.style documentation> 
-getStyleUnchecked ::
-                  (MonadIO m, IsSVGElement self) => self -> m CSSStyleDeclaration
-getStyleUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getStyle (toSVGElement self)))
+         (MonadIO m, IsSVGElement self) => self -> m CSSStyleDeclaration
+getStyle self = liftIO (js_getStyle (toSVGElement self))
  
 foreign import javascript unsafe "$1[\"tabIndex\"] = $2;"
         js_setTabIndex :: SVGElement -> Int -> IO ()
@@ -286,3 +159,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.tabIndex Mozilla SVGElement.tabIndex documentation> 
 getTabIndex :: (MonadIO m, IsSVGElement self) => self -> m Int
 getTabIndex self = liftIO (js_getTabIndex (toSVGElement self))
+ 
+foreign import javascript unsafe "$1[\"dataset\"]" js_getDataset ::
+        SVGElement -> IO DOMStringMap
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.dataset Mozilla SVGElement.dataset documentation> 
+getDataset ::
+           (MonadIO m, IsSVGElement self) => self -> m DOMStringMap
+getDataset self = liftIO (js_getDataset (toSVGElement self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGEllipseElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGEllipseElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGEllipseElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGEllipseElement.hs
@@ -4,16 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGEllipseElement
-       (js_getCx, getCx, getCxUnsafe, getCxUnchecked, js_getCy, getCy,
-        getCyUnsafe, getCyUnchecked, js_getRx, getRx, getRxUnsafe,
-        getRxUnchecked, js_getRy, getRy, getRyUnsafe, getRyUnchecked,
-        SVGEllipseElement(..), gTypeSVGEllipseElement)
+       (js_getCx, getCx, js_getCy, getCy, js_getRx, getRx, js_getRy,
+        getRy, SVGEllipseElement(..), gTypeSVGEllipseElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,99 +20,36 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"cx\"]" js_getCx ::
-        SVGEllipseElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.cx Mozilla SVGEllipseElement.cx documentation> 
-getCx ::
-      (MonadIO m) => SVGEllipseElement -> m (Maybe SVGAnimatedLength)
-getCx self = liftIO (nullableToMaybe <$> (js_getCx (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.cx Mozilla SVGEllipseElement.cx documentation> 
-getCxUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGEllipseElement -> m SVGAnimatedLength
-getCxUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCx (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGEllipseElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.cx Mozilla SVGEllipseElement.cx documentation> 
-getCxUnchecked ::
-               (MonadIO m) => SVGEllipseElement -> m SVGAnimatedLength
-getCxUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCx (self)))
+getCx :: (MonadIO m) => SVGEllipseElement -> m SVGAnimatedLength
+getCx self = liftIO (js_getCx self)
  
 foreign import javascript unsafe "$1[\"cy\"]" js_getCy ::
-        SVGEllipseElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.cy Mozilla SVGEllipseElement.cy documentation> 
-getCy ::
-      (MonadIO m) => SVGEllipseElement -> m (Maybe SVGAnimatedLength)
-getCy self = liftIO (nullableToMaybe <$> (js_getCy (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.cy Mozilla SVGEllipseElement.cy documentation> 
-getCyUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGEllipseElement -> m SVGAnimatedLength
-getCyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCy (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGEllipseElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.cy Mozilla SVGEllipseElement.cy documentation> 
-getCyUnchecked ::
-               (MonadIO m) => SVGEllipseElement -> m SVGAnimatedLength
-getCyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCy (self)))
+getCy :: (MonadIO m) => SVGEllipseElement -> m SVGAnimatedLength
+getCy self = liftIO (js_getCy self)
  
 foreign import javascript unsafe "$1[\"rx\"]" js_getRx ::
-        SVGEllipseElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.rx Mozilla SVGEllipseElement.rx documentation> 
-getRx ::
-      (MonadIO m) => SVGEllipseElement -> m (Maybe SVGAnimatedLength)
-getRx self = liftIO (nullableToMaybe <$> (js_getRx (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.rx Mozilla SVGEllipseElement.rx documentation> 
-getRxUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGEllipseElement -> m SVGAnimatedLength
-getRxUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRx (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGEllipseElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.rx Mozilla SVGEllipseElement.rx documentation> 
-getRxUnchecked ::
-               (MonadIO m) => SVGEllipseElement -> m SVGAnimatedLength
-getRxUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRx (self)))
+getRx :: (MonadIO m) => SVGEllipseElement -> m SVGAnimatedLength
+getRx self = liftIO (js_getRx self)
  
 foreign import javascript unsafe "$1[\"ry\"]" js_getRy ::
-        SVGEllipseElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.ry Mozilla SVGEllipseElement.ry documentation> 
-getRy ::
-      (MonadIO m) => SVGEllipseElement -> m (Maybe SVGAnimatedLength)
-getRy self = liftIO (nullableToMaybe <$> (js_getRy (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.ry Mozilla SVGEllipseElement.ry documentation> 
-getRyUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGEllipseElement -> m SVGAnimatedLength
-getRyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRy (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGEllipseElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement.ry Mozilla SVGEllipseElement.ry documentation> 
-getRyUnchecked ::
-               (MonadIO m) => SVGEllipseElement -> m SVGAnimatedLength
-getRyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRy (self)))
+getRy :: (MonadIO m) => SVGEllipseElement -> m SVGAnimatedLength
+getRy self = liftIO (js_getRy self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGException.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGException.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGException.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.SVGException
+       (js_toString, toString, toString_, pattern SVG_WRONG_TYPE_ERR,
+        pattern SVG_INVALID_VALUE_ERR, pattern SVG_MATRIX_NOT_INVERTABLE,
+        js_getCode, getCode, js_getName, getName, js_getMessage,
+        getMessage, SVGException(..), gTypeSVGException)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"toString\"]()" js_toString
+        :: SVGException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGException.toString Mozilla SVGException.toString documentation> 
+toString ::
+         (MonadIO m, FromJSString result) => SVGException -> m result
+toString self = liftIO (fromJSString <$> (js_toString self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGException.toString Mozilla SVGException.toString documentation> 
+toString_ :: (MonadIO m) => SVGException -> m ()
+toString_ self = liftIO (void (js_toString self))
+pattern SVG_WRONG_TYPE_ERR = 0
+pattern SVG_INVALID_VALUE_ERR = 1
+pattern SVG_MATRIX_NOT_INVERTABLE = 2
+ 
+foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
+        SVGException -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGException.code Mozilla SVGException.code documentation> 
+getCode :: (MonadIO m) => SVGException -> m Word
+getCode self = liftIO (js_getCode self)
+ 
+foreign import javascript unsafe "$1[\"name\"]" js_getName ::
+        SVGException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGException.name Mozilla SVGException.name documentation> 
+getName ::
+        (MonadIO m, FromJSString result) => SVGException -> m result
+getName self = liftIO (fromJSString <$> (js_getName self))
+ 
+foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
+        SVGException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGException.message Mozilla SVGException.message documentation> 
+getMessage ::
+           (MonadIO m, FromJSString result) => SVGException -> m result
+getMessage self = liftIO (fromJSString <$> (js_getMessage self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGExternalResourcesRequired.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGExternalResourcesRequired.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGExternalResourcesRequired.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGExternalResourcesRequired.hs
@@ -5,16 +5,15 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGExternalResourcesRequired
        (js_getExternalResourcesRequired, getExternalResourcesRequired,
-        getExternalResourcesRequiredUnsafe,
-        getExternalResourcesRequiredUnchecked,
         SVGExternalResourcesRequired(..),
-        gTypeSVGExternalResourcesRequired)
+        gTypeSVGExternalResourcesRequired, IsSVGExternalResourcesRequired,
+        toSVGExternalResourcesRequired)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,30 +30,13 @@
  
 foreign import javascript unsafe
         "$1[\"externalResourcesRequired\"]" js_getExternalResourcesRequired
-        :: SVGExternalResourcesRequired -> IO (Nullable SVGAnimatedBoolean)
+        :: SVGExternalResourcesRequired -> IO SVGAnimatedBoolean
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGExternalResourcesRequired.externalResourcesRequired Mozilla SVGExternalResourcesRequired.externalResourcesRequired documentation> 
 getExternalResourcesRequired ::
-                             (MonadIO m) =>
-                               SVGExternalResourcesRequired -> m (Maybe SVGAnimatedBoolean)
+                             (MonadIO m, IsSVGExternalResourcesRequired self) =>
+                               self -> m SVGAnimatedBoolean
 getExternalResourcesRequired self
   = liftIO
-      (nullableToMaybe <$> (js_getExternalResourcesRequired (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGExternalResourcesRequired.externalResourcesRequired Mozilla SVGExternalResourcesRequired.externalResourcesRequired documentation> 
-getExternalResourcesRequiredUnsafe ::
-                                   (MonadIO m, HasCallStack) =>
-                                     SVGExternalResourcesRequired -> m SVGAnimatedBoolean
-getExternalResourcesRequiredUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getExternalResourcesRequired (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGExternalResourcesRequired.externalResourcesRequired Mozilla SVGExternalResourcesRequired.externalResourcesRequired documentation> 
-getExternalResourcesRequiredUnchecked ::
-                                      (MonadIO m) =>
-                                        SVGExternalResourcesRequired -> m SVGAnimatedBoolean
-getExternalResourcesRequiredUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getExternalResourcesRequired (self)))
+      (js_getExternalResourcesRequired
+         (toSVGExternalResourcesRequired self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEBlendElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEBlendElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEBlendElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEBlendElement.hs
@@ -7,16 +7,14 @@
        (pattern SVG_FEBLEND_MODE_UNKNOWN, pattern SVG_FEBLEND_MODE_NORMAL,
         pattern SVG_FEBLEND_MODE_MULTIPLY, pattern SVG_FEBLEND_MODE_SCREEN,
         pattern SVG_FEBLEND_MODE_DARKEN, pattern SVG_FEBLEND_MODE_LIGHTEN,
-        js_getIn1, getIn1, getIn1Unsafe, getIn1Unchecked, js_getIn2,
-        getIn2, getIn2Unsafe, getIn2Unchecked, js_getMode, getMode,
-        getModeUnsafe, getModeUnchecked, SVGFEBlendElement(..),
-        gTypeSVGFEBlendElement)
+        js_getIn1, getIn1, js_getIn2, getIn2, js_getMode, getMode,
+        SVGFEBlendElement(..), gTypeSVGFEBlendElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -37,71 +36,23 @@
 pattern SVG_FEBLEND_MODE_LIGHTEN = 5
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFEBlendElement -> IO (Nullable SVGAnimatedString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement.in1 Mozilla SVGFEBlendElement.in1 documentation> 
-getIn1 ::
-       (MonadIO m) => SVGFEBlendElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement.in1 Mozilla SVGFEBlendElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEBlendElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFEBlendElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement.in1 Mozilla SVGFEBlendElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFEBlendElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+getIn1 :: (MonadIO m) => SVGFEBlendElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
  
 foreign import javascript unsafe "$1[\"in2\"]" js_getIn2 ::
-        SVGFEBlendElement -> IO (Nullable SVGAnimatedString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement.in2 Mozilla SVGFEBlendElement.in2 documentation> 
-getIn2 ::
-       (MonadIO m) => SVGFEBlendElement -> m (Maybe SVGAnimatedString)
-getIn2 self = liftIO (nullableToMaybe <$> (js_getIn2 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement.in2 Mozilla SVGFEBlendElement.in2 documentation> 
-getIn2Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEBlendElement -> m SVGAnimatedString
-getIn2Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn2 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFEBlendElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement.in2 Mozilla SVGFEBlendElement.in2 documentation> 
-getIn2Unchecked ::
-                (MonadIO m) => SVGFEBlendElement -> m SVGAnimatedString
-getIn2Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn2 (self)))
+getIn2 :: (MonadIO m) => SVGFEBlendElement -> m SVGAnimatedString
+getIn2 self = liftIO (js_getIn2 self)
  
 foreign import javascript unsafe "$1[\"mode\"]" js_getMode ::
-        SVGFEBlendElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGFEBlendElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement.mode Mozilla SVGFEBlendElement.mode documentation> 
 getMode ::
-        (MonadIO m) =>
-          SVGFEBlendElement -> m (Maybe SVGAnimatedEnumeration)
-getMode self = liftIO (nullableToMaybe <$> (js_getMode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement.mode Mozilla SVGFEBlendElement.mode documentation> 
-getModeUnsafe ::
-              (MonadIO m, HasCallStack) =>
-                SVGFEBlendElement -> m SVGAnimatedEnumeration
-getModeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement.mode Mozilla SVGFEBlendElement.mode documentation> 
-getModeUnchecked ::
-                 (MonadIO m) => SVGFEBlendElement -> m SVGAnimatedEnumeration
-getModeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getMode (self)))
+        (MonadIO m) => SVGFEBlendElement -> m SVGAnimatedEnumeration
+getMode self = liftIO (js_getMode self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEColorMatrixElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEColorMatrixElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEColorMatrixElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEColorMatrixElement.hs
@@ -9,16 +9,14 @@
         pattern SVG_FECOLORMATRIX_TYPE_SATURATE,
         pattern SVG_FECOLORMATRIX_TYPE_HUEROTATE,
         pattern SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA, js_getIn1, getIn1,
-        getIn1Unsafe, getIn1Unchecked, js_getType, getType, getTypeUnsafe,
-        getTypeUnchecked, js_getValues, getValues, getValuesUnsafe,
-        getValuesUnchecked, SVGFEColorMatrixElement(..),
-        gTypeSVGFEColorMatrixElement)
+        js_getType, getType, js_getValues, getValues,
+        SVGFEColorMatrixElement(..), gTypeSVGFEColorMatrixElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,6 +25,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -38,73 +37,25 @@
 pattern SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFEColorMatrixElement -> IO (Nullable SVGAnimatedString)
+        SVGFEColorMatrixElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement.in1 Mozilla SVGFEColorMatrixElement.in1 documentation> 
 getIn1 ::
-       (MonadIO m) =>
-         SVGFEColorMatrixElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement.in1 Mozilla SVGFEColorMatrixElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEColorMatrixElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement.in1 Mozilla SVGFEColorMatrixElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFEColorMatrixElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+       (MonadIO m) => SVGFEColorMatrixElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
-        SVGFEColorMatrixElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGFEColorMatrixElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement.type Mozilla SVGFEColorMatrixElement.type documentation> 
 getType ::
-        (MonadIO m) =>
-          SVGFEColorMatrixElement -> m (Maybe SVGAnimatedEnumeration)
-getType self = liftIO (nullableToMaybe <$> (js_getType (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement.type Mozilla SVGFEColorMatrixElement.type documentation> 
-getTypeUnsafe ::
-              (MonadIO m, HasCallStack) =>
-                SVGFEColorMatrixElement -> m SVGAnimatedEnumeration
-getTypeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getType (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement.type Mozilla SVGFEColorMatrixElement.type documentation> 
-getTypeUnchecked ::
-                 (MonadIO m) => SVGFEColorMatrixElement -> m SVGAnimatedEnumeration
-getTypeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getType (self)))
+        (MonadIO m) => SVGFEColorMatrixElement -> m SVGAnimatedEnumeration
+getType self = liftIO (js_getType self)
  
 foreign import javascript unsafe "$1[\"values\"]" js_getValues ::
-        SVGFEColorMatrixElement -> IO (Nullable SVGAnimatedNumberList)
+        SVGFEColorMatrixElement -> IO SVGAnimatedNumberList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement.values Mozilla SVGFEColorMatrixElement.values documentation> 
 getValues ::
-          (MonadIO m) =>
-            SVGFEColorMatrixElement -> m (Maybe SVGAnimatedNumberList)
-getValues self = liftIO (nullableToMaybe <$> (js_getValues (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement.values Mozilla SVGFEColorMatrixElement.values documentation> 
-getValuesUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  SVGFEColorMatrixElement -> m SVGAnimatedNumberList
-getValuesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getValues (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement.values Mozilla SVGFEColorMatrixElement.values documentation> 
-getValuesUnchecked ::
-                   (MonadIO m) => SVGFEColorMatrixElement -> m SVGAnimatedNumberList
-getValuesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getValues (self)))
+          (MonadIO m) => SVGFEColorMatrixElement -> m SVGAnimatedNumberList
+getValues self = liftIO (js_getValues self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEComponentTransferElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEComponentTransferElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEComponentTransferElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEComponentTransferElement.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFEComponentTransferElement
-       (js_getIn1, getIn1, getIn1Unsafe, getIn1Unchecked,
-        SVGFEComponentTransferElement(..),
+       (js_getIn1, getIn1, SVGFEComponentTransferElement(..),
         gTypeSVGFEComponentTransferElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,31 +20,16 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFEComponentTransferElement -> IO (Nullable SVGAnimatedString)
+        SVGFEComponentTransferElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEComponentTransferElement.in1 Mozilla SVGFEComponentTransferElement.in1 documentation> 
 getIn1 ::
-       (MonadIO m) =>
-         SVGFEComponentTransferElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEComponentTransferElement.in1 Mozilla SVGFEComponentTransferElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEComponentTransferElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEComponentTransferElement.in1 Mozilla SVGFEComponentTransferElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFEComponentTransferElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+       (MonadIO m) => SVGFEComponentTransferElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFECompositeElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFECompositeElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFECompositeElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFECompositeElement.hs
@@ -11,19 +11,15 @@
         pattern SVG_FECOMPOSITE_OPERATOR_ATOP,
         pattern SVG_FECOMPOSITE_OPERATOR_XOR,
         pattern SVG_FECOMPOSITE_OPERATOR_ARITHMETIC, js_getIn1, getIn1,
-        getIn1Unsafe, getIn1Unchecked, js_getIn2, getIn2, getIn2Unsafe,
-        getIn2Unchecked, js_getOperator, getOperator, getOperatorUnsafe,
-        getOperatorUnchecked, js_getK1, getK1, getK1Unsafe, getK1Unchecked,
-        js_getK2, getK2, getK2Unsafe, getK2Unchecked, js_getK3, getK3,
-        getK3Unsafe, getK3Unchecked, js_getK4, getK4, getK4Unsafe,
-        getK4Unchecked, SVGFECompositeElement(..),
-        gTypeSVGFECompositeElement)
+        js_getIn2, getIn2, js_getOperator, getOperator, js_getK1, getK1,
+        js_getK2, getK2, js_getK3, getK3, js_getK4, getK4,
+        SVGFECompositeElement(..), gTypeSVGFECompositeElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -32,6 +28,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -45,164 +42,57 @@
 pattern SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFECompositeElement -> IO (Nullable SVGAnimatedString)
+        SVGFECompositeElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.in1 Mozilla SVGFECompositeElement.in1 documentation> 
 getIn1 ::
-       (MonadIO m) => SVGFECompositeElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.in1 Mozilla SVGFECompositeElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFECompositeElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.in1 Mozilla SVGFECompositeElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+       (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
  
 foreign import javascript unsafe "$1[\"in2\"]" js_getIn2 ::
-        SVGFECompositeElement -> IO (Nullable SVGAnimatedString)
+        SVGFECompositeElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.in2 Mozilla SVGFECompositeElement.in2 documentation> 
 getIn2 ::
-       (MonadIO m) => SVGFECompositeElement -> m (Maybe SVGAnimatedString)
-getIn2 self = liftIO (nullableToMaybe <$> (js_getIn2 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.in2 Mozilla SVGFECompositeElement.in2 documentation> 
-getIn2Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFECompositeElement -> m SVGAnimatedString
-getIn2Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn2 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.in2 Mozilla SVGFECompositeElement.in2 documentation> 
-getIn2Unchecked ::
-                (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedString
-getIn2Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn2 (self)))
+       (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedString
+getIn2 self = liftIO (js_getIn2 self)
  
 foreign import javascript unsafe "$1[\"operator\"]" js_getOperator
-        :: SVGFECompositeElement -> IO (Nullable SVGAnimatedEnumeration)
+        :: SVGFECompositeElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.operator Mozilla SVGFECompositeElement.operator documentation> 
 getOperator ::
-            (MonadIO m) =>
-              SVGFECompositeElement -> m (Maybe SVGAnimatedEnumeration)
-getOperator self
-  = liftIO (nullableToMaybe <$> (js_getOperator (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.operator Mozilla SVGFECompositeElement.operator documentation> 
-getOperatorUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    SVGFECompositeElement -> m SVGAnimatedEnumeration
-getOperatorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOperator (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.operator Mozilla SVGFECompositeElement.operator documentation> 
-getOperatorUnchecked ::
-                     (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedEnumeration
-getOperatorUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getOperator (self)))
+            (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedEnumeration
+getOperator self = liftIO (js_getOperator self)
  
 foreign import javascript unsafe "$1[\"k1\"]" js_getK1 ::
-        SVGFECompositeElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFECompositeElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k1 Mozilla SVGFECompositeElement.k1 documentation> 
 getK1 ::
-      (MonadIO m) => SVGFECompositeElement -> m (Maybe SVGAnimatedNumber)
-getK1 self = liftIO (nullableToMaybe <$> (js_getK1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k1 Mozilla SVGFECompositeElement.k1 documentation> 
-getK1Unsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGFECompositeElement -> m SVGAnimatedNumber
-getK1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getK1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k1 Mozilla SVGFECompositeElement.k1 documentation> 
-getK1Unchecked ::
-               (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedNumber
-getK1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getK1 (self)))
+      (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedNumber
+getK1 self = liftIO (js_getK1 self)
  
 foreign import javascript unsafe "$1[\"k2\"]" js_getK2 ::
-        SVGFECompositeElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFECompositeElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k2 Mozilla SVGFECompositeElement.k2 documentation> 
 getK2 ::
-      (MonadIO m) => SVGFECompositeElement -> m (Maybe SVGAnimatedNumber)
-getK2 self = liftIO (nullableToMaybe <$> (js_getK2 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k2 Mozilla SVGFECompositeElement.k2 documentation> 
-getK2Unsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGFECompositeElement -> m SVGAnimatedNumber
-getK2Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getK2 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k2 Mozilla SVGFECompositeElement.k2 documentation> 
-getK2Unchecked ::
-               (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedNumber
-getK2Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getK2 (self)))
+      (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedNumber
+getK2 self = liftIO (js_getK2 self)
  
 foreign import javascript unsafe "$1[\"k3\"]" js_getK3 ::
-        SVGFECompositeElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFECompositeElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k3 Mozilla SVGFECompositeElement.k3 documentation> 
 getK3 ::
-      (MonadIO m) => SVGFECompositeElement -> m (Maybe SVGAnimatedNumber)
-getK3 self = liftIO (nullableToMaybe <$> (js_getK3 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k3 Mozilla SVGFECompositeElement.k3 documentation> 
-getK3Unsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGFECompositeElement -> m SVGAnimatedNumber
-getK3Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getK3 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k3 Mozilla SVGFECompositeElement.k3 documentation> 
-getK3Unchecked ::
-               (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedNumber
-getK3Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getK3 (self)))
+      (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedNumber
+getK3 self = liftIO (js_getK3 self)
  
 foreign import javascript unsafe "$1[\"k4\"]" js_getK4 ::
-        SVGFECompositeElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFECompositeElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k4 Mozilla SVGFECompositeElement.k4 documentation> 
 getK4 ::
-      (MonadIO m) => SVGFECompositeElement -> m (Maybe SVGAnimatedNumber)
-getK4 self = liftIO (nullableToMaybe <$> (js_getK4 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k4 Mozilla SVGFECompositeElement.k4 documentation> 
-getK4Unsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGFECompositeElement -> m SVGAnimatedNumber
-getK4Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getK4 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement.k4 Mozilla SVGFECompositeElement.k4 documentation> 
-getK4Unchecked ::
-               (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedNumber
-getK4Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getK4 (self)))
+      (MonadIO m) => SVGFECompositeElement -> m SVGAnimatedNumber
+getK4 self = liftIO (js_getK4 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEConvolveMatrixElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEConvolveMatrixElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEConvolveMatrixElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEConvolveMatrixElement.hs
@@ -6,29 +6,19 @@
 module GHCJS.DOM.JSFFI.Generated.SVGFEConvolveMatrixElement
        (pattern SVG_EDGEMODE_UNKNOWN, pattern SVG_EDGEMODE_DUPLICATE,
         pattern SVG_EDGEMODE_WRAP, pattern SVG_EDGEMODE_NONE, js_getIn1,
-        getIn1, getIn1Unsafe, getIn1Unchecked, js_getOrderX, getOrderX,
-        getOrderXUnsafe, getOrderXUnchecked, js_getOrderY, getOrderY,
-        getOrderYUnsafe, getOrderYUnchecked, js_getKernelMatrix,
-        getKernelMatrix, getKernelMatrixUnsafe, getKernelMatrixUnchecked,
-        js_getDivisor, getDivisor, getDivisorUnsafe, getDivisorUnchecked,
-        js_getBias, getBias, getBiasUnsafe, getBiasUnchecked,
-        js_getTargetX, getTargetX, getTargetXUnsafe, getTargetXUnchecked,
-        js_getTargetY, getTargetY, getTargetYUnsafe, getTargetYUnchecked,
-        js_getEdgeMode, getEdgeMode, getEdgeModeUnsafe,
-        getEdgeModeUnchecked, js_getKernelUnitLengthX,
-        getKernelUnitLengthX, getKernelUnitLengthXUnsafe,
-        getKernelUnitLengthXUnchecked, js_getKernelUnitLengthY,
-        getKernelUnitLengthY, getKernelUnitLengthYUnsafe,
-        getKernelUnitLengthYUnchecked, js_getPreserveAlpha,
-        getPreserveAlpha, getPreserveAlphaUnsafe,
-        getPreserveAlphaUnchecked, SVGFEConvolveMatrixElement(..),
-        gTypeSVGFEConvolveMatrixElement)
+        getIn1, js_getOrderX, getOrderX, js_getOrderY, getOrderY,
+        js_getKernelMatrix, getKernelMatrix, js_getDivisor, getDivisor,
+        js_getBias, getBias, js_getTargetX, getTargetX, js_getTargetY,
+        getTargetY, js_getEdgeMode, getEdgeMode, js_getKernelUnitLengthX,
+        getKernelUnitLengthX, js_getKernelUnitLengthY,
+        getKernelUnitLengthY, js_getPreserveAlpha, getPreserveAlpha,
+        SVGFEConvolveMatrixElement(..), gTypeSVGFEConvolveMatrixElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -37,6 +27,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -47,308 +38,103 @@
 pattern SVG_EDGEMODE_NONE = 3
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedString)
+        SVGFEConvolveMatrixElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.in1 Mozilla SVGFEConvolveMatrixElement.in1 documentation> 
 getIn1 ::
-       (MonadIO m) =>
-         SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.in1 Mozilla SVGFEConvolveMatrixElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEConvolveMatrixElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.in1 Mozilla SVGFEConvolveMatrixElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+       (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
  
 foreign import javascript unsafe "$1[\"orderX\"]" js_getOrderX ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedInteger)
+        SVGFEConvolveMatrixElement -> IO SVGAnimatedInteger
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.orderX Mozilla SVGFEConvolveMatrixElement.orderX documentation> 
 getOrderX ::
-          (MonadIO m) =>
-            SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedInteger)
-getOrderX self = liftIO (nullableToMaybe <$> (js_getOrderX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.orderX Mozilla SVGFEConvolveMatrixElement.orderX documentation> 
-getOrderXUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
-getOrderXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOrderX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.orderX Mozilla SVGFEConvolveMatrixElement.orderX documentation> 
-getOrderXUnchecked ::
-                   (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
-getOrderXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getOrderX (self)))
+          (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
+getOrderX self = liftIO (js_getOrderX self)
  
 foreign import javascript unsafe "$1[\"orderY\"]" js_getOrderY ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedInteger)
+        SVGFEConvolveMatrixElement -> IO SVGAnimatedInteger
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.orderY Mozilla SVGFEConvolveMatrixElement.orderY documentation> 
 getOrderY ::
-          (MonadIO m) =>
-            SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedInteger)
-getOrderY self = liftIO (nullableToMaybe <$> (js_getOrderY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.orderY Mozilla SVGFEConvolveMatrixElement.orderY documentation> 
-getOrderYUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
-getOrderYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOrderY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.orderY Mozilla SVGFEConvolveMatrixElement.orderY documentation> 
-getOrderYUnchecked ::
-                   (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
-getOrderYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getOrderY (self)))
+          (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
+getOrderY self = liftIO (js_getOrderY self)
  
 foreign import javascript unsafe "$1[\"kernelMatrix\"]"
         js_getKernelMatrix ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedNumberList)
+        SVGFEConvolveMatrixElement -> IO SVGAnimatedNumberList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.kernelMatrix Mozilla SVGFEConvolveMatrixElement.kernelMatrix documentation> 
 getKernelMatrix ::
                 (MonadIO m) =>
-                  SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedNumberList)
-getKernelMatrix self
-  = liftIO (nullableToMaybe <$> (js_getKernelMatrix (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.kernelMatrix Mozilla SVGFEConvolveMatrixElement.kernelMatrix documentation> 
-getKernelMatrixUnsafe ::
-                      (MonadIO m, HasCallStack) =>
-                        SVGFEConvolveMatrixElement -> m SVGAnimatedNumberList
-getKernelMatrixUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getKernelMatrix (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.kernelMatrix Mozilla SVGFEConvolveMatrixElement.kernelMatrix documentation> 
-getKernelMatrixUnchecked ::
-                         (MonadIO m) =>
-                           SVGFEConvolveMatrixElement -> m SVGAnimatedNumberList
-getKernelMatrixUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getKernelMatrix (self)))
+                  SVGFEConvolveMatrixElement -> m SVGAnimatedNumberList
+getKernelMatrix self = liftIO (js_getKernelMatrix self)
  
 foreign import javascript unsafe "$1[\"divisor\"]" js_getDivisor ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEConvolveMatrixElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.divisor Mozilla SVGFEConvolveMatrixElement.divisor documentation> 
 getDivisor ::
-           (MonadIO m) =>
-             SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedNumber)
-getDivisor self
-  = liftIO (nullableToMaybe <$> (js_getDivisor (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.divisor Mozilla SVGFEConvolveMatrixElement.divisor documentation> 
-getDivisorUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
-getDivisorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDivisor (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.divisor Mozilla SVGFEConvolveMatrixElement.divisor documentation> 
-getDivisorUnchecked ::
-                    (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
-getDivisorUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getDivisor (self)))
+           (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
+getDivisor self = liftIO (js_getDivisor self)
  
 foreign import javascript unsafe "$1[\"bias\"]" js_getBias ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEConvolveMatrixElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.bias Mozilla SVGFEConvolveMatrixElement.bias documentation> 
 getBias ::
-        (MonadIO m) =>
-          SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedNumber)
-getBias self = liftIO (nullableToMaybe <$> (js_getBias (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.bias Mozilla SVGFEConvolveMatrixElement.bias documentation> 
-getBiasUnsafe ::
-              (MonadIO m, HasCallStack) =>
-                SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
-getBiasUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBias (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.bias Mozilla SVGFEConvolveMatrixElement.bias documentation> 
-getBiasUnchecked ::
-                 (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
-getBiasUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBias (self)))
+        (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
+getBias self = liftIO (js_getBias self)
  
 foreign import javascript unsafe "$1[\"targetX\"]" js_getTargetX ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedInteger)
+        SVGFEConvolveMatrixElement -> IO SVGAnimatedInteger
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.targetX Mozilla SVGFEConvolveMatrixElement.targetX documentation> 
 getTargetX ::
-           (MonadIO m) =>
-             SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedInteger)
-getTargetX self
-  = liftIO (nullableToMaybe <$> (js_getTargetX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.targetX Mozilla SVGFEConvolveMatrixElement.targetX documentation> 
-getTargetXUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
-getTargetXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTargetX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.targetX Mozilla SVGFEConvolveMatrixElement.targetX documentation> 
-getTargetXUnchecked ::
-                    (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
-getTargetXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTargetX (self)))
+           (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
+getTargetX self = liftIO (js_getTargetX self)
  
 foreign import javascript unsafe "$1[\"targetY\"]" js_getTargetY ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedInteger)
+        SVGFEConvolveMatrixElement -> IO SVGAnimatedInteger
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.targetY Mozilla SVGFEConvolveMatrixElement.targetY documentation> 
 getTargetY ::
-           (MonadIO m) =>
-             SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedInteger)
-getTargetY self
-  = liftIO (nullableToMaybe <$> (js_getTargetY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.targetY Mozilla SVGFEConvolveMatrixElement.targetY documentation> 
-getTargetYUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
-getTargetYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTargetY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.targetY Mozilla SVGFEConvolveMatrixElement.targetY documentation> 
-getTargetYUnchecked ::
-                    (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
-getTargetYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTargetY (self)))
+           (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedInteger
+getTargetY self = liftIO (js_getTargetY self)
  
 foreign import javascript unsafe "$1[\"edgeMode\"]" js_getEdgeMode
-        ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedEnumeration)
+        :: SVGFEConvolveMatrixElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.edgeMode Mozilla SVGFEConvolveMatrixElement.edgeMode documentation> 
 getEdgeMode ::
             (MonadIO m) =>
-              SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedEnumeration)
-getEdgeMode self
-  = liftIO (nullableToMaybe <$> (js_getEdgeMode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.edgeMode Mozilla SVGFEConvolveMatrixElement.edgeMode documentation> 
-getEdgeModeUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    SVGFEConvolveMatrixElement -> m SVGAnimatedEnumeration
-getEdgeModeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getEdgeMode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.edgeMode Mozilla SVGFEConvolveMatrixElement.edgeMode documentation> 
-getEdgeModeUnchecked ::
-                     (MonadIO m) =>
-                       SVGFEConvolveMatrixElement -> m SVGAnimatedEnumeration
-getEdgeModeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getEdgeMode (self)))
+              SVGFEConvolveMatrixElement -> m SVGAnimatedEnumeration
+getEdgeMode self = liftIO (js_getEdgeMode self)
  
 foreign import javascript unsafe "$1[\"kernelUnitLengthX\"]"
         js_getKernelUnitLengthX ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEConvolveMatrixElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.kernelUnitLengthX Mozilla SVGFEConvolveMatrixElement.kernelUnitLengthX documentation> 
 getKernelUnitLengthX ::
-                     (MonadIO m) =>
-                       SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedNumber)
-getKernelUnitLengthX self
-  = liftIO (nullableToMaybe <$> (js_getKernelUnitLengthX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.kernelUnitLengthX Mozilla SVGFEConvolveMatrixElement.kernelUnitLengthX documentation> 
-getKernelUnitLengthXUnsafe ::
-                           (MonadIO m, HasCallStack) =>
-                             SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
-getKernelUnitLengthXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getKernelUnitLengthX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.kernelUnitLengthX Mozilla SVGFEConvolveMatrixElement.kernelUnitLengthX documentation> 
-getKernelUnitLengthXUnchecked ::
-                              (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
-getKernelUnitLengthXUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getKernelUnitLengthX (self)))
+                     (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
+getKernelUnitLengthX self = liftIO (js_getKernelUnitLengthX self)
  
 foreign import javascript unsafe "$1[\"kernelUnitLengthY\"]"
         js_getKernelUnitLengthY ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEConvolveMatrixElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.kernelUnitLengthY Mozilla SVGFEConvolveMatrixElement.kernelUnitLengthY documentation> 
 getKernelUnitLengthY ::
-                     (MonadIO m) =>
-                       SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedNumber)
-getKernelUnitLengthY self
-  = liftIO (nullableToMaybe <$> (js_getKernelUnitLengthY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.kernelUnitLengthY Mozilla SVGFEConvolveMatrixElement.kernelUnitLengthY documentation> 
-getKernelUnitLengthYUnsafe ::
-                           (MonadIO m, HasCallStack) =>
-                             SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
-getKernelUnitLengthYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getKernelUnitLengthY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.kernelUnitLengthY Mozilla SVGFEConvolveMatrixElement.kernelUnitLengthY documentation> 
-getKernelUnitLengthYUnchecked ::
-                              (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
-getKernelUnitLengthYUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getKernelUnitLengthY (self)))
+                     (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedNumber
+getKernelUnitLengthY self = liftIO (js_getKernelUnitLengthY self)
  
 foreign import javascript unsafe "$1[\"preserveAlpha\"]"
         js_getPreserveAlpha ::
-        SVGFEConvolveMatrixElement -> IO (Nullable SVGAnimatedBoolean)
+        SVGFEConvolveMatrixElement -> IO SVGAnimatedBoolean
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.preserveAlpha Mozilla SVGFEConvolveMatrixElement.preserveAlpha documentation> 
 getPreserveAlpha ::
-                 (MonadIO m) =>
-                   SVGFEConvolveMatrixElement -> m (Maybe SVGAnimatedBoolean)
-getPreserveAlpha self
-  = liftIO (nullableToMaybe <$> (js_getPreserveAlpha (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.preserveAlpha Mozilla SVGFEConvolveMatrixElement.preserveAlpha documentation> 
-getPreserveAlphaUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         SVGFEConvolveMatrixElement -> m SVGAnimatedBoolean
-getPreserveAlphaUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPreserveAlpha (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement.preserveAlpha Mozilla SVGFEConvolveMatrixElement.preserveAlpha documentation> 
-getPreserveAlphaUnchecked ::
-                          (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedBoolean
-getPreserveAlphaUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPreserveAlpha (self)))
+                 (MonadIO m) => SVGFEConvolveMatrixElement -> m SVGAnimatedBoolean
+getPreserveAlpha self = liftIO (js_getPreserveAlpha self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEDiffuseLightingElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEDiffuseLightingElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEDiffuseLightingElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEDiffuseLightingElement.hs
@@ -4,22 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFEDiffuseLightingElement
-       (js_getIn1, getIn1, getIn1Unsafe, getIn1Unchecked,
-        js_getSurfaceScale, getSurfaceScale, getSurfaceScaleUnsafe,
-        getSurfaceScaleUnchecked, js_getDiffuseConstant,
-        getDiffuseConstant, getDiffuseConstantUnsafe,
-        getDiffuseConstantUnchecked, js_getKernelUnitLengthX,
-        getKernelUnitLengthX, getKernelUnitLengthXUnsafe,
-        getKernelUnitLengthXUnchecked, js_getKernelUnitLengthY,
-        getKernelUnitLengthY, getKernelUnitLengthYUnsafe,
-        getKernelUnitLengthYUnchecked, SVGFEDiffuseLightingElement(..),
+       (js_getIn1, getIn1, js_getSurfaceScale, getSurfaceScale,
+        js_getDiffuseConstant, getDiffuseConstant, js_getKernelUnitLengthX,
+        getKernelUnitLengthX, js_getKernelUnitLengthY,
+        getKernelUnitLengthY, SVGFEDiffuseLightingElement(..),
         gTypeSVGFEDiffuseLightingElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,139 +23,52 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFEDiffuseLightingElement -> IO (Nullable SVGAnimatedString)
+        SVGFEDiffuseLightingElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.in1 Mozilla SVGFEDiffuseLightingElement.in1 documentation> 
 getIn1 ::
-       (MonadIO m) =>
-         SVGFEDiffuseLightingElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.in1 Mozilla SVGFEDiffuseLightingElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEDiffuseLightingElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.in1 Mozilla SVGFEDiffuseLightingElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFEDiffuseLightingElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+       (MonadIO m) => SVGFEDiffuseLightingElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
  
 foreign import javascript unsafe "$1[\"surfaceScale\"]"
         js_getSurfaceScale ::
-        SVGFEDiffuseLightingElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEDiffuseLightingElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.surfaceScale Mozilla SVGFEDiffuseLightingElement.surfaceScale documentation> 
 getSurfaceScale ::
-                (MonadIO m) =>
-                  SVGFEDiffuseLightingElement -> m (Maybe SVGAnimatedNumber)
-getSurfaceScale self
-  = liftIO (nullableToMaybe <$> (js_getSurfaceScale (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.surfaceScale Mozilla SVGFEDiffuseLightingElement.surfaceScale documentation> 
-getSurfaceScaleUnsafe ::
-                      (MonadIO m, HasCallStack) =>
-                        SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
-getSurfaceScaleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSurfaceScale (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.surfaceScale Mozilla SVGFEDiffuseLightingElement.surfaceScale documentation> 
-getSurfaceScaleUnchecked ::
-                         (MonadIO m) => SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
-getSurfaceScaleUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSurfaceScale (self)))
+                (MonadIO m) => SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
+getSurfaceScale self = liftIO (js_getSurfaceScale self)
  
 foreign import javascript unsafe "$1[\"diffuseConstant\"]"
         js_getDiffuseConstant ::
-        SVGFEDiffuseLightingElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEDiffuseLightingElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.diffuseConstant Mozilla SVGFEDiffuseLightingElement.diffuseConstant documentation> 
 getDiffuseConstant ::
-                   (MonadIO m) =>
-                     SVGFEDiffuseLightingElement -> m (Maybe SVGAnimatedNumber)
-getDiffuseConstant self
-  = liftIO (nullableToMaybe <$> (js_getDiffuseConstant (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.diffuseConstant Mozilla SVGFEDiffuseLightingElement.diffuseConstant documentation> 
-getDiffuseConstantUnsafe ::
-                         (MonadIO m, HasCallStack) =>
-                           SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
-getDiffuseConstantUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDiffuseConstant (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.diffuseConstant Mozilla SVGFEDiffuseLightingElement.diffuseConstant documentation> 
-getDiffuseConstantUnchecked ::
-                            (MonadIO m) => SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
-getDiffuseConstantUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getDiffuseConstant (self)))
+                   (MonadIO m) => SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
+getDiffuseConstant self = liftIO (js_getDiffuseConstant self)
  
 foreign import javascript unsafe "$1[\"kernelUnitLengthX\"]"
         js_getKernelUnitLengthX ::
-        SVGFEDiffuseLightingElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEDiffuseLightingElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.kernelUnitLengthX Mozilla SVGFEDiffuseLightingElement.kernelUnitLengthX documentation> 
 getKernelUnitLengthX ::
-                     (MonadIO m) =>
-                       SVGFEDiffuseLightingElement -> m (Maybe SVGAnimatedNumber)
-getKernelUnitLengthX self
-  = liftIO (nullableToMaybe <$> (js_getKernelUnitLengthX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.kernelUnitLengthX Mozilla SVGFEDiffuseLightingElement.kernelUnitLengthX documentation> 
-getKernelUnitLengthXUnsafe ::
-                           (MonadIO m, HasCallStack) =>
-                             SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
-getKernelUnitLengthXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getKernelUnitLengthX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.kernelUnitLengthX Mozilla SVGFEDiffuseLightingElement.kernelUnitLengthX documentation> 
-getKernelUnitLengthXUnchecked ::
-                              (MonadIO m) => SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
-getKernelUnitLengthXUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getKernelUnitLengthX (self)))
+                     (MonadIO m) => SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
+getKernelUnitLengthX self = liftIO (js_getKernelUnitLengthX self)
  
 foreign import javascript unsafe "$1[\"kernelUnitLengthY\"]"
         js_getKernelUnitLengthY ::
-        SVGFEDiffuseLightingElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEDiffuseLightingElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.kernelUnitLengthY Mozilla SVGFEDiffuseLightingElement.kernelUnitLengthY documentation> 
 getKernelUnitLengthY ::
-                     (MonadIO m) =>
-                       SVGFEDiffuseLightingElement -> m (Maybe SVGAnimatedNumber)
-getKernelUnitLengthY self
-  = liftIO (nullableToMaybe <$> (js_getKernelUnitLengthY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.kernelUnitLengthY Mozilla SVGFEDiffuseLightingElement.kernelUnitLengthY documentation> 
-getKernelUnitLengthYUnsafe ::
-                           (MonadIO m, HasCallStack) =>
-                             SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
-getKernelUnitLengthYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getKernelUnitLengthY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement.kernelUnitLengthY Mozilla SVGFEDiffuseLightingElement.kernelUnitLengthY documentation> 
-getKernelUnitLengthYUnchecked ::
-                              (MonadIO m) => SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
-getKernelUnitLengthYUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getKernelUnitLengthY (self)))
+                     (MonadIO m) => SVGFEDiffuseLightingElement -> m SVGAnimatedNumber
+getKernelUnitLengthY self = liftIO (js_getKernelUnitLengthY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEDisplacementMapElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEDisplacementMapElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEDisplacementMapElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEDisplacementMapElement.hs
@@ -6,20 +6,16 @@
 module GHCJS.DOM.JSFFI.Generated.SVGFEDisplacementMapElement
        (pattern SVG_CHANNEL_UNKNOWN, pattern SVG_CHANNEL_R,
         pattern SVG_CHANNEL_G, pattern SVG_CHANNEL_B,
-        pattern SVG_CHANNEL_A, js_getIn1, getIn1, getIn1Unsafe,
-        getIn1Unchecked, js_getIn2, getIn2, getIn2Unsafe, getIn2Unchecked,
-        js_getScale, getScale, getScaleUnsafe, getScaleUnchecked,
-        js_getXChannelSelector, getXChannelSelector,
-        getXChannelSelectorUnsafe, getXChannelSelectorUnchecked,
+        pattern SVG_CHANNEL_A, js_getIn1, getIn1, js_getIn2, getIn2,
+        js_getScale, getScale, js_getXChannelSelector, getXChannelSelector,
         js_getYChannelSelector, getYChannelSelector,
-        getYChannelSelectorUnsafe, getYChannelSelectorUnchecked,
         SVGFEDisplacementMapElement(..), gTypeSVGFEDisplacementMapElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -39,129 +36,45 @@
 pattern SVG_CHANNEL_A = 4
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFEDisplacementMapElement -> IO (Nullable SVGAnimatedString)
+        SVGFEDisplacementMapElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.in1 Mozilla SVGFEDisplacementMapElement.in1 documentation> 
 getIn1 ::
-       (MonadIO m) =>
-         SVGFEDisplacementMapElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.in1 Mozilla SVGFEDisplacementMapElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEDisplacementMapElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.in1 Mozilla SVGFEDisplacementMapElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFEDisplacementMapElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+       (MonadIO m) => SVGFEDisplacementMapElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
  
 foreign import javascript unsafe "$1[\"in2\"]" js_getIn2 ::
-        SVGFEDisplacementMapElement -> IO (Nullable SVGAnimatedString)
+        SVGFEDisplacementMapElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.in2 Mozilla SVGFEDisplacementMapElement.in2 documentation> 
 getIn2 ::
-       (MonadIO m) =>
-         SVGFEDisplacementMapElement -> m (Maybe SVGAnimatedString)
-getIn2 self = liftIO (nullableToMaybe <$> (js_getIn2 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.in2 Mozilla SVGFEDisplacementMapElement.in2 documentation> 
-getIn2Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEDisplacementMapElement -> m SVGAnimatedString
-getIn2Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn2 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.in2 Mozilla SVGFEDisplacementMapElement.in2 documentation> 
-getIn2Unchecked ::
-                (MonadIO m) => SVGFEDisplacementMapElement -> m SVGAnimatedString
-getIn2Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn2 (self)))
+       (MonadIO m) => SVGFEDisplacementMapElement -> m SVGAnimatedString
+getIn2 self = liftIO (js_getIn2 self)
  
 foreign import javascript unsafe "$1[\"scale\"]" js_getScale ::
-        SVGFEDisplacementMapElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEDisplacementMapElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.scale Mozilla SVGFEDisplacementMapElement.scale documentation> 
 getScale ::
-         (MonadIO m) =>
-           SVGFEDisplacementMapElement -> m (Maybe SVGAnimatedNumber)
-getScale self = liftIO (nullableToMaybe <$> (js_getScale (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.scale Mozilla SVGFEDisplacementMapElement.scale documentation> 
-getScaleUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 SVGFEDisplacementMapElement -> m SVGAnimatedNumber
-getScaleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getScale (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.scale Mozilla SVGFEDisplacementMapElement.scale documentation> 
-getScaleUnchecked ::
-                  (MonadIO m) => SVGFEDisplacementMapElement -> m SVGAnimatedNumber
-getScaleUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getScale (self)))
+         (MonadIO m) => SVGFEDisplacementMapElement -> m SVGAnimatedNumber
+getScale self = liftIO (js_getScale self)
  
 foreign import javascript unsafe "$1[\"xChannelSelector\"]"
         js_getXChannelSelector ::
-        SVGFEDisplacementMapElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGFEDisplacementMapElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.xChannelSelector Mozilla SVGFEDisplacementMapElement.xChannelSelector documentation> 
 getXChannelSelector ::
                     (MonadIO m) =>
-                      SVGFEDisplacementMapElement -> m (Maybe SVGAnimatedEnumeration)
-getXChannelSelector self
-  = liftIO (nullableToMaybe <$> (js_getXChannelSelector (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.xChannelSelector Mozilla SVGFEDisplacementMapElement.xChannelSelector documentation> 
-getXChannelSelectorUnsafe ::
-                          (MonadIO m, HasCallStack) =>
-                            SVGFEDisplacementMapElement -> m SVGAnimatedEnumeration
-getXChannelSelectorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getXChannelSelector (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.xChannelSelector Mozilla SVGFEDisplacementMapElement.xChannelSelector documentation> 
-getXChannelSelectorUnchecked ::
-                             (MonadIO m) =>
-                               SVGFEDisplacementMapElement -> m SVGAnimatedEnumeration
-getXChannelSelectorUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getXChannelSelector (self)))
+                      SVGFEDisplacementMapElement -> m SVGAnimatedEnumeration
+getXChannelSelector self = liftIO (js_getXChannelSelector self)
  
 foreign import javascript unsafe "$1[\"yChannelSelector\"]"
         js_getYChannelSelector ::
-        SVGFEDisplacementMapElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGFEDisplacementMapElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.yChannelSelector Mozilla SVGFEDisplacementMapElement.yChannelSelector documentation> 
 getYChannelSelector ::
                     (MonadIO m) =>
-                      SVGFEDisplacementMapElement -> m (Maybe SVGAnimatedEnumeration)
-getYChannelSelector self
-  = liftIO (nullableToMaybe <$> (js_getYChannelSelector (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.yChannelSelector Mozilla SVGFEDisplacementMapElement.yChannelSelector documentation> 
-getYChannelSelectorUnsafe ::
-                          (MonadIO m, HasCallStack) =>
-                            SVGFEDisplacementMapElement -> m SVGAnimatedEnumeration
-getYChannelSelectorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getYChannelSelector (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement.yChannelSelector Mozilla SVGFEDisplacementMapElement.yChannelSelector documentation> 
-getYChannelSelectorUnchecked ::
-                             (MonadIO m) =>
-                               SVGFEDisplacementMapElement -> m SVGAnimatedEnumeration
-getYChannelSelectorUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getYChannelSelector (self)))
+                      SVGFEDisplacementMapElement -> m SVGAnimatedEnumeration
+getYChannelSelector self = liftIO (js_getYChannelSelector self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEDistantLightElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEDistantLightElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEDistantLightElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEDistantLightElement.hs
@@ -4,16 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFEDistantLightElement
-       (js_getAzimuth, getAzimuth, getAzimuthUnsafe, getAzimuthUnchecked,
-        js_getElevation, getElevation, getElevationUnsafe,
-        getElevationUnchecked, SVGFEDistantLightElement(..),
-        gTypeSVGFEDistantLightElement)
+       (js_getAzimuth, getAzimuth, js_getElevation, getElevation,
+        SVGFEDistantLightElement(..), gTypeSVGFEDistantLightElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,58 +20,24 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"azimuth\"]" js_getAzimuth ::
-        SVGFEDistantLightElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEDistantLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDistantLightElement.azimuth Mozilla SVGFEDistantLightElement.azimuth documentation> 
 getAzimuth ::
-           (MonadIO m) =>
-             SVGFEDistantLightElement -> m (Maybe SVGAnimatedNumber)
-getAzimuth self
-  = liftIO (nullableToMaybe <$> (js_getAzimuth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDistantLightElement.azimuth Mozilla SVGFEDistantLightElement.azimuth documentation> 
-getAzimuthUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGFEDistantLightElement -> m SVGAnimatedNumber
-getAzimuthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAzimuth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDistantLightElement.azimuth Mozilla SVGFEDistantLightElement.azimuth documentation> 
-getAzimuthUnchecked ::
-                    (MonadIO m) => SVGFEDistantLightElement -> m SVGAnimatedNumber
-getAzimuthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAzimuth (self)))
+           (MonadIO m) => SVGFEDistantLightElement -> m SVGAnimatedNumber
+getAzimuth self = liftIO (js_getAzimuth self)
  
 foreign import javascript unsafe "$1[\"elevation\"]"
-        js_getElevation ::
-        SVGFEDistantLightElement -> IO (Nullable SVGAnimatedNumber)
+        js_getElevation :: SVGFEDistantLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDistantLightElement.elevation Mozilla SVGFEDistantLightElement.elevation documentation> 
 getElevation ::
-             (MonadIO m) =>
-               SVGFEDistantLightElement -> m (Maybe SVGAnimatedNumber)
-getElevation self
-  = liftIO (nullableToMaybe <$> (js_getElevation (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDistantLightElement.elevation Mozilla SVGFEDistantLightElement.elevation documentation> 
-getElevationUnsafe ::
-                   (MonadIO m, HasCallStack) =>
-                     SVGFEDistantLightElement -> m SVGAnimatedNumber
-getElevationUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getElevation (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDistantLightElement.elevation Mozilla SVGFEDistantLightElement.elevation documentation> 
-getElevationUnchecked ::
-                      (MonadIO m) => SVGFEDistantLightElement -> m SVGAnimatedNumber
-getElevationUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getElevation (self)))
+             (MonadIO m) => SVGFEDistantLightElement -> m SVGAnimatedNumber
+getElevation self = liftIO (js_getElevation self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEDropShadowElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEDropShadowElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEDropShadowElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEDropShadowElement.hs
@@ -4,19 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFEDropShadowElement
-       (js_setStdDeviation, setStdDeviation, js_getIn1, getIn1,
-        getIn1Unsafe, getIn1Unchecked, js_getDx, getDx, getDxUnsafe,
-        getDxUnchecked, js_getDy, getDy, getDyUnsafe, getDyUnchecked,
-        js_getStdDeviationX, getStdDeviationX, getStdDeviationXUnsafe,
-        getStdDeviationXUnchecked, js_getStdDeviationY, getStdDeviationY,
-        getStdDeviationYUnsafe, getStdDeviationYUnchecked,
-        SVGFEDropShadowElement(..), gTypeSVGFEDropShadowElement)
+       (js_setStdDeviation, setStdDeviation, js_getIn1, getIn1, js_getDx,
+        getDx, js_getDy, getDy, js_getStdDeviationX, getStdDeviationX,
+        js_getStdDeviationY, getStdDeviationY, SVGFEDropShadowElement(..),
+        gTypeSVGFEDropShadowElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,136 +30,55 @@
  
 foreign import javascript unsafe "$1[\"setStdDeviation\"]($2, $3)"
         js_setStdDeviation ::
-        SVGFEDropShadowElement -> Float -> Float -> IO ()
+        SVGFEDropShadowElement -> Optional Float -> Optional Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.setStdDeviation Mozilla SVGFEDropShadowElement.setStdDeviation documentation> 
 setStdDeviation ::
-                (MonadIO m) => SVGFEDropShadowElement -> Float -> Float -> m ()
+                (MonadIO m) =>
+                  SVGFEDropShadowElement -> Maybe Float -> Maybe Float -> m ()
 setStdDeviation self stdDeviationX stdDeviationY
-  = liftIO (js_setStdDeviation (self) stdDeviationX stdDeviationY)
+  = liftIO
+      (js_setStdDeviation self (maybeToOptional stdDeviationX)
+         (maybeToOptional stdDeviationY))
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFEDropShadowElement -> IO (Nullable SVGAnimatedString)
+        SVGFEDropShadowElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.in1 Mozilla SVGFEDropShadowElement.in1 documentation> 
 getIn1 ::
-       (MonadIO m) =>
-         SVGFEDropShadowElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.in1 Mozilla SVGFEDropShadowElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEDropShadowElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.in1 Mozilla SVGFEDropShadowElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFEDropShadowElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+       (MonadIO m) => SVGFEDropShadowElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
  
 foreign import javascript unsafe "$1[\"dx\"]" js_getDx ::
-        SVGFEDropShadowElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEDropShadowElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.dx Mozilla SVGFEDropShadowElement.dx documentation> 
 getDx ::
-      (MonadIO m) =>
-        SVGFEDropShadowElement -> m (Maybe SVGAnimatedNumber)
-getDx self = liftIO (nullableToMaybe <$> (js_getDx (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.dx Mozilla SVGFEDropShadowElement.dx documentation> 
-getDxUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGFEDropShadowElement -> m SVGAnimatedNumber
-getDxUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDx (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.dx Mozilla SVGFEDropShadowElement.dx documentation> 
-getDxUnchecked ::
-               (MonadIO m) => SVGFEDropShadowElement -> m SVGAnimatedNumber
-getDxUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getDx (self)))
+      (MonadIO m) => SVGFEDropShadowElement -> m SVGAnimatedNumber
+getDx self = liftIO (js_getDx self)
  
 foreign import javascript unsafe "$1[\"dy\"]" js_getDy ::
-        SVGFEDropShadowElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEDropShadowElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.dy Mozilla SVGFEDropShadowElement.dy documentation> 
 getDy ::
-      (MonadIO m) =>
-        SVGFEDropShadowElement -> m (Maybe SVGAnimatedNumber)
-getDy self = liftIO (nullableToMaybe <$> (js_getDy (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.dy Mozilla SVGFEDropShadowElement.dy documentation> 
-getDyUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGFEDropShadowElement -> m SVGAnimatedNumber
-getDyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDy (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.dy Mozilla SVGFEDropShadowElement.dy documentation> 
-getDyUnchecked ::
-               (MonadIO m) => SVGFEDropShadowElement -> m SVGAnimatedNumber
-getDyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getDy (self)))
+      (MonadIO m) => SVGFEDropShadowElement -> m SVGAnimatedNumber
+getDy self = liftIO (js_getDy self)
  
 foreign import javascript unsafe "$1[\"stdDeviationX\"]"
         js_getStdDeviationX ::
-        SVGFEDropShadowElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEDropShadowElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.stdDeviationX Mozilla SVGFEDropShadowElement.stdDeviationX documentation> 
 getStdDeviationX ::
-                 (MonadIO m) =>
-                   SVGFEDropShadowElement -> m (Maybe SVGAnimatedNumber)
-getStdDeviationX self
-  = liftIO (nullableToMaybe <$> (js_getStdDeviationX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.stdDeviationX Mozilla SVGFEDropShadowElement.stdDeviationX documentation> 
-getStdDeviationXUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         SVGFEDropShadowElement -> m SVGAnimatedNumber
-getStdDeviationXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStdDeviationX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.stdDeviationX Mozilla SVGFEDropShadowElement.stdDeviationX documentation> 
-getStdDeviationXUnchecked ::
-                          (MonadIO m) => SVGFEDropShadowElement -> m SVGAnimatedNumber
-getStdDeviationXUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getStdDeviationX (self)))
+                 (MonadIO m) => SVGFEDropShadowElement -> m SVGAnimatedNumber
+getStdDeviationX self = liftIO (js_getStdDeviationX self)
  
 foreign import javascript unsafe "$1[\"stdDeviationY\"]"
         js_getStdDeviationY ::
-        SVGFEDropShadowElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEDropShadowElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.stdDeviationY Mozilla SVGFEDropShadowElement.stdDeviationY documentation> 
 getStdDeviationY ::
-                 (MonadIO m) =>
-                   SVGFEDropShadowElement -> m (Maybe SVGAnimatedNumber)
-getStdDeviationY self
-  = liftIO (nullableToMaybe <$> (js_getStdDeviationY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.stdDeviationY Mozilla SVGFEDropShadowElement.stdDeviationY documentation> 
-getStdDeviationYUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         SVGFEDropShadowElement -> m SVGAnimatedNumber
-getStdDeviationYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStdDeviationY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement.stdDeviationY Mozilla SVGFEDropShadowElement.stdDeviationY documentation> 
-getStdDeviationYUnchecked ::
-                          (MonadIO m) => SVGFEDropShadowElement -> m SVGAnimatedNumber
-getStdDeviationYUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getStdDeviationY (self)))
+                 (MonadIO m) => SVGFEDropShadowElement -> m SVGAnimatedNumber
+getStdDeviationY self = liftIO (js_getStdDeviationY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEGaussianBlurElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEGaussianBlurElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEGaussianBlurElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEGaussianBlurElement.hs
@@ -6,19 +6,16 @@
 module GHCJS.DOM.JSFFI.Generated.SVGFEGaussianBlurElement
        (js_setStdDeviation, setStdDeviation, pattern SVG_EDGEMODE_UNKNOWN,
         pattern SVG_EDGEMODE_DUPLICATE, pattern SVG_EDGEMODE_WRAP,
-        pattern SVG_EDGEMODE_NONE, js_getIn1, getIn1, getIn1Unsafe,
-        getIn1Unchecked, js_getStdDeviationX, getStdDeviationX,
-        getStdDeviationXUnsafe, getStdDeviationXUnchecked,
-        js_getStdDeviationY, getStdDeviationY, getStdDeviationYUnsafe,
-        getStdDeviationYUnchecked, js_getEdgeMode, getEdgeMode,
-        getEdgeModeUnsafe, getEdgeModeUnchecked,
-        SVGFEGaussianBlurElement(..), gTypeSVGFEGaussianBlurElement)
+        pattern SVG_EDGEMODE_NONE, js_getIn1, getIn1, js_getStdDeviationX,
+        getStdDeviationX, js_getStdDeviationY, getStdDeviationY,
+        js_getEdgeMode, getEdgeMode, SVGFEGaussianBlurElement(..),
+        gTypeSVGFEGaussianBlurElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,117 +32,52 @@
  
 foreign import javascript unsafe "$1[\"setStdDeviation\"]($2, $3)"
         js_setStdDeviation ::
-        SVGFEGaussianBlurElement -> Float -> Float -> IO ()
+        SVGFEGaussianBlurElement ->
+          Optional Float -> Optional Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.setStdDeviation Mozilla SVGFEGaussianBlurElement.setStdDeviation documentation> 
 setStdDeviation ::
-                (MonadIO m) => SVGFEGaussianBlurElement -> Float -> Float -> m ()
+                (MonadIO m) =>
+                  SVGFEGaussianBlurElement -> Maybe Float -> Maybe Float -> m ()
 setStdDeviation self stdDeviationX stdDeviationY
-  = liftIO (js_setStdDeviation (self) stdDeviationX stdDeviationY)
+  = liftIO
+      (js_setStdDeviation self (maybeToOptional stdDeviationX)
+         (maybeToOptional stdDeviationY))
 pattern SVG_EDGEMODE_UNKNOWN = 0
 pattern SVG_EDGEMODE_DUPLICATE = 1
 pattern SVG_EDGEMODE_WRAP = 2
 pattern SVG_EDGEMODE_NONE = 3
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFEGaussianBlurElement -> IO (Nullable SVGAnimatedString)
+        SVGFEGaussianBlurElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.in1 Mozilla SVGFEGaussianBlurElement.in1 documentation> 
 getIn1 ::
-       (MonadIO m) =>
-         SVGFEGaussianBlurElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.in1 Mozilla SVGFEGaussianBlurElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEGaussianBlurElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.in1 Mozilla SVGFEGaussianBlurElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFEGaussianBlurElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+       (MonadIO m) => SVGFEGaussianBlurElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
  
 foreign import javascript unsafe "$1[\"stdDeviationX\"]"
         js_getStdDeviationX ::
-        SVGFEGaussianBlurElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEGaussianBlurElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.stdDeviationX Mozilla SVGFEGaussianBlurElement.stdDeviationX documentation> 
 getStdDeviationX ::
-                 (MonadIO m) =>
-                   SVGFEGaussianBlurElement -> m (Maybe SVGAnimatedNumber)
-getStdDeviationX self
-  = liftIO (nullableToMaybe <$> (js_getStdDeviationX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.stdDeviationX Mozilla SVGFEGaussianBlurElement.stdDeviationX documentation> 
-getStdDeviationXUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         SVGFEGaussianBlurElement -> m SVGAnimatedNumber
-getStdDeviationXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStdDeviationX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.stdDeviationX Mozilla SVGFEGaussianBlurElement.stdDeviationX documentation> 
-getStdDeviationXUnchecked ::
-                          (MonadIO m) => SVGFEGaussianBlurElement -> m SVGAnimatedNumber
-getStdDeviationXUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getStdDeviationX (self)))
+                 (MonadIO m) => SVGFEGaussianBlurElement -> m SVGAnimatedNumber
+getStdDeviationX self = liftIO (js_getStdDeviationX self)
  
 foreign import javascript unsafe "$1[\"stdDeviationY\"]"
         js_getStdDeviationY ::
-        SVGFEGaussianBlurElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEGaussianBlurElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.stdDeviationY Mozilla SVGFEGaussianBlurElement.stdDeviationY documentation> 
 getStdDeviationY ::
-                 (MonadIO m) =>
-                   SVGFEGaussianBlurElement -> m (Maybe SVGAnimatedNumber)
-getStdDeviationY self
-  = liftIO (nullableToMaybe <$> (js_getStdDeviationY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.stdDeviationY Mozilla SVGFEGaussianBlurElement.stdDeviationY documentation> 
-getStdDeviationYUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         SVGFEGaussianBlurElement -> m SVGAnimatedNumber
-getStdDeviationYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStdDeviationY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.stdDeviationY Mozilla SVGFEGaussianBlurElement.stdDeviationY documentation> 
-getStdDeviationYUnchecked ::
-                          (MonadIO m) => SVGFEGaussianBlurElement -> m SVGAnimatedNumber
-getStdDeviationYUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getStdDeviationY (self)))
+                 (MonadIO m) => SVGFEGaussianBlurElement -> m SVGAnimatedNumber
+getStdDeviationY self = liftIO (js_getStdDeviationY self)
  
 foreign import javascript unsafe "$1[\"edgeMode\"]" js_getEdgeMode
-        :: SVGFEGaussianBlurElement -> IO (Nullable SVGAnimatedEnumeration)
+        :: SVGFEGaussianBlurElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.edgeMode Mozilla SVGFEGaussianBlurElement.edgeMode documentation> 
 getEdgeMode ::
-            (MonadIO m) =>
-              SVGFEGaussianBlurElement -> m (Maybe SVGAnimatedEnumeration)
-getEdgeMode self
-  = liftIO (nullableToMaybe <$> (js_getEdgeMode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.edgeMode Mozilla SVGFEGaussianBlurElement.edgeMode documentation> 
-getEdgeModeUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    SVGFEGaussianBlurElement -> m SVGAnimatedEnumeration
-getEdgeModeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getEdgeMode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement.edgeMode Mozilla SVGFEGaussianBlurElement.edgeMode documentation> 
-getEdgeModeUnchecked ::
-                     (MonadIO m) => SVGFEGaussianBlurElement -> m SVGAnimatedEnumeration
-getEdgeModeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getEdgeMode (self)))
+            (MonadIO m) => SVGFEGaussianBlurElement -> m SVGAnimatedEnumeration
+getEdgeMode self = liftIO (js_getEdgeMode self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEImageElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEImageElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEImageElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEImageElement.hs
@@ -5,14 +5,13 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFEImageElement
        (js_getPreserveAspectRatio, getPreserveAspectRatio,
-        getPreserveAspectRatioUnsafe, getPreserveAspectRatioUnchecked,
         SVGFEImageElement(..), gTypeSVGFEImageElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,28 +28,11 @@
  
 foreign import javascript unsafe "$1[\"preserveAspectRatio\"]"
         js_getPreserveAspectRatio ::
-        SVGFEImageElement -> IO (Nullable SVGAnimatedPreserveAspectRatio)
+        SVGFEImageElement -> IO SVGAnimatedPreserveAspectRatio
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEImageElement.preserveAspectRatio Mozilla SVGFEImageElement.preserveAspectRatio documentation> 
 getPreserveAspectRatio ::
                        (MonadIO m) =>
-                         SVGFEImageElement -> m (Maybe SVGAnimatedPreserveAspectRatio)
+                         SVGFEImageElement -> m SVGAnimatedPreserveAspectRatio
 getPreserveAspectRatio self
-  = liftIO (nullableToMaybe <$> (js_getPreserveAspectRatio (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEImageElement.preserveAspectRatio Mozilla SVGFEImageElement.preserveAspectRatio documentation> 
-getPreserveAspectRatioUnsafe ::
-                             (MonadIO m, HasCallStack) =>
-                               SVGFEImageElement -> m SVGAnimatedPreserveAspectRatio
-getPreserveAspectRatioUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPreserveAspectRatio (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEImageElement.preserveAspectRatio Mozilla SVGFEImageElement.preserveAspectRatio documentation> 
-getPreserveAspectRatioUnchecked ::
-                                (MonadIO m) =>
-                                  SVGFEImageElement -> m SVGAnimatedPreserveAspectRatio
-getPreserveAspectRatioUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPreserveAspectRatio (self)))
+  = liftIO (js_getPreserveAspectRatio self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEMergeNodeElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEMergeNodeElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEMergeNodeElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEMergeNodeElement.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFEMergeNodeElement
-       (js_getIn1, getIn1, getIn1Unsafe, getIn1Unchecked,
-        SVGFEMergeNodeElement(..), gTypeSVGFEMergeNodeElement)
+       (js_getIn1, getIn1, SVGFEMergeNodeElement(..),
+        gTypeSVGFEMergeNodeElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,30 +20,16 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFEMergeNodeElement -> IO (Nullable SVGAnimatedString)
+        SVGFEMergeNodeElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeNodeElement.in1 Mozilla SVGFEMergeNodeElement.in1 documentation> 
 getIn1 ::
-       (MonadIO m) => SVGFEMergeNodeElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeNodeElement.in1 Mozilla SVGFEMergeNodeElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEMergeNodeElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeNodeElement.in1 Mozilla SVGFEMergeNodeElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFEMergeNodeElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+       (MonadIO m) => SVGFEMergeNodeElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEMorphologyElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEMorphologyElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEMorphologyElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEMorphologyElement.hs
@@ -7,17 +7,15 @@
        (js_setRadius, setRadius, pattern SVG_MORPHOLOGY_OPERATOR_UNKNOWN,
         pattern SVG_MORPHOLOGY_OPERATOR_ERODE,
         pattern SVG_MORPHOLOGY_OPERATOR_DILATE, js_getIn1, getIn1,
-        getIn1Unsafe, getIn1Unchecked, js_getOperator, getOperator,
-        getOperatorUnsafe, getOperatorUnchecked, js_getRadiusX, getRadiusX,
-        getRadiusXUnsafe, getRadiusXUnchecked, js_getRadiusY, getRadiusY,
-        getRadiusYUnsafe, getRadiusYUnchecked, SVGFEMorphologyElement(..),
+        js_getOperator, getOperator, js_getRadiusX, getRadiusX,
+        js_getRadiusY, getRadiusY, SVGFEMorphologyElement(..),
         gTypeSVGFEMorphologyElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,118 +24,56 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"setRadius\"]($2, $3)"
-        js_setRadius :: SVGFEMorphologyElement -> Float -> Float -> IO ()
+        js_setRadius ::
+        SVGFEMorphologyElement -> Optional Float -> Optional Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.setRadius Mozilla SVGFEMorphologyElement.setRadius documentation> 
 setRadius ::
-          (MonadIO m) => SVGFEMorphologyElement -> Float -> Float -> m ()
+          (MonadIO m) =>
+            SVGFEMorphologyElement -> Maybe Float -> Maybe Float -> m ()
 setRadius self radiusX radiusY
-  = liftIO (js_setRadius (self) radiusX radiusY)
+  = liftIO
+      (js_setRadius self (maybeToOptional radiusX)
+         (maybeToOptional radiusY))
 pattern SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0
 pattern SVG_MORPHOLOGY_OPERATOR_ERODE = 1
 pattern SVG_MORPHOLOGY_OPERATOR_DILATE = 2
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFEMorphologyElement -> IO (Nullable SVGAnimatedString)
+        SVGFEMorphologyElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.in1 Mozilla SVGFEMorphologyElement.in1 documentation> 
 getIn1 ::
-       (MonadIO m) =>
-         SVGFEMorphologyElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.in1 Mozilla SVGFEMorphologyElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEMorphologyElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.in1 Mozilla SVGFEMorphologyElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFEMorphologyElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+       (MonadIO m) => SVGFEMorphologyElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
  
 foreign import javascript unsafe "$1[\"operator\"]" js_getOperator
-        :: SVGFEMorphologyElement -> IO (Nullable SVGAnimatedEnumeration)
+        :: SVGFEMorphologyElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.operator Mozilla SVGFEMorphologyElement.operator documentation> 
 getOperator ::
-            (MonadIO m) =>
-              SVGFEMorphologyElement -> m (Maybe SVGAnimatedEnumeration)
-getOperator self
-  = liftIO (nullableToMaybe <$> (js_getOperator (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.operator Mozilla SVGFEMorphologyElement.operator documentation> 
-getOperatorUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    SVGFEMorphologyElement -> m SVGAnimatedEnumeration
-getOperatorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOperator (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.operator Mozilla SVGFEMorphologyElement.operator documentation> 
-getOperatorUnchecked ::
-                     (MonadIO m) => SVGFEMorphologyElement -> m SVGAnimatedEnumeration
-getOperatorUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getOperator (self)))
+            (MonadIO m) => SVGFEMorphologyElement -> m SVGAnimatedEnumeration
+getOperator self = liftIO (js_getOperator self)
  
 foreign import javascript unsafe "$1[\"radiusX\"]" js_getRadiusX ::
-        SVGFEMorphologyElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEMorphologyElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.radiusX Mozilla SVGFEMorphologyElement.radiusX documentation> 
 getRadiusX ::
-           (MonadIO m) =>
-             SVGFEMorphologyElement -> m (Maybe SVGAnimatedNumber)
-getRadiusX self
-  = liftIO (nullableToMaybe <$> (js_getRadiusX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.radiusX Mozilla SVGFEMorphologyElement.radiusX documentation> 
-getRadiusXUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGFEMorphologyElement -> m SVGAnimatedNumber
-getRadiusXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRadiusX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.radiusX Mozilla SVGFEMorphologyElement.radiusX documentation> 
-getRadiusXUnchecked ::
-                    (MonadIO m) => SVGFEMorphologyElement -> m SVGAnimatedNumber
-getRadiusXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRadiusX (self)))
+           (MonadIO m) => SVGFEMorphologyElement -> m SVGAnimatedNumber
+getRadiusX self = liftIO (js_getRadiusX self)
  
 foreign import javascript unsafe "$1[\"radiusY\"]" js_getRadiusY ::
-        SVGFEMorphologyElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEMorphologyElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.radiusY Mozilla SVGFEMorphologyElement.radiusY documentation> 
 getRadiusY ::
-           (MonadIO m) =>
-             SVGFEMorphologyElement -> m (Maybe SVGAnimatedNumber)
-getRadiusY self
-  = liftIO (nullableToMaybe <$> (js_getRadiusY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.radiusY Mozilla SVGFEMorphologyElement.radiusY documentation> 
-getRadiusYUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGFEMorphologyElement -> m SVGAnimatedNumber
-getRadiusYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRadiusY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement.radiusY Mozilla SVGFEMorphologyElement.radiusY documentation> 
-getRadiusYUnchecked ::
-                    (MonadIO m) => SVGFEMorphologyElement -> m SVGAnimatedNumber
-getRadiusYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRadiusY (self)))
+           (MonadIO m) => SVGFEMorphologyElement -> m SVGAnimatedNumber
+getRadiusY self = liftIO (js_getRadiusY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEOffsetElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEOffsetElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEOffsetElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEOffsetElement.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFEOffsetElement
-       (js_getIn1, getIn1, getIn1Unsafe, getIn1Unchecked, js_getDx, getDx,
-        getDxUnsafe, getDxUnchecked, js_getDy, getDy, getDyUnsafe,
-        getDyUnchecked, SVGFEOffsetElement(..), gTypeSVGFEOffsetElement)
+       (js_getIn1, getIn1, js_getDx, getDx, js_getDy, getDy,
+        SVGFEOffsetElement(..), gTypeSVGFEOffsetElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,76 +20,29 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFEOffsetElement -> IO (Nullable SVGAnimatedString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement.in1 Mozilla SVGFEOffsetElement.in1 documentation> 
-getIn1 ::
-       (MonadIO m) => SVGFEOffsetElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement.in1 Mozilla SVGFEOffsetElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFEOffsetElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFEOffsetElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement.in1 Mozilla SVGFEOffsetElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFEOffsetElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+getIn1 :: (MonadIO m) => SVGFEOffsetElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
  
 foreign import javascript unsafe "$1[\"dx\"]" js_getDx ::
-        SVGFEOffsetElement -> IO (Nullable SVGAnimatedNumber)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement.dx Mozilla SVGFEOffsetElement.dx documentation> 
-getDx ::
-      (MonadIO m) => SVGFEOffsetElement -> m (Maybe SVGAnimatedNumber)
-getDx self = liftIO (nullableToMaybe <$> (js_getDx (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement.dx Mozilla SVGFEOffsetElement.dx documentation> 
-getDxUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGFEOffsetElement -> m SVGAnimatedNumber
-getDxUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDx (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFEOffsetElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement.dx Mozilla SVGFEOffsetElement.dx documentation> 
-getDxUnchecked ::
-               (MonadIO m) => SVGFEOffsetElement -> m SVGAnimatedNumber
-getDxUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getDx (self)))
+getDx :: (MonadIO m) => SVGFEOffsetElement -> m SVGAnimatedNumber
+getDx self = liftIO (js_getDx self)
  
 foreign import javascript unsafe "$1[\"dy\"]" js_getDy ::
-        SVGFEOffsetElement -> IO (Nullable SVGAnimatedNumber)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement.dy Mozilla SVGFEOffsetElement.dy documentation> 
-getDy ::
-      (MonadIO m) => SVGFEOffsetElement -> m (Maybe SVGAnimatedNumber)
-getDy self = liftIO (nullableToMaybe <$> (js_getDy (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement.dy Mozilla SVGFEOffsetElement.dy documentation> 
-getDyUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGFEOffsetElement -> m SVGAnimatedNumber
-getDyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDy (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFEOffsetElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement.dy Mozilla SVGFEOffsetElement.dy documentation> 
-getDyUnchecked ::
-               (MonadIO m) => SVGFEOffsetElement -> m SVGAnimatedNumber
-getDyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getDy (self)))
+getDy :: (MonadIO m) => SVGFEOffsetElement -> m SVGAnimatedNumber
+getDy self = liftIO (js_getDy self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFEPointLightElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFEPointLightElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFEPointLightElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFEPointLightElement.hs
@@ -4,16 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFEPointLightElement
-       (js_getX, getX, getXUnsafe, getXUnchecked, js_getY, getY,
-        getYUnsafe, getYUnchecked, js_getZ, getZ, getZUnsafe,
-        getZUnchecked, SVGFEPointLightElement(..),
-        gTypeSVGFEPointLightElement)
+       (js_getX, getX, js_getY, getY, js_getZ, getZ,
+        SVGFEPointLightElement(..), gTypeSVGFEPointLightElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,79 +20,32 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGFEPointLightElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEPointLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement.x Mozilla SVGFEPointLightElement.x documentation> 
 getX ::
-     (MonadIO m) =>
-       SVGFEPointLightElement -> m (Maybe SVGAnimatedNumber)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement.x Mozilla SVGFEPointLightElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGFEPointLightElement -> m SVGAnimatedNumber
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement.x Mozilla SVGFEPointLightElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m) => SVGFEPointLightElement -> m SVGAnimatedNumber
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+     (MonadIO m) => SVGFEPointLightElement -> m SVGAnimatedNumber
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGFEPointLightElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEPointLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement.y Mozilla SVGFEPointLightElement.y documentation> 
 getY ::
-     (MonadIO m) =>
-       SVGFEPointLightElement -> m (Maybe SVGAnimatedNumber)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement.y Mozilla SVGFEPointLightElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGFEPointLightElement -> m SVGAnimatedNumber
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement.y Mozilla SVGFEPointLightElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m) => SVGFEPointLightElement -> m SVGAnimatedNumber
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+     (MonadIO m) => SVGFEPointLightElement -> m SVGAnimatedNumber
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"z\"]" js_getZ ::
-        SVGFEPointLightElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFEPointLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement.z Mozilla SVGFEPointLightElement.z documentation> 
 getZ ::
-     (MonadIO m) =>
-       SVGFEPointLightElement -> m (Maybe SVGAnimatedNumber)
-getZ self = liftIO (nullableToMaybe <$> (js_getZ (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement.z Mozilla SVGFEPointLightElement.z documentation> 
-getZUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGFEPointLightElement -> m SVGAnimatedNumber
-getZUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getZ (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement.z Mozilla SVGFEPointLightElement.z documentation> 
-getZUnchecked ::
-              (MonadIO m) => SVGFEPointLightElement -> m SVGAnimatedNumber
-getZUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getZ (self)))
+     (MonadIO m) => SVGFEPointLightElement -> m SVGAnimatedNumber
+getZ self = liftIO (js_getZ self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFESpecularLightingElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFESpecularLightingElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFESpecularLightingElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFESpecularLightingElement.hs
@@ -4,20 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFESpecularLightingElement
-       (js_getIn1, getIn1, getIn1Unsafe, getIn1Unchecked,
-        js_getSurfaceScale, getSurfaceScale, getSurfaceScaleUnsafe,
-        getSurfaceScaleUnchecked, js_getSpecularConstant,
-        getSpecularConstant, getSpecularConstantUnsafe,
-        getSpecularConstantUnchecked, js_getSpecularExponent,
-        getSpecularExponent, getSpecularExponentUnsafe,
-        getSpecularExponentUnchecked, SVGFESpecularLightingElement(..),
+       (js_getIn1, getIn1, js_getSurfaceScale, getSurfaceScale,
+        js_getSpecularConstant, getSpecularConstant,
+        js_getSpecularExponent, getSpecularExponent,
+        SVGFESpecularLightingElement(..),
         gTypeSVGFESpecularLightingElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,112 +23,43 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFESpecularLightingElement -> IO (Nullable SVGAnimatedString)
+        SVGFESpecularLightingElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.in1 Mozilla SVGFESpecularLightingElement.in1 documentation> 
 getIn1 ::
-       (MonadIO m) =>
-         SVGFESpecularLightingElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.in1 Mozilla SVGFESpecularLightingElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFESpecularLightingElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.in1 Mozilla SVGFESpecularLightingElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFESpecularLightingElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+       (MonadIO m) => SVGFESpecularLightingElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
  
 foreign import javascript unsafe "$1[\"surfaceScale\"]"
         js_getSurfaceScale ::
-        SVGFESpecularLightingElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFESpecularLightingElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.surfaceScale Mozilla SVGFESpecularLightingElement.surfaceScale documentation> 
 getSurfaceScale ::
-                (MonadIO m) =>
-                  SVGFESpecularLightingElement -> m (Maybe SVGAnimatedNumber)
-getSurfaceScale self
-  = liftIO (nullableToMaybe <$> (js_getSurfaceScale (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.surfaceScale Mozilla SVGFESpecularLightingElement.surfaceScale documentation> 
-getSurfaceScaleUnsafe ::
-                      (MonadIO m, HasCallStack) =>
-                        SVGFESpecularLightingElement -> m SVGAnimatedNumber
-getSurfaceScaleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSurfaceScale (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.surfaceScale Mozilla SVGFESpecularLightingElement.surfaceScale documentation> 
-getSurfaceScaleUnchecked ::
-                         (MonadIO m) => SVGFESpecularLightingElement -> m SVGAnimatedNumber
-getSurfaceScaleUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSurfaceScale (self)))
+                (MonadIO m) => SVGFESpecularLightingElement -> m SVGAnimatedNumber
+getSurfaceScale self = liftIO (js_getSurfaceScale self)
  
 foreign import javascript unsafe "$1[\"specularConstant\"]"
         js_getSpecularConstant ::
-        SVGFESpecularLightingElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFESpecularLightingElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.specularConstant Mozilla SVGFESpecularLightingElement.specularConstant documentation> 
 getSpecularConstant ::
-                    (MonadIO m) =>
-                      SVGFESpecularLightingElement -> m (Maybe SVGAnimatedNumber)
-getSpecularConstant self
-  = liftIO (nullableToMaybe <$> (js_getSpecularConstant (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.specularConstant Mozilla SVGFESpecularLightingElement.specularConstant documentation> 
-getSpecularConstantUnsafe ::
-                          (MonadIO m, HasCallStack) =>
-                            SVGFESpecularLightingElement -> m SVGAnimatedNumber
-getSpecularConstantUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSpecularConstant (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.specularConstant Mozilla SVGFESpecularLightingElement.specularConstant documentation> 
-getSpecularConstantUnchecked ::
-                             (MonadIO m) => SVGFESpecularLightingElement -> m SVGAnimatedNumber
-getSpecularConstantUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSpecularConstant (self)))
+                    (MonadIO m) => SVGFESpecularLightingElement -> m SVGAnimatedNumber
+getSpecularConstant self = liftIO (js_getSpecularConstant self)
  
 foreign import javascript unsafe "$1[\"specularExponent\"]"
         js_getSpecularExponent ::
-        SVGFESpecularLightingElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFESpecularLightingElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.specularExponent Mozilla SVGFESpecularLightingElement.specularExponent documentation> 
 getSpecularExponent ::
-                    (MonadIO m) =>
-                      SVGFESpecularLightingElement -> m (Maybe SVGAnimatedNumber)
-getSpecularExponent self
-  = liftIO (nullableToMaybe <$> (js_getSpecularExponent (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.specularExponent Mozilla SVGFESpecularLightingElement.specularExponent documentation> 
-getSpecularExponentUnsafe ::
-                          (MonadIO m, HasCallStack) =>
-                            SVGFESpecularLightingElement -> m SVGAnimatedNumber
-getSpecularExponentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSpecularExponent (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement.specularExponent Mozilla SVGFESpecularLightingElement.specularExponent documentation> 
-getSpecularExponentUnchecked ::
-                             (MonadIO m) => SVGFESpecularLightingElement -> m SVGAnimatedNumber
-getSpecularExponentUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSpecularExponent (self)))
+                    (MonadIO m) => SVGFESpecularLightingElement -> m SVGAnimatedNumber
+getSpecularExponent self = liftIO (js_getSpecularExponent self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFESpotLightElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFESpotLightElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFESpotLightElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFESpotLightElement.hs
@@ -4,23 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFESpotLightElement
-       (js_getX, getX, getXUnsafe, getXUnchecked, js_getY, getY,
-        getYUnsafe, getYUnchecked, js_getZ, getZ, getZUnsafe,
-        getZUnchecked, js_getPointsAtX, getPointsAtX, getPointsAtXUnsafe,
-        getPointsAtXUnchecked, js_getPointsAtY, getPointsAtY,
-        getPointsAtYUnsafe, getPointsAtYUnchecked, js_getPointsAtZ,
-        getPointsAtZ, getPointsAtZUnsafe, getPointsAtZUnchecked,
-        js_getSpecularExponent, getSpecularExponent,
-        getSpecularExponentUnsafe, getSpecularExponentUnchecked,
+       (js_getX, getX, js_getY, getY, js_getZ, getZ, js_getPointsAtX,
+        getPointsAtX, js_getPointsAtY, getPointsAtY, js_getPointsAtZ,
+        getPointsAtZ, js_getSpecularExponent, getSpecularExponent,
         js_getLimitingConeAngle, getLimitingConeAngle,
-        getLimitingConeAngleUnsafe, getLimitingConeAngleUnchecked,
         SVGFESpotLightElement(..), gTypeSVGFESpotLightElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -29,203 +23,71 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGFESpotLightElement -> IO (Nullable SVGAnimatedNumber)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.x Mozilla SVGFESpotLightElement.x documentation> 
-getX ::
-     (MonadIO m) => SVGFESpotLightElement -> m (Maybe SVGAnimatedNumber)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.x Mozilla SVGFESpotLightElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGFESpotLightElement -> m SVGAnimatedNumber
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFESpotLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.x Mozilla SVGFESpotLightElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+getX :: (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGFESpotLightElement -> IO (Nullable SVGAnimatedNumber)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.y Mozilla SVGFESpotLightElement.y documentation> 
-getY ::
-     (MonadIO m) => SVGFESpotLightElement -> m (Maybe SVGAnimatedNumber)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.y Mozilla SVGFESpotLightElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGFESpotLightElement -> m SVGAnimatedNumber
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFESpotLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.y Mozilla SVGFESpotLightElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+getY :: (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"z\"]" js_getZ ::
-        SVGFESpotLightElement -> IO (Nullable SVGAnimatedNumber)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.z Mozilla SVGFESpotLightElement.z documentation> 
-getZ ::
-     (MonadIO m) => SVGFESpotLightElement -> m (Maybe SVGAnimatedNumber)
-getZ self = liftIO (nullableToMaybe <$> (js_getZ (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.z Mozilla SVGFESpotLightElement.z documentation> 
-getZUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGFESpotLightElement -> m SVGAnimatedNumber
-getZUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getZ (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFESpotLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.z Mozilla SVGFESpotLightElement.z documentation> 
-getZUnchecked ::
-              (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
-getZUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getZ (self)))
+getZ :: (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
+getZ self = liftIO (js_getZ self)
  
 foreign import javascript unsafe "$1[\"pointsAtX\"]"
-        js_getPointsAtX ::
-        SVGFESpotLightElement -> IO (Nullable SVGAnimatedNumber)
+        js_getPointsAtX :: SVGFESpotLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.pointsAtX Mozilla SVGFESpotLightElement.pointsAtX documentation> 
 getPointsAtX ::
-             (MonadIO m) => SVGFESpotLightElement -> m (Maybe SVGAnimatedNumber)
-getPointsAtX self
-  = liftIO (nullableToMaybe <$> (js_getPointsAtX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.pointsAtX Mozilla SVGFESpotLightElement.pointsAtX documentation> 
-getPointsAtXUnsafe ::
-                   (MonadIO m, HasCallStack) =>
-                     SVGFESpotLightElement -> m SVGAnimatedNumber
-getPointsAtXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPointsAtX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.pointsAtX Mozilla SVGFESpotLightElement.pointsAtX documentation> 
-getPointsAtXUnchecked ::
-                      (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
-getPointsAtXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPointsAtX (self)))
+             (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
+getPointsAtX self = liftIO (js_getPointsAtX self)
  
 foreign import javascript unsafe "$1[\"pointsAtY\"]"
-        js_getPointsAtY ::
-        SVGFESpotLightElement -> IO (Nullable SVGAnimatedNumber)
+        js_getPointsAtY :: SVGFESpotLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.pointsAtY Mozilla SVGFESpotLightElement.pointsAtY documentation> 
 getPointsAtY ::
-             (MonadIO m) => SVGFESpotLightElement -> m (Maybe SVGAnimatedNumber)
-getPointsAtY self
-  = liftIO (nullableToMaybe <$> (js_getPointsAtY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.pointsAtY Mozilla SVGFESpotLightElement.pointsAtY documentation> 
-getPointsAtYUnsafe ::
-                   (MonadIO m, HasCallStack) =>
-                     SVGFESpotLightElement -> m SVGAnimatedNumber
-getPointsAtYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPointsAtY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.pointsAtY Mozilla SVGFESpotLightElement.pointsAtY documentation> 
-getPointsAtYUnchecked ::
-                      (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
-getPointsAtYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPointsAtY (self)))
+             (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
+getPointsAtY self = liftIO (js_getPointsAtY self)
  
 foreign import javascript unsafe "$1[\"pointsAtZ\"]"
-        js_getPointsAtZ ::
-        SVGFESpotLightElement -> IO (Nullable SVGAnimatedNumber)
+        js_getPointsAtZ :: SVGFESpotLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.pointsAtZ Mozilla SVGFESpotLightElement.pointsAtZ documentation> 
 getPointsAtZ ::
-             (MonadIO m) => SVGFESpotLightElement -> m (Maybe SVGAnimatedNumber)
-getPointsAtZ self
-  = liftIO (nullableToMaybe <$> (js_getPointsAtZ (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.pointsAtZ Mozilla SVGFESpotLightElement.pointsAtZ documentation> 
-getPointsAtZUnsafe ::
-                   (MonadIO m, HasCallStack) =>
-                     SVGFESpotLightElement -> m SVGAnimatedNumber
-getPointsAtZUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPointsAtZ (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.pointsAtZ Mozilla SVGFESpotLightElement.pointsAtZ documentation> 
-getPointsAtZUnchecked ::
-                      (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
-getPointsAtZUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPointsAtZ (self)))
+             (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
+getPointsAtZ self = liftIO (js_getPointsAtZ self)
  
 foreign import javascript unsafe "$1[\"specularExponent\"]"
         js_getSpecularExponent ::
-        SVGFESpotLightElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFESpotLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.specularExponent Mozilla SVGFESpotLightElement.specularExponent documentation> 
 getSpecularExponent ::
-                    (MonadIO m) => SVGFESpotLightElement -> m (Maybe SVGAnimatedNumber)
-getSpecularExponent self
-  = liftIO (nullableToMaybe <$> (js_getSpecularExponent (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.specularExponent Mozilla SVGFESpotLightElement.specularExponent documentation> 
-getSpecularExponentUnsafe ::
-                          (MonadIO m, HasCallStack) =>
-                            SVGFESpotLightElement -> m SVGAnimatedNumber
-getSpecularExponentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSpecularExponent (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.specularExponent Mozilla SVGFESpotLightElement.specularExponent documentation> 
-getSpecularExponentUnchecked ::
-                             (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
-getSpecularExponentUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSpecularExponent (self)))
+                    (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
+getSpecularExponent self = liftIO (js_getSpecularExponent self)
  
 foreign import javascript unsafe "$1[\"limitingConeAngle\"]"
         js_getLimitingConeAngle ::
-        SVGFESpotLightElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFESpotLightElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.limitingConeAngle Mozilla SVGFESpotLightElement.limitingConeAngle documentation> 
 getLimitingConeAngle ::
-                     (MonadIO m) => SVGFESpotLightElement -> m (Maybe SVGAnimatedNumber)
-getLimitingConeAngle self
-  = liftIO (nullableToMaybe <$> (js_getLimitingConeAngle (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.limitingConeAngle Mozilla SVGFESpotLightElement.limitingConeAngle documentation> 
-getLimitingConeAngleUnsafe ::
-                           (MonadIO m, HasCallStack) =>
-                             SVGFESpotLightElement -> m SVGAnimatedNumber
-getLimitingConeAngleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLimitingConeAngle (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement.limitingConeAngle Mozilla SVGFESpotLightElement.limitingConeAngle documentation> 
-getLimitingConeAngleUnchecked ::
-                              (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
-getLimitingConeAngleUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getLimitingConeAngle (self)))
+                     (MonadIO m) => SVGFESpotLightElement -> m SVGAnimatedNumber
+getLimitingConeAngle self = liftIO (js_getLimitingConeAngle self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFETileElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFETileElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFETileElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFETileElement.hs
@@ -4,14 +4,13 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFETileElement
-       (js_getIn1, getIn1, getIn1Unsafe, getIn1Unchecked,
-        SVGFETileElement(..), gTypeSVGFETileElement)
+       (js_getIn1, getIn1, SVGFETileElement(..), gTypeSVGFETileElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,30 +19,15 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"in1\"]" js_getIn1 ::
-        SVGFETileElement -> IO (Nullable SVGAnimatedString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETileElement.in1 Mozilla SVGFETileElement.in1 documentation> 
-getIn1 ::
-       (MonadIO m) => SVGFETileElement -> m (Maybe SVGAnimatedString)
-getIn1 self = liftIO (nullableToMaybe <$> (js_getIn1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETileElement.in1 Mozilla SVGFETileElement.in1 documentation> 
-getIn1Unsafe ::
-             (MonadIO m, HasCallStack) =>
-               SVGFETileElement -> m SVGAnimatedString
-getIn1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIn1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFETileElement -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETileElement.in1 Mozilla SVGFETileElement.in1 documentation> 
-getIn1Unchecked ::
-                (MonadIO m) => SVGFETileElement -> m SVGAnimatedString
-getIn1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIn1 (self)))
+getIn1 :: (MonadIO m) => SVGFETileElement -> m SVGAnimatedString
+getIn1 self = liftIO (js_getIn1 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFETurbulenceElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFETurbulenceElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFETurbulenceElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFETurbulenceElement.hs
@@ -9,21 +9,16 @@
         pattern SVG_TURBULENCE_TYPE_TURBULENCE,
         pattern SVG_STITCHTYPE_UNKNOWN, pattern SVG_STITCHTYPE_STITCH,
         pattern SVG_STITCHTYPE_NOSTITCH, js_getBaseFrequencyX,
-        getBaseFrequencyX, getBaseFrequencyXUnsafe,
-        getBaseFrequencyXUnchecked, js_getBaseFrequencyY,
-        getBaseFrequencyY, getBaseFrequencyYUnsafe,
-        getBaseFrequencyYUnchecked, js_getNumOctaves, getNumOctaves,
-        getNumOctavesUnsafe, getNumOctavesUnchecked, js_getSeed, getSeed,
-        getSeedUnsafe, getSeedUnchecked, js_getStitchTiles, getStitchTiles,
-        getStitchTilesUnsafe, getStitchTilesUnchecked, js_getType, getType,
-        getTypeUnsafe, getTypeUnchecked, SVGFETurbulenceElement(..),
-        gTypeSVGFETurbulenceElement)
+        getBaseFrequencyX, js_getBaseFrequencyY, getBaseFrequencyY,
+        js_getNumOctaves, getNumOctaves, js_getSeed, getSeed,
+        js_getStitchTiles, getStitchTiles, js_getType, getType,
+        SVGFETurbulenceElement(..), gTypeSVGFETurbulenceElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -32,6 +27,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -45,155 +41,51 @@
  
 foreign import javascript unsafe "$1[\"baseFrequencyX\"]"
         js_getBaseFrequencyX ::
-        SVGFETurbulenceElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFETurbulenceElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.baseFrequencyX Mozilla SVGFETurbulenceElement.baseFrequencyX documentation> 
 getBaseFrequencyX ::
-                  (MonadIO m) =>
-                    SVGFETurbulenceElement -> m (Maybe SVGAnimatedNumber)
-getBaseFrequencyX self
-  = liftIO (nullableToMaybe <$> (js_getBaseFrequencyX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.baseFrequencyX Mozilla SVGFETurbulenceElement.baseFrequencyX documentation> 
-getBaseFrequencyXUnsafe ::
-                        (MonadIO m, HasCallStack) =>
-                          SVGFETurbulenceElement -> m SVGAnimatedNumber
-getBaseFrequencyXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBaseFrequencyX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.baseFrequencyX Mozilla SVGFETurbulenceElement.baseFrequencyX documentation> 
-getBaseFrequencyXUnchecked ::
-                           (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedNumber
-getBaseFrequencyXUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getBaseFrequencyX (self)))
+                  (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedNumber
+getBaseFrequencyX self = liftIO (js_getBaseFrequencyX self)
  
 foreign import javascript unsafe "$1[\"baseFrequencyY\"]"
         js_getBaseFrequencyY ::
-        SVGFETurbulenceElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFETurbulenceElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.baseFrequencyY Mozilla SVGFETurbulenceElement.baseFrequencyY documentation> 
 getBaseFrequencyY ::
-                  (MonadIO m) =>
-                    SVGFETurbulenceElement -> m (Maybe SVGAnimatedNumber)
-getBaseFrequencyY self
-  = liftIO (nullableToMaybe <$> (js_getBaseFrequencyY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.baseFrequencyY Mozilla SVGFETurbulenceElement.baseFrequencyY documentation> 
-getBaseFrequencyYUnsafe ::
-                        (MonadIO m, HasCallStack) =>
-                          SVGFETurbulenceElement -> m SVGAnimatedNumber
-getBaseFrequencyYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBaseFrequencyY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.baseFrequencyY Mozilla SVGFETurbulenceElement.baseFrequencyY documentation> 
-getBaseFrequencyYUnchecked ::
-                           (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedNumber
-getBaseFrequencyYUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getBaseFrequencyY (self)))
+                  (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedNumber
+getBaseFrequencyY self = liftIO (js_getBaseFrequencyY self)
  
 foreign import javascript unsafe "$1[\"numOctaves\"]"
-        js_getNumOctaves ::
-        SVGFETurbulenceElement -> IO (Nullable SVGAnimatedInteger)
+        js_getNumOctaves :: SVGFETurbulenceElement -> IO SVGAnimatedInteger
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.numOctaves Mozilla SVGFETurbulenceElement.numOctaves documentation> 
 getNumOctaves ::
-              (MonadIO m) =>
-                SVGFETurbulenceElement -> m (Maybe SVGAnimatedInteger)
-getNumOctaves self
-  = liftIO (nullableToMaybe <$> (js_getNumOctaves (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.numOctaves Mozilla SVGFETurbulenceElement.numOctaves documentation> 
-getNumOctavesUnsafe ::
-                    (MonadIO m, HasCallStack) =>
-                      SVGFETurbulenceElement -> m SVGAnimatedInteger
-getNumOctavesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getNumOctaves (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.numOctaves Mozilla SVGFETurbulenceElement.numOctaves documentation> 
-getNumOctavesUnchecked ::
-                       (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedInteger
-getNumOctavesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getNumOctaves (self)))
+              (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedInteger
+getNumOctaves self = liftIO (js_getNumOctaves self)
  
 foreign import javascript unsafe "$1[\"seed\"]" js_getSeed ::
-        SVGFETurbulenceElement -> IO (Nullable SVGAnimatedNumber)
+        SVGFETurbulenceElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.seed Mozilla SVGFETurbulenceElement.seed documentation> 
 getSeed ::
-        (MonadIO m) =>
-          SVGFETurbulenceElement -> m (Maybe SVGAnimatedNumber)
-getSeed self = liftIO (nullableToMaybe <$> (js_getSeed (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.seed Mozilla SVGFETurbulenceElement.seed documentation> 
-getSeedUnsafe ::
-              (MonadIO m, HasCallStack) =>
-                SVGFETurbulenceElement -> m SVGAnimatedNumber
-getSeedUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSeed (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.seed Mozilla SVGFETurbulenceElement.seed documentation> 
-getSeedUnchecked ::
-                 (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedNumber
-getSeedUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getSeed (self)))
+        (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedNumber
+getSeed self = liftIO (js_getSeed self)
  
 foreign import javascript unsafe "$1[\"stitchTiles\"]"
         js_getStitchTiles ::
-        SVGFETurbulenceElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGFETurbulenceElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.stitchTiles Mozilla SVGFETurbulenceElement.stitchTiles documentation> 
 getStitchTiles ::
-               (MonadIO m) =>
-                 SVGFETurbulenceElement -> m (Maybe SVGAnimatedEnumeration)
-getStitchTiles self
-  = liftIO (nullableToMaybe <$> (js_getStitchTiles (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.stitchTiles Mozilla SVGFETurbulenceElement.stitchTiles documentation> 
-getStitchTilesUnsafe ::
-                     (MonadIO m, HasCallStack) =>
-                       SVGFETurbulenceElement -> m SVGAnimatedEnumeration
-getStitchTilesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStitchTiles (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.stitchTiles Mozilla SVGFETurbulenceElement.stitchTiles documentation> 
-getStitchTilesUnchecked ::
-                        (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedEnumeration
-getStitchTilesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getStitchTiles (self)))
+               (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedEnumeration
+getStitchTiles self = liftIO (js_getStitchTiles self)
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
-        SVGFETurbulenceElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGFETurbulenceElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.type Mozilla SVGFETurbulenceElement.type documentation> 
 getType ::
-        (MonadIO m) =>
-          SVGFETurbulenceElement -> m (Maybe SVGAnimatedEnumeration)
-getType self = liftIO (nullableToMaybe <$> (js_getType (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.type Mozilla SVGFETurbulenceElement.type documentation> 
-getTypeUnsafe ::
-              (MonadIO m, HasCallStack) =>
-                SVGFETurbulenceElement -> m SVGAnimatedEnumeration
-getTypeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getType (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement.type Mozilla SVGFETurbulenceElement.type documentation> 
-getTypeUnchecked ::
-                 (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedEnumeration
-getTypeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getType (self)))
+        (MonadIO m) => SVGFETurbulenceElement -> m SVGAnimatedEnumeration
+getType self = liftIO (js_getType self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFilterElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFilterElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFilterElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFilterElement.hs
@@ -5,22 +5,16 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFilterElement
        (js_setFilterRes, setFilterRes, js_getFilterUnits, getFilterUnits,
-        getFilterUnitsUnsafe, getFilterUnitsUnchecked,
-        js_getPrimitiveUnits, getPrimitiveUnits, getPrimitiveUnitsUnsafe,
-        getPrimitiveUnitsUnchecked, js_getX, getX, getXUnsafe,
-        getXUnchecked, js_getY, getY, getYUnsafe, getYUnchecked,
-        js_getWidth, getWidth, getWidthUnsafe, getWidthUnchecked,
-        js_getHeight, getHeight, getHeightUnsafe, getHeightUnchecked,
-        js_getFilterResX, getFilterResX, getFilterResXUnsafe,
-        getFilterResXUnchecked, js_getFilterResY, getFilterResY,
-        getFilterResYUnsafe, getFilterResYUnchecked, SVGFilterElement(..),
-        gTypeSVGFilterElement)
+        js_getPrimitiveUnits, getPrimitiveUnits, js_getX, getX, js_getY,
+        getY, js_getWidth, getWidth, js_getHeight, getHeight,
+        js_getFilterResX, getFilterResX, js_getFilterResY, getFilterResY,
+        SVGFilterElement(..), gTypeSVGFilterElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -29,210 +23,81 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"setFilterRes\"]($2, $3)"
-        js_setFilterRes :: SVGFilterElement -> Word -> Word -> IO ()
+        js_setFilterRes ::
+        SVGFilterElement -> Optional Word -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.setFilterRes Mozilla SVGFilterElement.setFilterRes documentation> 
 setFilterRes ::
-             (MonadIO m) => SVGFilterElement -> Word -> Word -> m ()
+             (MonadIO m) => SVGFilterElement -> Maybe Word -> Maybe Word -> m ()
 setFilterRes self filterResX filterResY
-  = liftIO (js_setFilterRes (self) filterResX filterResY)
+  = liftIO
+      (js_setFilterRes self (maybeToOptional filterResX)
+         (maybeToOptional filterResY))
  
 foreign import javascript unsafe "$1[\"filterUnits\"]"
-        js_getFilterUnits ::
-        SVGFilterElement -> IO (Nullable SVGAnimatedEnumeration)
+        js_getFilterUnits :: SVGFilterElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.filterUnits Mozilla SVGFilterElement.filterUnits documentation> 
 getFilterUnits ::
-               (MonadIO m) => SVGFilterElement -> m (Maybe SVGAnimatedEnumeration)
-getFilterUnits self
-  = liftIO (nullableToMaybe <$> (js_getFilterUnits (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.filterUnits Mozilla SVGFilterElement.filterUnits documentation> 
-getFilterUnitsUnsafe ::
-                     (MonadIO m, HasCallStack) =>
-                       SVGFilterElement -> m SVGAnimatedEnumeration
-getFilterUnitsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFilterUnits (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.filterUnits Mozilla SVGFilterElement.filterUnits documentation> 
-getFilterUnitsUnchecked ::
-                        (MonadIO m) => SVGFilterElement -> m SVGAnimatedEnumeration
-getFilterUnitsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getFilterUnits (self)))
+               (MonadIO m) => SVGFilterElement -> m SVGAnimatedEnumeration
+getFilterUnits self = liftIO (js_getFilterUnits self)
  
 foreign import javascript unsafe "$1[\"primitiveUnits\"]"
         js_getPrimitiveUnits ::
-        SVGFilterElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGFilterElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.primitiveUnits Mozilla SVGFilterElement.primitiveUnits documentation> 
 getPrimitiveUnits ::
-                  (MonadIO m) => SVGFilterElement -> m (Maybe SVGAnimatedEnumeration)
-getPrimitiveUnits self
-  = liftIO (nullableToMaybe <$> (js_getPrimitiveUnits (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.primitiveUnits Mozilla SVGFilterElement.primitiveUnits documentation> 
-getPrimitiveUnitsUnsafe ::
-                        (MonadIO m, HasCallStack) =>
-                          SVGFilterElement -> m SVGAnimatedEnumeration
-getPrimitiveUnitsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPrimitiveUnits (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.primitiveUnits Mozilla SVGFilterElement.primitiveUnits documentation> 
-getPrimitiveUnitsUnchecked ::
-                           (MonadIO m) => SVGFilterElement -> m SVGAnimatedEnumeration
-getPrimitiveUnitsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPrimitiveUnits (self)))
+                  (MonadIO m) => SVGFilterElement -> m SVGAnimatedEnumeration
+getPrimitiveUnits self = liftIO (js_getPrimitiveUnits self)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGFilterElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.x Mozilla SVGFilterElement.x documentation> 
-getX ::
-     (MonadIO m) => SVGFilterElement -> m (Maybe SVGAnimatedLength)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.x Mozilla SVGFilterElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGFilterElement -> m SVGAnimatedLength
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFilterElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.x Mozilla SVGFilterElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m) => SVGFilterElement -> m SVGAnimatedLength
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+getX :: (MonadIO m) => SVGFilterElement -> m SVGAnimatedLength
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGFilterElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.y Mozilla SVGFilterElement.y documentation> 
-getY ::
-     (MonadIO m) => SVGFilterElement -> m (Maybe SVGAnimatedLength)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.y Mozilla SVGFilterElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGFilterElement -> m SVGAnimatedLength
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFilterElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.y Mozilla SVGFilterElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m) => SVGFilterElement -> m SVGAnimatedLength
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+getY :: (MonadIO m) => SVGFilterElement -> m SVGAnimatedLength
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        SVGFilterElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.width Mozilla SVGFilterElement.width documentation> 
-getWidth ::
-         (MonadIO m) => SVGFilterElement -> m (Maybe SVGAnimatedLength)
-getWidth self = liftIO (nullableToMaybe <$> (js_getWidth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.width Mozilla SVGFilterElement.width documentation> 
-getWidthUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 SVGFilterElement -> m SVGAnimatedLength
-getWidthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWidth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFilterElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.width Mozilla SVGFilterElement.width documentation> 
-getWidthUnchecked ::
-                  (MonadIO m) => SVGFilterElement -> m SVGAnimatedLength
-getWidthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getWidth (self)))
+getWidth :: (MonadIO m) => SVGFilterElement -> m SVGAnimatedLength
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        SVGFilterElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.height Mozilla SVGFilterElement.height documentation> 
-getHeight ::
-          (MonadIO m) => SVGFilterElement -> m (Maybe SVGAnimatedLength)
-getHeight self = liftIO (nullableToMaybe <$> (js_getHeight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.height Mozilla SVGFilterElement.height documentation> 
-getHeightUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  SVGFilterElement -> m SVGAnimatedLength
-getHeightUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHeight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGFilterElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.height Mozilla SVGFilterElement.height documentation> 
-getHeightUnchecked ::
-                   (MonadIO m) => SVGFilterElement -> m SVGAnimatedLength
-getHeightUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHeight (self)))
+getHeight :: (MonadIO m) => SVGFilterElement -> m SVGAnimatedLength
+getHeight self = liftIO (js_getHeight self)
  
 foreign import javascript unsafe "$1[\"filterResX\"]"
-        js_getFilterResX ::
-        SVGFilterElement -> IO (Nullable SVGAnimatedInteger)
+        js_getFilterResX :: SVGFilterElement -> IO SVGAnimatedInteger
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.filterResX Mozilla SVGFilterElement.filterResX documentation> 
 getFilterResX ::
-              (MonadIO m) => SVGFilterElement -> m (Maybe SVGAnimatedInteger)
-getFilterResX self
-  = liftIO (nullableToMaybe <$> (js_getFilterResX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.filterResX Mozilla SVGFilterElement.filterResX documentation> 
-getFilterResXUnsafe ::
-                    (MonadIO m, HasCallStack) =>
-                      SVGFilterElement -> m SVGAnimatedInteger
-getFilterResXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFilterResX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.filterResX Mozilla SVGFilterElement.filterResX documentation> 
-getFilterResXUnchecked ::
-                       (MonadIO m) => SVGFilterElement -> m SVGAnimatedInteger
-getFilterResXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFilterResX (self)))
+              (MonadIO m) => SVGFilterElement -> m SVGAnimatedInteger
+getFilterResX self = liftIO (js_getFilterResX self)
  
 foreign import javascript unsafe "$1[\"filterResY\"]"
-        js_getFilterResY ::
-        SVGFilterElement -> IO (Nullable SVGAnimatedInteger)
+        js_getFilterResY :: SVGFilterElement -> IO SVGAnimatedInteger
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.filterResY Mozilla SVGFilterElement.filterResY documentation> 
 getFilterResY ::
-              (MonadIO m) => SVGFilterElement -> m (Maybe SVGAnimatedInteger)
-getFilterResY self
-  = liftIO (nullableToMaybe <$> (js_getFilterResY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.filterResY Mozilla SVGFilterElement.filterResY documentation> 
-getFilterResYUnsafe ::
-                    (MonadIO m, HasCallStack) =>
-                      SVGFilterElement -> m SVGAnimatedInteger
-getFilterResYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFilterResY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement.filterResY Mozilla SVGFilterElement.filterResY documentation> 
-getFilterResYUnchecked ::
-                       (MonadIO m) => SVGFilterElement -> m SVGAnimatedInteger
-getFilterResYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFilterResY (self)))
+              (MonadIO m) => SVGFilterElement -> m SVGAnimatedInteger
+getFilterResY self = liftIO (js_getFilterResY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFilterPrimitiveStandardAttributes.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFilterPrimitiveStandardAttributes.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFilterPrimitiveStandardAttributes.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFilterPrimitiveStandardAttributes.hs
@@ -4,18 +4,18 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFilterPrimitiveStandardAttributes
-       (js_getX, getX, getXUnsafe, getXUnchecked, js_getY, getY,
-        getYUnsafe, getYUnchecked, js_getWidth, getWidth, getWidthUnsafe,
-        getWidthUnchecked, js_getHeight, getHeight, getHeightUnsafe,
-        getHeightUnchecked, js_getResult, getResult, getResultUnsafe,
-        getResultUnchecked, SVGFilterPrimitiveStandardAttributes(..),
-        gTypeSVGFilterPrimitiveStandardAttributes)
+       (js_getX, getX, js_getY, getY, js_getWidth, getWidth, js_getHeight,
+        getHeight, js_getResult, getResult,
+        SVGFilterPrimitiveStandardAttributes(..),
+        gTypeSVGFilterPrimitiveStandardAttributes,
+        IsSVGFilterPrimitiveStandardAttributes,
+        toSVGFilterPrimitiveStandardAttributes)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,137 +24,61 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGFilterPrimitiveStandardAttributes ->
-          IO (Nullable SVGAnimatedLength)
+        SVGFilterPrimitiveStandardAttributes -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.x Mozilla SVGFilterPrimitiveStandardAttributes.x documentation> 
 getX ::
-     (MonadIO m) =>
-       SVGFilterPrimitiveStandardAttributes -> m (Maybe SVGAnimatedLength)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.x Mozilla SVGFilterPrimitiveStandardAttributes.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGFilterPrimitiveStandardAttributes -> m SVGAnimatedLength
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.x Mozilla SVGFilterPrimitiveStandardAttributes.x documentation> 
-getXUnchecked ::
-              (MonadIO m) =>
-                SVGFilterPrimitiveStandardAttributes -> m SVGAnimatedLength
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+     (MonadIO m, IsSVGFilterPrimitiveStandardAttributes self) =>
+       self -> m SVGAnimatedLength
+getX self
+  = liftIO (js_getX (toSVGFilterPrimitiveStandardAttributes self))
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGFilterPrimitiveStandardAttributes ->
-          IO (Nullable SVGAnimatedLength)
+        SVGFilterPrimitiveStandardAttributes -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.y Mozilla SVGFilterPrimitiveStandardAttributes.y documentation> 
 getY ::
-     (MonadIO m) =>
-       SVGFilterPrimitiveStandardAttributes -> m (Maybe SVGAnimatedLength)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.y Mozilla SVGFilterPrimitiveStandardAttributes.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGFilterPrimitiveStandardAttributes -> m SVGAnimatedLength
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.y Mozilla SVGFilterPrimitiveStandardAttributes.y documentation> 
-getYUnchecked ::
-              (MonadIO m) =>
-                SVGFilterPrimitiveStandardAttributes -> m SVGAnimatedLength
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+     (MonadIO m, IsSVGFilterPrimitiveStandardAttributes self) =>
+       self -> m SVGAnimatedLength
+getY self
+  = liftIO (js_getY (toSVGFilterPrimitiveStandardAttributes self))
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        SVGFilterPrimitiveStandardAttributes ->
-          IO (Nullable SVGAnimatedLength)
+        SVGFilterPrimitiveStandardAttributes -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.width Mozilla SVGFilterPrimitiveStandardAttributes.width documentation> 
 getWidth ::
-         (MonadIO m) =>
-           SVGFilterPrimitiveStandardAttributes -> m (Maybe SVGAnimatedLength)
-getWidth self = liftIO (nullableToMaybe <$> (js_getWidth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.width Mozilla SVGFilterPrimitiveStandardAttributes.width documentation> 
-getWidthUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 SVGFilterPrimitiveStandardAttributes -> m SVGAnimatedLength
-getWidthUnsafe self
+         (MonadIO m, IsSVGFilterPrimitiveStandardAttributes self) =>
+           self -> m SVGAnimatedLength
+getWidth self
   = liftIO
-      ((nullableToMaybe <$> (js_getWidth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.width Mozilla SVGFilterPrimitiveStandardAttributes.width documentation> 
-getWidthUnchecked ::
-                  (MonadIO m) =>
-                    SVGFilterPrimitiveStandardAttributes -> m SVGAnimatedLength
-getWidthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getWidth (self)))
+      (js_getWidth (toSVGFilterPrimitiveStandardAttributes self))
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        SVGFilterPrimitiveStandardAttributes ->
-          IO (Nullable SVGAnimatedLength)
+        SVGFilterPrimitiveStandardAttributes -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.height Mozilla SVGFilterPrimitiveStandardAttributes.height documentation> 
 getHeight ::
-          (MonadIO m) =>
-            SVGFilterPrimitiveStandardAttributes -> m (Maybe SVGAnimatedLength)
-getHeight self = liftIO (nullableToMaybe <$> (js_getHeight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.height Mozilla SVGFilterPrimitiveStandardAttributes.height documentation> 
-getHeightUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  SVGFilterPrimitiveStandardAttributes -> m SVGAnimatedLength
-getHeightUnsafe self
+          (MonadIO m, IsSVGFilterPrimitiveStandardAttributes self) =>
+            self -> m SVGAnimatedLength
+getHeight self
   = liftIO
-      ((nullableToMaybe <$> (js_getHeight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.height Mozilla SVGFilterPrimitiveStandardAttributes.height documentation> 
-getHeightUnchecked ::
-                   (MonadIO m) =>
-                     SVGFilterPrimitiveStandardAttributes -> m SVGAnimatedLength
-getHeightUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHeight (self)))
+      (js_getHeight (toSVGFilterPrimitiveStandardAttributes self))
  
 foreign import javascript unsafe "$1[\"result\"]" js_getResult ::
-        SVGFilterPrimitiveStandardAttributes ->
-          IO (Nullable SVGAnimatedString)
+        SVGFilterPrimitiveStandardAttributes -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.result Mozilla SVGFilterPrimitiveStandardAttributes.result documentation> 
 getResult ::
-          (MonadIO m) =>
-            SVGFilterPrimitiveStandardAttributes -> m (Maybe SVGAnimatedString)
-getResult self = liftIO (nullableToMaybe <$> (js_getResult (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.result Mozilla SVGFilterPrimitiveStandardAttributes.result documentation> 
-getResultUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  SVGFilterPrimitiveStandardAttributes -> m SVGAnimatedString
-getResultUnsafe self
+          (MonadIO m, IsSVGFilterPrimitiveStandardAttributes self) =>
+            self -> m SVGAnimatedString
+getResult self
   = liftIO
-      ((nullableToMaybe <$> (js_getResult (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes.result Mozilla SVGFilterPrimitiveStandardAttributes.result documentation> 
-getResultUnchecked ::
-                   (MonadIO m) =>
-                     SVGFilterPrimitiveStandardAttributes -> m SVGAnimatedString
-getResultUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getResult (self)))
+      (js_getResult (toSVGFilterPrimitiveStandardAttributes self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGFitToViewBox.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGFitToViewBox.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGFitToViewBox.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGFitToViewBox.hs
@@ -4,16 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGFitToViewBox
-       (js_getViewBox, getViewBox, getViewBoxUnsafe, getViewBoxUnchecked,
-        js_getPreserveAspectRatio, getPreserveAspectRatio,
-        getPreserveAspectRatioUnsafe, getPreserveAspectRatioUnchecked,
-        SVGFitToViewBox(..), gTypeSVGFitToViewBox)
+       (js_getViewBox, getViewBox, js_getPreserveAspectRatio,
+        getPreserveAspectRatio, SVGFitToViewBox(..), gTypeSVGFitToViewBox,
+        IsSVGFitToViewBox, toSVGFitToViewBox)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,57 +21,27 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"viewBox\"]" js_getViewBox ::
-        SVGFitToViewBox -> IO (Nullable SVGAnimatedRect)
+        SVGFitToViewBox -> IO SVGAnimatedRect
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFitToViewBox.viewBox Mozilla SVGFitToViewBox.viewBox documentation> 
 getViewBox ::
-           (MonadIO m) => SVGFitToViewBox -> m (Maybe SVGAnimatedRect)
-getViewBox self
-  = liftIO (nullableToMaybe <$> (js_getViewBox (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFitToViewBox.viewBox Mozilla SVGFitToViewBox.viewBox documentation> 
-getViewBoxUnsafe ::
-                 (MonadIO m, HasCallStack) => SVGFitToViewBox -> m SVGAnimatedRect
-getViewBoxUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getViewBox (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFitToViewBox.viewBox Mozilla SVGFitToViewBox.viewBox documentation> 
-getViewBoxUnchecked ::
-                    (MonadIO m) => SVGFitToViewBox -> m SVGAnimatedRect
-getViewBoxUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getViewBox (self)))
+           (MonadIO m, IsSVGFitToViewBox self) => self -> m SVGAnimatedRect
+getViewBox self = liftIO (js_getViewBox (toSVGFitToViewBox self))
  
 foreign import javascript unsafe "$1[\"preserveAspectRatio\"]"
         js_getPreserveAspectRatio ::
-        SVGFitToViewBox -> IO (Nullable SVGAnimatedPreserveAspectRatio)
+        SVGFitToViewBox -> IO SVGAnimatedPreserveAspectRatio
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFitToViewBox.preserveAspectRatio Mozilla SVGFitToViewBox.preserveAspectRatio documentation> 
 getPreserveAspectRatio ::
-                       (MonadIO m) =>
-                         SVGFitToViewBox -> m (Maybe SVGAnimatedPreserveAspectRatio)
+                       (MonadIO m, IsSVGFitToViewBox self) =>
+                         self -> m SVGAnimatedPreserveAspectRatio
 getPreserveAspectRatio self
-  = liftIO (nullableToMaybe <$> (js_getPreserveAspectRatio (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFitToViewBox.preserveAspectRatio Mozilla SVGFitToViewBox.preserveAspectRatio documentation> 
-getPreserveAspectRatioUnsafe ::
-                             (MonadIO m, HasCallStack) =>
-                               SVGFitToViewBox -> m SVGAnimatedPreserveAspectRatio
-getPreserveAspectRatioUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPreserveAspectRatio (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGFitToViewBox.preserveAspectRatio Mozilla SVGFitToViewBox.preserveAspectRatio documentation> 
-getPreserveAspectRatioUnchecked ::
-                                (MonadIO m) => SVGFitToViewBox -> m SVGAnimatedPreserveAspectRatio
-getPreserveAspectRatioUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPreserveAspectRatio (self)))
+  = liftIO (js_getPreserveAspectRatio (toSVGFitToViewBox self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGForeignObjectElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGForeignObjectElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGForeignObjectElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGForeignObjectElement.hs
@@ -4,17 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGForeignObjectElement
-       (js_getX, getX, getXUnsafe, getXUnchecked, js_getY, getY,
-        getYUnsafe, getYUnchecked, js_getWidth, getWidth, getWidthUnsafe,
-        getWidthUnchecked, js_getHeight, getHeight, getHeightUnsafe,
-        getHeightUnchecked, SVGForeignObjectElement(..),
+       (js_getX, getX, js_getY, getY, js_getWidth, getWidth, js_getHeight,
+        getHeight, SVGForeignObjectElement(..),
         gTypeSVGForeignObjectElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,103 +21,40 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGForeignObjectElement -> IO (Nullable SVGAnimatedLength)
+        SVGForeignObjectElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.x Mozilla SVGForeignObjectElement.x documentation> 
 getX ::
-     (MonadIO m) =>
-       SVGForeignObjectElement -> m (Maybe SVGAnimatedLength)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.x Mozilla SVGForeignObjectElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGForeignObjectElement -> m SVGAnimatedLength
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.x Mozilla SVGForeignObjectElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m) => SVGForeignObjectElement -> m SVGAnimatedLength
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+     (MonadIO m) => SVGForeignObjectElement -> m SVGAnimatedLength
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGForeignObjectElement -> IO (Nullable SVGAnimatedLength)
+        SVGForeignObjectElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.y Mozilla SVGForeignObjectElement.y documentation> 
 getY ::
-     (MonadIO m) =>
-       SVGForeignObjectElement -> m (Maybe SVGAnimatedLength)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.y Mozilla SVGForeignObjectElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGForeignObjectElement -> m SVGAnimatedLength
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.y Mozilla SVGForeignObjectElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m) => SVGForeignObjectElement -> m SVGAnimatedLength
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+     (MonadIO m) => SVGForeignObjectElement -> m SVGAnimatedLength
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        SVGForeignObjectElement -> IO (Nullable SVGAnimatedLength)
+        SVGForeignObjectElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.width Mozilla SVGForeignObjectElement.width documentation> 
 getWidth ::
-         (MonadIO m) =>
-           SVGForeignObjectElement -> m (Maybe SVGAnimatedLength)
-getWidth self = liftIO (nullableToMaybe <$> (js_getWidth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.width Mozilla SVGForeignObjectElement.width documentation> 
-getWidthUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 SVGForeignObjectElement -> m SVGAnimatedLength
-getWidthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWidth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.width Mozilla SVGForeignObjectElement.width documentation> 
-getWidthUnchecked ::
-                  (MonadIO m) => SVGForeignObjectElement -> m SVGAnimatedLength
-getWidthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getWidth (self)))
+         (MonadIO m) => SVGForeignObjectElement -> m SVGAnimatedLength
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        SVGForeignObjectElement -> IO (Nullable SVGAnimatedLength)
+        SVGForeignObjectElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.height Mozilla SVGForeignObjectElement.height documentation> 
 getHeight ::
-          (MonadIO m) =>
-            SVGForeignObjectElement -> m (Maybe SVGAnimatedLength)
-getHeight self = liftIO (nullableToMaybe <$> (js_getHeight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.height Mozilla SVGForeignObjectElement.height documentation> 
-getHeightUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  SVGForeignObjectElement -> m SVGAnimatedLength
-getHeightUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHeight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement.height Mozilla SVGForeignObjectElement.height documentation> 
-getHeightUnchecked ::
-                   (MonadIO m) => SVGForeignObjectElement -> m SVGAnimatedLength
-getHeightUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHeight (self)))
+          (MonadIO m) => SVGForeignObjectElement -> m SVGAnimatedLength
+getHeight self = liftIO (js_getHeight self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGGlyphRefElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGGlyphRefElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGGlyphRefElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGGlyphRefElement.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -35,7 +36,7 @@
 setGlyphRef ::
             (MonadIO m, ToJSString val) => SVGGlyphRefElement -> val -> m ()
 setGlyphRef self val
-  = liftIO (js_setGlyphRef (self) (toJSString val))
+  = liftIO (js_setGlyphRef self (toJSString val))
  
 foreign import javascript unsafe "$1[\"glyphRef\"]" js_getGlyphRef
         :: SVGGlyphRefElement -> IO JSString
@@ -43,8 +44,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement.glyphRef Mozilla SVGGlyphRefElement.glyphRef documentation> 
 getGlyphRef ::
             (MonadIO m, FromJSString result) => SVGGlyphRefElement -> m result
-getGlyphRef self
-  = liftIO (fromJSString <$> (js_getGlyphRef (self)))
+getGlyphRef self = liftIO (fromJSString <$> (js_getGlyphRef self))
  
 foreign import javascript unsafe "$1[\"format\"] = $2;"
         js_setFormat :: SVGGlyphRefElement -> JSString -> IO ()
@@ -52,7 +52,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement.format Mozilla SVGGlyphRefElement.format documentation> 
 setFormat ::
           (MonadIO m, ToJSString val) => SVGGlyphRefElement -> val -> m ()
-setFormat self val = liftIO (js_setFormat (self) (toJSString val))
+setFormat self val = liftIO (js_setFormat self (toJSString val))
  
 foreign import javascript unsafe "$1[\"format\"]" js_getFormat ::
         SVGGlyphRefElement -> IO JSString
@@ -60,60 +60,60 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement.format Mozilla SVGGlyphRefElement.format documentation> 
 getFormat ::
           (MonadIO m, FromJSString result) => SVGGlyphRefElement -> m result
-getFormat self = liftIO (fromJSString <$> (js_getFormat (self)))
+getFormat self = liftIO (fromJSString <$> (js_getFormat self))
  
 foreign import javascript unsafe "$1[\"x\"] = $2;" js_setX ::
         SVGGlyphRefElement -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement.x Mozilla SVGGlyphRefElement.x documentation> 
 setX :: (MonadIO m) => SVGGlyphRefElement -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGGlyphRefElement -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement.x Mozilla SVGGlyphRefElement.x documentation> 
 getX :: (MonadIO m) => SVGGlyphRefElement -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGGlyphRefElement -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement.y Mozilla SVGGlyphRefElement.y documentation> 
 setY :: (MonadIO m) => SVGGlyphRefElement -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGGlyphRefElement -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement.y Mozilla SVGGlyphRefElement.y documentation> 
 getY :: (MonadIO m) => SVGGlyphRefElement -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"dx\"] = $2;" js_setDx ::
         SVGGlyphRefElement -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement.dx Mozilla SVGGlyphRefElement.dx documentation> 
 setDx :: (MonadIO m) => SVGGlyphRefElement -> Float -> m ()
-setDx self val = liftIO (js_setDx (self) val)
+setDx self val = liftIO (js_setDx self val)
  
 foreign import javascript unsafe "$1[\"dx\"]" js_getDx ::
         SVGGlyphRefElement -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement.dx Mozilla SVGGlyphRefElement.dx documentation> 
 getDx :: (MonadIO m) => SVGGlyphRefElement -> m Float
-getDx self = liftIO (js_getDx (self))
+getDx self = liftIO (js_getDx self)
  
 foreign import javascript unsafe "$1[\"dy\"] = $2;" js_setDy ::
         SVGGlyphRefElement -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement.dy Mozilla SVGGlyphRefElement.dy documentation> 
 setDy :: (MonadIO m) => SVGGlyphRefElement -> Float -> m ()
-setDy self val = liftIO (js_setDy (self) val)
+setDy self val = liftIO (js_setDy self val)
  
 foreign import javascript unsafe "$1[\"dy\"]" js_getDy ::
         SVGGlyphRefElement -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement.dy Mozilla SVGGlyphRefElement.dy documentation> 
 getDy :: (MonadIO m) => SVGGlyphRefElement -> m Float
-getDy self = liftIO (js_getDy (self))
+getDy self = liftIO (js_getDy self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGGradientElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGGradientElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGGradientElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGGradientElement.hs
@@ -6,11 +6,8 @@
 module GHCJS.DOM.JSFFI.Generated.SVGGradientElement
        (pattern SVG_SPREADMETHOD_UNKNOWN, pattern SVG_SPREADMETHOD_PAD,
         pattern SVG_SPREADMETHOD_REFLECT, pattern SVG_SPREADMETHOD_REPEAT,
-        js_getGradientUnits, getGradientUnits, getGradientUnitsUnsafe,
-        getGradientUnitsUnchecked, js_getGradientTransform,
-        getGradientTransform, getGradientTransformUnsafe,
-        getGradientTransformUnchecked, js_getSpreadMethod, getSpreadMethod,
-        getSpreadMethodUnsafe, getSpreadMethodUnchecked,
+        js_getGradientUnits, getGradientUnits, js_getGradientTransform,
+        getGradientTransform, js_getSpreadMethod, getSpreadMethod,
         SVGGradientElement(..), gTypeSVGGradientElement,
         IsSVGGradientElement, toSVGGradientElement)
        where
@@ -18,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -38,96 +36,33 @@
  
 foreign import javascript unsafe "$1[\"gradientUnits\"]"
         js_getGradientUnits ::
-        SVGGradientElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGGradientElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement.gradientUnits Mozilla SVGGradientElement.gradientUnits documentation> 
 getGradientUnits ::
                  (MonadIO m, IsSVGGradientElement self) =>
-                   self -> m (Maybe SVGAnimatedEnumeration)
+                   self -> m SVGAnimatedEnumeration
 getGradientUnits self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getGradientUnits (toSVGGradientElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement.gradientUnits Mozilla SVGGradientElement.gradientUnits documentation> 
-getGradientUnitsUnsafe ::
-                       (MonadIO m, IsSVGGradientElement self, HasCallStack) =>
-                         self -> m SVGAnimatedEnumeration
-getGradientUnitsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getGradientUnits (toSVGGradientElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement.gradientUnits Mozilla SVGGradientElement.gradientUnits documentation> 
-getGradientUnitsUnchecked ::
-                          (MonadIO m, IsSVGGradientElement self) =>
-                            self -> m SVGAnimatedEnumeration
-getGradientUnitsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getGradientUnits (toSVGGradientElement self)))
+  = liftIO (js_getGradientUnits (toSVGGradientElement self))
  
 foreign import javascript unsafe "$1[\"gradientTransform\"]"
         js_getGradientTransform ::
-        SVGGradientElement -> IO (Nullable SVGAnimatedTransformList)
+        SVGGradientElement -> IO SVGAnimatedTransformList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement.gradientTransform Mozilla SVGGradientElement.gradientTransform documentation> 
 getGradientTransform ::
                      (MonadIO m, IsSVGGradientElement self) =>
-                       self -> m (Maybe SVGAnimatedTransformList)
+                       self -> m SVGAnimatedTransformList
 getGradientTransform self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getGradientTransform (toSVGGradientElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement.gradientTransform Mozilla SVGGradientElement.gradientTransform documentation> 
-getGradientTransformUnsafe ::
-                           (MonadIO m, IsSVGGradientElement self, HasCallStack) =>
-                             self -> m SVGAnimatedTransformList
-getGradientTransformUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getGradientTransform (toSVGGradientElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement.gradientTransform Mozilla SVGGradientElement.gradientTransform documentation> 
-getGradientTransformUnchecked ::
-                              (MonadIO m, IsSVGGradientElement self) =>
-                                self -> m SVGAnimatedTransformList
-getGradientTransformUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getGradientTransform (toSVGGradientElement self)))
+  = liftIO (js_getGradientTransform (toSVGGradientElement self))
  
 foreign import javascript unsafe "$1[\"spreadMethod\"]"
         js_getSpreadMethod ::
-        SVGGradientElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGGradientElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement.spreadMethod Mozilla SVGGradientElement.spreadMethod documentation> 
 getSpreadMethod ::
                 (MonadIO m, IsSVGGradientElement self) =>
-                  self -> m (Maybe SVGAnimatedEnumeration)
+                  self -> m SVGAnimatedEnumeration
 getSpreadMethod self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getSpreadMethod (toSVGGradientElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement.spreadMethod Mozilla SVGGradientElement.spreadMethod documentation> 
-getSpreadMethodUnsafe ::
-                      (MonadIO m, IsSVGGradientElement self, HasCallStack) =>
-                        self -> m SVGAnimatedEnumeration
-getSpreadMethodUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getSpreadMethod (toSVGGradientElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement.spreadMethod Mozilla SVGGradientElement.spreadMethod documentation> 
-getSpreadMethodUnchecked ::
-                         (MonadIO m, IsSVGGradientElement self) =>
-                           self -> m SVGAnimatedEnumeration
-getSpreadMethodUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getSpreadMethod (toSVGGradientElement self)))
+  = liftIO (js_getSpreadMethod (toSVGGradientElement self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGGraphicsElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGGraphicsElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGGraphicsElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGGraphicsElement.hs
@@ -4,26 +4,20 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGGraphicsElement
-       (js_getBBox, getBBox, getBBox_, getBBoxUnsafe, getBBoxUnchecked,
-        js_getCTM, getCTM, getCTM_, getCTMUnsafe, getCTMUnchecked,
-        js_getScreenCTM, getScreenCTM, getScreenCTM_, getScreenCTMUnsafe,
-        getScreenCTMUnchecked, js_getTransformToElement,
-        getTransformToElement, getTransformToElement_,
-        getTransformToElementUnsafe, getTransformToElementUnchecked,
-        js_getTransform, getTransform, getTransformUnsafe,
-        getTransformUnchecked, js_getNearestViewportElement,
-        getNearestViewportElement, getNearestViewportElementUnsafe,
-        getNearestViewportElementUnchecked, js_getFarthestViewportElement,
-        getFarthestViewportElement, getFarthestViewportElementUnsafe,
-        getFarthestViewportElementUnchecked, SVGGraphicsElement(..),
-        gTypeSVGGraphicsElement, IsSVGGraphicsElement,
-        toSVGGraphicsElement)
+       (js_getBBox, getBBox, getBBox_, js_getCTM, getCTM, getCTM_,
+        js_getScreenCTM, getScreenCTM, getScreenCTM_,
+        js_getTransformToElement, getTransformToElement,
+        getTransformToElement_, js_getTransform, getTransform,
+        js_getNearestViewportElement, getNearestViewportElement,
+        js_getFarthestViewportElement, getFarthestViewportElement,
+        SVGGraphicsElement(..), gTypeSVGGraphicsElement,
+        IsSVGGraphicsElement, toSVGGraphicsElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -32,125 +26,65 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"getBBox\"]()" js_getBBox ::
-        SVGGraphicsElement -> IO (Nullable SVGRect)
+        SVGGraphicsElement -> IO SVGRect
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getBBox Mozilla SVGGraphicsElement.getBBox documentation> 
 getBBox ::
-        (MonadIO m, IsSVGGraphicsElement self) => self -> m (Maybe SVGRect)
-getBBox self
-  = liftIO
-      (nullableToMaybe <$> (js_getBBox (toSVGGraphicsElement self)))
+        (MonadIO m, IsSVGGraphicsElement self) => self -> m SVGRect
+getBBox self = liftIO (js_getBBox (toSVGGraphicsElement self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getBBox Mozilla SVGGraphicsElement.getBBox documentation> 
 getBBox_ :: (MonadIO m, IsSVGGraphicsElement self) => self -> m ()
 getBBox_ self
   = liftIO (void (js_getBBox (toSVGGraphicsElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getBBox Mozilla SVGGraphicsElement.getBBox documentation> 
-getBBoxUnsafe ::
-              (MonadIO m, IsSVGGraphicsElement self, HasCallStack) =>
-                self -> m SVGRect
-getBBoxUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBBox (toSVGGraphicsElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getBBox Mozilla SVGGraphicsElement.getBBox documentation> 
-getBBoxUnchecked ::
-                 (MonadIO m, IsSVGGraphicsElement self) => self -> m SVGRect
-getBBoxUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getBBox (toSVGGraphicsElement self)))
  
 foreign import javascript unsafe "$1[\"getCTM\"]()" js_getCTM ::
-        SVGGraphicsElement -> IO (Nullable SVGMatrix)
+        SVGGraphicsElement -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getCTM Mozilla SVGGraphicsElement.getCTM documentation> 
 getCTM ::
-       (MonadIO m, IsSVGGraphicsElement self) =>
-         self -> m (Maybe SVGMatrix)
-getCTM self
-  = liftIO
-      (nullableToMaybe <$> (js_getCTM (toSVGGraphicsElement self)))
+       (MonadIO m, IsSVGGraphicsElement self) => self -> m SVGMatrix
+getCTM self = liftIO (js_getCTM (toSVGGraphicsElement self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getCTM Mozilla SVGGraphicsElement.getCTM documentation> 
 getCTM_ :: (MonadIO m, IsSVGGraphicsElement self) => self -> m ()
 getCTM_ self
   = liftIO (void (js_getCTM (toSVGGraphicsElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getCTM Mozilla SVGGraphicsElement.getCTM documentation> 
-getCTMUnsafe ::
-             (MonadIO m, IsSVGGraphicsElement self, HasCallStack) =>
-               self -> m SVGMatrix
-getCTMUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCTM (toSVGGraphicsElement self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getCTM Mozilla SVGGraphicsElement.getCTM documentation> 
-getCTMUnchecked ::
-                (MonadIO m, IsSVGGraphicsElement self) => self -> m SVGMatrix
-getCTMUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getCTM (toSVGGraphicsElement self)))
  
 foreign import javascript unsafe "$1[\"getScreenCTM\"]()"
-        js_getScreenCTM :: SVGGraphicsElement -> IO (Nullable SVGMatrix)
+        js_getScreenCTM :: SVGGraphicsElement -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getScreenCTM Mozilla SVGGraphicsElement.getScreenCTM documentation> 
 getScreenCTM ::
-             (MonadIO m, IsSVGGraphicsElement self) =>
-               self -> m (Maybe SVGMatrix)
+             (MonadIO m, IsSVGGraphicsElement self) => self -> m SVGMatrix
 getScreenCTM self
-  = liftIO
-      (nullableToMaybe <$> (js_getScreenCTM (toSVGGraphicsElement self)))
+  = liftIO (js_getScreenCTM (toSVGGraphicsElement self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getScreenCTM Mozilla SVGGraphicsElement.getScreenCTM documentation> 
 getScreenCTM_ ::
               (MonadIO m, IsSVGGraphicsElement self) => self -> m ()
 getScreenCTM_ self
   = liftIO (void (js_getScreenCTM (toSVGGraphicsElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getScreenCTM Mozilla SVGGraphicsElement.getScreenCTM documentation> 
-getScreenCTMUnsafe ::
-                   (MonadIO m, IsSVGGraphicsElement self, HasCallStack) =>
-                     self -> m SVGMatrix
-getScreenCTMUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getScreenCTM (toSVGGraphicsElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getScreenCTM Mozilla SVGGraphicsElement.getScreenCTM documentation> 
-getScreenCTMUnchecked ::
-                      (MonadIO m, IsSVGGraphicsElement self) => self -> m SVGMatrix
-getScreenCTMUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getScreenCTM (toSVGGraphicsElement self)))
  
 foreign import javascript unsafe
         "$1[\"getTransformToElement\"]($2)" js_getTransformToElement ::
-        SVGGraphicsElement ->
-          Nullable SVGElement -> IO (Nullable SVGMatrix)
+        SVGGraphicsElement -> Optional SVGElement -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getTransformToElement Mozilla SVGGraphicsElement.getTransformToElement documentation> 
 getTransformToElement ::
                       (MonadIO m, IsSVGGraphicsElement self, IsSVGElement element) =>
-                        self -> Maybe element -> m (Maybe SVGMatrix)
+                        self -> Maybe element -> m SVGMatrix
 getTransformToElement self element
   = liftIO
-      (nullableToMaybe <$>
-         (js_getTransformToElement (toSVGGraphicsElement self)
-            (maybeToNullable (fmap toSVGElement element))))
+      (js_getTransformToElement (toSVGGraphicsElement self)
+         (maybeToOptional (fmap toSVGElement element)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getTransformToElement Mozilla SVGGraphicsElement.getTransformToElement documentation> 
 getTransformToElement_ ::
@@ -160,119 +94,35 @@
   = liftIO
       (void
          (js_getTransformToElement (toSVGGraphicsElement self)
-            (maybeToNullable (fmap toSVGElement element))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getTransformToElement Mozilla SVGGraphicsElement.getTransformToElement documentation> 
-getTransformToElementUnsafe ::
-                            (MonadIO m, IsSVGGraphicsElement self, IsSVGElement element,
-                             HasCallStack) =>
-                              self -> Maybe element -> m SVGMatrix
-getTransformToElementUnsafe self element
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getTransformToElement (toSVGGraphicsElement self)
-             (maybeToNullable (fmap toSVGElement element))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.getTransformToElement Mozilla SVGGraphicsElement.getTransformToElement documentation> 
-getTransformToElementUnchecked ::
-                               (MonadIO m, IsSVGGraphicsElement self, IsSVGElement element) =>
-                                 self -> Maybe element -> m SVGMatrix
-getTransformToElementUnchecked self element
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTransformToElement (toSVGGraphicsElement self)
-            (maybeToNullable (fmap toSVGElement element))))
+            (maybeToOptional (fmap toSVGElement element))))
  
 foreign import javascript unsafe "$1[\"transform\"]"
         js_getTransform ::
-        SVGGraphicsElement -> IO (Nullable SVGAnimatedTransformList)
+        SVGGraphicsElement -> IO SVGAnimatedTransformList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.transform Mozilla SVGGraphicsElement.transform documentation> 
 getTransform ::
              (MonadIO m, IsSVGGraphicsElement self) =>
-               self -> m (Maybe SVGAnimatedTransformList)
+               self -> m SVGAnimatedTransformList
 getTransform self
-  = liftIO
-      (nullableToMaybe <$> (js_getTransform (toSVGGraphicsElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.transform Mozilla SVGGraphicsElement.transform documentation> 
-getTransformUnsafe ::
-                   (MonadIO m, IsSVGGraphicsElement self, HasCallStack) =>
-                     self -> m SVGAnimatedTransformList
-getTransformUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getTransform (toSVGGraphicsElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.transform Mozilla SVGGraphicsElement.transform documentation> 
-getTransformUnchecked ::
-                      (MonadIO m, IsSVGGraphicsElement self) =>
-                        self -> m SVGAnimatedTransformList
-getTransformUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTransform (toSVGGraphicsElement self)))
+  = liftIO (js_getTransform (toSVGGraphicsElement self))
  
 foreign import javascript unsafe "$1[\"nearestViewportElement\"]"
-        js_getNearestViewportElement ::
-        SVGGraphicsElement -> IO (Nullable SVGElement)
+        js_getNearestViewportElement :: SVGGraphicsElement -> IO SVGElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.nearestViewportElement Mozilla SVGGraphicsElement.nearestViewportElement documentation> 
 getNearestViewportElement ::
-                          (MonadIO m, IsSVGGraphicsElement self) =>
-                            self -> m (Maybe SVGElement)
+                          (MonadIO m, IsSVGGraphicsElement self) => self -> m SVGElement
 getNearestViewportElement self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getNearestViewportElement (toSVGGraphicsElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.nearestViewportElement Mozilla SVGGraphicsElement.nearestViewportElement documentation> 
-getNearestViewportElementUnsafe ::
-                                (MonadIO m, IsSVGGraphicsElement self, HasCallStack) =>
-                                  self -> m SVGElement
-getNearestViewportElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getNearestViewportElement (toSVGGraphicsElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.nearestViewportElement Mozilla SVGGraphicsElement.nearestViewportElement documentation> 
-getNearestViewportElementUnchecked ::
-                                   (MonadIO m, IsSVGGraphicsElement self) => self -> m SVGElement
-getNearestViewportElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getNearestViewportElement (toSVGGraphicsElement self)))
+  = liftIO (js_getNearestViewportElement (toSVGGraphicsElement self))
  
 foreign import javascript unsafe "$1[\"farthestViewportElement\"]"
         js_getFarthestViewportElement ::
-        SVGGraphicsElement -> IO (Nullable SVGElement)
+        SVGGraphicsElement -> IO SVGElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.farthestViewportElement Mozilla SVGGraphicsElement.farthestViewportElement documentation> 
 getFarthestViewportElement ::
-                           (MonadIO m, IsSVGGraphicsElement self) =>
-                             self -> m (Maybe SVGElement)
+                           (MonadIO m, IsSVGGraphicsElement self) => self -> m SVGElement
 getFarthestViewportElement self
   = liftIO
-      (nullableToMaybe <$>
-         (js_getFarthestViewportElement (toSVGGraphicsElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.farthestViewportElement Mozilla SVGGraphicsElement.farthestViewportElement documentation> 
-getFarthestViewportElementUnsafe ::
-                                 (MonadIO m, IsSVGGraphicsElement self, HasCallStack) =>
-                                   self -> m SVGElement
-getFarthestViewportElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getFarthestViewportElement (toSVGGraphicsElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement.farthestViewportElement Mozilla SVGGraphicsElement.farthestViewportElement documentation> 
-getFarthestViewportElementUnchecked ::
-                                    (MonadIO m, IsSVGGraphicsElement self) => self -> m SVGElement
-getFarthestViewportElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getFarthestViewportElement (toSVGGraphicsElement self)))
+      (js_getFarthestViewportElement (toSVGGraphicsElement self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGImageElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGImageElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGImageElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGImageElement.hs
@@ -4,19 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGImageElement
-       (js_getX, getX, getXUnsafe, getXUnchecked, js_getY, getY,
-        getYUnsafe, getYUnchecked, js_getWidth, getWidth, getWidthUnsafe,
-        getWidthUnchecked, js_getHeight, getHeight, getHeightUnsafe,
-        getHeightUnchecked, js_getPreserveAspectRatio,
-        getPreserveAspectRatio, getPreserveAspectRatioUnsafe,
-        getPreserveAspectRatioUnchecked, SVGImageElement(..),
-        gTypeSVGImageElement)
+       (js_getX, getX, js_getY, getY, js_getWidth, getWidth, js_getHeight,
+        getHeight, js_getPreserveAspectRatio, getPreserveAspectRatio,
+        SVGImageElement(..), gTypeSVGImageElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,122 +21,46 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGImageElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.x Mozilla SVGImageElement.x documentation> 
-getX ::
-     (MonadIO m) => SVGImageElement -> m (Maybe SVGAnimatedLength)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.x Mozilla SVGImageElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) => SVGImageElement -> m SVGAnimatedLength
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGImageElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.x Mozilla SVGImageElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m) => SVGImageElement -> m SVGAnimatedLength
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+getX :: (MonadIO m) => SVGImageElement -> m SVGAnimatedLength
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGImageElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.y Mozilla SVGImageElement.y documentation> 
-getY ::
-     (MonadIO m) => SVGImageElement -> m (Maybe SVGAnimatedLength)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.y Mozilla SVGImageElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) => SVGImageElement -> m SVGAnimatedLength
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGImageElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.y Mozilla SVGImageElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m) => SVGImageElement -> m SVGAnimatedLength
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+getY :: (MonadIO m) => SVGImageElement -> m SVGAnimatedLength
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        SVGImageElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.width Mozilla SVGImageElement.width documentation> 
-getWidth ::
-         (MonadIO m) => SVGImageElement -> m (Maybe SVGAnimatedLength)
-getWidth self = liftIO (nullableToMaybe <$> (js_getWidth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.width Mozilla SVGImageElement.width documentation> 
-getWidthUnsafe ::
-               (MonadIO m, HasCallStack) => SVGImageElement -> m SVGAnimatedLength
-getWidthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWidth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGImageElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.width Mozilla SVGImageElement.width documentation> 
-getWidthUnchecked ::
-                  (MonadIO m) => SVGImageElement -> m SVGAnimatedLength
-getWidthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getWidth (self)))
+getWidth :: (MonadIO m) => SVGImageElement -> m SVGAnimatedLength
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        SVGImageElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.height Mozilla SVGImageElement.height documentation> 
-getHeight ::
-          (MonadIO m) => SVGImageElement -> m (Maybe SVGAnimatedLength)
-getHeight self = liftIO (nullableToMaybe <$> (js_getHeight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.height Mozilla SVGImageElement.height documentation> 
-getHeightUnsafe ::
-                (MonadIO m, HasCallStack) => SVGImageElement -> m SVGAnimatedLength
-getHeightUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHeight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGImageElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.height Mozilla SVGImageElement.height documentation> 
-getHeightUnchecked ::
-                   (MonadIO m) => SVGImageElement -> m SVGAnimatedLength
-getHeightUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHeight (self)))
+getHeight :: (MonadIO m) => SVGImageElement -> m SVGAnimatedLength
+getHeight self = liftIO (js_getHeight self)
  
 foreign import javascript unsafe "$1[\"preserveAspectRatio\"]"
         js_getPreserveAspectRatio ::
-        SVGImageElement -> IO (Nullable SVGAnimatedPreserveAspectRatio)
+        SVGImageElement -> IO SVGAnimatedPreserveAspectRatio
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.preserveAspectRatio Mozilla SVGImageElement.preserveAspectRatio documentation> 
 getPreserveAspectRatio ::
-                       (MonadIO m) =>
-                         SVGImageElement -> m (Maybe SVGAnimatedPreserveAspectRatio)
+                       (MonadIO m) => SVGImageElement -> m SVGAnimatedPreserveAspectRatio
 getPreserveAspectRatio self
-  = liftIO (nullableToMaybe <$> (js_getPreserveAspectRatio (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.preserveAspectRatio Mozilla SVGImageElement.preserveAspectRatio documentation> 
-getPreserveAspectRatioUnsafe ::
-                             (MonadIO m, HasCallStack) =>
-                               SVGImageElement -> m SVGAnimatedPreserveAspectRatio
-getPreserveAspectRatioUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPreserveAspectRatio (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement.preserveAspectRatio Mozilla SVGImageElement.preserveAspectRatio documentation> 
-getPreserveAspectRatioUnchecked ::
-                                (MonadIO m) => SVGImageElement -> m SVGAnimatedPreserveAspectRatio
-getPreserveAspectRatioUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPreserveAspectRatio (self)))
+  = liftIO (js_getPreserveAspectRatio self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGLength.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGLength.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGLength.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGLength.hs
@@ -16,14 +16,13 @@
         js_setValueInSpecifiedUnits, setValueInSpecifiedUnits,
         js_getValueInSpecifiedUnits, getValueInSpecifiedUnits,
         js_setValueAsString, setValueAsString, js_getValueAsString,
-        getValueAsString, getValueAsStringUnsafe,
-        getValueAsStringUnchecked, SVGLength(..), gTypeSVGLength)
+        getValueAsString, SVGLength(..), gTypeSVGLength)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -32,6 +31,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -46,7 +46,7 @@
                        (MonadIO m) => SVGLength -> Word -> Float -> m ()
 newValueSpecifiedUnits self unitType valueInSpecifiedUnits
   = liftIO
-      (js_newValueSpecifiedUnits (self) unitType valueInSpecifiedUnits)
+      (js_newValueSpecifiedUnits self unitType valueInSpecifiedUnits)
  
 foreign import javascript unsafe
         "$1[\"convertToSpecifiedUnits\"]($2)" js_convertToSpecifiedUnits ::
@@ -55,7 +55,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength.convertToSpecifiedUnits Mozilla SVGLength.convertToSpecifiedUnits documentation> 
 convertToSpecifiedUnits :: (MonadIO m) => SVGLength -> Word -> m ()
 convertToSpecifiedUnits self unitType
-  = liftIO (js_convertToSpecifiedUnits (self) unitType)
+  = liftIO (js_convertToSpecifiedUnits self unitType)
 pattern SVG_LENGTHTYPE_UNKNOWN = 0
 pattern SVG_LENGTHTYPE_NUMBER = 1
 pattern SVG_LENGTHTYPE_PERCENTAGE = 2
@@ -73,21 +73,21 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength.unitType Mozilla SVGLength.unitType documentation> 
 getUnitType :: (MonadIO m) => SVGLength -> m Word
-getUnitType self = liftIO (js_getUnitType (self))
+getUnitType self = liftIO (js_getUnitType self)
  
 foreign import javascript unsafe "$1[\"value\"] = $2;" js_setValue
         :: SVGLength -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength.value Mozilla SVGLength.value documentation> 
 setValue :: (MonadIO m) => SVGLength -> Float -> m ()
-setValue self val = liftIO (js_setValue (self) val)
+setValue self val = liftIO (js_setValue self val)
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         SVGLength -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength.value Mozilla SVGLength.value documentation> 
 getValue :: (MonadIO m) => SVGLength -> m Float
-getValue self = liftIO (js_getValue (self))
+getValue self = liftIO (js_getValue self)
  
 foreign import javascript unsafe
         "$1[\"valueInSpecifiedUnits\"] = $2;" js_setValueInSpecifiedUnits
@@ -97,7 +97,7 @@
 setValueInSpecifiedUnits ::
                          (MonadIO m) => SVGLength -> Float -> m ()
 setValueInSpecifiedUnits self val
-  = liftIO (js_setValueInSpecifiedUnits (self) val)
+  = liftIO (js_setValueInSpecifiedUnits self val)
  
 foreign import javascript unsafe "$1[\"valueInSpecifiedUnits\"]"
         js_getValueInSpecifiedUnits :: SVGLength -> IO Float
@@ -105,38 +105,22 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength.valueInSpecifiedUnits Mozilla SVGLength.valueInSpecifiedUnits documentation> 
 getValueInSpecifiedUnits :: (MonadIO m) => SVGLength -> m Float
 getValueInSpecifiedUnits self
-  = liftIO (js_getValueInSpecifiedUnits (self))
+  = liftIO (js_getValueInSpecifiedUnits self)
  
 foreign import javascript unsafe "$1[\"valueAsString\"] = $2;"
-        js_setValueAsString :: SVGLength -> Nullable JSString -> IO ()
+        js_setValueAsString :: SVGLength -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength.valueAsString Mozilla SVGLength.valueAsString documentation> 
 setValueAsString ::
-                 (MonadIO m, ToJSString val) => SVGLength -> Maybe val -> m ()
+                 (MonadIO m, ToJSString val) => SVGLength -> val -> m ()
 setValueAsString self val
-  = liftIO (js_setValueAsString (self) (toMaybeJSString val))
+  = liftIO (js_setValueAsString self (toJSString val))
  
 foreign import javascript unsafe "$1[\"valueAsString\"]"
-        js_getValueAsString :: SVGLength -> IO (Nullable JSString)
+        js_getValueAsString :: SVGLength -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength.valueAsString Mozilla SVGLength.valueAsString documentation> 
 getValueAsString ::
-                 (MonadIO m, FromJSString result) => SVGLength -> m (Maybe result)
+                 (MonadIO m, FromJSString result) => SVGLength -> m result
 getValueAsString self
-  = liftIO (fromMaybeJSString <$> (js_getValueAsString (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength.valueAsString Mozilla SVGLength.valueAsString documentation> 
-getValueAsStringUnsafe ::
-                       (MonadIO m, HasCallStack, FromJSString result) =>
-                         SVGLength -> m result
-getValueAsStringUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getValueAsString (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength.valueAsString Mozilla SVGLength.valueAsString documentation> 
-getValueAsStringUnchecked ::
-                          (MonadIO m, FromJSString result) => SVGLength -> m result
-getValueAsStringUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getValueAsString (self)))
+  = liftIO (fromJSString <$> (js_getValueAsString self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGLengthList.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGLengthList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGLengthList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGLengthList.hs
@@ -5,21 +5,17 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGLengthList
        (js_clear, clear, js_initialize, initialize, initialize_,
-        initializeUnsafe, initializeUnchecked, js_getItem, getItem,
-        getItem_, getItemUnsafe, getItemUnchecked, js_insertItemBefore,
-        insertItemBefore, insertItemBefore_, insertItemBeforeUnsafe,
-        insertItemBeforeUnchecked, js_replaceItem, replaceItem,
-        replaceItem_, replaceItemUnsafe, replaceItemUnchecked,
-        js_removeItem, removeItem, removeItem_, removeItemUnsafe,
-        removeItemUnchecked, js_appendItem, appendItem, appendItem_,
-        appendItemUnsafe, appendItemUnchecked, js_getNumberOfItems,
+        js_getItem, getItem, getItem_, js_insertItemBefore,
+        insertItemBefore, insertItemBefore_, js_replaceItem, replaceItem,
+        replaceItem_, js_removeItem, removeItem, removeItem_,
+        js_appendItem, appendItem, appendItem_, js_getNumberOfItems,
         getNumberOfItems, SVGLengthList(..), gTypeSVGLengthList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -38,218 +35,89 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.clear Mozilla SVGLengthList.clear documentation> 
 clear :: (MonadIO m) => SVGLengthList -> m ()
-clear self = liftIO (js_clear (self))
+clear self = liftIO (js_clear self)
  
 foreign import javascript unsafe "$1[\"initialize\"]($2)"
-        js_initialize ::
-        SVGLengthList -> Nullable SVGLength -> IO (Nullable SVGLength)
+        js_initialize :: SVGLengthList -> SVGLength -> IO SVGLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.initialize Mozilla SVGLengthList.initialize documentation> 
 initialize ::
-           (MonadIO m) =>
-             SVGLengthList -> Maybe SVGLength -> m (Maybe SVGLength)
-initialize self item
-  = liftIO
-      (nullableToMaybe <$> (js_initialize (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.initialize Mozilla SVGLengthList.initialize documentation> 
-initialize_ ::
-            (MonadIO m) => SVGLengthList -> Maybe SVGLength -> m ()
-initialize_ self item
-  = liftIO (void (js_initialize (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.initialize Mozilla SVGLengthList.initialize documentation> 
-initializeUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGLengthList -> Maybe SVGLength -> m SVGLength
-initializeUnsafe self item
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_initialize (self) (maybeToNullable item)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+           (MonadIO m) => SVGLengthList -> SVGLength -> m SVGLength
+initialize self item = liftIO (js_initialize self item)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.initialize Mozilla SVGLengthList.initialize documentation> 
-initializeUnchecked ::
-                    (MonadIO m) => SVGLengthList -> Maybe SVGLength -> m SVGLength
-initializeUnchecked self item
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_initialize (self) (maybeToNullable item)))
+initialize_ :: (MonadIO m) => SVGLengthList -> SVGLength -> m ()
+initialize_ self item = liftIO (void (js_initialize self item))
  
 foreign import javascript unsafe "$1[\"getItem\"]($2)" js_getItem
-        :: SVGLengthList -> Word -> IO (Nullable SVGLength)
+        :: SVGLengthList -> Word -> IO SVGLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.getItem Mozilla SVGLengthList.getItem documentation> 
-getItem ::
-        (MonadIO m) => SVGLengthList -> Word -> m (Maybe SVGLength)
-getItem self index
-  = liftIO (nullableToMaybe <$> (js_getItem (self) index))
+getItem :: (MonadIO m) => SVGLengthList -> Word -> m SVGLength
+getItem self index = liftIO (js_getItem self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.getItem Mozilla SVGLengthList.getItem documentation> 
 getItem_ :: (MonadIO m) => SVGLengthList -> Word -> m ()
-getItem_ self index = liftIO (void (js_getItem (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.getItem Mozilla SVGLengthList.getItem documentation> 
-getItemUnsafe ::
-              (MonadIO m, HasCallStack) => SVGLengthList -> Word -> m SVGLength
-getItemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_getItem (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.getItem Mozilla SVGLengthList.getItem documentation> 
-getItemUnchecked ::
-                 (MonadIO m) => SVGLengthList -> Word -> m SVGLength
-getItemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_getItem (self) index))
+getItem_ self index = liftIO (void (js_getItem self index))
  
 foreign import javascript unsafe "$1[\"insertItemBefore\"]($2, $3)"
         js_insertItemBefore ::
-        SVGLengthList ->
-          Nullable SVGLength -> Word -> IO (Nullable SVGLength)
+        SVGLengthList -> SVGLength -> Word -> IO SVGLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.insertItemBefore Mozilla SVGLengthList.insertItemBefore documentation> 
 insertItemBefore ::
-                 (MonadIO m) =>
-                   SVGLengthList -> Maybe SVGLength -> Word -> m (Maybe SVGLength)
+                 (MonadIO m) => SVGLengthList -> SVGLength -> Word -> m SVGLength
 insertItemBefore self item index
-  = liftIO
-      (nullableToMaybe <$>
-         (js_insertItemBefore (self) (maybeToNullable item) index))
+  = liftIO (js_insertItemBefore self item index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.insertItemBefore Mozilla SVGLengthList.insertItemBefore documentation> 
 insertItemBefore_ ::
-                  (MonadIO m) => SVGLengthList -> Maybe SVGLength -> Word -> m ()
+                  (MonadIO m) => SVGLengthList -> SVGLength -> Word -> m ()
 insertItemBefore_ self item index
-  = liftIO
-      (void (js_insertItemBefore (self) (maybeToNullable item) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.insertItemBefore Mozilla SVGLengthList.insertItemBefore documentation> 
-insertItemBeforeUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         SVGLengthList -> Maybe SVGLength -> Word -> m SVGLength
-insertItemBeforeUnsafe self item index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_insertItemBefore (self) (maybeToNullable item) index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.insertItemBefore Mozilla SVGLengthList.insertItemBefore documentation> 
-insertItemBeforeUnchecked ::
-                          (MonadIO m) =>
-                            SVGLengthList -> Maybe SVGLength -> Word -> m SVGLength
-insertItemBeforeUnchecked self item index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_insertItemBefore (self) (maybeToNullable item) index))
+  = liftIO (void (js_insertItemBefore self item index))
  
 foreign import javascript unsafe "$1[\"replaceItem\"]($2, $3)"
         js_replaceItem ::
-        SVGLengthList ->
-          Nullable SVGLength -> Word -> IO (Nullable SVGLength)
+        SVGLengthList -> SVGLength -> Word -> IO SVGLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.replaceItem Mozilla SVGLengthList.replaceItem documentation> 
 replaceItem ::
-            (MonadIO m) =>
-              SVGLengthList -> Maybe SVGLength -> Word -> m (Maybe SVGLength)
+            (MonadIO m) => SVGLengthList -> SVGLength -> Word -> m SVGLength
 replaceItem self item index
-  = liftIO
-      (nullableToMaybe <$>
-         (js_replaceItem (self) (maybeToNullable item) index))
+  = liftIO (js_replaceItem self item index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.replaceItem Mozilla SVGLengthList.replaceItem documentation> 
 replaceItem_ ::
-             (MonadIO m) => SVGLengthList -> Maybe SVGLength -> Word -> m ()
+             (MonadIO m) => SVGLengthList -> SVGLength -> Word -> m ()
 replaceItem_ self item index
-  = liftIO
-      (void (js_replaceItem (self) (maybeToNullable item) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.replaceItem Mozilla SVGLengthList.replaceItem documentation> 
-replaceItemUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    SVGLengthList -> Maybe SVGLength -> Word -> m SVGLength
-replaceItemUnsafe self item index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_replaceItem (self) (maybeToNullable item) index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.replaceItem Mozilla SVGLengthList.replaceItem documentation> 
-replaceItemUnchecked ::
-                     (MonadIO m) =>
-                       SVGLengthList -> Maybe SVGLength -> Word -> m SVGLength
-replaceItemUnchecked self item index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_replaceItem (self) (maybeToNullable item) index))
+  = liftIO (void (js_replaceItem self item index))
  
 foreign import javascript unsafe "$1[\"removeItem\"]($2)"
-        js_removeItem :: SVGLengthList -> Word -> IO (Nullable SVGLength)
+        js_removeItem :: SVGLengthList -> Word -> IO SVGLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.removeItem Mozilla SVGLengthList.removeItem documentation> 
-removeItem ::
-           (MonadIO m) => SVGLengthList -> Word -> m (Maybe SVGLength)
-removeItem self index
-  = liftIO (nullableToMaybe <$> (js_removeItem (self) index))
+removeItem :: (MonadIO m) => SVGLengthList -> Word -> m SVGLength
+removeItem self index = liftIO (js_removeItem self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.removeItem Mozilla SVGLengthList.removeItem documentation> 
 removeItem_ :: (MonadIO m) => SVGLengthList -> Word -> m ()
-removeItem_ self index = liftIO (void (js_removeItem (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.removeItem Mozilla SVGLengthList.removeItem documentation> 
-removeItemUnsafe ::
-                 (MonadIO m, HasCallStack) => SVGLengthList -> Word -> m SVGLength
-removeItemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_removeItem (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.removeItem Mozilla SVGLengthList.removeItem documentation> 
-removeItemUnchecked ::
-                    (MonadIO m) => SVGLengthList -> Word -> m SVGLength
-removeItemUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_removeItem (self) index))
+removeItem_ self index = liftIO (void (js_removeItem self index))
  
 foreign import javascript unsafe "$1[\"appendItem\"]($2)"
-        js_appendItem ::
-        SVGLengthList -> Nullable SVGLength -> IO (Nullable SVGLength)
+        js_appendItem :: SVGLengthList -> SVGLength -> IO SVGLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.appendItem Mozilla SVGLengthList.appendItem documentation> 
 appendItem ::
-           (MonadIO m) =>
-             SVGLengthList -> Maybe SVGLength -> m (Maybe SVGLength)
-appendItem self item
-  = liftIO
-      (nullableToMaybe <$> (js_appendItem (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.appendItem Mozilla SVGLengthList.appendItem documentation> 
-appendItem_ ::
-            (MonadIO m) => SVGLengthList -> Maybe SVGLength -> m ()
-appendItem_ self item
-  = liftIO (void (js_appendItem (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.appendItem Mozilla SVGLengthList.appendItem documentation> 
-appendItemUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGLengthList -> Maybe SVGLength -> m SVGLength
-appendItemUnsafe self item
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_appendItem (self) (maybeToNullable item)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+           (MonadIO m) => SVGLengthList -> SVGLength -> m SVGLength
+appendItem self item = liftIO (js_appendItem self item)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.appendItem Mozilla SVGLengthList.appendItem documentation> 
-appendItemUnchecked ::
-                    (MonadIO m) => SVGLengthList -> Maybe SVGLength -> m SVGLength
-appendItemUnchecked self item
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_appendItem (self) (maybeToNullable item)))
+appendItem_ :: (MonadIO m) => SVGLengthList -> SVGLength -> m ()
+appendItem_ self item = liftIO (void (js_appendItem self item))
  
 foreign import javascript unsafe "$1[\"numberOfItems\"]"
         js_getNumberOfItems :: SVGLengthList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList.numberOfItems Mozilla SVGLengthList.numberOfItems documentation> 
 getNumberOfItems :: (MonadIO m) => SVGLengthList -> m Word
-getNumberOfItems self = liftIO (js_getNumberOfItems (self))
+getNumberOfItems self = liftIO (js_getNumberOfItems self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGLineElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGLineElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGLineElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGLineElement.hs
@@ -4,16 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGLineElement
-       (js_getX1, getX1, getX1Unsafe, getX1Unchecked, js_getY1, getY1,
-        getY1Unsafe, getY1Unchecked, js_getX2, getX2, getX2Unsafe,
-        getX2Unchecked, js_getY2, getY2, getY2Unsafe, getY2Unchecked,
-        SVGLineElement(..), gTypeSVGLineElement)
+       (js_getX1, getX1, js_getY1, getY1, js_getX2, getX2, js_getY2,
+        getY2, SVGLineElement(..), gTypeSVGLineElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,95 +20,36 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"x1\"]" js_getX1 ::
-        SVGLineElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.x1 Mozilla SVGLineElement.x1 documentation> 
-getX1 ::
-      (MonadIO m) => SVGLineElement -> m (Maybe SVGAnimatedLength)
-getX1 self = liftIO (nullableToMaybe <$> (js_getX1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.x1 Mozilla SVGLineElement.x1 documentation> 
-getX1Unsafe ::
-            (MonadIO m, HasCallStack) => SVGLineElement -> m SVGAnimatedLength
-getX1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGLineElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.x1 Mozilla SVGLineElement.x1 documentation> 
-getX1Unchecked ::
-               (MonadIO m) => SVGLineElement -> m SVGAnimatedLength
-getX1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX1 (self)))
+getX1 :: (MonadIO m) => SVGLineElement -> m SVGAnimatedLength
+getX1 self = liftIO (js_getX1 self)
  
 foreign import javascript unsafe "$1[\"y1\"]" js_getY1 ::
-        SVGLineElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.y1 Mozilla SVGLineElement.y1 documentation> 
-getY1 ::
-      (MonadIO m) => SVGLineElement -> m (Maybe SVGAnimatedLength)
-getY1 self = liftIO (nullableToMaybe <$> (js_getY1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.y1 Mozilla SVGLineElement.y1 documentation> 
-getY1Unsafe ::
-            (MonadIO m, HasCallStack) => SVGLineElement -> m SVGAnimatedLength
-getY1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGLineElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.y1 Mozilla SVGLineElement.y1 documentation> 
-getY1Unchecked ::
-               (MonadIO m) => SVGLineElement -> m SVGAnimatedLength
-getY1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY1 (self)))
+getY1 :: (MonadIO m) => SVGLineElement -> m SVGAnimatedLength
+getY1 self = liftIO (js_getY1 self)
  
 foreign import javascript unsafe "$1[\"x2\"]" js_getX2 ::
-        SVGLineElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.x2 Mozilla SVGLineElement.x2 documentation> 
-getX2 ::
-      (MonadIO m) => SVGLineElement -> m (Maybe SVGAnimatedLength)
-getX2 self = liftIO (nullableToMaybe <$> (js_getX2 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.x2 Mozilla SVGLineElement.x2 documentation> 
-getX2Unsafe ::
-            (MonadIO m, HasCallStack) => SVGLineElement -> m SVGAnimatedLength
-getX2Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX2 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGLineElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.x2 Mozilla SVGLineElement.x2 documentation> 
-getX2Unchecked ::
-               (MonadIO m) => SVGLineElement -> m SVGAnimatedLength
-getX2Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX2 (self)))
+getX2 :: (MonadIO m) => SVGLineElement -> m SVGAnimatedLength
+getX2 self = liftIO (js_getX2 self)
  
 foreign import javascript unsafe "$1[\"y2\"]" js_getY2 ::
-        SVGLineElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.y2 Mozilla SVGLineElement.y2 documentation> 
-getY2 ::
-      (MonadIO m) => SVGLineElement -> m (Maybe SVGAnimatedLength)
-getY2 self = liftIO (nullableToMaybe <$> (js_getY2 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.y2 Mozilla SVGLineElement.y2 documentation> 
-getY2Unsafe ::
-            (MonadIO m, HasCallStack) => SVGLineElement -> m SVGAnimatedLength
-getY2Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY2 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGLineElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement.y2 Mozilla SVGLineElement.y2 documentation> 
-getY2Unchecked ::
-               (MonadIO m) => SVGLineElement -> m SVGAnimatedLength
-getY2Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY2 (self)))
+getY2 :: (MonadIO m) => SVGLineElement -> m SVGAnimatedLength
+getY2 self = liftIO (js_getY2 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGLinearGradientElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGLinearGradientElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGLinearGradientElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGLinearGradientElement.hs
@@ -4,16 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGLinearGradientElement
-       (js_getX1, getX1, getX1Unsafe, getX1Unchecked, js_getY1, getY1,
-        getY1Unsafe, getY1Unchecked, js_getX2, getX2, getX2Unsafe,
-        getX2Unchecked, js_getY2, getY2, getY2Unsafe, getY2Unchecked,
-        SVGLinearGradientElement(..), gTypeSVGLinearGradientElement)
+       (js_getX1, getX1, js_getY1, getY1, js_getX2, getX2, js_getY2,
+        getY2, SVGLinearGradientElement(..), gTypeSVGLinearGradientElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,103 +20,40 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"x1\"]" js_getX1 ::
-        SVGLinearGradientElement -> IO (Nullable SVGAnimatedLength)
+        SVGLinearGradientElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.x1 Mozilla SVGLinearGradientElement.x1 documentation> 
 getX1 ::
-      (MonadIO m) =>
-        SVGLinearGradientElement -> m (Maybe SVGAnimatedLength)
-getX1 self = liftIO (nullableToMaybe <$> (js_getX1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.x1 Mozilla SVGLinearGradientElement.x1 documentation> 
-getX1Unsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGLinearGradientElement -> m SVGAnimatedLength
-getX1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.x1 Mozilla SVGLinearGradientElement.x1 documentation> 
-getX1Unchecked ::
-               (MonadIO m) => SVGLinearGradientElement -> m SVGAnimatedLength
-getX1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX1 (self)))
+      (MonadIO m) => SVGLinearGradientElement -> m SVGAnimatedLength
+getX1 self = liftIO (js_getX1 self)
  
 foreign import javascript unsafe "$1[\"y1\"]" js_getY1 ::
-        SVGLinearGradientElement -> IO (Nullable SVGAnimatedLength)
+        SVGLinearGradientElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.y1 Mozilla SVGLinearGradientElement.y1 documentation> 
 getY1 ::
-      (MonadIO m) =>
-        SVGLinearGradientElement -> m (Maybe SVGAnimatedLength)
-getY1 self = liftIO (nullableToMaybe <$> (js_getY1 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.y1 Mozilla SVGLinearGradientElement.y1 documentation> 
-getY1Unsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGLinearGradientElement -> m SVGAnimatedLength
-getY1Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY1 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.y1 Mozilla SVGLinearGradientElement.y1 documentation> 
-getY1Unchecked ::
-               (MonadIO m) => SVGLinearGradientElement -> m SVGAnimatedLength
-getY1Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY1 (self)))
+      (MonadIO m) => SVGLinearGradientElement -> m SVGAnimatedLength
+getY1 self = liftIO (js_getY1 self)
  
 foreign import javascript unsafe "$1[\"x2\"]" js_getX2 ::
-        SVGLinearGradientElement -> IO (Nullable SVGAnimatedLength)
+        SVGLinearGradientElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.x2 Mozilla SVGLinearGradientElement.x2 documentation> 
 getX2 ::
-      (MonadIO m) =>
-        SVGLinearGradientElement -> m (Maybe SVGAnimatedLength)
-getX2 self = liftIO (nullableToMaybe <$> (js_getX2 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.x2 Mozilla SVGLinearGradientElement.x2 documentation> 
-getX2Unsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGLinearGradientElement -> m SVGAnimatedLength
-getX2Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX2 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.x2 Mozilla SVGLinearGradientElement.x2 documentation> 
-getX2Unchecked ::
-               (MonadIO m) => SVGLinearGradientElement -> m SVGAnimatedLength
-getX2Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX2 (self)))
+      (MonadIO m) => SVGLinearGradientElement -> m SVGAnimatedLength
+getX2 self = liftIO (js_getX2 self)
  
 foreign import javascript unsafe "$1[\"y2\"]" js_getY2 ::
-        SVGLinearGradientElement -> IO (Nullable SVGAnimatedLength)
+        SVGLinearGradientElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.y2 Mozilla SVGLinearGradientElement.y2 documentation> 
 getY2 ::
-      (MonadIO m) =>
-        SVGLinearGradientElement -> m (Maybe SVGAnimatedLength)
-getY2 self = liftIO (nullableToMaybe <$> (js_getY2 (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.y2 Mozilla SVGLinearGradientElement.y2 documentation> 
-getY2Unsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGLinearGradientElement -> m SVGAnimatedLength
-getY2Unsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY2 (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement.y2 Mozilla SVGLinearGradientElement.y2 documentation> 
-getY2Unchecked ::
-               (MonadIO m) => SVGLinearGradientElement -> m SVGAnimatedLength
-getY2Unchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY2 (self)))
+      (MonadIO m) => SVGLinearGradientElement -> m SVGAnimatedLength
+getY2 self = liftIO (js_getY2 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGMarkerElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGMarkerElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGMarkerElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGMarkerElement.hs
@@ -9,22 +9,17 @@
         pattern SVG_MARKERUNITS_USERSPACEONUSE,
         pattern SVG_MARKERUNITS_STROKEWIDTH,
         pattern SVG_MARKER_ORIENT_UNKNOWN, pattern SVG_MARKER_ORIENT_AUTO,
-        pattern SVG_MARKER_ORIENT_ANGLE, js_getRefX, getRefX,
-        getRefXUnsafe, getRefXUnchecked, js_getRefY, getRefY,
-        getRefYUnsafe, getRefYUnchecked, js_getMarkerUnits, getMarkerUnits,
-        getMarkerUnitsUnsafe, getMarkerUnitsUnchecked, js_getMarkerWidth,
-        getMarkerWidth, getMarkerWidthUnsafe, getMarkerWidthUnchecked,
-        js_getMarkerHeight, getMarkerHeight, getMarkerHeightUnsafe,
-        getMarkerHeightUnchecked, js_getOrientType, getOrientType,
-        getOrientTypeUnsafe, getOrientTypeUnchecked, js_getOrientAngle,
-        getOrientAngle, getOrientAngleUnsafe, getOrientAngleUnchecked,
+        pattern SVG_MARKER_ORIENT_ANGLE, js_getRefX, getRefX, js_getRefY,
+        getRefY, js_getMarkerUnits, getMarkerUnits, js_getMarkerWidth,
+        getMarkerWidth, js_getMarkerHeight, getMarkerHeight,
+        js_getOrientType, getOrientType, js_getOrientAngle, getOrientAngle,
         SVGMarkerElement(..), gTypeSVGMarkerElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -33,6 +28,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -43,17 +39,16 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.setOrientToAuto Mozilla SVGMarkerElement.setOrientToAuto documentation> 
 setOrientToAuto :: (MonadIO m) => SVGMarkerElement -> m ()
-setOrientToAuto self = liftIO (js_setOrientToAuto (self))
+setOrientToAuto self = liftIO (js_setOrientToAuto self)
  
 foreign import javascript unsafe "$1[\"setOrientToAngle\"]($2)"
-        js_setOrientToAngle ::
-        SVGMarkerElement -> Nullable SVGAngle -> IO ()
+        js_setOrientToAngle :: SVGMarkerElement -> SVGAngle -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.setOrientToAngle Mozilla SVGMarkerElement.setOrientToAngle documentation> 
 setOrientToAngle ::
-                 (MonadIO m) => SVGMarkerElement -> Maybe SVGAngle -> m ()
+                 (MonadIO m) => SVGMarkerElement -> SVGAngle -> m ()
 setOrientToAngle self angle
-  = liftIO (js_setOrientToAngle (self) (maybeToNullable angle))
+  = liftIO (js_setOrientToAngle self angle)
 pattern SVG_MARKERUNITS_UNKNOWN = 0
 pattern SVG_MARKERUNITS_USERSPACEONUSE = 1
 pattern SVG_MARKERUNITS_STROKEWIDTH = 2
@@ -62,175 +57,55 @@
 pattern SVG_MARKER_ORIENT_ANGLE = 2
  
 foreign import javascript unsafe "$1[\"refX\"]" js_getRefX ::
-        SVGMarkerElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.refX Mozilla SVGMarkerElement.refX documentation> 
-getRefX ::
-        (MonadIO m) => SVGMarkerElement -> m (Maybe SVGAnimatedLength)
-getRefX self = liftIO (nullableToMaybe <$> (js_getRefX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.refX Mozilla SVGMarkerElement.refX documentation> 
-getRefXUnsafe ::
-              (MonadIO m, HasCallStack) =>
-                SVGMarkerElement -> m SVGAnimatedLength
-getRefXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRefX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGMarkerElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.refX Mozilla SVGMarkerElement.refX documentation> 
-getRefXUnchecked ::
-                 (MonadIO m) => SVGMarkerElement -> m SVGAnimatedLength
-getRefXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRefX (self)))
+getRefX :: (MonadIO m) => SVGMarkerElement -> m SVGAnimatedLength
+getRefX self = liftIO (js_getRefX self)
  
 foreign import javascript unsafe "$1[\"refY\"]" js_getRefY ::
-        SVGMarkerElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.refY Mozilla SVGMarkerElement.refY documentation> 
-getRefY ::
-        (MonadIO m) => SVGMarkerElement -> m (Maybe SVGAnimatedLength)
-getRefY self = liftIO (nullableToMaybe <$> (js_getRefY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.refY Mozilla SVGMarkerElement.refY documentation> 
-getRefYUnsafe ::
-              (MonadIO m, HasCallStack) =>
-                SVGMarkerElement -> m SVGAnimatedLength
-getRefYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRefY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGMarkerElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.refY Mozilla SVGMarkerElement.refY documentation> 
-getRefYUnchecked ::
-                 (MonadIO m) => SVGMarkerElement -> m SVGAnimatedLength
-getRefYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRefY (self)))
+getRefY :: (MonadIO m) => SVGMarkerElement -> m SVGAnimatedLength
+getRefY self = liftIO (js_getRefY self)
  
 foreign import javascript unsafe "$1[\"markerUnits\"]"
-        js_getMarkerUnits ::
-        SVGMarkerElement -> IO (Nullable SVGAnimatedEnumeration)
+        js_getMarkerUnits :: SVGMarkerElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerUnits Mozilla SVGMarkerElement.markerUnits documentation> 
 getMarkerUnits ::
-               (MonadIO m) => SVGMarkerElement -> m (Maybe SVGAnimatedEnumeration)
-getMarkerUnits self
-  = liftIO (nullableToMaybe <$> (js_getMarkerUnits (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerUnits Mozilla SVGMarkerElement.markerUnits documentation> 
-getMarkerUnitsUnsafe ::
-                     (MonadIO m, HasCallStack) =>
-                       SVGMarkerElement -> m SVGAnimatedEnumeration
-getMarkerUnitsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMarkerUnits (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerUnits Mozilla SVGMarkerElement.markerUnits documentation> 
-getMarkerUnitsUnchecked ::
-                        (MonadIO m) => SVGMarkerElement -> m SVGAnimatedEnumeration
-getMarkerUnitsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getMarkerUnits (self)))
+               (MonadIO m) => SVGMarkerElement -> m SVGAnimatedEnumeration
+getMarkerUnits self = liftIO (js_getMarkerUnits self)
  
 foreign import javascript unsafe "$1[\"markerWidth\"]"
-        js_getMarkerWidth ::
-        SVGMarkerElement -> IO (Nullable SVGAnimatedLength)
+        js_getMarkerWidth :: SVGMarkerElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerWidth Mozilla SVGMarkerElement.markerWidth documentation> 
 getMarkerWidth ::
-               (MonadIO m) => SVGMarkerElement -> m (Maybe SVGAnimatedLength)
-getMarkerWidth self
-  = liftIO (nullableToMaybe <$> (js_getMarkerWidth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerWidth Mozilla SVGMarkerElement.markerWidth documentation> 
-getMarkerWidthUnsafe ::
-                     (MonadIO m, HasCallStack) =>
-                       SVGMarkerElement -> m SVGAnimatedLength
-getMarkerWidthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMarkerWidth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerWidth Mozilla SVGMarkerElement.markerWidth documentation> 
-getMarkerWidthUnchecked ::
-                        (MonadIO m) => SVGMarkerElement -> m SVGAnimatedLength
-getMarkerWidthUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getMarkerWidth (self)))
+               (MonadIO m) => SVGMarkerElement -> m SVGAnimatedLength
+getMarkerWidth self = liftIO (js_getMarkerWidth self)
  
 foreign import javascript unsafe "$1[\"markerHeight\"]"
-        js_getMarkerHeight ::
-        SVGMarkerElement -> IO (Nullable SVGAnimatedLength)
+        js_getMarkerHeight :: SVGMarkerElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerHeight Mozilla SVGMarkerElement.markerHeight documentation> 
 getMarkerHeight ::
-                (MonadIO m) => SVGMarkerElement -> m (Maybe SVGAnimatedLength)
-getMarkerHeight self
-  = liftIO (nullableToMaybe <$> (js_getMarkerHeight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerHeight Mozilla SVGMarkerElement.markerHeight documentation> 
-getMarkerHeightUnsafe ::
-                      (MonadIO m, HasCallStack) =>
-                        SVGMarkerElement -> m SVGAnimatedLength
-getMarkerHeightUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMarkerHeight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.markerHeight Mozilla SVGMarkerElement.markerHeight documentation> 
-getMarkerHeightUnchecked ::
-                         (MonadIO m) => SVGMarkerElement -> m SVGAnimatedLength
-getMarkerHeightUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getMarkerHeight (self)))
+                (MonadIO m) => SVGMarkerElement -> m SVGAnimatedLength
+getMarkerHeight self = liftIO (js_getMarkerHeight self)
  
 foreign import javascript unsafe "$1[\"orientType\"]"
-        js_getOrientType ::
-        SVGMarkerElement -> IO (Nullable SVGAnimatedEnumeration)
+        js_getOrientType :: SVGMarkerElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.orientType Mozilla SVGMarkerElement.orientType documentation> 
 getOrientType ::
-              (MonadIO m) => SVGMarkerElement -> m (Maybe SVGAnimatedEnumeration)
-getOrientType self
-  = liftIO (nullableToMaybe <$> (js_getOrientType (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.orientType Mozilla SVGMarkerElement.orientType documentation> 
-getOrientTypeUnsafe ::
-                    (MonadIO m, HasCallStack) =>
-                      SVGMarkerElement -> m SVGAnimatedEnumeration
-getOrientTypeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOrientType (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.orientType Mozilla SVGMarkerElement.orientType documentation> 
-getOrientTypeUnchecked ::
-                       (MonadIO m) => SVGMarkerElement -> m SVGAnimatedEnumeration
-getOrientTypeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getOrientType (self)))
+              (MonadIO m) => SVGMarkerElement -> m SVGAnimatedEnumeration
+getOrientType self = liftIO (js_getOrientType self)
  
 foreign import javascript unsafe "$1[\"orientAngle\"]"
-        js_getOrientAngle ::
-        SVGMarkerElement -> IO (Nullable SVGAnimatedAngle)
+        js_getOrientAngle :: SVGMarkerElement -> IO SVGAnimatedAngle
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.orientAngle Mozilla SVGMarkerElement.orientAngle documentation> 
 getOrientAngle ::
-               (MonadIO m) => SVGMarkerElement -> m (Maybe SVGAnimatedAngle)
-getOrientAngle self
-  = liftIO (nullableToMaybe <$> (js_getOrientAngle (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.orientAngle Mozilla SVGMarkerElement.orientAngle documentation> 
-getOrientAngleUnsafe ::
-                     (MonadIO m, HasCallStack) => SVGMarkerElement -> m SVGAnimatedAngle
-getOrientAngleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOrientAngle (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement.orientAngle Mozilla SVGMarkerElement.orientAngle documentation> 
-getOrientAngleUnchecked ::
-                        (MonadIO m) => SVGMarkerElement -> m SVGAnimatedAngle
-getOrientAngleUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getOrientAngle (self)))
+               (MonadIO m) => SVGMarkerElement -> m SVGAnimatedAngle
+getOrientAngle self = liftIO (js_getOrientAngle self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGMaskElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGMaskElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGMaskElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGMaskElement.hs
@@ -4,19 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGMaskElement
-       (js_getMaskUnits, getMaskUnits, getMaskUnitsUnsafe,
-        getMaskUnitsUnchecked, js_getMaskContentUnits, getMaskContentUnits,
-        getMaskContentUnitsUnsafe, getMaskContentUnitsUnchecked, js_getX,
-        getX, getXUnsafe, getXUnchecked, js_getY, getY, getYUnsafe,
-        getYUnchecked, js_getWidth, getWidth, getWidthUnsafe,
-        getWidthUnchecked, js_getHeight, getHeight, getHeightUnsafe,
-        getHeightUnchecked, SVGMaskElement(..), gTypeSVGMaskElement)
+       (js_getMaskUnits, getMaskUnits, js_getMaskContentUnits,
+        getMaskContentUnits, js_getX, getX, js_getY, getY, js_getWidth,
+        getWidth, js_getHeight, getHeight, SVGMaskElement(..),
+        gTypeSVGMaskElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,146 +22,53 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"maskUnits\"]"
-        js_getMaskUnits ::
-        SVGMaskElement -> IO (Nullable SVGAnimatedEnumeration)
+        js_getMaskUnits :: SVGMaskElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.maskUnits Mozilla SVGMaskElement.maskUnits documentation> 
 getMaskUnits ::
-             (MonadIO m) => SVGMaskElement -> m (Maybe SVGAnimatedEnumeration)
-getMaskUnits self
-  = liftIO (nullableToMaybe <$> (js_getMaskUnits (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.maskUnits Mozilla SVGMaskElement.maskUnits documentation> 
-getMaskUnitsUnsafe ::
-                   (MonadIO m, HasCallStack) =>
-                     SVGMaskElement -> m SVGAnimatedEnumeration
-getMaskUnitsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMaskUnits (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.maskUnits Mozilla SVGMaskElement.maskUnits documentation> 
-getMaskUnitsUnchecked ::
-                      (MonadIO m) => SVGMaskElement -> m SVGAnimatedEnumeration
-getMaskUnitsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getMaskUnits (self)))
+             (MonadIO m) => SVGMaskElement -> m SVGAnimatedEnumeration
+getMaskUnits self = liftIO (js_getMaskUnits self)
  
 foreign import javascript unsafe "$1[\"maskContentUnits\"]"
         js_getMaskContentUnits ::
-        SVGMaskElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGMaskElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.maskContentUnits Mozilla SVGMaskElement.maskContentUnits documentation> 
 getMaskContentUnits ::
-                    (MonadIO m) => SVGMaskElement -> m (Maybe SVGAnimatedEnumeration)
-getMaskContentUnits self
-  = liftIO (nullableToMaybe <$> (js_getMaskContentUnits (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.maskContentUnits Mozilla SVGMaskElement.maskContentUnits documentation> 
-getMaskContentUnitsUnsafe ::
-                          (MonadIO m, HasCallStack) =>
-                            SVGMaskElement -> m SVGAnimatedEnumeration
-getMaskContentUnitsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMaskContentUnits (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.maskContentUnits Mozilla SVGMaskElement.maskContentUnits documentation> 
-getMaskContentUnitsUnchecked ::
-                             (MonadIO m) => SVGMaskElement -> m SVGAnimatedEnumeration
-getMaskContentUnitsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getMaskContentUnits (self)))
+                    (MonadIO m) => SVGMaskElement -> m SVGAnimatedEnumeration
+getMaskContentUnits self = liftIO (js_getMaskContentUnits self)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGMaskElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.x Mozilla SVGMaskElement.x documentation> 
-getX ::
-     (MonadIO m) => SVGMaskElement -> m (Maybe SVGAnimatedLength)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.x Mozilla SVGMaskElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) => SVGMaskElement -> m SVGAnimatedLength
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGMaskElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.x Mozilla SVGMaskElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m) => SVGMaskElement -> m SVGAnimatedLength
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+getX :: (MonadIO m) => SVGMaskElement -> m SVGAnimatedLength
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGMaskElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.y Mozilla SVGMaskElement.y documentation> 
-getY ::
-     (MonadIO m) => SVGMaskElement -> m (Maybe SVGAnimatedLength)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.y Mozilla SVGMaskElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) => SVGMaskElement -> m SVGAnimatedLength
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGMaskElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.y Mozilla SVGMaskElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m) => SVGMaskElement -> m SVGAnimatedLength
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+getY :: (MonadIO m) => SVGMaskElement -> m SVGAnimatedLength
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        SVGMaskElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.width Mozilla SVGMaskElement.width documentation> 
-getWidth ::
-         (MonadIO m) => SVGMaskElement -> m (Maybe SVGAnimatedLength)
-getWidth self = liftIO (nullableToMaybe <$> (js_getWidth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.width Mozilla SVGMaskElement.width documentation> 
-getWidthUnsafe ::
-               (MonadIO m, HasCallStack) => SVGMaskElement -> m SVGAnimatedLength
-getWidthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWidth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGMaskElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.width Mozilla SVGMaskElement.width documentation> 
-getWidthUnchecked ::
-                  (MonadIO m) => SVGMaskElement -> m SVGAnimatedLength
-getWidthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getWidth (self)))
+getWidth :: (MonadIO m) => SVGMaskElement -> m SVGAnimatedLength
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        SVGMaskElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.height Mozilla SVGMaskElement.height documentation> 
-getHeight ::
-          (MonadIO m) => SVGMaskElement -> m (Maybe SVGAnimatedLength)
-getHeight self = liftIO (nullableToMaybe <$> (js_getHeight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.height Mozilla SVGMaskElement.height documentation> 
-getHeightUnsafe ::
-                (MonadIO m, HasCallStack) => SVGMaskElement -> m SVGAnimatedLength
-getHeightUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHeight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGMaskElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement.height Mozilla SVGMaskElement.height documentation> 
-getHeightUnchecked ::
-                   (MonadIO m) => SVGMaskElement -> m SVGAnimatedLength
-getHeightUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHeight (self)))
+getHeight :: (MonadIO m) => SVGMaskElement -> m SVGAnimatedLength
+getHeight self = liftIO (js_getHeight self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGMatrix.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGMatrix.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGMatrix.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGMatrix.hs
@@ -4,28 +4,22 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGMatrix
-       (js_multiply, multiply, multiply_, multiplyUnsafe,
-        multiplyUnchecked, js_inverse, inverse, inverse_, inverseUnsafe,
-        inverseUnchecked, js_translate, translate, translate_,
-        translateUnsafe, translateUnchecked, js_scale, scale, scale_,
-        scaleUnsafe, scaleUnchecked, js_scaleNonUniform, scaleNonUniform,
-        scaleNonUniform_, scaleNonUniformUnsafe, scaleNonUniformUnchecked,
-        js_rotate, rotate, rotate_, rotateUnsafe, rotateUnchecked,
-        js_rotateFromVector, rotateFromVector, rotateFromVector_,
-        rotateFromVectorUnsafe, rotateFromVectorUnchecked, js_flipX, flipX,
-        flipX_, flipXUnsafe, flipXUnchecked, js_flipY, flipY, flipY_,
-        flipYUnsafe, flipYUnchecked, js_skewX, skewX, skewX_, skewXUnsafe,
-        skewXUnchecked, js_skewY, skewY, skewY_, skewYUnsafe,
-        skewYUnchecked, js_setA, setA, js_getA, getA, js_setB, setB,
-        js_getB, getB, js_setC, setC, js_getC, getC, js_setD, setD,
-        js_getD, getD, js_setE, setE, js_getE, getE, js_setF, setF,
-        js_getF, getF, SVGMatrix(..), gTypeSVGMatrix)
+       (js_multiply, multiply, multiply_, js_inverse, inverse, inverse_,
+        js_translate, translate, translate_, js_scale, scale, scale_,
+        js_scaleNonUniform, scaleNonUniform, scaleNonUniform_, js_rotate,
+        rotate, rotate_, js_rotateFromVector, rotateFromVector,
+        rotateFromVector_, js_flipX, flipX, flipX_, js_flipY, flipY,
+        flipY_, js_skewX, skewX, skewX_, js_skewY, skewY, skewY_, js_setA,
+        setA, js_getA, getA, js_setB, setB, js_getB, getB, js_setC, setC,
+        js_getC, getC, js_setD, setD, js_getD, getD, js_setE, setE,
+        js_getE, getE, js_setF, setF, js_getF, getF, SVGMatrix(..),
+        gTypeSVGMatrix)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -34,397 +28,222 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"multiply\"]($2)" js_multiply
-        :: SVGMatrix -> Nullable SVGMatrix -> IO (Nullable SVGMatrix)
+        :: SVGMatrix -> SVGMatrix -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.multiply Mozilla SVGMatrix.multiply documentation> 
-multiply ::
-         (MonadIO m) => SVGMatrix -> Maybe SVGMatrix -> m (Maybe SVGMatrix)
-multiply self secondMatrix
-  = liftIO
-      (nullableToMaybe <$>
-         (js_multiply (self) (maybeToNullable secondMatrix)))
+multiply :: (MonadIO m) => SVGMatrix -> SVGMatrix -> m SVGMatrix
+multiply self secondMatrix = liftIO (js_multiply self secondMatrix)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.multiply Mozilla SVGMatrix.multiply documentation> 
-multiply_ :: (MonadIO m) => SVGMatrix -> Maybe SVGMatrix -> m ()
+multiply_ :: (MonadIO m) => SVGMatrix -> SVGMatrix -> m ()
 multiply_ self secondMatrix
-  = liftIO (void (js_multiply (self) (maybeToNullable secondMatrix)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.multiply Mozilla SVGMatrix.multiply documentation> 
-multiplyUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 SVGMatrix -> Maybe SVGMatrix -> m SVGMatrix
-multiplyUnsafe self secondMatrix
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_multiply (self) (maybeToNullable secondMatrix)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.multiply Mozilla SVGMatrix.multiply documentation> 
-multiplyUnchecked ::
-                  (MonadIO m) => SVGMatrix -> Maybe SVGMatrix -> m SVGMatrix
-multiplyUnchecked self secondMatrix
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_multiply (self) (maybeToNullable secondMatrix)))
+  = liftIO (void (js_multiply self secondMatrix))
  
 foreign import javascript unsafe "$1[\"inverse\"]()" js_inverse ::
-        SVGMatrix -> IO (Nullable SVGMatrix)
+        SVGMatrix -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.inverse Mozilla SVGMatrix.inverse documentation> 
-inverse :: (MonadIO m) => SVGMatrix -> m (Maybe SVGMatrix)
-inverse self = liftIO (nullableToMaybe <$> (js_inverse (self)))
+inverse :: (MonadIO m) => SVGMatrix -> m SVGMatrix
+inverse self = liftIO (js_inverse self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.inverse Mozilla SVGMatrix.inverse documentation> 
 inverse_ :: (MonadIO m) => SVGMatrix -> m ()
-inverse_ self = liftIO (void (js_inverse (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.inverse Mozilla SVGMatrix.inverse documentation> 
-inverseUnsafe ::
-              (MonadIO m, HasCallStack) => SVGMatrix -> m SVGMatrix
-inverseUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_inverse (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.inverse Mozilla SVGMatrix.inverse documentation> 
-inverseUnchecked :: (MonadIO m) => SVGMatrix -> m SVGMatrix
-inverseUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_inverse (self)))
+inverse_ self = liftIO (void (js_inverse self))
  
 foreign import javascript unsafe "$1[\"translate\"]($2, $3)"
-        js_translate ::
-        SVGMatrix -> Float -> Float -> IO (Nullable SVGMatrix)
+        js_translate :: SVGMatrix -> Float -> Float -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.translate Mozilla SVGMatrix.translate documentation> 
 translate ::
-          (MonadIO m) => SVGMatrix -> Float -> Float -> m (Maybe SVGMatrix)
-translate self x y
-  = liftIO (nullableToMaybe <$> (js_translate (self) x y))
+          (MonadIO m) => SVGMatrix -> Float -> Float -> m SVGMatrix
+translate self x y = liftIO (js_translate self x y)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.translate Mozilla SVGMatrix.translate documentation> 
 translate_ :: (MonadIO m) => SVGMatrix -> Float -> Float -> m ()
-translate_ self x y = liftIO (void (js_translate (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.translate Mozilla SVGMatrix.translate documentation> 
-translateUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  SVGMatrix -> Float -> Float -> m SVGMatrix
-translateUnsafe self x y
-  = liftIO
-      ((nullableToMaybe <$> (js_translate (self) x y)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.translate Mozilla SVGMatrix.translate documentation> 
-translateUnchecked ::
-                   (MonadIO m) => SVGMatrix -> Float -> Float -> m SVGMatrix
-translateUnchecked self x y
-  = liftIO (fromJust . nullableToMaybe <$> (js_translate (self) x y))
+translate_ self x y = liftIO (void (js_translate self x y))
  
 foreign import javascript unsafe "$1[\"scale\"]($2)" js_scale ::
-        SVGMatrix -> Float -> IO (Nullable SVGMatrix)
+        SVGMatrix -> Float -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.scale Mozilla SVGMatrix.scale documentation> 
-scale :: (MonadIO m) => SVGMatrix -> Float -> m (Maybe SVGMatrix)
-scale self scaleFactor
-  = liftIO (nullableToMaybe <$> (js_scale (self) scaleFactor))
+scale :: (MonadIO m) => SVGMatrix -> Float -> m SVGMatrix
+scale self scaleFactor = liftIO (js_scale self scaleFactor)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.scale Mozilla SVGMatrix.scale documentation> 
 scale_ :: (MonadIO m) => SVGMatrix -> Float -> m ()
-scale_ self scaleFactor
-  = liftIO (void (js_scale (self) scaleFactor))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.scale Mozilla SVGMatrix.scale documentation> 
-scaleUnsafe ::
-            (MonadIO m, HasCallStack) => SVGMatrix -> Float -> m SVGMatrix
-scaleUnsafe self scaleFactor
-  = liftIO
-      ((nullableToMaybe <$> (js_scale (self) scaleFactor)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.scale Mozilla SVGMatrix.scale documentation> 
-scaleUnchecked :: (MonadIO m) => SVGMatrix -> Float -> m SVGMatrix
-scaleUnchecked self scaleFactor
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_scale (self) scaleFactor))
+scale_ self scaleFactor = liftIO (void (js_scale self scaleFactor))
  
 foreign import javascript unsafe "$1[\"scaleNonUniform\"]($2, $3)"
-        js_scaleNonUniform ::
-        SVGMatrix -> Float -> Float -> IO (Nullable SVGMatrix)
+        js_scaleNonUniform :: SVGMatrix -> Float -> Float -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.scaleNonUniform Mozilla SVGMatrix.scaleNonUniform documentation> 
 scaleNonUniform ::
-                (MonadIO m) => SVGMatrix -> Float -> Float -> m (Maybe SVGMatrix)
+                (MonadIO m) => SVGMatrix -> Float -> Float -> m SVGMatrix
 scaleNonUniform self scaleFactorX scaleFactorY
-  = liftIO
-      (nullableToMaybe <$>
-         (js_scaleNonUniform (self) scaleFactorX scaleFactorY))
+  = liftIO (js_scaleNonUniform self scaleFactorX scaleFactorY)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.scaleNonUniform Mozilla SVGMatrix.scaleNonUniform documentation> 
 scaleNonUniform_ ::
                  (MonadIO m) => SVGMatrix -> Float -> Float -> m ()
 scaleNonUniform_ self scaleFactorX scaleFactorY
-  = liftIO
-      (void (js_scaleNonUniform (self) scaleFactorX scaleFactorY))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.scaleNonUniform Mozilla SVGMatrix.scaleNonUniform documentation> 
-scaleNonUniformUnsafe ::
-                      (MonadIO m, HasCallStack) =>
-                        SVGMatrix -> Float -> Float -> m SVGMatrix
-scaleNonUniformUnsafe self scaleFactorX scaleFactorY
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_scaleNonUniform (self) scaleFactorX scaleFactorY))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.scaleNonUniform Mozilla SVGMatrix.scaleNonUniform documentation> 
-scaleNonUniformUnchecked ::
-                         (MonadIO m) => SVGMatrix -> Float -> Float -> m SVGMatrix
-scaleNonUniformUnchecked self scaleFactorX scaleFactorY
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_scaleNonUniform (self) scaleFactorX scaleFactorY))
+  = liftIO (void (js_scaleNonUniform self scaleFactorX scaleFactorY))
  
 foreign import javascript unsafe "$1[\"rotate\"]($2)" js_rotate ::
-        SVGMatrix -> Float -> IO (Nullable SVGMatrix)
+        SVGMatrix -> Float -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.rotate Mozilla SVGMatrix.rotate documentation> 
-rotate :: (MonadIO m) => SVGMatrix -> Float -> m (Maybe SVGMatrix)
-rotate self angle
-  = liftIO (nullableToMaybe <$> (js_rotate (self) angle))
+rotate :: (MonadIO m) => SVGMatrix -> Float -> m SVGMatrix
+rotate self angle = liftIO (js_rotate self angle)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.rotate Mozilla SVGMatrix.rotate documentation> 
 rotate_ :: (MonadIO m) => SVGMatrix -> Float -> m ()
-rotate_ self angle = liftIO (void (js_rotate (self) angle))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.rotate Mozilla SVGMatrix.rotate documentation> 
-rotateUnsafe ::
-             (MonadIO m, HasCallStack) => SVGMatrix -> Float -> m SVGMatrix
-rotateUnsafe self angle
-  = liftIO
-      ((nullableToMaybe <$> (js_rotate (self) angle)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.rotate Mozilla SVGMatrix.rotate documentation> 
-rotateUnchecked :: (MonadIO m) => SVGMatrix -> Float -> m SVGMatrix
-rotateUnchecked self angle
-  = liftIO (fromJust . nullableToMaybe <$> (js_rotate (self) angle))
+rotate_ self angle = liftIO (void (js_rotate self angle))
  
 foreign import javascript unsafe "$1[\"rotateFromVector\"]($2, $3)"
-        js_rotateFromVector ::
-        SVGMatrix -> Float -> Float -> IO (Nullable SVGMatrix)
+        js_rotateFromVector :: SVGMatrix -> Float -> Float -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.rotateFromVector Mozilla SVGMatrix.rotateFromVector documentation> 
 rotateFromVector ::
-                 (MonadIO m) => SVGMatrix -> Float -> Float -> m (Maybe SVGMatrix)
-rotateFromVector self x y
-  = liftIO (nullableToMaybe <$> (js_rotateFromVector (self) x y))
+                 (MonadIO m) => SVGMatrix -> Float -> Float -> m SVGMatrix
+rotateFromVector self x y = liftIO (js_rotateFromVector self x y)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.rotateFromVector Mozilla SVGMatrix.rotateFromVector documentation> 
 rotateFromVector_ ::
                   (MonadIO m) => SVGMatrix -> Float -> Float -> m ()
 rotateFromVector_ self x y
-  = liftIO (void (js_rotateFromVector (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.rotateFromVector Mozilla SVGMatrix.rotateFromVector documentation> 
-rotateFromVectorUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         SVGMatrix -> Float -> Float -> m SVGMatrix
-rotateFromVectorUnsafe self x y
-  = liftIO
-      ((nullableToMaybe <$> (js_rotateFromVector (self) x y)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.rotateFromVector Mozilla SVGMatrix.rotateFromVector documentation> 
-rotateFromVectorUnchecked ::
-                          (MonadIO m) => SVGMatrix -> Float -> Float -> m SVGMatrix
-rotateFromVectorUnchecked self x y
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_rotateFromVector (self) x y))
+  = liftIO (void (js_rotateFromVector self x y))
  
 foreign import javascript unsafe "$1[\"flipX\"]()" js_flipX ::
-        SVGMatrix -> IO (Nullable SVGMatrix)
+        SVGMatrix -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.flipX Mozilla SVGMatrix.flipX documentation> 
-flipX :: (MonadIO m) => SVGMatrix -> m (Maybe SVGMatrix)
-flipX self = liftIO (nullableToMaybe <$> (js_flipX (self)))
+flipX :: (MonadIO m) => SVGMatrix -> m SVGMatrix
+flipX self = liftIO (js_flipX self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.flipX Mozilla SVGMatrix.flipX documentation> 
 flipX_ :: (MonadIO m) => SVGMatrix -> m ()
-flipX_ self = liftIO (void (js_flipX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.flipX Mozilla SVGMatrix.flipX documentation> 
-flipXUnsafe ::
-            (MonadIO m, HasCallStack) => SVGMatrix -> m SVGMatrix
-flipXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_flipX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.flipX Mozilla SVGMatrix.flipX documentation> 
-flipXUnchecked :: (MonadIO m) => SVGMatrix -> m SVGMatrix
-flipXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_flipX (self)))
+flipX_ self = liftIO (void (js_flipX self))
  
 foreign import javascript unsafe "$1[\"flipY\"]()" js_flipY ::
-        SVGMatrix -> IO (Nullable SVGMatrix)
+        SVGMatrix -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.flipY Mozilla SVGMatrix.flipY documentation> 
-flipY :: (MonadIO m) => SVGMatrix -> m (Maybe SVGMatrix)
-flipY self = liftIO (nullableToMaybe <$> (js_flipY (self)))
+flipY :: (MonadIO m) => SVGMatrix -> m SVGMatrix
+flipY self = liftIO (js_flipY self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.flipY Mozilla SVGMatrix.flipY documentation> 
 flipY_ :: (MonadIO m) => SVGMatrix -> m ()
-flipY_ self = liftIO (void (js_flipY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.flipY Mozilla SVGMatrix.flipY documentation> 
-flipYUnsafe ::
-            (MonadIO m, HasCallStack) => SVGMatrix -> m SVGMatrix
-flipYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_flipY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.flipY Mozilla SVGMatrix.flipY documentation> 
-flipYUnchecked :: (MonadIO m) => SVGMatrix -> m SVGMatrix
-flipYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_flipY (self)))
+flipY_ self = liftIO (void (js_flipY self))
  
 foreign import javascript unsafe "$1[\"skewX\"]($2)" js_skewX ::
-        SVGMatrix -> Float -> IO (Nullable SVGMatrix)
+        SVGMatrix -> Float -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.skewX Mozilla SVGMatrix.skewX documentation> 
-skewX :: (MonadIO m) => SVGMatrix -> Float -> m (Maybe SVGMatrix)
-skewX self angle
-  = liftIO (nullableToMaybe <$> (js_skewX (self) angle))
+skewX :: (MonadIO m) => SVGMatrix -> Float -> m SVGMatrix
+skewX self angle = liftIO (js_skewX self angle)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.skewX Mozilla SVGMatrix.skewX documentation> 
 skewX_ :: (MonadIO m) => SVGMatrix -> Float -> m ()
-skewX_ self angle = liftIO (void (js_skewX (self) angle))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.skewX Mozilla SVGMatrix.skewX documentation> 
-skewXUnsafe ::
-            (MonadIO m, HasCallStack) => SVGMatrix -> Float -> m SVGMatrix
-skewXUnsafe self angle
-  = liftIO
-      ((nullableToMaybe <$> (js_skewX (self) angle)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.skewX Mozilla SVGMatrix.skewX documentation> 
-skewXUnchecked :: (MonadIO m) => SVGMatrix -> Float -> m SVGMatrix
-skewXUnchecked self angle
-  = liftIO (fromJust . nullableToMaybe <$> (js_skewX (self) angle))
+skewX_ self angle = liftIO (void (js_skewX self angle))
  
 foreign import javascript unsafe "$1[\"skewY\"]($2)" js_skewY ::
-        SVGMatrix -> Float -> IO (Nullable SVGMatrix)
+        SVGMatrix -> Float -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.skewY Mozilla SVGMatrix.skewY documentation> 
-skewY :: (MonadIO m) => SVGMatrix -> Float -> m (Maybe SVGMatrix)
-skewY self angle
-  = liftIO (nullableToMaybe <$> (js_skewY (self) angle))
+skewY :: (MonadIO m) => SVGMatrix -> Float -> m SVGMatrix
+skewY self angle = liftIO (js_skewY self angle)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.skewY Mozilla SVGMatrix.skewY documentation> 
 skewY_ :: (MonadIO m) => SVGMatrix -> Float -> m ()
-skewY_ self angle = liftIO (void (js_skewY (self) angle))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.skewY Mozilla SVGMatrix.skewY documentation> 
-skewYUnsafe ::
-            (MonadIO m, HasCallStack) => SVGMatrix -> Float -> m SVGMatrix
-skewYUnsafe self angle
-  = liftIO
-      ((nullableToMaybe <$> (js_skewY (self) angle)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.skewY Mozilla SVGMatrix.skewY documentation> 
-skewYUnchecked :: (MonadIO m) => SVGMatrix -> Float -> m SVGMatrix
-skewYUnchecked self angle
-  = liftIO (fromJust . nullableToMaybe <$> (js_skewY (self) angle))
+skewY_ self angle = liftIO (void (js_skewY self angle))
  
 foreign import javascript unsafe "$1[\"a\"] = $2;" js_setA ::
         SVGMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.a Mozilla SVGMatrix.a documentation> 
 setA :: (MonadIO m) => SVGMatrix -> Double -> m ()
-setA self val = liftIO (js_setA (self) val)
+setA self val = liftIO (js_setA self val)
  
 foreign import javascript unsafe "$1[\"a\"]" js_getA ::
         SVGMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.a Mozilla SVGMatrix.a documentation> 
 getA :: (MonadIO m) => SVGMatrix -> m Double
-getA self = liftIO (js_getA (self))
+getA self = liftIO (js_getA self)
  
 foreign import javascript unsafe "$1[\"b\"] = $2;" js_setB ::
         SVGMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.b Mozilla SVGMatrix.b documentation> 
 setB :: (MonadIO m) => SVGMatrix -> Double -> m ()
-setB self val = liftIO (js_setB (self) val)
+setB self val = liftIO (js_setB self val)
  
 foreign import javascript unsafe "$1[\"b\"]" js_getB ::
         SVGMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.b Mozilla SVGMatrix.b documentation> 
 getB :: (MonadIO m) => SVGMatrix -> m Double
-getB self = liftIO (js_getB (self))
+getB self = liftIO (js_getB self)
  
 foreign import javascript unsafe "$1[\"c\"] = $2;" js_setC ::
         SVGMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.c Mozilla SVGMatrix.c documentation> 
 setC :: (MonadIO m) => SVGMatrix -> Double -> m ()
-setC self val = liftIO (js_setC (self) val)
+setC self val = liftIO (js_setC self val)
  
 foreign import javascript unsafe "$1[\"c\"]" js_getC ::
         SVGMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.c Mozilla SVGMatrix.c documentation> 
 getC :: (MonadIO m) => SVGMatrix -> m Double
-getC self = liftIO (js_getC (self))
+getC self = liftIO (js_getC self)
  
 foreign import javascript unsafe "$1[\"d\"] = $2;" js_setD ::
         SVGMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.d Mozilla SVGMatrix.d documentation> 
 setD :: (MonadIO m) => SVGMatrix -> Double -> m ()
-setD self val = liftIO (js_setD (self) val)
+setD self val = liftIO (js_setD self val)
  
 foreign import javascript unsafe "$1[\"d\"]" js_getD ::
         SVGMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.d Mozilla SVGMatrix.d documentation> 
 getD :: (MonadIO m) => SVGMatrix -> m Double
-getD self = liftIO (js_getD (self))
+getD self = liftIO (js_getD self)
  
 foreign import javascript unsafe "$1[\"e\"] = $2;" js_setE ::
         SVGMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.e Mozilla SVGMatrix.e documentation> 
 setE :: (MonadIO m) => SVGMatrix -> Double -> m ()
-setE self val = liftIO (js_setE (self) val)
+setE self val = liftIO (js_setE self val)
  
 foreign import javascript unsafe "$1[\"e\"]" js_getE ::
         SVGMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.e Mozilla SVGMatrix.e documentation> 
 getE :: (MonadIO m) => SVGMatrix -> m Double
-getE self = liftIO (js_getE (self))
+getE self = liftIO (js_getE self)
  
 foreign import javascript unsafe "$1[\"f\"] = $2;" js_setF ::
         SVGMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.f Mozilla SVGMatrix.f documentation> 
 setF :: (MonadIO m) => SVGMatrix -> Double -> m ()
-setF self val = liftIO (js_setF (self) val)
+setF self val = liftIO (js_setF self val)
  
 foreign import javascript unsafe "$1[\"f\"]" js_getF ::
         SVGMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix.f Mozilla SVGMatrix.f documentation> 
 getF :: (MonadIO m) => SVGMatrix -> m Double
-getF self = liftIO (js_getF (self))
+getF self = liftIO (js_getF self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGNumber.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGNumber.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGNumber.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGNumber.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,11 +31,11 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumber.value Mozilla SVGNumber.value documentation> 
 setValue :: (MonadIO m) => SVGNumber -> Float -> m ()
-setValue self val = liftIO (js_setValue (self) val)
+setValue self val = liftIO (js_setValue self val)
  
 foreign import javascript unsafe "$1[\"value\"]" js_getValue ::
         SVGNumber -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumber.value Mozilla SVGNumber.value documentation> 
 getValue :: (MonadIO m) => SVGNumber -> m Float
-getValue self = liftIO (js_getValue (self))
+getValue self = liftIO (js_getValue self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGNumberList.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGNumberList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGNumberList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGNumberList.hs
@@ -5,21 +5,17 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGNumberList
        (js_clear, clear, js_initialize, initialize, initialize_,
-        initializeUnsafe, initializeUnchecked, js_getItem, getItem,
-        getItem_, getItemUnsafe, getItemUnchecked, js_insertItemBefore,
-        insertItemBefore, insertItemBefore_, insertItemBeforeUnsafe,
-        insertItemBeforeUnchecked, js_replaceItem, replaceItem,
-        replaceItem_, replaceItemUnsafe, replaceItemUnchecked,
-        js_removeItem, removeItem, removeItem_, removeItemUnsafe,
-        removeItemUnchecked, js_appendItem, appendItem, appendItem_,
-        appendItemUnsafe, appendItemUnchecked, js_getNumberOfItems,
+        js_getItem, getItem, getItem_, js_insertItemBefore,
+        insertItemBefore, insertItemBefore_, js_replaceItem, replaceItem,
+        replaceItem_, js_removeItem, removeItem, removeItem_,
+        js_appendItem, appendItem, appendItem_, js_getNumberOfItems,
         getNumberOfItems, SVGNumberList(..), gTypeSVGNumberList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -38,218 +35,89 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.clear Mozilla SVGNumberList.clear documentation> 
 clear :: (MonadIO m) => SVGNumberList -> m ()
-clear self = liftIO (js_clear (self))
+clear self = liftIO (js_clear self)
  
 foreign import javascript unsafe "$1[\"initialize\"]($2)"
-        js_initialize ::
-        SVGNumberList -> Nullable SVGNumber -> IO (Nullable SVGNumber)
+        js_initialize :: SVGNumberList -> SVGNumber -> IO SVGNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.initialize Mozilla SVGNumberList.initialize documentation> 
 initialize ::
-           (MonadIO m) =>
-             SVGNumberList -> Maybe SVGNumber -> m (Maybe SVGNumber)
-initialize self item
-  = liftIO
-      (nullableToMaybe <$> (js_initialize (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.initialize Mozilla SVGNumberList.initialize documentation> 
-initialize_ ::
-            (MonadIO m) => SVGNumberList -> Maybe SVGNumber -> m ()
-initialize_ self item
-  = liftIO (void (js_initialize (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.initialize Mozilla SVGNumberList.initialize documentation> 
-initializeUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGNumberList -> Maybe SVGNumber -> m SVGNumber
-initializeUnsafe self item
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_initialize (self) (maybeToNullable item)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+           (MonadIO m) => SVGNumberList -> SVGNumber -> m SVGNumber
+initialize self item = liftIO (js_initialize self item)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.initialize Mozilla SVGNumberList.initialize documentation> 
-initializeUnchecked ::
-                    (MonadIO m) => SVGNumberList -> Maybe SVGNumber -> m SVGNumber
-initializeUnchecked self item
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_initialize (self) (maybeToNullable item)))
+initialize_ :: (MonadIO m) => SVGNumberList -> SVGNumber -> m ()
+initialize_ self item = liftIO (void (js_initialize self item))
  
 foreign import javascript unsafe "$1[\"getItem\"]($2)" js_getItem
-        :: SVGNumberList -> Word -> IO (Nullable SVGNumber)
+        :: SVGNumberList -> Word -> IO SVGNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.getItem Mozilla SVGNumberList.getItem documentation> 
-getItem ::
-        (MonadIO m) => SVGNumberList -> Word -> m (Maybe SVGNumber)
-getItem self index
-  = liftIO (nullableToMaybe <$> (js_getItem (self) index))
+getItem :: (MonadIO m) => SVGNumberList -> Word -> m SVGNumber
+getItem self index = liftIO (js_getItem self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.getItem Mozilla SVGNumberList.getItem documentation> 
 getItem_ :: (MonadIO m) => SVGNumberList -> Word -> m ()
-getItem_ self index = liftIO (void (js_getItem (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.getItem Mozilla SVGNumberList.getItem documentation> 
-getItemUnsafe ::
-              (MonadIO m, HasCallStack) => SVGNumberList -> Word -> m SVGNumber
-getItemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_getItem (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.getItem Mozilla SVGNumberList.getItem documentation> 
-getItemUnchecked ::
-                 (MonadIO m) => SVGNumberList -> Word -> m SVGNumber
-getItemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_getItem (self) index))
+getItem_ self index = liftIO (void (js_getItem self index))
  
 foreign import javascript unsafe "$1[\"insertItemBefore\"]($2, $3)"
         js_insertItemBefore ::
-        SVGNumberList ->
-          Nullable SVGNumber -> Word -> IO (Nullable SVGNumber)
+        SVGNumberList -> SVGNumber -> Word -> IO SVGNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.insertItemBefore Mozilla SVGNumberList.insertItemBefore documentation> 
 insertItemBefore ::
-                 (MonadIO m) =>
-                   SVGNumberList -> Maybe SVGNumber -> Word -> m (Maybe SVGNumber)
+                 (MonadIO m) => SVGNumberList -> SVGNumber -> Word -> m SVGNumber
 insertItemBefore self item index
-  = liftIO
-      (nullableToMaybe <$>
-         (js_insertItemBefore (self) (maybeToNullable item) index))
+  = liftIO (js_insertItemBefore self item index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.insertItemBefore Mozilla SVGNumberList.insertItemBefore documentation> 
 insertItemBefore_ ::
-                  (MonadIO m) => SVGNumberList -> Maybe SVGNumber -> Word -> m ()
+                  (MonadIO m) => SVGNumberList -> SVGNumber -> Word -> m ()
 insertItemBefore_ self item index
-  = liftIO
-      (void (js_insertItemBefore (self) (maybeToNullable item) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.insertItemBefore Mozilla SVGNumberList.insertItemBefore documentation> 
-insertItemBeforeUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         SVGNumberList -> Maybe SVGNumber -> Word -> m SVGNumber
-insertItemBeforeUnsafe self item index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_insertItemBefore (self) (maybeToNullable item) index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.insertItemBefore Mozilla SVGNumberList.insertItemBefore documentation> 
-insertItemBeforeUnchecked ::
-                          (MonadIO m) =>
-                            SVGNumberList -> Maybe SVGNumber -> Word -> m SVGNumber
-insertItemBeforeUnchecked self item index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_insertItemBefore (self) (maybeToNullable item) index))
+  = liftIO (void (js_insertItemBefore self item index))
  
 foreign import javascript unsafe "$1[\"replaceItem\"]($2, $3)"
         js_replaceItem ::
-        SVGNumberList ->
-          Nullable SVGNumber -> Word -> IO (Nullable SVGNumber)
+        SVGNumberList -> SVGNumber -> Word -> IO SVGNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.replaceItem Mozilla SVGNumberList.replaceItem documentation> 
 replaceItem ::
-            (MonadIO m) =>
-              SVGNumberList -> Maybe SVGNumber -> Word -> m (Maybe SVGNumber)
+            (MonadIO m) => SVGNumberList -> SVGNumber -> Word -> m SVGNumber
 replaceItem self item index
-  = liftIO
-      (nullableToMaybe <$>
-         (js_replaceItem (self) (maybeToNullable item) index))
+  = liftIO (js_replaceItem self item index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.replaceItem Mozilla SVGNumberList.replaceItem documentation> 
 replaceItem_ ::
-             (MonadIO m) => SVGNumberList -> Maybe SVGNumber -> Word -> m ()
+             (MonadIO m) => SVGNumberList -> SVGNumber -> Word -> m ()
 replaceItem_ self item index
-  = liftIO
-      (void (js_replaceItem (self) (maybeToNullable item) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.replaceItem Mozilla SVGNumberList.replaceItem documentation> 
-replaceItemUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    SVGNumberList -> Maybe SVGNumber -> Word -> m SVGNumber
-replaceItemUnsafe self item index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_replaceItem (self) (maybeToNullable item) index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.replaceItem Mozilla SVGNumberList.replaceItem documentation> 
-replaceItemUnchecked ::
-                     (MonadIO m) =>
-                       SVGNumberList -> Maybe SVGNumber -> Word -> m SVGNumber
-replaceItemUnchecked self item index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_replaceItem (self) (maybeToNullable item) index))
+  = liftIO (void (js_replaceItem self item index))
  
 foreign import javascript unsafe "$1[\"removeItem\"]($2)"
-        js_removeItem :: SVGNumberList -> Word -> IO (Nullable SVGNumber)
+        js_removeItem :: SVGNumberList -> Word -> IO SVGNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.removeItem Mozilla SVGNumberList.removeItem documentation> 
-removeItem ::
-           (MonadIO m) => SVGNumberList -> Word -> m (Maybe SVGNumber)
-removeItem self index
-  = liftIO (nullableToMaybe <$> (js_removeItem (self) index))
+removeItem :: (MonadIO m) => SVGNumberList -> Word -> m SVGNumber
+removeItem self index = liftIO (js_removeItem self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.removeItem Mozilla SVGNumberList.removeItem documentation> 
 removeItem_ :: (MonadIO m) => SVGNumberList -> Word -> m ()
-removeItem_ self index = liftIO (void (js_removeItem (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.removeItem Mozilla SVGNumberList.removeItem documentation> 
-removeItemUnsafe ::
-                 (MonadIO m, HasCallStack) => SVGNumberList -> Word -> m SVGNumber
-removeItemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_removeItem (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.removeItem Mozilla SVGNumberList.removeItem documentation> 
-removeItemUnchecked ::
-                    (MonadIO m) => SVGNumberList -> Word -> m SVGNumber
-removeItemUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_removeItem (self) index))
+removeItem_ self index = liftIO (void (js_removeItem self index))
  
 foreign import javascript unsafe "$1[\"appendItem\"]($2)"
-        js_appendItem ::
-        SVGNumberList -> Nullable SVGNumber -> IO (Nullable SVGNumber)
+        js_appendItem :: SVGNumberList -> SVGNumber -> IO SVGNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.appendItem Mozilla SVGNumberList.appendItem documentation> 
 appendItem ::
-           (MonadIO m) =>
-             SVGNumberList -> Maybe SVGNumber -> m (Maybe SVGNumber)
-appendItem self item
-  = liftIO
-      (nullableToMaybe <$> (js_appendItem (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.appendItem Mozilla SVGNumberList.appendItem documentation> 
-appendItem_ ::
-            (MonadIO m) => SVGNumberList -> Maybe SVGNumber -> m ()
-appendItem_ self item
-  = liftIO (void (js_appendItem (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.appendItem Mozilla SVGNumberList.appendItem documentation> 
-appendItemUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGNumberList -> Maybe SVGNumber -> m SVGNumber
-appendItemUnsafe self item
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_appendItem (self) (maybeToNullable item)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+           (MonadIO m) => SVGNumberList -> SVGNumber -> m SVGNumber
+appendItem self item = liftIO (js_appendItem self item)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.appendItem Mozilla SVGNumberList.appendItem documentation> 
-appendItemUnchecked ::
-                    (MonadIO m) => SVGNumberList -> Maybe SVGNumber -> m SVGNumber
-appendItemUnchecked self item
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_appendItem (self) (maybeToNullable item)))
+appendItem_ :: (MonadIO m) => SVGNumberList -> SVGNumber -> m ()
+appendItem_ self item = liftIO (void (js_appendItem self item))
  
 foreign import javascript unsafe "$1[\"numberOfItems\"]"
         js_getNumberOfItems :: SVGNumberList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList.numberOfItems Mozilla SVGNumberList.numberOfItems documentation> 
 getNumberOfItems :: (MonadIO m) => SVGNumberList -> m Word
-getNumberOfItems self = liftIO (js_getNumberOfItems (self))
+getNumberOfItems self = liftIO (js_getNumberOfItems self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPaint.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPaint.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPaint.hs
+++ /dev/null
@@ -1,80 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.SVGPaint
-       (js_setUri, setUri, js_setPaint, setPaint,
-        pattern SVG_PAINTTYPE_UNKNOWN, pattern SVG_PAINTTYPE_RGBCOLOR,
-        pattern SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR,
-        pattern SVG_PAINTTYPE_NONE, pattern SVG_PAINTTYPE_CURRENTCOLOR,
-        pattern SVG_PAINTTYPE_URI_NONE,
-        pattern SVG_PAINTTYPE_URI_CURRENTCOLOR,
-        pattern SVG_PAINTTYPE_URI_RGBCOLOR,
-        pattern SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR,
-        pattern SVG_PAINTTYPE_URI, js_getPaintType, getPaintType,
-        js_getUri, getUri, SVGPaint(..), gTypeSVGPaint)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"setUri\"]($2)" js_setUri ::
-        SVGPaint -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPaint.setUri Mozilla SVGPaint.setUri documentation> 
-setUri :: (MonadIO m, ToJSString uri) => SVGPaint -> uri -> m ()
-setUri self uri = liftIO (js_setUri (self) (toJSString uri))
- 
-foreign import javascript unsafe "$1[\"setPaint\"]($2, $3, $4, $5)"
-        js_setPaint ::
-        SVGPaint -> Word -> JSString -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPaint.setPaint Mozilla SVGPaint.setPaint documentation> 
-setPaint ::
-         (MonadIO m, ToJSString uri, ToJSString rgbColor,
-          ToJSString iccColor) =>
-           SVGPaint -> Word -> uri -> rgbColor -> iccColor -> m ()
-setPaint self paintType uri rgbColor iccColor
-  = liftIO
-      (js_setPaint (self) paintType (toJSString uri)
-         (toJSString rgbColor)
-         (toJSString iccColor))
-pattern SVG_PAINTTYPE_UNKNOWN = 0
-pattern SVG_PAINTTYPE_RGBCOLOR = 1
-pattern SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR = 2
-pattern SVG_PAINTTYPE_NONE = 101
-pattern SVG_PAINTTYPE_CURRENTCOLOR = 102
-pattern SVG_PAINTTYPE_URI_NONE = 103
-pattern SVG_PAINTTYPE_URI_CURRENTCOLOR = 104
-pattern SVG_PAINTTYPE_URI_RGBCOLOR = 105
-pattern SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106
-pattern SVG_PAINTTYPE_URI = 107
- 
-foreign import javascript unsafe "$1[\"paintType\"]"
-        js_getPaintType :: SVGPaint -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPaint.paintType Mozilla SVGPaint.paintType documentation> 
-getPaintType :: (MonadIO m) => SVGPaint -> m Word
-getPaintType self = liftIO (js_getPaintType (self))
- 
-foreign import javascript unsafe "$1[\"uri\"]" js_getUri ::
-        SVGPaint -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPaint.uri Mozilla SVGPaint.uri documentation> 
-getUri :: (MonadIO m, FromJSString result) => SVGPaint -> m result
-getUri self = liftIO (fromJSString <$> (js_getUri (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathElement.hs
@@ -6,1222 +6,762 @@
 module GHCJS.DOM.JSFFI.Generated.SVGPathElement
        (js_getTotalLength, getTotalLength, getTotalLength_,
         js_getPointAtLength, getPointAtLength, getPointAtLength_,
-        getPointAtLengthUnsafe, getPointAtLengthUnchecked,
-        js_getPathSegAtLength, getPathSegAtLength, getPathSegAtLength_,
-        js_createSVGPathSegClosePath, createSVGPathSegClosePath,
-        createSVGPathSegClosePath_, createSVGPathSegClosePathUnsafe,
-        createSVGPathSegClosePathUnchecked, js_createSVGPathSegMovetoAbs,
-        createSVGPathSegMovetoAbs, createSVGPathSegMovetoAbs_,
-        createSVGPathSegMovetoAbsUnsafe,
-        createSVGPathSegMovetoAbsUnchecked, js_createSVGPathSegMovetoRel,
-        createSVGPathSegMovetoRel, createSVGPathSegMovetoRel_,
-        createSVGPathSegMovetoRelUnsafe,
-        createSVGPathSegMovetoRelUnchecked, js_createSVGPathSegLinetoAbs,
-        createSVGPathSegLinetoAbs, createSVGPathSegLinetoAbs_,
-        createSVGPathSegLinetoAbsUnsafe,
-        createSVGPathSegLinetoAbsUnchecked, js_createSVGPathSegLinetoRel,
-        createSVGPathSegLinetoRel, createSVGPathSegLinetoRel_,
-        createSVGPathSegLinetoRelUnsafe,
-        createSVGPathSegLinetoRelUnchecked,
-        js_createSVGPathSegCurvetoCubicAbs,
-        createSVGPathSegCurvetoCubicAbs, createSVGPathSegCurvetoCubicAbs_,
-        createSVGPathSegCurvetoCubicAbsUnsafe,
-        createSVGPathSegCurvetoCubicAbsUnchecked,
-        js_createSVGPathSegCurvetoCubicRel,
-        createSVGPathSegCurvetoCubicRel, createSVGPathSegCurvetoCubicRel_,
-        createSVGPathSegCurvetoCubicRelUnsafe,
-        createSVGPathSegCurvetoCubicRelUnchecked,
-        js_createSVGPathSegCurvetoQuadraticAbs,
-        createSVGPathSegCurvetoQuadraticAbs,
-        createSVGPathSegCurvetoQuadraticAbs_,
-        createSVGPathSegCurvetoQuadraticAbsUnsafe,
-        createSVGPathSegCurvetoQuadraticAbsUnchecked,
-        js_createSVGPathSegCurvetoQuadraticRel,
-        createSVGPathSegCurvetoQuadraticRel,
-        createSVGPathSegCurvetoQuadraticRel_,
-        createSVGPathSegCurvetoQuadraticRelUnsafe,
-        createSVGPathSegCurvetoQuadraticRelUnchecked,
-        js_createSVGPathSegArcAbs, createSVGPathSegArcAbs,
-        createSVGPathSegArcAbs_, createSVGPathSegArcAbsUnsafe,
-        createSVGPathSegArcAbsUnchecked, js_createSVGPathSegArcRel,
-        createSVGPathSegArcRel, createSVGPathSegArcRel_,
-        createSVGPathSegArcRelUnsafe, createSVGPathSegArcRelUnchecked,
-        js_createSVGPathSegLinetoHorizontalAbs,
-        createSVGPathSegLinetoHorizontalAbs,
-        createSVGPathSegLinetoHorizontalAbs_,
-        createSVGPathSegLinetoHorizontalAbsUnsafe,
-        createSVGPathSegLinetoHorizontalAbsUnchecked,
-        js_createSVGPathSegLinetoHorizontalRel,
-        createSVGPathSegLinetoHorizontalRel,
-        createSVGPathSegLinetoHorizontalRel_,
-        createSVGPathSegLinetoHorizontalRelUnsafe,
-        createSVGPathSegLinetoHorizontalRelUnchecked,
-        js_createSVGPathSegLinetoVerticalAbs,
-        createSVGPathSegLinetoVerticalAbs,
-        createSVGPathSegLinetoVerticalAbs_,
-        createSVGPathSegLinetoVerticalAbsUnsafe,
-        createSVGPathSegLinetoVerticalAbsUnchecked,
-        js_createSVGPathSegLinetoVerticalRel,
-        createSVGPathSegLinetoVerticalRel,
-        createSVGPathSegLinetoVerticalRel_,
-        createSVGPathSegLinetoVerticalRelUnsafe,
-        createSVGPathSegLinetoVerticalRelUnchecked,
-        js_createSVGPathSegCurvetoCubicSmoothAbs,
-        createSVGPathSegCurvetoCubicSmoothAbs,
-        createSVGPathSegCurvetoCubicSmoothAbs_,
-        createSVGPathSegCurvetoCubicSmoothAbsUnsafe,
-        createSVGPathSegCurvetoCubicSmoothAbsUnchecked,
-        js_createSVGPathSegCurvetoCubicSmoothRel,
-        createSVGPathSegCurvetoCubicSmoothRel,
-        createSVGPathSegCurvetoCubicSmoothRel_,
-        createSVGPathSegCurvetoCubicSmoothRelUnsafe,
-        createSVGPathSegCurvetoCubicSmoothRelUnchecked,
-        js_createSVGPathSegCurvetoQuadraticSmoothAbs,
-        createSVGPathSegCurvetoQuadraticSmoothAbs,
-        createSVGPathSegCurvetoQuadraticSmoothAbs_,
-        createSVGPathSegCurvetoQuadraticSmoothAbsUnsafe,
-        createSVGPathSegCurvetoQuadraticSmoothAbsUnchecked,
-        js_createSVGPathSegCurvetoQuadraticSmoothRel,
-        createSVGPathSegCurvetoQuadraticSmoothRel,
-        createSVGPathSegCurvetoQuadraticSmoothRel_,
-        createSVGPathSegCurvetoQuadraticSmoothRelUnsafe,
-        createSVGPathSegCurvetoQuadraticSmoothRelUnchecked,
-        js_getPathLength, getPathLength, getPathLengthUnsafe,
-        getPathLengthUnchecked, js_getPathSegList, getPathSegList,
-        getPathSegListUnsafe, getPathSegListUnchecked,
-        js_getNormalizedPathSegList, getNormalizedPathSegList,
-        getNormalizedPathSegListUnsafe, getNormalizedPathSegListUnchecked,
-        js_getAnimatedPathSegList, getAnimatedPathSegList,
-        getAnimatedPathSegListUnsafe, getAnimatedPathSegListUnchecked,
-        js_getAnimatedNormalizedPathSegList,
-        getAnimatedNormalizedPathSegList,
-        getAnimatedNormalizedPathSegListUnsafe,
-        getAnimatedNormalizedPathSegListUnchecked, SVGPathElement(..),
-        gTypeSVGPathElement)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"getTotalLength\"]()"
-        js_getTotalLength :: SVGPathElement -> IO Float
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getTotalLength Mozilla SVGPathElement.getTotalLength documentation> 
-getTotalLength :: (MonadIO m) => SVGPathElement -> m Float
-getTotalLength self = liftIO (js_getTotalLength (self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getTotalLength Mozilla SVGPathElement.getTotalLength documentation> 
-getTotalLength_ :: (MonadIO m) => SVGPathElement -> m ()
-getTotalLength_ self = liftIO (void (js_getTotalLength (self)))
- 
-foreign import javascript unsafe "$1[\"getPointAtLength\"]($2)"
-        js_getPointAtLength ::
-        SVGPathElement -> Float -> IO (Nullable SVGPoint)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getPointAtLength Mozilla SVGPathElement.getPointAtLength documentation> 
-getPointAtLength ::
-                 (MonadIO m) => SVGPathElement -> Float -> m (Maybe SVGPoint)
-getPointAtLength self distance
-  = liftIO
-      (nullableToMaybe <$> (js_getPointAtLength (self) distance))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getPointAtLength Mozilla SVGPathElement.getPointAtLength documentation> 
-getPointAtLength_ :: (MonadIO m) => SVGPathElement -> Float -> m ()
-getPointAtLength_ self distance
-  = liftIO (void (js_getPointAtLength (self) distance))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getPointAtLength Mozilla SVGPathElement.getPointAtLength documentation> 
-getPointAtLengthUnsafe ::
-                       (MonadIO m, HasCallStack) => SVGPathElement -> Float -> m SVGPoint
-getPointAtLengthUnsafe self distance
-  = liftIO
-      ((nullableToMaybe <$> (js_getPointAtLength (self) distance)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getPointAtLength Mozilla SVGPathElement.getPointAtLength documentation> 
-getPointAtLengthUnchecked ::
-                          (MonadIO m) => SVGPathElement -> Float -> m SVGPoint
-getPointAtLengthUnchecked self distance
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getPointAtLength (self) distance))
- 
-foreign import javascript unsafe "$1[\"getPathSegAtLength\"]($2)"
-        js_getPathSegAtLength :: SVGPathElement -> Float -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getPathSegAtLength Mozilla SVGPathElement.getPathSegAtLength documentation> 
-getPathSegAtLength ::
-                   (MonadIO m) => SVGPathElement -> Float -> m Word
-getPathSegAtLength self distance
-  = liftIO (js_getPathSegAtLength (self) distance)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getPathSegAtLength Mozilla SVGPathElement.getPathSegAtLength documentation> 
-getPathSegAtLength_ ::
-                    (MonadIO m) => SVGPathElement -> Float -> m ()
-getPathSegAtLength_ self distance
-  = liftIO (void (js_getPathSegAtLength (self) distance))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegClosePath\"]()" js_createSVGPathSegClosePath
-        :: SVGPathElement -> IO (Nullable SVGPathSegClosePath)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegClosePath Mozilla SVGPathElement.createSVGPathSegClosePath documentation> 
-createSVGPathSegClosePath ::
-                          (MonadIO m) => SVGPathElement -> m (Maybe SVGPathSegClosePath)
-createSVGPathSegClosePath self
-  = liftIO
-      (nullableToMaybe <$> (js_createSVGPathSegClosePath (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegClosePath Mozilla SVGPathElement.createSVGPathSegClosePath documentation> 
-createSVGPathSegClosePath_ :: (MonadIO m) => SVGPathElement -> m ()
-createSVGPathSegClosePath_ self
-  = liftIO (void (js_createSVGPathSegClosePath (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegClosePath Mozilla SVGPathElement.createSVGPathSegClosePath documentation> 
-createSVGPathSegClosePathUnsafe ::
-                                (MonadIO m, HasCallStack) =>
-                                  SVGPathElement -> m SVGPathSegClosePath
-createSVGPathSegClosePathUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGPathSegClosePath (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegClosePath Mozilla SVGPathElement.createSVGPathSegClosePath documentation> 
-createSVGPathSegClosePathUnchecked ::
-                                   (MonadIO m) => SVGPathElement -> m SVGPathSegClosePath
-createSVGPathSegClosePathUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegClosePath (self)))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegMovetoAbs\"]($2,\n$3)"
-        js_createSVGPathSegMovetoAbs ::
-        SVGPathElement ->
-          Float -> Float -> IO (Nullable SVGPathSegMovetoAbs)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoAbs Mozilla SVGPathElement.createSVGPathSegMovetoAbs documentation> 
-createSVGPathSegMovetoAbs ::
-                          (MonadIO m) =>
-                            SVGPathElement -> Float -> Float -> m (Maybe SVGPathSegMovetoAbs)
-createSVGPathSegMovetoAbs self x y
-  = liftIO
-      (nullableToMaybe <$> (js_createSVGPathSegMovetoAbs (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoAbs Mozilla SVGPathElement.createSVGPathSegMovetoAbs documentation> 
-createSVGPathSegMovetoAbs_ ::
-                           (MonadIO m) => SVGPathElement -> Float -> Float -> m ()
-createSVGPathSegMovetoAbs_ self x y
-  = liftIO (void (js_createSVGPathSegMovetoAbs (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoAbs Mozilla SVGPathElement.createSVGPathSegMovetoAbs documentation> 
-createSVGPathSegMovetoAbsUnsafe ::
-                                (MonadIO m, HasCallStack) =>
-                                  SVGPathElement -> Float -> Float -> m SVGPathSegMovetoAbs
-createSVGPathSegMovetoAbsUnsafe self x y
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGPathSegMovetoAbs (self) x y))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoAbs Mozilla SVGPathElement.createSVGPathSegMovetoAbs documentation> 
-createSVGPathSegMovetoAbsUnchecked ::
-                                   (MonadIO m) =>
-                                     SVGPathElement -> Float -> Float -> m SVGPathSegMovetoAbs
-createSVGPathSegMovetoAbsUnchecked self x y
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegMovetoAbs (self) x y))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegMovetoRel\"]($2,\n$3)"
-        js_createSVGPathSegMovetoRel ::
-        SVGPathElement ->
-          Float -> Float -> IO (Nullable SVGPathSegMovetoRel)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoRel Mozilla SVGPathElement.createSVGPathSegMovetoRel documentation> 
-createSVGPathSegMovetoRel ::
-                          (MonadIO m) =>
-                            SVGPathElement -> Float -> Float -> m (Maybe SVGPathSegMovetoRel)
-createSVGPathSegMovetoRel self x y
-  = liftIO
-      (nullableToMaybe <$> (js_createSVGPathSegMovetoRel (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoRel Mozilla SVGPathElement.createSVGPathSegMovetoRel documentation> 
-createSVGPathSegMovetoRel_ ::
-                           (MonadIO m) => SVGPathElement -> Float -> Float -> m ()
-createSVGPathSegMovetoRel_ self x y
-  = liftIO (void (js_createSVGPathSegMovetoRel (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoRel Mozilla SVGPathElement.createSVGPathSegMovetoRel documentation> 
-createSVGPathSegMovetoRelUnsafe ::
-                                (MonadIO m, HasCallStack) =>
-                                  SVGPathElement -> Float -> Float -> m SVGPathSegMovetoRel
-createSVGPathSegMovetoRelUnsafe self x y
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGPathSegMovetoRel (self) x y))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoRel Mozilla SVGPathElement.createSVGPathSegMovetoRel documentation> 
-createSVGPathSegMovetoRelUnchecked ::
-                                   (MonadIO m) =>
-                                     SVGPathElement -> Float -> Float -> m SVGPathSegMovetoRel
-createSVGPathSegMovetoRelUnchecked self x y
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegMovetoRel (self) x y))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegLinetoAbs\"]($2,\n$3)"
-        js_createSVGPathSegLinetoAbs ::
-        SVGPathElement ->
-          Float -> Float -> IO (Nullable SVGPathSegLinetoAbs)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoAbs Mozilla SVGPathElement.createSVGPathSegLinetoAbs documentation> 
-createSVGPathSegLinetoAbs ::
-                          (MonadIO m) =>
-                            SVGPathElement -> Float -> Float -> m (Maybe SVGPathSegLinetoAbs)
-createSVGPathSegLinetoAbs self x y
-  = liftIO
-      (nullableToMaybe <$> (js_createSVGPathSegLinetoAbs (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoAbs Mozilla SVGPathElement.createSVGPathSegLinetoAbs documentation> 
-createSVGPathSegLinetoAbs_ ::
-                           (MonadIO m) => SVGPathElement -> Float -> Float -> m ()
-createSVGPathSegLinetoAbs_ self x y
-  = liftIO (void (js_createSVGPathSegLinetoAbs (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoAbs Mozilla SVGPathElement.createSVGPathSegLinetoAbs documentation> 
-createSVGPathSegLinetoAbsUnsafe ::
-                                (MonadIO m, HasCallStack) =>
-                                  SVGPathElement -> Float -> Float -> m SVGPathSegLinetoAbs
-createSVGPathSegLinetoAbsUnsafe self x y
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGPathSegLinetoAbs (self) x y))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoAbs Mozilla SVGPathElement.createSVGPathSegLinetoAbs documentation> 
-createSVGPathSegLinetoAbsUnchecked ::
-                                   (MonadIO m) =>
-                                     SVGPathElement -> Float -> Float -> m SVGPathSegLinetoAbs
-createSVGPathSegLinetoAbsUnchecked self x y
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegLinetoAbs (self) x y))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegLinetoRel\"]($2,\n$3)"
-        js_createSVGPathSegLinetoRel ::
-        SVGPathElement ->
-          Float -> Float -> IO (Nullable SVGPathSegLinetoRel)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoRel Mozilla SVGPathElement.createSVGPathSegLinetoRel documentation> 
-createSVGPathSegLinetoRel ::
-                          (MonadIO m) =>
-                            SVGPathElement -> Float -> Float -> m (Maybe SVGPathSegLinetoRel)
-createSVGPathSegLinetoRel self x y
-  = liftIO
-      (nullableToMaybe <$> (js_createSVGPathSegLinetoRel (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoRel Mozilla SVGPathElement.createSVGPathSegLinetoRel documentation> 
-createSVGPathSegLinetoRel_ ::
-                           (MonadIO m) => SVGPathElement -> Float -> Float -> m ()
-createSVGPathSegLinetoRel_ self x y
-  = liftIO (void (js_createSVGPathSegLinetoRel (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoRel Mozilla SVGPathElement.createSVGPathSegLinetoRel documentation> 
-createSVGPathSegLinetoRelUnsafe ::
-                                (MonadIO m, HasCallStack) =>
-                                  SVGPathElement -> Float -> Float -> m SVGPathSegLinetoRel
-createSVGPathSegLinetoRelUnsafe self x y
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGPathSegLinetoRel (self) x y))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoRel Mozilla SVGPathElement.createSVGPathSegLinetoRel documentation> 
-createSVGPathSegLinetoRelUnchecked ::
-                                   (MonadIO m) =>
-                                     SVGPathElement -> Float -> Float -> m SVGPathSegLinetoRel
-createSVGPathSegLinetoRelUnchecked self x y
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegLinetoRel (self) x y))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegCurvetoCubicAbs\"]($2,\n$3, $4, $5, $6, $7)"
-        js_createSVGPathSegCurvetoCubicAbs ::
-        SVGPathElement ->
-          Float ->
-            Float ->
-              Float ->
-                Float -> Float -> Float -> IO (Nullable SVGPathSegCurvetoCubicAbs)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicAbs documentation> 
-createSVGPathSegCurvetoCubicAbs ::
-                                (MonadIO m) =>
-                                  SVGPathElement ->
-                                    Float ->
-                                      Float ->
-                                        Float ->
-                                          Float ->
-                                            Float -> Float -> m (Maybe SVGPathSegCurvetoCubicAbs)
-createSVGPathSegCurvetoCubicAbs self x y x1 y1 x2 y2
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoCubicAbs (self) x y x1 y1 x2 y2))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicAbs documentation> 
-createSVGPathSegCurvetoCubicAbs_ ::
-                                 (MonadIO m) =>
-                                   SVGPathElement ->
-                                     Float -> Float -> Float -> Float -> Float -> Float -> m ()
-createSVGPathSegCurvetoCubicAbs_ self x y x1 y1 x2 y2
-  = liftIO
-      (void (js_createSVGPathSegCurvetoCubicAbs (self) x y x1 y1 x2 y2))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicAbs documentation> 
-createSVGPathSegCurvetoCubicAbsUnsafe ::
-                                      (MonadIO m, HasCallStack) =>
-                                        SVGPathElement ->
-                                          Float ->
-                                            Float ->
-                                              Float ->
-                                                Float ->
-                                                  Float -> Float -> m SVGPathSegCurvetoCubicAbs
-createSVGPathSegCurvetoCubicAbsUnsafe self x y x1 y1 x2 y2
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegCurvetoCubicAbs (self) x y x1 y1 x2 y2))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicAbs documentation> 
-createSVGPathSegCurvetoCubicAbsUnchecked ::
-                                         (MonadIO m) =>
-                                           SVGPathElement ->
-                                             Float ->
-                                               Float ->
-                                                 Float ->
-                                                   Float ->
-                                                     Float -> Float -> m SVGPathSegCurvetoCubicAbs
-createSVGPathSegCurvetoCubicAbsUnchecked self x y x1 y1 x2 y2
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoCubicAbs (self) x y x1 y1 x2 y2))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegCurvetoCubicRel\"]($2,\n$3, $4, $5, $6, $7)"
-        js_createSVGPathSegCurvetoCubicRel ::
-        SVGPathElement ->
-          Float ->
-            Float ->
-              Float ->
-                Float -> Float -> Float -> IO (Nullable SVGPathSegCurvetoCubicRel)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicRel documentation> 
-createSVGPathSegCurvetoCubicRel ::
-                                (MonadIO m) =>
-                                  SVGPathElement ->
-                                    Float ->
-                                      Float ->
-                                        Float ->
-                                          Float ->
-                                            Float -> Float -> m (Maybe SVGPathSegCurvetoCubicRel)
-createSVGPathSegCurvetoCubicRel self x y x1 y1 x2 y2
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoCubicRel (self) x y x1 y1 x2 y2))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicRel documentation> 
-createSVGPathSegCurvetoCubicRel_ ::
-                                 (MonadIO m) =>
-                                   SVGPathElement ->
-                                     Float -> Float -> Float -> Float -> Float -> Float -> m ()
-createSVGPathSegCurvetoCubicRel_ self x y x1 y1 x2 y2
-  = liftIO
-      (void (js_createSVGPathSegCurvetoCubicRel (self) x y x1 y1 x2 y2))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicRel documentation> 
-createSVGPathSegCurvetoCubicRelUnsafe ::
-                                      (MonadIO m, HasCallStack) =>
-                                        SVGPathElement ->
-                                          Float ->
-                                            Float ->
-                                              Float ->
-                                                Float ->
-                                                  Float -> Float -> m SVGPathSegCurvetoCubicRel
-createSVGPathSegCurvetoCubicRelUnsafe self x y x1 y1 x2 y2
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegCurvetoCubicRel (self) x y x1 y1 x2 y2))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicRel documentation> 
-createSVGPathSegCurvetoCubicRelUnchecked ::
-                                         (MonadIO m) =>
-                                           SVGPathElement ->
-                                             Float ->
-                                               Float ->
-                                                 Float ->
-                                                   Float ->
-                                                     Float -> Float -> m SVGPathSegCurvetoCubicRel
-createSVGPathSegCurvetoCubicRelUnchecked self x y x1 y1 x2 y2
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoCubicRel (self) x y x1 y1 x2 y2))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegCurvetoQuadraticAbs\"]($2,\n$3, $4, $5)"
-        js_createSVGPathSegCurvetoQuadraticAbs ::
-        SVGPathElement ->
-          Float ->
-            Float ->
-              Float -> Float -> IO (Nullable SVGPathSegCurvetoQuadraticAbs)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticAbs documentation> 
-createSVGPathSegCurvetoQuadraticAbs ::
-                                    (MonadIO m) =>
-                                      SVGPathElement ->
-                                        Float ->
-                                          Float ->
-                                            Float ->
-                                              Float -> m (Maybe SVGPathSegCurvetoQuadraticAbs)
-createSVGPathSegCurvetoQuadraticAbs self x y x1 y1
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoQuadraticAbs (self) x y x1 y1))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticAbs documentation> 
-createSVGPathSegCurvetoQuadraticAbs_ ::
-                                     (MonadIO m) =>
-                                       SVGPathElement -> Float -> Float -> Float -> Float -> m ()
-createSVGPathSegCurvetoQuadraticAbs_ self x y x1 y1
-  = liftIO
-      (void (js_createSVGPathSegCurvetoQuadraticAbs (self) x y x1 y1))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticAbs documentation> 
-createSVGPathSegCurvetoQuadraticAbsUnsafe ::
-                                          (MonadIO m, HasCallStack) =>
-                                            SVGPathElement ->
-                                              Float ->
-                                                Float ->
-                                                  Float -> Float -> m SVGPathSegCurvetoQuadraticAbs
-createSVGPathSegCurvetoQuadraticAbsUnsafe self x y x1 y1
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegCurvetoQuadraticAbs (self) x y x1 y1))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticAbs documentation> 
-createSVGPathSegCurvetoQuadraticAbsUnchecked ::
-                                             (MonadIO m) =>
-                                               SVGPathElement ->
-                                                 Float ->
-                                                   Float ->
-                                                     Float ->
-                                                       Float -> m SVGPathSegCurvetoQuadraticAbs
-createSVGPathSegCurvetoQuadraticAbsUnchecked self x y x1 y1
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoQuadraticAbs (self) x y x1 y1))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegCurvetoQuadraticRel\"]($2,\n$3, $4, $5)"
-        js_createSVGPathSegCurvetoQuadraticRel ::
-        SVGPathElement ->
-          Float ->
-            Float ->
-              Float -> Float -> IO (Nullable SVGPathSegCurvetoQuadraticRel)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticRel documentation> 
-createSVGPathSegCurvetoQuadraticRel ::
-                                    (MonadIO m) =>
-                                      SVGPathElement ->
-                                        Float ->
-                                          Float ->
-                                            Float ->
-                                              Float -> m (Maybe SVGPathSegCurvetoQuadraticRel)
-createSVGPathSegCurvetoQuadraticRel self x y x1 y1
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoQuadraticRel (self) x y x1 y1))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticRel documentation> 
-createSVGPathSegCurvetoQuadraticRel_ ::
-                                     (MonadIO m) =>
-                                       SVGPathElement -> Float -> Float -> Float -> Float -> m ()
-createSVGPathSegCurvetoQuadraticRel_ self x y x1 y1
-  = liftIO
-      (void (js_createSVGPathSegCurvetoQuadraticRel (self) x y x1 y1))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticRel documentation> 
-createSVGPathSegCurvetoQuadraticRelUnsafe ::
-                                          (MonadIO m, HasCallStack) =>
-                                            SVGPathElement ->
-                                              Float ->
-                                                Float ->
-                                                  Float -> Float -> m SVGPathSegCurvetoQuadraticRel
-createSVGPathSegCurvetoQuadraticRelUnsafe self x y x1 y1
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegCurvetoQuadraticRel (self) x y x1 y1))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticRel documentation> 
-createSVGPathSegCurvetoQuadraticRelUnchecked ::
-                                             (MonadIO m) =>
-                                               SVGPathElement ->
-                                                 Float ->
-                                                   Float ->
-                                                     Float ->
-                                                       Float -> m SVGPathSegCurvetoQuadraticRel
-createSVGPathSegCurvetoQuadraticRelUnchecked self x y x1 y1
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoQuadraticRel (self) x y x1 y1))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegArcAbs\"]($2,\n$3, $4, $5, $6, $7, $8)"
-        js_createSVGPathSegArcAbs ::
-        SVGPathElement ->
-          Float ->
-            Float ->
-              Float ->
-                Float -> Float -> Bool -> Bool -> IO (Nullable SVGPathSegArcAbs)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcAbs Mozilla SVGPathElement.createSVGPathSegArcAbs documentation> 
-createSVGPathSegArcAbs ::
-                       (MonadIO m) =>
-                         SVGPathElement ->
-                           Float ->
-                             Float ->
-                               Float ->
-                                 Float -> Float -> Bool -> Bool -> m (Maybe SVGPathSegArcAbs)
-createSVGPathSegArcAbs self x y r1 r2 angle largeArcFlag sweepFlag
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegArcAbs (self) x y r1 r2 angle largeArcFlag
-            sweepFlag))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcAbs Mozilla SVGPathElement.createSVGPathSegArcAbs documentation> 
-createSVGPathSegArcAbs_ ::
-                        (MonadIO m) =>
-                          SVGPathElement ->
-                            Float -> Float -> Float -> Float -> Float -> Bool -> Bool -> m ()
-createSVGPathSegArcAbs_ self x y r1 r2 angle largeArcFlag sweepFlag
-  = liftIO
-      (void
-         (js_createSVGPathSegArcAbs (self) x y r1 r2 angle largeArcFlag
-            sweepFlag))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcAbs Mozilla SVGPathElement.createSVGPathSegArcAbs documentation> 
-createSVGPathSegArcAbsUnsafe ::
-                             (MonadIO m, HasCallStack) =>
-                               SVGPathElement ->
-                                 Float ->
-                                   Float ->
-                                     Float -> Float -> Float -> Bool -> Bool -> m SVGPathSegArcAbs
-createSVGPathSegArcAbsUnsafe self x y r1 r2 angle largeArcFlag
-  sweepFlag
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegArcAbs (self) x y r1 r2 angle largeArcFlag
-             sweepFlag))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcAbs Mozilla SVGPathElement.createSVGPathSegArcAbs documentation> 
-createSVGPathSegArcAbsUnchecked ::
-                                (MonadIO m) =>
-                                  SVGPathElement ->
-                                    Float ->
-                                      Float ->
-                                        Float ->
-                                          Float -> Float -> Bool -> Bool -> m SVGPathSegArcAbs
-createSVGPathSegArcAbsUnchecked self x y r1 r2 angle largeArcFlag
-  sweepFlag
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegArcAbs (self) x y r1 r2 angle largeArcFlag
-            sweepFlag))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegArcRel\"]($2,\n$3, $4, $5, $6, $7, $8)"
-        js_createSVGPathSegArcRel ::
-        SVGPathElement ->
-          Float ->
-            Float ->
-              Float ->
-                Float -> Float -> Bool -> Bool -> IO (Nullable SVGPathSegArcRel)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcRel Mozilla SVGPathElement.createSVGPathSegArcRel documentation> 
-createSVGPathSegArcRel ::
-                       (MonadIO m) =>
-                         SVGPathElement ->
-                           Float ->
-                             Float ->
-                               Float ->
-                                 Float -> Float -> Bool -> Bool -> m (Maybe SVGPathSegArcRel)
-createSVGPathSegArcRel self x y r1 r2 angle largeArcFlag sweepFlag
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegArcRel (self) x y r1 r2 angle largeArcFlag
-            sweepFlag))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcRel Mozilla SVGPathElement.createSVGPathSegArcRel documentation> 
-createSVGPathSegArcRel_ ::
-                        (MonadIO m) =>
-                          SVGPathElement ->
-                            Float -> Float -> Float -> Float -> Float -> Bool -> Bool -> m ()
-createSVGPathSegArcRel_ self x y r1 r2 angle largeArcFlag sweepFlag
-  = liftIO
-      (void
-         (js_createSVGPathSegArcRel (self) x y r1 r2 angle largeArcFlag
-            sweepFlag))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcRel Mozilla SVGPathElement.createSVGPathSegArcRel documentation> 
-createSVGPathSegArcRelUnsafe ::
-                             (MonadIO m, HasCallStack) =>
-                               SVGPathElement ->
-                                 Float ->
-                                   Float ->
-                                     Float -> Float -> Float -> Bool -> Bool -> m SVGPathSegArcRel
-createSVGPathSegArcRelUnsafe self x y r1 r2 angle largeArcFlag
-  sweepFlag
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegArcRel (self) x y r1 r2 angle largeArcFlag
-             sweepFlag))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcRel Mozilla SVGPathElement.createSVGPathSegArcRel documentation> 
-createSVGPathSegArcRelUnchecked ::
-                                (MonadIO m) =>
-                                  SVGPathElement ->
-                                    Float ->
-                                      Float ->
-                                        Float ->
-                                          Float -> Float -> Bool -> Bool -> m SVGPathSegArcRel
-createSVGPathSegArcRelUnchecked self x y r1 r2 angle largeArcFlag
-  sweepFlag
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegArcRel (self) x y r1 r2 angle largeArcFlag
-            sweepFlag))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegLinetoHorizontalAbs\"]($2)"
-        js_createSVGPathSegLinetoHorizontalAbs ::
-        SVGPathElement ->
-          Float -> IO (Nullable SVGPathSegLinetoHorizontalAbs)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalAbs Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalAbs documentation> 
-createSVGPathSegLinetoHorizontalAbs ::
-                                    (MonadIO m) =>
-                                      SVGPathElement ->
-                                        Float -> m (Maybe SVGPathSegLinetoHorizontalAbs)
-createSVGPathSegLinetoHorizontalAbs self x
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegLinetoHorizontalAbs (self) x))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalAbs Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalAbs documentation> 
-createSVGPathSegLinetoHorizontalAbs_ ::
-                                     (MonadIO m) => SVGPathElement -> Float -> m ()
-createSVGPathSegLinetoHorizontalAbs_ self x
-  = liftIO (void (js_createSVGPathSegLinetoHorizontalAbs (self) x))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalAbs Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalAbs documentation> 
-createSVGPathSegLinetoHorizontalAbsUnsafe ::
-                                          (MonadIO m, HasCallStack) =>
-                                            SVGPathElement ->
-                                              Float -> m SVGPathSegLinetoHorizontalAbs
-createSVGPathSegLinetoHorizontalAbsUnsafe self x
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegLinetoHorizontalAbs (self) x))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalAbs Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalAbs documentation> 
-createSVGPathSegLinetoHorizontalAbsUnchecked ::
-                                             (MonadIO m) =>
-                                               SVGPathElement ->
-                                                 Float -> m SVGPathSegLinetoHorizontalAbs
-createSVGPathSegLinetoHorizontalAbsUnchecked self x
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegLinetoHorizontalAbs (self) x))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegLinetoHorizontalRel\"]($2)"
-        js_createSVGPathSegLinetoHorizontalRel ::
-        SVGPathElement ->
-          Float -> IO (Nullable SVGPathSegLinetoHorizontalRel)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalRel Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalRel documentation> 
-createSVGPathSegLinetoHorizontalRel ::
-                                    (MonadIO m) =>
-                                      SVGPathElement ->
-                                        Float -> m (Maybe SVGPathSegLinetoHorizontalRel)
-createSVGPathSegLinetoHorizontalRel self x
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegLinetoHorizontalRel (self) x))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalRel Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalRel documentation> 
-createSVGPathSegLinetoHorizontalRel_ ::
-                                     (MonadIO m) => SVGPathElement -> Float -> m ()
-createSVGPathSegLinetoHorizontalRel_ self x
-  = liftIO (void (js_createSVGPathSegLinetoHorizontalRel (self) x))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalRel Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalRel documentation> 
-createSVGPathSegLinetoHorizontalRelUnsafe ::
-                                          (MonadIO m, HasCallStack) =>
-                                            SVGPathElement ->
-                                              Float -> m SVGPathSegLinetoHorizontalRel
-createSVGPathSegLinetoHorizontalRelUnsafe self x
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegLinetoHorizontalRel (self) x))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalRel Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalRel documentation> 
-createSVGPathSegLinetoHorizontalRelUnchecked ::
-                                             (MonadIO m) =>
-                                               SVGPathElement ->
-                                                 Float -> m SVGPathSegLinetoHorizontalRel
-createSVGPathSegLinetoHorizontalRelUnchecked self x
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegLinetoHorizontalRel (self) x))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegLinetoVerticalAbs\"]($2)"
-        js_createSVGPathSegLinetoVerticalAbs ::
-        SVGPathElement ->
-          Float -> IO (Nullable SVGPathSegLinetoVerticalAbs)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalAbs Mozilla SVGPathElement.createSVGPathSegLinetoVerticalAbs documentation> 
-createSVGPathSegLinetoVerticalAbs ::
-                                  (MonadIO m) =>
-                                    SVGPathElement -> Float -> m (Maybe SVGPathSegLinetoVerticalAbs)
-createSVGPathSegLinetoVerticalAbs self y
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegLinetoVerticalAbs (self) y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalAbs Mozilla SVGPathElement.createSVGPathSegLinetoVerticalAbs documentation> 
-createSVGPathSegLinetoVerticalAbs_ ::
-                                   (MonadIO m) => SVGPathElement -> Float -> m ()
-createSVGPathSegLinetoVerticalAbs_ self y
-  = liftIO (void (js_createSVGPathSegLinetoVerticalAbs (self) y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalAbs Mozilla SVGPathElement.createSVGPathSegLinetoVerticalAbs documentation> 
-createSVGPathSegLinetoVerticalAbsUnsafe ::
-                                        (MonadIO m, HasCallStack) =>
-                                          SVGPathElement -> Float -> m SVGPathSegLinetoVerticalAbs
-createSVGPathSegLinetoVerticalAbsUnsafe self y
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegLinetoVerticalAbs (self) y))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalAbs Mozilla SVGPathElement.createSVGPathSegLinetoVerticalAbs documentation> 
-createSVGPathSegLinetoVerticalAbsUnchecked ::
-                                           (MonadIO m) =>
-                                             SVGPathElement ->
-                                               Float -> m SVGPathSegLinetoVerticalAbs
-createSVGPathSegLinetoVerticalAbsUnchecked self y
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegLinetoVerticalAbs (self) y))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegLinetoVerticalRel\"]($2)"
-        js_createSVGPathSegLinetoVerticalRel ::
-        SVGPathElement ->
-          Float -> IO (Nullable SVGPathSegLinetoVerticalRel)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalRel Mozilla SVGPathElement.createSVGPathSegLinetoVerticalRel documentation> 
-createSVGPathSegLinetoVerticalRel ::
-                                  (MonadIO m) =>
-                                    SVGPathElement -> Float -> m (Maybe SVGPathSegLinetoVerticalRel)
-createSVGPathSegLinetoVerticalRel self y
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegLinetoVerticalRel (self) y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalRel Mozilla SVGPathElement.createSVGPathSegLinetoVerticalRel documentation> 
-createSVGPathSegLinetoVerticalRel_ ::
-                                   (MonadIO m) => SVGPathElement -> Float -> m ()
-createSVGPathSegLinetoVerticalRel_ self y
-  = liftIO (void (js_createSVGPathSegLinetoVerticalRel (self) y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalRel Mozilla SVGPathElement.createSVGPathSegLinetoVerticalRel documentation> 
-createSVGPathSegLinetoVerticalRelUnsafe ::
-                                        (MonadIO m, HasCallStack) =>
-                                          SVGPathElement -> Float -> m SVGPathSegLinetoVerticalRel
-createSVGPathSegLinetoVerticalRelUnsafe self y
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegLinetoVerticalRel (self) y))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalRel Mozilla SVGPathElement.createSVGPathSegLinetoVerticalRel documentation> 
-createSVGPathSegLinetoVerticalRelUnchecked ::
-                                           (MonadIO m) =>
-                                             SVGPathElement ->
-                                               Float -> m SVGPathSegLinetoVerticalRel
-createSVGPathSegLinetoVerticalRelUnchecked self y
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegLinetoVerticalRel (self) y))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegCurvetoCubicSmoothAbs\"]($2,\n$3, $4, $5)"
-        js_createSVGPathSegCurvetoCubicSmoothAbs ::
-        SVGPathElement ->
-          Float ->
-            Float ->
-              Float -> Float -> IO (Nullable SVGPathSegCurvetoCubicSmoothAbs)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs documentation> 
-createSVGPathSegCurvetoCubicSmoothAbs ::
-                                      (MonadIO m) =>
-                                        SVGPathElement ->
-                                          Float ->
-                                            Float ->
-                                              Float ->
-                                                Float -> m (Maybe SVGPathSegCurvetoCubicSmoothAbs)
-createSVGPathSegCurvetoCubicSmoothAbs self x y x2 y2
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoCubicSmoothAbs (self) x y x2 y2))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs documentation> 
-createSVGPathSegCurvetoCubicSmoothAbs_ ::
-                                       (MonadIO m) =>
-                                         SVGPathElement -> Float -> Float -> Float -> Float -> m ()
-createSVGPathSegCurvetoCubicSmoothAbs_ self x y x2 y2
-  = liftIO
-      (void (js_createSVGPathSegCurvetoCubicSmoothAbs (self) x y x2 y2))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs documentation> 
-createSVGPathSegCurvetoCubicSmoothAbsUnsafe ::
-                                            (MonadIO m, HasCallStack) =>
-                                              SVGPathElement ->
-                                                Float ->
-                                                  Float ->
-                                                    Float ->
-                                                      Float -> m SVGPathSegCurvetoCubicSmoothAbs
-createSVGPathSegCurvetoCubicSmoothAbsUnsafe self x y x2 y2
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegCurvetoCubicSmoothAbs (self) x y x2 y2))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs documentation> 
-createSVGPathSegCurvetoCubicSmoothAbsUnchecked ::
-                                               (MonadIO m) =>
-                                                 SVGPathElement ->
-                                                   Float ->
-                                                     Float ->
-                                                       Float ->
-                                                         Float -> m SVGPathSegCurvetoCubicSmoothAbs
-createSVGPathSegCurvetoCubicSmoothAbsUnchecked self x y x2 y2
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoCubicSmoothAbs (self) x y x2 y2))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegCurvetoCubicSmoothRel\"]($2,\n$3, $4, $5)"
-        js_createSVGPathSegCurvetoCubicSmoothRel ::
-        SVGPathElement ->
-          Float ->
-            Float ->
-              Float -> Float -> IO (Nullable SVGPathSegCurvetoCubicSmoothRel)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel documentation> 
-createSVGPathSegCurvetoCubicSmoothRel ::
-                                      (MonadIO m) =>
-                                        SVGPathElement ->
-                                          Float ->
-                                            Float ->
-                                              Float ->
-                                                Float -> m (Maybe SVGPathSegCurvetoCubicSmoothRel)
-createSVGPathSegCurvetoCubicSmoothRel self x y x2 y2
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoCubicSmoothRel (self) x y x2 y2))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel documentation> 
-createSVGPathSegCurvetoCubicSmoothRel_ ::
-                                       (MonadIO m) =>
-                                         SVGPathElement -> Float -> Float -> Float -> Float -> m ()
-createSVGPathSegCurvetoCubicSmoothRel_ self x y x2 y2
-  = liftIO
-      (void (js_createSVGPathSegCurvetoCubicSmoothRel (self) x y x2 y2))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel documentation> 
-createSVGPathSegCurvetoCubicSmoothRelUnsafe ::
-                                            (MonadIO m, HasCallStack) =>
-                                              SVGPathElement ->
-                                                Float ->
-                                                  Float ->
-                                                    Float ->
-                                                      Float -> m SVGPathSegCurvetoCubicSmoothRel
-createSVGPathSegCurvetoCubicSmoothRelUnsafe self x y x2 y2
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegCurvetoCubicSmoothRel (self) x y x2 y2))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel documentation> 
-createSVGPathSegCurvetoCubicSmoothRelUnchecked ::
-                                               (MonadIO m) =>
-                                                 SVGPathElement ->
-                                                   Float ->
-                                                     Float ->
-                                                       Float ->
-                                                         Float -> m SVGPathSegCurvetoCubicSmoothRel
-createSVGPathSegCurvetoCubicSmoothRelUnchecked self x y x2 y2
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoCubicSmoothRel (self) x y x2 y2))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegCurvetoQuadraticSmoothAbs\"]($2,\n$3)"
-        js_createSVGPathSegCurvetoQuadraticSmoothAbs ::
-        SVGPathElement ->
-          Float -> Float -> IO (Nullable SVGPathSegCurvetoQuadraticSmoothAbs)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs documentation> 
-createSVGPathSegCurvetoQuadraticSmoothAbs ::
-                                          (MonadIO m) =>
-                                            SVGPathElement ->
-                                              Float ->
-                                                Float ->
-                                                  m (Maybe SVGPathSegCurvetoQuadraticSmoothAbs)
-createSVGPathSegCurvetoQuadraticSmoothAbs self x y
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoQuadraticSmoothAbs (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs documentation> 
-createSVGPathSegCurvetoQuadraticSmoothAbs_ ::
-                                           (MonadIO m) => SVGPathElement -> Float -> Float -> m ()
-createSVGPathSegCurvetoQuadraticSmoothAbs_ self x y
-  = liftIO
-      (void (js_createSVGPathSegCurvetoQuadraticSmoothAbs (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs documentation> 
-createSVGPathSegCurvetoQuadraticSmoothAbsUnsafe ::
-                                                (MonadIO m, HasCallStack) =>
-                                                  SVGPathElement ->
-                                                    Float ->
-                                                      Float -> m SVGPathSegCurvetoQuadraticSmoothAbs
-createSVGPathSegCurvetoQuadraticSmoothAbsUnsafe self x y
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegCurvetoQuadraticSmoothAbs (self) x y))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs documentation> 
-createSVGPathSegCurvetoQuadraticSmoothAbsUnchecked ::
-                                                   (MonadIO m) =>
-                                                     SVGPathElement ->
-                                                       Float ->
-                                                         Float ->
-                                                           m SVGPathSegCurvetoQuadraticSmoothAbs
-createSVGPathSegCurvetoQuadraticSmoothAbsUnchecked self x y
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoQuadraticSmoothAbs (self) x y))
- 
-foreign import javascript unsafe
-        "$1[\"createSVGPathSegCurvetoQuadraticSmoothRel\"]($2,\n$3)"
-        js_createSVGPathSegCurvetoQuadraticSmoothRel ::
-        SVGPathElement ->
-          Float -> Float -> IO (Nullable SVGPathSegCurvetoQuadraticSmoothRel)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel documentation> 
-createSVGPathSegCurvetoQuadraticSmoothRel ::
-                                          (MonadIO m) =>
-                                            SVGPathElement ->
-                                              Float ->
-                                                Float ->
-                                                  m (Maybe SVGPathSegCurvetoQuadraticSmoothRel)
-createSVGPathSegCurvetoQuadraticSmoothRel self x y
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoQuadraticSmoothRel (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel documentation> 
-createSVGPathSegCurvetoQuadraticSmoothRel_ ::
-                                           (MonadIO m) => SVGPathElement -> Float -> Float -> m ()
-createSVGPathSegCurvetoQuadraticSmoothRel_ self x y
-  = liftIO
-      (void (js_createSVGPathSegCurvetoQuadraticSmoothRel (self) x y))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel documentation> 
-createSVGPathSegCurvetoQuadraticSmoothRelUnsafe ::
-                                                (MonadIO m, HasCallStack) =>
-                                                  SVGPathElement ->
-                                                    Float ->
-                                                      Float -> m SVGPathSegCurvetoQuadraticSmoothRel
-createSVGPathSegCurvetoQuadraticSmoothRelUnsafe self x y
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGPathSegCurvetoQuadraticSmoothRel (self) x y))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel documentation> 
-createSVGPathSegCurvetoQuadraticSmoothRelUnchecked ::
-                                                   (MonadIO m) =>
-                                                     SVGPathElement ->
-                                                       Float ->
-                                                         Float ->
-                                                           m SVGPathSegCurvetoQuadraticSmoothRel
-createSVGPathSegCurvetoQuadraticSmoothRelUnchecked self x y
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGPathSegCurvetoQuadraticSmoothRel (self) x y))
- 
-foreign import javascript unsafe "$1[\"pathLength\"]"
-        js_getPathLength ::
-        SVGPathElement -> IO (Nullable SVGAnimatedNumber)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.pathLength Mozilla SVGPathElement.pathLength documentation> 
-getPathLength ::
-              (MonadIO m) => SVGPathElement -> m (Maybe SVGAnimatedNumber)
-getPathLength self
-  = liftIO (nullableToMaybe <$> (js_getPathLength (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.pathLength Mozilla SVGPathElement.pathLength documentation> 
-getPathLengthUnsafe ::
-                    (MonadIO m, HasCallStack) => SVGPathElement -> m SVGAnimatedNumber
-getPathLengthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPathLength (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.pathLength Mozilla SVGPathElement.pathLength documentation> 
-getPathLengthUnchecked ::
-                       (MonadIO m) => SVGPathElement -> m SVGAnimatedNumber
-getPathLengthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPathLength (self)))
- 
-foreign import javascript unsafe "$1[\"pathSegList\"]"
-        js_getPathSegList :: SVGPathElement -> IO (Nullable SVGPathSegList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.pathSegList Mozilla SVGPathElement.pathSegList documentation> 
-getPathSegList ::
-               (MonadIO m) => SVGPathElement -> m (Maybe SVGPathSegList)
-getPathSegList self
-  = liftIO (nullableToMaybe <$> (js_getPathSegList (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.pathSegList Mozilla SVGPathElement.pathSegList documentation> 
-getPathSegListUnsafe ::
-                     (MonadIO m, HasCallStack) => SVGPathElement -> m SVGPathSegList
-getPathSegListUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPathSegList (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.pathSegList Mozilla SVGPathElement.pathSegList documentation> 
-getPathSegListUnchecked ::
-                        (MonadIO m) => SVGPathElement -> m SVGPathSegList
-getPathSegListUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPathSegList (self)))
- 
-foreign import javascript unsafe "$1[\"normalizedPathSegList\"]"
-        js_getNormalizedPathSegList ::
-        SVGPathElement -> IO (Nullable SVGPathSegList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.normalizedPathSegList Mozilla SVGPathElement.normalizedPathSegList documentation> 
-getNormalizedPathSegList ::
-                         (MonadIO m) => SVGPathElement -> m (Maybe SVGPathSegList)
-getNormalizedPathSegList self
-  = liftIO (nullableToMaybe <$> (js_getNormalizedPathSegList (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.normalizedPathSegList Mozilla SVGPathElement.normalizedPathSegList documentation> 
-getNormalizedPathSegListUnsafe ::
-                               (MonadIO m, HasCallStack) => SVGPathElement -> m SVGPathSegList
-getNormalizedPathSegListUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getNormalizedPathSegList (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.normalizedPathSegList Mozilla SVGPathElement.normalizedPathSegList documentation> 
-getNormalizedPathSegListUnchecked ::
-                                  (MonadIO m) => SVGPathElement -> m SVGPathSegList
-getNormalizedPathSegListUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getNormalizedPathSegList (self)))
- 
-foreign import javascript unsafe "$1[\"animatedPathSegList\"]"
-        js_getAnimatedPathSegList ::
-        SVGPathElement -> IO (Nullable SVGPathSegList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.animatedPathSegList Mozilla SVGPathElement.animatedPathSegList documentation> 
-getAnimatedPathSegList ::
-                       (MonadIO m) => SVGPathElement -> m (Maybe SVGPathSegList)
-getAnimatedPathSegList self
-  = liftIO (nullableToMaybe <$> (js_getAnimatedPathSegList (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.animatedPathSegList Mozilla SVGPathElement.animatedPathSegList documentation> 
-getAnimatedPathSegListUnsafe ::
-                             (MonadIO m, HasCallStack) => SVGPathElement -> m SVGPathSegList
-getAnimatedPathSegListUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnimatedPathSegList (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.animatedPathSegList Mozilla SVGPathElement.animatedPathSegList documentation> 
-getAnimatedPathSegListUnchecked ::
-                                (MonadIO m) => SVGPathElement -> m SVGPathSegList
-getAnimatedPathSegListUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getAnimatedPathSegList (self)))
- 
-foreign import javascript unsafe
-        "$1[\"animatedNormalizedPathSegList\"]"
-        js_getAnimatedNormalizedPathSegList ::
-        SVGPathElement -> IO (Nullable SVGPathSegList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.animatedNormalizedPathSegList Mozilla SVGPathElement.animatedNormalizedPathSegList documentation> 
-getAnimatedNormalizedPathSegList ::
-                                 (MonadIO m) => SVGPathElement -> m (Maybe SVGPathSegList)
-getAnimatedNormalizedPathSegList self
-  = liftIO
-      (nullableToMaybe <$> (js_getAnimatedNormalizedPathSegList (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.animatedNormalizedPathSegList Mozilla SVGPathElement.animatedNormalizedPathSegList documentation> 
-getAnimatedNormalizedPathSegListUnsafe ::
-                                       (MonadIO m, HasCallStack) =>
-                                         SVGPathElement -> m SVGPathSegList
-getAnimatedNormalizedPathSegListUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnimatedNormalizedPathSegList (self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.animatedNormalizedPathSegList Mozilla SVGPathElement.animatedNormalizedPathSegList documentation> 
-getAnimatedNormalizedPathSegListUnchecked ::
-                                          (MonadIO m) => SVGPathElement -> m SVGPathSegList
-getAnimatedNormalizedPathSegListUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getAnimatedNormalizedPathSegList (self)))
+        js_getPathSegAtLength, getPathSegAtLength, getPathSegAtLength_,
+        js_createSVGPathSegClosePath, createSVGPathSegClosePath,
+        createSVGPathSegClosePath_, js_createSVGPathSegMovetoAbs,
+        createSVGPathSegMovetoAbs, createSVGPathSegMovetoAbs_,
+        js_createSVGPathSegMovetoRel, createSVGPathSegMovetoRel,
+        createSVGPathSegMovetoRel_, js_createSVGPathSegLinetoAbs,
+        createSVGPathSegLinetoAbs, createSVGPathSegLinetoAbs_,
+        js_createSVGPathSegLinetoRel, createSVGPathSegLinetoRel,
+        createSVGPathSegLinetoRel_, js_createSVGPathSegCurvetoCubicAbs,
+        createSVGPathSegCurvetoCubicAbs, createSVGPathSegCurvetoCubicAbs_,
+        js_createSVGPathSegCurvetoCubicRel,
+        createSVGPathSegCurvetoCubicRel, createSVGPathSegCurvetoCubicRel_,
+        js_createSVGPathSegCurvetoQuadraticAbs,
+        createSVGPathSegCurvetoQuadraticAbs,
+        createSVGPathSegCurvetoQuadraticAbs_,
+        js_createSVGPathSegCurvetoQuadraticRel,
+        createSVGPathSegCurvetoQuadraticRel,
+        createSVGPathSegCurvetoQuadraticRel_, js_createSVGPathSegArcAbs,
+        createSVGPathSegArcAbs, createSVGPathSegArcAbs_,
+        js_createSVGPathSegArcRel, createSVGPathSegArcRel,
+        createSVGPathSegArcRel_, js_createSVGPathSegLinetoHorizontalAbs,
+        createSVGPathSegLinetoHorizontalAbs,
+        createSVGPathSegLinetoHorizontalAbs_,
+        js_createSVGPathSegLinetoHorizontalRel,
+        createSVGPathSegLinetoHorizontalRel,
+        createSVGPathSegLinetoHorizontalRel_,
+        js_createSVGPathSegLinetoVerticalAbs,
+        createSVGPathSegLinetoVerticalAbs,
+        createSVGPathSegLinetoVerticalAbs_,
+        js_createSVGPathSegLinetoVerticalRel,
+        createSVGPathSegLinetoVerticalRel,
+        createSVGPathSegLinetoVerticalRel_,
+        js_createSVGPathSegCurvetoCubicSmoothAbs,
+        createSVGPathSegCurvetoCubicSmoothAbs,
+        createSVGPathSegCurvetoCubicSmoothAbs_,
+        js_createSVGPathSegCurvetoCubicSmoothRel,
+        createSVGPathSegCurvetoCubicSmoothRel,
+        createSVGPathSegCurvetoCubicSmoothRel_,
+        js_createSVGPathSegCurvetoQuadraticSmoothAbs,
+        createSVGPathSegCurvetoQuadraticSmoothAbs,
+        createSVGPathSegCurvetoQuadraticSmoothAbs_,
+        js_createSVGPathSegCurvetoQuadraticSmoothRel,
+        createSVGPathSegCurvetoQuadraticSmoothRel,
+        createSVGPathSegCurvetoQuadraticSmoothRel_, js_getPathLength,
+        getPathLength, js_getPathSegList, getPathSegList,
+        js_getNormalizedPathSegList, getNormalizedPathSegList,
+        js_getAnimatedPathSegList, getAnimatedPathSegList,
+        js_getAnimatedNormalizedPathSegList,
+        getAnimatedNormalizedPathSegList, SVGPathElement(..),
+        gTypeSVGPathElement)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"getTotalLength\"]()"
+        js_getTotalLength :: SVGPathElement -> IO Float
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getTotalLength Mozilla SVGPathElement.getTotalLength documentation> 
+getTotalLength :: (MonadIO m) => SVGPathElement -> m Float
+getTotalLength self = liftIO (js_getTotalLength self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getTotalLength Mozilla SVGPathElement.getTotalLength documentation> 
+getTotalLength_ :: (MonadIO m) => SVGPathElement -> m ()
+getTotalLength_ self = liftIO (void (js_getTotalLength self))
+ 
+foreign import javascript unsafe "$1[\"getPointAtLength\"]($2)"
+        js_getPointAtLength ::
+        SVGPathElement -> Optional Float -> IO SVGPoint
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getPointAtLength Mozilla SVGPathElement.getPointAtLength documentation> 
+getPointAtLength ::
+                 (MonadIO m) => SVGPathElement -> Maybe Float -> m SVGPoint
+getPointAtLength self distance
+  = liftIO (js_getPointAtLength self (maybeToOptional distance))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getPointAtLength Mozilla SVGPathElement.getPointAtLength documentation> 
+getPointAtLength_ ::
+                  (MonadIO m) => SVGPathElement -> Maybe Float -> m ()
+getPointAtLength_ self distance
+  = liftIO
+      (void (js_getPointAtLength self (maybeToOptional distance)))
+ 
+foreign import javascript unsafe "$1[\"getPathSegAtLength\"]($2)"
+        js_getPathSegAtLength ::
+        SVGPathElement -> Optional Float -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getPathSegAtLength Mozilla SVGPathElement.getPathSegAtLength documentation> 
+getPathSegAtLength ::
+                   (MonadIO m) => SVGPathElement -> Maybe Float -> m Word
+getPathSegAtLength self distance
+  = liftIO (js_getPathSegAtLength self (maybeToOptional distance))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.getPathSegAtLength Mozilla SVGPathElement.getPathSegAtLength documentation> 
+getPathSegAtLength_ ::
+                    (MonadIO m) => SVGPathElement -> Maybe Float -> m ()
+getPathSegAtLength_ self distance
+  = liftIO
+      (void (js_getPathSegAtLength self (maybeToOptional distance)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegClosePath\"]()" js_createSVGPathSegClosePath
+        :: SVGPathElement -> IO SVGPathSegClosePath
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegClosePath Mozilla SVGPathElement.createSVGPathSegClosePath documentation> 
+createSVGPathSegClosePath ::
+                          (MonadIO m) => SVGPathElement -> m SVGPathSegClosePath
+createSVGPathSegClosePath self
+  = liftIO (js_createSVGPathSegClosePath self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegClosePath Mozilla SVGPathElement.createSVGPathSegClosePath documentation> 
+createSVGPathSegClosePath_ :: (MonadIO m) => SVGPathElement -> m ()
+createSVGPathSegClosePath_ self
+  = liftIO (void (js_createSVGPathSegClosePath self))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegMovetoAbs\"]($2,\n$3)"
+        js_createSVGPathSegMovetoAbs ::
+        SVGPathElement ->
+          Optional Float -> Optional Float -> IO SVGPathSegMovetoAbs
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoAbs Mozilla SVGPathElement.createSVGPathSegMovetoAbs documentation> 
+createSVGPathSegMovetoAbs ::
+                          (MonadIO m) =>
+                            SVGPathElement ->
+                              Maybe Float -> Maybe Float -> m SVGPathSegMovetoAbs
+createSVGPathSegMovetoAbs self x y
+  = liftIO
+      (js_createSVGPathSegMovetoAbs self (maybeToOptional x)
+         (maybeToOptional y))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoAbs Mozilla SVGPathElement.createSVGPathSegMovetoAbs documentation> 
+createSVGPathSegMovetoAbs_ ::
+                           (MonadIO m) => SVGPathElement -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegMovetoAbs_ self x y
+  = liftIO
+      (void
+         (js_createSVGPathSegMovetoAbs self (maybeToOptional x)
+            (maybeToOptional y)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegMovetoRel\"]($2,\n$3)"
+        js_createSVGPathSegMovetoRel ::
+        SVGPathElement ->
+          Optional Float -> Optional Float -> IO SVGPathSegMovetoRel
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoRel Mozilla SVGPathElement.createSVGPathSegMovetoRel documentation> 
+createSVGPathSegMovetoRel ::
+                          (MonadIO m) =>
+                            SVGPathElement ->
+                              Maybe Float -> Maybe Float -> m SVGPathSegMovetoRel
+createSVGPathSegMovetoRel self x y
+  = liftIO
+      (js_createSVGPathSegMovetoRel self (maybeToOptional x)
+         (maybeToOptional y))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegMovetoRel Mozilla SVGPathElement.createSVGPathSegMovetoRel documentation> 
+createSVGPathSegMovetoRel_ ::
+                           (MonadIO m) => SVGPathElement -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegMovetoRel_ self x y
+  = liftIO
+      (void
+         (js_createSVGPathSegMovetoRel self (maybeToOptional x)
+            (maybeToOptional y)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegLinetoAbs\"]($2,\n$3)"
+        js_createSVGPathSegLinetoAbs ::
+        SVGPathElement ->
+          Optional Float -> Optional Float -> IO SVGPathSegLinetoAbs
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoAbs Mozilla SVGPathElement.createSVGPathSegLinetoAbs documentation> 
+createSVGPathSegLinetoAbs ::
+                          (MonadIO m) =>
+                            SVGPathElement ->
+                              Maybe Float -> Maybe Float -> m SVGPathSegLinetoAbs
+createSVGPathSegLinetoAbs self x y
+  = liftIO
+      (js_createSVGPathSegLinetoAbs self (maybeToOptional x)
+         (maybeToOptional y))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoAbs Mozilla SVGPathElement.createSVGPathSegLinetoAbs documentation> 
+createSVGPathSegLinetoAbs_ ::
+                           (MonadIO m) => SVGPathElement -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegLinetoAbs_ self x y
+  = liftIO
+      (void
+         (js_createSVGPathSegLinetoAbs self (maybeToOptional x)
+            (maybeToOptional y)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegLinetoRel\"]($2,\n$3)"
+        js_createSVGPathSegLinetoRel ::
+        SVGPathElement ->
+          Optional Float -> Optional Float -> IO SVGPathSegLinetoRel
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoRel Mozilla SVGPathElement.createSVGPathSegLinetoRel documentation> 
+createSVGPathSegLinetoRel ::
+                          (MonadIO m) =>
+                            SVGPathElement ->
+                              Maybe Float -> Maybe Float -> m SVGPathSegLinetoRel
+createSVGPathSegLinetoRel self x y
+  = liftIO
+      (js_createSVGPathSegLinetoRel self (maybeToOptional x)
+         (maybeToOptional y))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoRel Mozilla SVGPathElement.createSVGPathSegLinetoRel documentation> 
+createSVGPathSegLinetoRel_ ::
+                           (MonadIO m) => SVGPathElement -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegLinetoRel_ self x y
+  = liftIO
+      (void
+         (js_createSVGPathSegLinetoRel self (maybeToOptional x)
+            (maybeToOptional y)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegCurvetoCubicAbs\"]($2,\n$3, $4, $5, $6, $7)"
+        js_createSVGPathSegCurvetoCubicAbs ::
+        SVGPathElement ->
+          Optional Float ->
+            Optional Float ->
+              Optional Float ->
+                Optional Float ->
+                  Optional Float -> Optional Float -> IO SVGPathSegCurvetoCubicAbs
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicAbs documentation> 
+createSVGPathSegCurvetoCubicAbs ::
+                                (MonadIO m) =>
+                                  SVGPathElement ->
+                                    Maybe Float ->
+                                      Maybe Float ->
+                                        Maybe Float ->
+                                          Maybe Float ->
+                                            Maybe Float ->
+                                              Maybe Float -> m SVGPathSegCurvetoCubicAbs
+createSVGPathSegCurvetoCubicAbs self x y x1 y1 x2 y2
+  = liftIO
+      (js_createSVGPathSegCurvetoCubicAbs self (maybeToOptional x)
+         (maybeToOptional y)
+         (maybeToOptional x1)
+         (maybeToOptional y1)
+         (maybeToOptional x2)
+         (maybeToOptional y2))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicAbs documentation> 
+createSVGPathSegCurvetoCubicAbs_ ::
+                                 (MonadIO m) =>
+                                   SVGPathElement ->
+                                     Maybe Float ->
+                                       Maybe Float ->
+                                         Maybe Float ->
+                                           Maybe Float -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegCurvetoCubicAbs_ self x y x1 y1 x2 y2
+  = liftIO
+      (void
+         (js_createSVGPathSegCurvetoCubicAbs self (maybeToOptional x)
+            (maybeToOptional y)
+            (maybeToOptional x1)
+            (maybeToOptional y1)
+            (maybeToOptional x2)
+            (maybeToOptional y2)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegCurvetoCubicRel\"]($2,\n$3, $4, $5, $6, $7)"
+        js_createSVGPathSegCurvetoCubicRel ::
+        SVGPathElement ->
+          Optional Float ->
+            Optional Float ->
+              Optional Float ->
+                Optional Float ->
+                  Optional Float -> Optional Float -> IO SVGPathSegCurvetoCubicRel
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicRel documentation> 
+createSVGPathSegCurvetoCubicRel ::
+                                (MonadIO m) =>
+                                  SVGPathElement ->
+                                    Maybe Float ->
+                                      Maybe Float ->
+                                        Maybe Float ->
+                                          Maybe Float ->
+                                            Maybe Float ->
+                                              Maybe Float -> m SVGPathSegCurvetoCubicRel
+createSVGPathSegCurvetoCubicRel self x y x1 y1 x2 y2
+  = liftIO
+      (js_createSVGPathSegCurvetoCubicRel self (maybeToOptional x)
+         (maybeToOptional y)
+         (maybeToOptional x1)
+         (maybeToOptional y1)
+         (maybeToOptional x2)
+         (maybeToOptional y2))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicRel documentation> 
+createSVGPathSegCurvetoCubicRel_ ::
+                                 (MonadIO m) =>
+                                   SVGPathElement ->
+                                     Maybe Float ->
+                                       Maybe Float ->
+                                         Maybe Float ->
+                                           Maybe Float -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegCurvetoCubicRel_ self x y x1 y1 x2 y2
+  = liftIO
+      (void
+         (js_createSVGPathSegCurvetoCubicRel self (maybeToOptional x)
+            (maybeToOptional y)
+            (maybeToOptional x1)
+            (maybeToOptional y1)
+            (maybeToOptional x2)
+            (maybeToOptional y2)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegCurvetoQuadraticAbs\"]($2,\n$3, $4, $5)"
+        js_createSVGPathSegCurvetoQuadraticAbs ::
+        SVGPathElement ->
+          Optional Float ->
+            Optional Float ->
+              Optional Float ->
+                Optional Float -> IO SVGPathSegCurvetoQuadraticAbs
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticAbs documentation> 
+createSVGPathSegCurvetoQuadraticAbs ::
+                                    (MonadIO m) =>
+                                      SVGPathElement ->
+                                        Maybe Float ->
+                                          Maybe Float ->
+                                            Maybe Float ->
+                                              Maybe Float -> m SVGPathSegCurvetoQuadraticAbs
+createSVGPathSegCurvetoQuadraticAbs self x y x1 y1
+  = liftIO
+      (js_createSVGPathSegCurvetoQuadraticAbs self (maybeToOptional x)
+         (maybeToOptional y)
+         (maybeToOptional x1)
+         (maybeToOptional y1))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticAbs documentation> 
+createSVGPathSegCurvetoQuadraticAbs_ ::
+                                     (MonadIO m) =>
+                                       SVGPathElement ->
+                                         Maybe Float ->
+                                           Maybe Float -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegCurvetoQuadraticAbs_ self x y x1 y1
+  = liftIO
+      (void
+         (js_createSVGPathSegCurvetoQuadraticAbs self (maybeToOptional x)
+            (maybeToOptional y)
+            (maybeToOptional x1)
+            (maybeToOptional y1)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegCurvetoQuadraticRel\"]($2,\n$3, $4, $5)"
+        js_createSVGPathSegCurvetoQuadraticRel ::
+        SVGPathElement ->
+          Optional Float ->
+            Optional Float ->
+              Optional Float ->
+                Optional Float -> IO SVGPathSegCurvetoQuadraticRel
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticRel documentation> 
+createSVGPathSegCurvetoQuadraticRel ::
+                                    (MonadIO m) =>
+                                      SVGPathElement ->
+                                        Maybe Float ->
+                                          Maybe Float ->
+                                            Maybe Float ->
+                                              Maybe Float -> m SVGPathSegCurvetoQuadraticRel
+createSVGPathSegCurvetoQuadraticRel self x y x1 y1
+  = liftIO
+      (js_createSVGPathSegCurvetoQuadraticRel self (maybeToOptional x)
+         (maybeToOptional y)
+         (maybeToOptional x1)
+         (maybeToOptional y1))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticRel documentation> 
+createSVGPathSegCurvetoQuadraticRel_ ::
+                                     (MonadIO m) =>
+                                       SVGPathElement ->
+                                         Maybe Float ->
+                                           Maybe Float -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegCurvetoQuadraticRel_ self x y x1 y1
+  = liftIO
+      (void
+         (js_createSVGPathSegCurvetoQuadraticRel self (maybeToOptional x)
+            (maybeToOptional y)
+            (maybeToOptional x1)
+            (maybeToOptional y1)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegArcAbs\"]($2,\n$3, $4, $5, $6, $7, $8)"
+        js_createSVGPathSegArcAbs ::
+        SVGPathElement ->
+          Optional Float ->
+            Optional Float ->
+              Optional Float ->
+                Optional Float ->
+                  Optional Float -> Bool -> Bool -> IO SVGPathSegArcAbs
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcAbs Mozilla SVGPathElement.createSVGPathSegArcAbs documentation> 
+createSVGPathSegArcAbs ::
+                       (MonadIO m) =>
+                         SVGPathElement ->
+                           Maybe Float ->
+                             Maybe Float ->
+                               Maybe Float ->
+                                 Maybe Float -> Maybe Float -> Bool -> Bool -> m SVGPathSegArcAbs
+createSVGPathSegArcAbs self x y r1 r2 angle largeArcFlag sweepFlag
+  = liftIO
+      (js_createSVGPathSegArcAbs self (maybeToOptional x)
+         (maybeToOptional y)
+         (maybeToOptional r1)
+         (maybeToOptional r2)
+         (maybeToOptional angle)
+         largeArcFlag
+         sweepFlag)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcAbs Mozilla SVGPathElement.createSVGPathSegArcAbs documentation> 
+createSVGPathSegArcAbs_ ::
+                        (MonadIO m) =>
+                          SVGPathElement ->
+                            Maybe Float ->
+                              Maybe Float ->
+                                Maybe Float -> Maybe Float -> Maybe Float -> Bool -> Bool -> m ()
+createSVGPathSegArcAbs_ self x y r1 r2 angle largeArcFlag sweepFlag
+  = liftIO
+      (void
+         (js_createSVGPathSegArcAbs self (maybeToOptional x)
+            (maybeToOptional y)
+            (maybeToOptional r1)
+            (maybeToOptional r2)
+            (maybeToOptional angle)
+            largeArcFlag
+            sweepFlag))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegArcRel\"]($2,\n$3, $4, $5, $6, $7, $8)"
+        js_createSVGPathSegArcRel ::
+        SVGPathElement ->
+          Optional Float ->
+            Optional Float ->
+              Optional Float ->
+                Optional Float ->
+                  Optional Float -> Bool -> Bool -> IO SVGPathSegArcRel
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcRel Mozilla SVGPathElement.createSVGPathSegArcRel documentation> 
+createSVGPathSegArcRel ::
+                       (MonadIO m) =>
+                         SVGPathElement ->
+                           Maybe Float ->
+                             Maybe Float ->
+                               Maybe Float ->
+                                 Maybe Float -> Maybe Float -> Bool -> Bool -> m SVGPathSegArcRel
+createSVGPathSegArcRel self x y r1 r2 angle largeArcFlag sweepFlag
+  = liftIO
+      (js_createSVGPathSegArcRel self (maybeToOptional x)
+         (maybeToOptional y)
+         (maybeToOptional r1)
+         (maybeToOptional r2)
+         (maybeToOptional angle)
+         largeArcFlag
+         sweepFlag)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegArcRel Mozilla SVGPathElement.createSVGPathSegArcRel documentation> 
+createSVGPathSegArcRel_ ::
+                        (MonadIO m) =>
+                          SVGPathElement ->
+                            Maybe Float ->
+                              Maybe Float ->
+                                Maybe Float -> Maybe Float -> Maybe Float -> Bool -> Bool -> m ()
+createSVGPathSegArcRel_ self x y r1 r2 angle largeArcFlag sweepFlag
+  = liftIO
+      (void
+         (js_createSVGPathSegArcRel self (maybeToOptional x)
+            (maybeToOptional y)
+            (maybeToOptional r1)
+            (maybeToOptional r2)
+            (maybeToOptional angle)
+            largeArcFlag
+            sweepFlag))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegLinetoHorizontalAbs\"]($2)"
+        js_createSVGPathSegLinetoHorizontalAbs ::
+        SVGPathElement ->
+          Optional Float -> IO SVGPathSegLinetoHorizontalAbs
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalAbs Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalAbs documentation> 
+createSVGPathSegLinetoHorizontalAbs ::
+                                    (MonadIO m) =>
+                                      SVGPathElement ->
+                                        Maybe Float -> m SVGPathSegLinetoHorizontalAbs
+createSVGPathSegLinetoHorizontalAbs self x
+  = liftIO
+      (js_createSVGPathSegLinetoHorizontalAbs self (maybeToOptional x))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalAbs Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalAbs documentation> 
+createSVGPathSegLinetoHorizontalAbs_ ::
+                                     (MonadIO m) => SVGPathElement -> Maybe Float -> m ()
+createSVGPathSegLinetoHorizontalAbs_ self x
+  = liftIO
+      (void
+         (js_createSVGPathSegLinetoHorizontalAbs self (maybeToOptional x)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegLinetoHorizontalRel\"]($2)"
+        js_createSVGPathSegLinetoHorizontalRel ::
+        SVGPathElement ->
+          Optional Float -> IO SVGPathSegLinetoHorizontalRel
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalRel Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalRel documentation> 
+createSVGPathSegLinetoHorizontalRel ::
+                                    (MonadIO m) =>
+                                      SVGPathElement ->
+                                        Maybe Float -> m SVGPathSegLinetoHorizontalRel
+createSVGPathSegLinetoHorizontalRel self x
+  = liftIO
+      (js_createSVGPathSegLinetoHorizontalRel self (maybeToOptional x))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoHorizontalRel Mozilla SVGPathElement.createSVGPathSegLinetoHorizontalRel documentation> 
+createSVGPathSegLinetoHorizontalRel_ ::
+                                     (MonadIO m) => SVGPathElement -> Maybe Float -> m ()
+createSVGPathSegLinetoHorizontalRel_ self x
+  = liftIO
+      (void
+         (js_createSVGPathSegLinetoHorizontalRel self (maybeToOptional x)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegLinetoVerticalAbs\"]($2)"
+        js_createSVGPathSegLinetoVerticalAbs ::
+        SVGPathElement -> Optional Float -> IO SVGPathSegLinetoVerticalAbs
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalAbs Mozilla SVGPathElement.createSVGPathSegLinetoVerticalAbs documentation> 
+createSVGPathSegLinetoVerticalAbs ::
+                                  (MonadIO m) =>
+                                    SVGPathElement -> Maybe Float -> m SVGPathSegLinetoVerticalAbs
+createSVGPathSegLinetoVerticalAbs self y
+  = liftIO
+      (js_createSVGPathSegLinetoVerticalAbs self (maybeToOptional y))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalAbs Mozilla SVGPathElement.createSVGPathSegLinetoVerticalAbs documentation> 
+createSVGPathSegLinetoVerticalAbs_ ::
+                                   (MonadIO m) => SVGPathElement -> Maybe Float -> m ()
+createSVGPathSegLinetoVerticalAbs_ self y
+  = liftIO
+      (void
+         (js_createSVGPathSegLinetoVerticalAbs self (maybeToOptional y)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegLinetoVerticalRel\"]($2)"
+        js_createSVGPathSegLinetoVerticalRel ::
+        SVGPathElement -> Optional Float -> IO SVGPathSegLinetoVerticalRel
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalRel Mozilla SVGPathElement.createSVGPathSegLinetoVerticalRel documentation> 
+createSVGPathSegLinetoVerticalRel ::
+                                  (MonadIO m) =>
+                                    SVGPathElement -> Maybe Float -> m SVGPathSegLinetoVerticalRel
+createSVGPathSegLinetoVerticalRel self y
+  = liftIO
+      (js_createSVGPathSegLinetoVerticalRel self (maybeToOptional y))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegLinetoVerticalRel Mozilla SVGPathElement.createSVGPathSegLinetoVerticalRel documentation> 
+createSVGPathSegLinetoVerticalRel_ ::
+                                   (MonadIO m) => SVGPathElement -> Maybe Float -> m ()
+createSVGPathSegLinetoVerticalRel_ self y
+  = liftIO
+      (void
+         (js_createSVGPathSegLinetoVerticalRel self (maybeToOptional y)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegCurvetoCubicSmoothAbs\"]($2,\n$3, $4, $5)"
+        js_createSVGPathSegCurvetoCubicSmoothAbs ::
+        SVGPathElement ->
+          Optional Float ->
+            Optional Float ->
+              Optional Float ->
+                Optional Float -> IO SVGPathSegCurvetoCubicSmoothAbs
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs documentation> 
+createSVGPathSegCurvetoCubicSmoothAbs ::
+                                      (MonadIO m) =>
+                                        SVGPathElement ->
+                                          Maybe Float ->
+                                            Maybe Float ->
+                                              Maybe Float ->
+                                                Maybe Float -> m SVGPathSegCurvetoCubicSmoothAbs
+createSVGPathSegCurvetoCubicSmoothAbs self x y x2 y2
+  = liftIO
+      (js_createSVGPathSegCurvetoCubicSmoothAbs self (maybeToOptional x)
+         (maybeToOptional y)
+         (maybeToOptional x2)
+         (maybeToOptional y2))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothAbs documentation> 
+createSVGPathSegCurvetoCubicSmoothAbs_ ::
+                                       (MonadIO m) =>
+                                         SVGPathElement ->
+                                           Maybe Float ->
+                                             Maybe Float -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegCurvetoCubicSmoothAbs_ self x y x2 y2
+  = liftIO
+      (void
+         (js_createSVGPathSegCurvetoCubicSmoothAbs self (maybeToOptional x)
+            (maybeToOptional y)
+            (maybeToOptional x2)
+            (maybeToOptional y2)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegCurvetoCubicSmoothRel\"]($2,\n$3, $4, $5)"
+        js_createSVGPathSegCurvetoCubicSmoothRel ::
+        SVGPathElement ->
+          Optional Float ->
+            Optional Float ->
+              Optional Float ->
+                Optional Float -> IO SVGPathSegCurvetoCubicSmoothRel
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel documentation> 
+createSVGPathSegCurvetoCubicSmoothRel ::
+                                      (MonadIO m) =>
+                                        SVGPathElement ->
+                                          Maybe Float ->
+                                            Maybe Float ->
+                                              Maybe Float ->
+                                                Maybe Float -> m SVGPathSegCurvetoCubicSmoothRel
+createSVGPathSegCurvetoCubicSmoothRel self x y x2 y2
+  = liftIO
+      (js_createSVGPathSegCurvetoCubicSmoothRel self (maybeToOptional x)
+         (maybeToOptional y)
+         (maybeToOptional x2)
+         (maybeToOptional y2))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoCubicSmoothRel documentation> 
+createSVGPathSegCurvetoCubicSmoothRel_ ::
+                                       (MonadIO m) =>
+                                         SVGPathElement ->
+                                           Maybe Float ->
+                                             Maybe Float -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegCurvetoCubicSmoothRel_ self x y x2 y2
+  = liftIO
+      (void
+         (js_createSVGPathSegCurvetoCubicSmoothRel self (maybeToOptional x)
+            (maybeToOptional y)
+            (maybeToOptional x2)
+            (maybeToOptional y2)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegCurvetoQuadraticSmoothAbs\"]($2,\n$3)"
+        js_createSVGPathSegCurvetoQuadraticSmoothAbs ::
+        SVGPathElement ->
+          Optional Float ->
+            Optional Float -> IO SVGPathSegCurvetoQuadraticSmoothAbs
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs documentation> 
+createSVGPathSegCurvetoQuadraticSmoothAbs ::
+                                          (MonadIO m) =>
+                                            SVGPathElement ->
+                                              Maybe Float ->
+                                                Maybe Float -> m SVGPathSegCurvetoQuadraticSmoothAbs
+createSVGPathSegCurvetoQuadraticSmoothAbs self x y
+  = liftIO
+      (js_createSVGPathSegCurvetoQuadraticSmoothAbs self
+         (maybeToOptional x)
+         (maybeToOptional y))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothAbs documentation> 
+createSVGPathSegCurvetoQuadraticSmoothAbs_ ::
+                                           (MonadIO m) =>
+                                             SVGPathElement -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegCurvetoQuadraticSmoothAbs_ self x y
+  = liftIO
+      (void
+         (js_createSVGPathSegCurvetoQuadraticSmoothAbs self
+            (maybeToOptional x)
+            (maybeToOptional y)))
+ 
+foreign import javascript unsafe
+        "$1[\"createSVGPathSegCurvetoQuadraticSmoothRel\"]($2,\n$3)"
+        js_createSVGPathSegCurvetoQuadraticSmoothRel ::
+        SVGPathElement ->
+          Optional Float ->
+            Optional Float -> IO SVGPathSegCurvetoQuadraticSmoothRel
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel documentation> 
+createSVGPathSegCurvetoQuadraticSmoothRel ::
+                                          (MonadIO m) =>
+                                            SVGPathElement ->
+                                              Maybe Float ->
+                                                Maybe Float -> m SVGPathSegCurvetoQuadraticSmoothRel
+createSVGPathSegCurvetoQuadraticSmoothRel self x y
+  = liftIO
+      (js_createSVGPathSegCurvetoQuadraticSmoothRel self
+         (maybeToOptional x)
+         (maybeToOptional y))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel Mozilla SVGPathElement.createSVGPathSegCurvetoQuadraticSmoothRel documentation> 
+createSVGPathSegCurvetoQuadraticSmoothRel_ ::
+                                           (MonadIO m) =>
+                                             SVGPathElement -> Maybe Float -> Maybe Float -> m ()
+createSVGPathSegCurvetoQuadraticSmoothRel_ self x y
+  = liftIO
+      (void
+         (js_createSVGPathSegCurvetoQuadraticSmoothRel self
+            (maybeToOptional x)
+            (maybeToOptional y)))
+ 
+foreign import javascript unsafe "$1[\"pathLength\"]"
+        js_getPathLength :: SVGPathElement -> IO SVGAnimatedNumber
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.pathLength Mozilla SVGPathElement.pathLength documentation> 
+getPathLength ::
+              (MonadIO m) => SVGPathElement -> m SVGAnimatedNumber
+getPathLength self = liftIO (js_getPathLength self)
+ 
+foreign import javascript unsafe "$1[\"pathSegList\"]"
+        js_getPathSegList :: SVGPathElement -> IO SVGPathSegList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.pathSegList Mozilla SVGPathElement.pathSegList documentation> 
+getPathSegList :: (MonadIO m) => SVGPathElement -> m SVGPathSegList
+getPathSegList self = liftIO (js_getPathSegList self)
+ 
+foreign import javascript unsafe "$1[\"normalizedPathSegList\"]"
+        js_getNormalizedPathSegList :: SVGPathElement -> IO SVGPathSegList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.normalizedPathSegList Mozilla SVGPathElement.normalizedPathSegList documentation> 
+getNormalizedPathSegList ::
+                         (MonadIO m) => SVGPathElement -> m SVGPathSegList
+getNormalizedPathSegList self
+  = liftIO (js_getNormalizedPathSegList self)
+ 
+foreign import javascript unsafe "$1[\"animatedPathSegList\"]"
+        js_getAnimatedPathSegList :: SVGPathElement -> IO SVGPathSegList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.animatedPathSegList Mozilla SVGPathElement.animatedPathSegList documentation> 
+getAnimatedPathSegList ::
+                       (MonadIO m) => SVGPathElement -> m SVGPathSegList
+getAnimatedPathSegList self
+  = liftIO (js_getAnimatedPathSegList self)
+ 
+foreign import javascript unsafe
+        "$1[\"animatedNormalizedPathSegList\"]"
+        js_getAnimatedNormalizedPathSegList ::
+        SVGPathElement -> IO SVGPathSegList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement.animatedNormalizedPathSegList Mozilla SVGPathElement.animatedNormalizedPathSegList documentation> 
+getAnimatedNormalizedPathSegList ::
+                                 (MonadIO m) => SVGPathElement -> m SVGPathSegList
+getAnimatedNormalizedPathSegList self
+  = liftIO (js_getAnimatedNormalizedPathSegList self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSeg.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSeg.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSeg.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSeg.hs
@@ -26,7 +26,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -35,6 +35,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegArcAbs.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegArcAbs.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegArcAbs.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegArcAbs.hs
@@ -15,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,95 +35,95 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.x Mozilla SVGPathSegArcAbs.x documentation> 
 setX :: (MonadIO m) => SVGPathSegArcAbs -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegArcAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.x Mozilla SVGPathSegArcAbs.x documentation> 
 getX :: (MonadIO m) => SVGPathSegArcAbs -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegArcAbs -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.y Mozilla SVGPathSegArcAbs.y documentation> 
 setY :: (MonadIO m) => SVGPathSegArcAbs -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegArcAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.y Mozilla SVGPathSegArcAbs.y documentation> 
 getY :: (MonadIO m) => SVGPathSegArcAbs -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"r1\"] = $2;" js_setR1 ::
         SVGPathSegArcAbs -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.r1 Mozilla SVGPathSegArcAbs.r1 documentation> 
 setR1 :: (MonadIO m) => SVGPathSegArcAbs -> Float -> m ()
-setR1 self val = liftIO (js_setR1 (self) val)
+setR1 self val = liftIO (js_setR1 self val)
  
 foreign import javascript unsafe "$1[\"r1\"]" js_getR1 ::
         SVGPathSegArcAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.r1 Mozilla SVGPathSegArcAbs.r1 documentation> 
 getR1 :: (MonadIO m) => SVGPathSegArcAbs -> m Float
-getR1 self = liftIO (js_getR1 (self))
+getR1 self = liftIO (js_getR1 self)
  
 foreign import javascript unsafe "$1[\"r2\"] = $2;" js_setR2 ::
         SVGPathSegArcAbs -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.r2 Mozilla SVGPathSegArcAbs.r2 documentation> 
 setR2 :: (MonadIO m) => SVGPathSegArcAbs -> Float -> m ()
-setR2 self val = liftIO (js_setR2 (self) val)
+setR2 self val = liftIO (js_setR2 self val)
  
 foreign import javascript unsafe "$1[\"r2\"]" js_getR2 ::
         SVGPathSegArcAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.r2 Mozilla SVGPathSegArcAbs.r2 documentation> 
 getR2 :: (MonadIO m) => SVGPathSegArcAbs -> m Float
-getR2 self = liftIO (js_getR2 (self))
+getR2 self = liftIO (js_getR2 self)
  
 foreign import javascript unsafe "$1[\"angle\"] = $2;" js_setAngle
         :: SVGPathSegArcAbs -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.angle Mozilla SVGPathSegArcAbs.angle documentation> 
 setAngle :: (MonadIO m) => SVGPathSegArcAbs -> Float -> m ()
-setAngle self val = liftIO (js_setAngle (self) val)
+setAngle self val = liftIO (js_setAngle self val)
  
 foreign import javascript unsafe "$1[\"angle\"]" js_getAngle ::
         SVGPathSegArcAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.angle Mozilla SVGPathSegArcAbs.angle documentation> 
 getAngle :: (MonadIO m) => SVGPathSegArcAbs -> m Float
-getAngle self = liftIO (js_getAngle (self))
+getAngle self = liftIO (js_getAngle self)
  
 foreign import javascript unsafe "$1[\"largeArcFlag\"] = $2;"
         js_setLargeArcFlag :: SVGPathSegArcAbs -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.largeArcFlag Mozilla SVGPathSegArcAbs.largeArcFlag documentation> 
 setLargeArcFlag :: (MonadIO m) => SVGPathSegArcAbs -> Bool -> m ()
-setLargeArcFlag self val = liftIO (js_setLargeArcFlag (self) val)
+setLargeArcFlag self val = liftIO (js_setLargeArcFlag self val)
  
 foreign import javascript unsafe "($1[\"largeArcFlag\"] ? 1 : 0)"
         js_getLargeArcFlag :: SVGPathSegArcAbs -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.largeArcFlag Mozilla SVGPathSegArcAbs.largeArcFlag documentation> 
 getLargeArcFlag :: (MonadIO m) => SVGPathSegArcAbs -> m Bool
-getLargeArcFlag self = liftIO (js_getLargeArcFlag (self))
+getLargeArcFlag self = liftIO (js_getLargeArcFlag self)
  
 foreign import javascript unsafe "$1[\"sweepFlag\"] = $2;"
         js_setSweepFlag :: SVGPathSegArcAbs -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.sweepFlag Mozilla SVGPathSegArcAbs.sweepFlag documentation> 
 setSweepFlag :: (MonadIO m) => SVGPathSegArcAbs -> Bool -> m ()
-setSweepFlag self val = liftIO (js_setSweepFlag (self) val)
+setSweepFlag self val = liftIO (js_setSweepFlag self val)
  
 foreign import javascript unsafe "($1[\"sweepFlag\"] ? 1 : 0)"
         js_getSweepFlag :: SVGPathSegArcAbs -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs.sweepFlag Mozilla SVGPathSegArcAbs.sweepFlag documentation> 
 getSweepFlag :: (MonadIO m) => SVGPathSegArcAbs -> m Bool
-getSweepFlag self = liftIO (js_getSweepFlag (self))
+getSweepFlag self = liftIO (js_getSweepFlag self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegArcRel.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegArcRel.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegArcRel.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegArcRel.hs
@@ -15,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,95 +35,95 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.x Mozilla SVGPathSegArcRel.x documentation> 
 setX :: (MonadIO m) => SVGPathSegArcRel -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegArcRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.x Mozilla SVGPathSegArcRel.x documentation> 
 getX :: (MonadIO m) => SVGPathSegArcRel -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegArcRel -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.y Mozilla SVGPathSegArcRel.y documentation> 
 setY :: (MonadIO m) => SVGPathSegArcRel -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegArcRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.y Mozilla SVGPathSegArcRel.y documentation> 
 getY :: (MonadIO m) => SVGPathSegArcRel -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"r1\"] = $2;" js_setR1 ::
         SVGPathSegArcRel -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.r1 Mozilla SVGPathSegArcRel.r1 documentation> 
 setR1 :: (MonadIO m) => SVGPathSegArcRel -> Float -> m ()
-setR1 self val = liftIO (js_setR1 (self) val)
+setR1 self val = liftIO (js_setR1 self val)
  
 foreign import javascript unsafe "$1[\"r1\"]" js_getR1 ::
         SVGPathSegArcRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.r1 Mozilla SVGPathSegArcRel.r1 documentation> 
 getR1 :: (MonadIO m) => SVGPathSegArcRel -> m Float
-getR1 self = liftIO (js_getR1 (self))
+getR1 self = liftIO (js_getR1 self)
  
 foreign import javascript unsafe "$1[\"r2\"] = $2;" js_setR2 ::
         SVGPathSegArcRel -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.r2 Mozilla SVGPathSegArcRel.r2 documentation> 
 setR2 :: (MonadIO m) => SVGPathSegArcRel -> Float -> m ()
-setR2 self val = liftIO (js_setR2 (self) val)
+setR2 self val = liftIO (js_setR2 self val)
  
 foreign import javascript unsafe "$1[\"r2\"]" js_getR2 ::
         SVGPathSegArcRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.r2 Mozilla SVGPathSegArcRel.r2 documentation> 
 getR2 :: (MonadIO m) => SVGPathSegArcRel -> m Float
-getR2 self = liftIO (js_getR2 (self))
+getR2 self = liftIO (js_getR2 self)
  
 foreign import javascript unsafe "$1[\"angle\"] = $2;" js_setAngle
         :: SVGPathSegArcRel -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.angle Mozilla SVGPathSegArcRel.angle documentation> 
 setAngle :: (MonadIO m) => SVGPathSegArcRel -> Float -> m ()
-setAngle self val = liftIO (js_setAngle (self) val)
+setAngle self val = liftIO (js_setAngle self val)
  
 foreign import javascript unsafe "$1[\"angle\"]" js_getAngle ::
         SVGPathSegArcRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.angle Mozilla SVGPathSegArcRel.angle documentation> 
 getAngle :: (MonadIO m) => SVGPathSegArcRel -> m Float
-getAngle self = liftIO (js_getAngle (self))
+getAngle self = liftIO (js_getAngle self)
  
 foreign import javascript unsafe "$1[\"largeArcFlag\"] = $2;"
         js_setLargeArcFlag :: SVGPathSegArcRel -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.largeArcFlag Mozilla SVGPathSegArcRel.largeArcFlag documentation> 
 setLargeArcFlag :: (MonadIO m) => SVGPathSegArcRel -> Bool -> m ()
-setLargeArcFlag self val = liftIO (js_setLargeArcFlag (self) val)
+setLargeArcFlag self val = liftIO (js_setLargeArcFlag self val)
  
 foreign import javascript unsafe "($1[\"largeArcFlag\"] ? 1 : 0)"
         js_getLargeArcFlag :: SVGPathSegArcRel -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.largeArcFlag Mozilla SVGPathSegArcRel.largeArcFlag documentation> 
 getLargeArcFlag :: (MonadIO m) => SVGPathSegArcRel -> m Bool
-getLargeArcFlag self = liftIO (js_getLargeArcFlag (self))
+getLargeArcFlag self = liftIO (js_getLargeArcFlag self)
  
 foreign import javascript unsafe "$1[\"sweepFlag\"] = $2;"
         js_setSweepFlag :: SVGPathSegArcRel -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.sweepFlag Mozilla SVGPathSegArcRel.sweepFlag documentation> 
 setSweepFlag :: (MonadIO m) => SVGPathSegArcRel -> Bool -> m ()
-setSweepFlag self val = liftIO (js_setSweepFlag (self) val)
+setSweepFlag self val = liftIO (js_setSweepFlag self val)
  
 foreign import javascript unsafe "($1[\"sweepFlag\"] ? 1 : 0)"
         js_getSweepFlag :: SVGPathSegArcRel -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel.sweepFlag Mozilla SVGPathSegArcRel.sweepFlag documentation> 
 getSweepFlag :: (MonadIO m) => SVGPathSegArcRel -> m Bool
-getSweepFlag self = liftIO (js_getSweepFlag (self))
+getSweepFlag self = liftIO (js_getSweepFlag self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicAbs.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicAbs.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicAbs.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicAbs.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,81 +33,81 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.x Mozilla SVGPathSegCurvetoCubicAbs.x documentation> 
 setX :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegCurvetoCubicAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.x Mozilla SVGPathSegCurvetoCubicAbs.x documentation> 
 getX :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegCurvetoCubicAbs -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.y Mozilla SVGPathSegCurvetoCubicAbs.y documentation> 
 setY :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegCurvetoCubicAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.y Mozilla SVGPathSegCurvetoCubicAbs.y documentation> 
 getY :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"x1\"] = $2;" js_setX1 ::
         SVGPathSegCurvetoCubicAbs -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.x1 Mozilla SVGPathSegCurvetoCubicAbs.x1 documentation> 
 setX1 :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> Float -> m ()
-setX1 self val = liftIO (js_setX1 (self) val)
+setX1 self val = liftIO (js_setX1 self val)
  
 foreign import javascript unsafe "$1[\"x1\"]" js_getX1 ::
         SVGPathSegCurvetoCubicAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.x1 Mozilla SVGPathSegCurvetoCubicAbs.x1 documentation> 
 getX1 :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> m Float
-getX1 self = liftIO (js_getX1 (self))
+getX1 self = liftIO (js_getX1 self)
  
 foreign import javascript unsafe "$1[\"y1\"] = $2;" js_setY1 ::
         SVGPathSegCurvetoCubicAbs -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.y1 Mozilla SVGPathSegCurvetoCubicAbs.y1 documentation> 
 setY1 :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> Float -> m ()
-setY1 self val = liftIO (js_setY1 (self) val)
+setY1 self val = liftIO (js_setY1 self val)
  
 foreign import javascript unsafe "$1[\"y1\"]" js_getY1 ::
         SVGPathSegCurvetoCubicAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.y1 Mozilla SVGPathSegCurvetoCubicAbs.y1 documentation> 
 getY1 :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> m Float
-getY1 self = liftIO (js_getY1 (self))
+getY1 self = liftIO (js_getY1 self)
  
 foreign import javascript unsafe "$1[\"x2\"] = $2;" js_setX2 ::
         SVGPathSegCurvetoCubicAbs -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.x2 Mozilla SVGPathSegCurvetoCubicAbs.x2 documentation> 
 setX2 :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> Float -> m ()
-setX2 self val = liftIO (js_setX2 (self) val)
+setX2 self val = liftIO (js_setX2 self val)
  
 foreign import javascript unsafe "$1[\"x2\"]" js_getX2 ::
         SVGPathSegCurvetoCubicAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.x2 Mozilla SVGPathSegCurvetoCubicAbs.x2 documentation> 
 getX2 :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> m Float
-getX2 self = liftIO (js_getX2 (self))
+getX2 self = liftIO (js_getX2 self)
  
 foreign import javascript unsafe "$1[\"y2\"] = $2;" js_setY2 ::
         SVGPathSegCurvetoCubicAbs -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.y2 Mozilla SVGPathSegCurvetoCubicAbs.y2 documentation> 
 setY2 :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> Float -> m ()
-setY2 self val = liftIO (js_setY2 (self) val)
+setY2 self val = liftIO (js_setY2 self val)
  
 foreign import javascript unsafe "$1[\"y2\"]" js_getY2 ::
         SVGPathSegCurvetoCubicAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs.y2 Mozilla SVGPathSegCurvetoCubicAbs.y2 documentation> 
 getY2 :: (MonadIO m) => SVGPathSegCurvetoCubicAbs -> m Float
-getY2 self = liftIO (js_getY2 (self))
+getY2 self = liftIO (js_getY2 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicRel.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicRel.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicRel.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicRel.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,81 +33,81 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.x Mozilla SVGPathSegCurvetoCubicRel.x documentation> 
 setX :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegCurvetoCubicRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.x Mozilla SVGPathSegCurvetoCubicRel.x documentation> 
 getX :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegCurvetoCubicRel -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.y Mozilla SVGPathSegCurvetoCubicRel.y documentation> 
 setY :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegCurvetoCubicRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.y Mozilla SVGPathSegCurvetoCubicRel.y documentation> 
 getY :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"x1\"] = $2;" js_setX1 ::
         SVGPathSegCurvetoCubicRel -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.x1 Mozilla SVGPathSegCurvetoCubicRel.x1 documentation> 
 setX1 :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> Float -> m ()
-setX1 self val = liftIO (js_setX1 (self) val)
+setX1 self val = liftIO (js_setX1 self val)
  
 foreign import javascript unsafe "$1[\"x1\"]" js_getX1 ::
         SVGPathSegCurvetoCubicRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.x1 Mozilla SVGPathSegCurvetoCubicRel.x1 documentation> 
 getX1 :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> m Float
-getX1 self = liftIO (js_getX1 (self))
+getX1 self = liftIO (js_getX1 self)
  
 foreign import javascript unsafe "$1[\"y1\"] = $2;" js_setY1 ::
         SVGPathSegCurvetoCubicRel -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.y1 Mozilla SVGPathSegCurvetoCubicRel.y1 documentation> 
 setY1 :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> Float -> m ()
-setY1 self val = liftIO (js_setY1 (self) val)
+setY1 self val = liftIO (js_setY1 self val)
  
 foreign import javascript unsafe "$1[\"y1\"]" js_getY1 ::
         SVGPathSegCurvetoCubicRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.y1 Mozilla SVGPathSegCurvetoCubicRel.y1 documentation> 
 getY1 :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> m Float
-getY1 self = liftIO (js_getY1 (self))
+getY1 self = liftIO (js_getY1 self)
  
 foreign import javascript unsafe "$1[\"x2\"] = $2;" js_setX2 ::
         SVGPathSegCurvetoCubicRel -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.x2 Mozilla SVGPathSegCurvetoCubicRel.x2 documentation> 
 setX2 :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> Float -> m ()
-setX2 self val = liftIO (js_setX2 (self) val)
+setX2 self val = liftIO (js_setX2 self val)
  
 foreign import javascript unsafe "$1[\"x2\"]" js_getX2 ::
         SVGPathSegCurvetoCubicRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.x2 Mozilla SVGPathSegCurvetoCubicRel.x2 documentation> 
 getX2 :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> m Float
-getX2 self = liftIO (js_getX2 (self))
+getX2 self = liftIO (js_getX2 self)
  
 foreign import javascript unsafe "$1[\"y2\"] = $2;" js_setY2 ::
         SVGPathSegCurvetoCubicRel -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.y2 Mozilla SVGPathSegCurvetoCubicRel.y2 documentation> 
 setY2 :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> Float -> m ()
-setY2 self val = liftIO (js_setY2 (self) val)
+setY2 self val = liftIO (js_setY2 self val)
  
 foreign import javascript unsafe "$1[\"y2\"]" js_getY2 ::
         SVGPathSegCurvetoCubicRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel.y2 Mozilla SVGPathSegCurvetoCubicRel.y2 documentation> 
 getY2 :: (MonadIO m) => SVGPathSegCurvetoCubicRel -> m Float
-getY2 self = liftIO (js_getY2 (self))
+getY2 self = liftIO (js_getY2 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicSmoothAbs.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicSmoothAbs.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicSmoothAbs.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicSmoothAbs.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,14 +34,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs.x Mozilla SVGPathSegCurvetoCubicSmoothAbs.x documentation> 
 setX ::
      (MonadIO m) => SVGPathSegCurvetoCubicSmoothAbs -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegCurvetoCubicSmoothAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs.x Mozilla SVGPathSegCurvetoCubicSmoothAbs.x documentation> 
 getX :: (MonadIO m) => SVGPathSegCurvetoCubicSmoothAbs -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegCurvetoCubicSmoothAbs -> Float -> IO ()
@@ -48,14 +49,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs.y Mozilla SVGPathSegCurvetoCubicSmoothAbs.y documentation> 
 setY ::
      (MonadIO m) => SVGPathSegCurvetoCubicSmoothAbs -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegCurvetoCubicSmoothAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs.y Mozilla SVGPathSegCurvetoCubicSmoothAbs.y documentation> 
 getY :: (MonadIO m) => SVGPathSegCurvetoCubicSmoothAbs -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"x2\"] = $2;" js_setX2 ::
         SVGPathSegCurvetoCubicSmoothAbs -> Float -> IO ()
@@ -63,14 +64,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs.x2 Mozilla SVGPathSegCurvetoCubicSmoothAbs.x2 documentation> 
 setX2 ::
       (MonadIO m) => SVGPathSegCurvetoCubicSmoothAbs -> Float -> m ()
-setX2 self val = liftIO (js_setX2 (self) val)
+setX2 self val = liftIO (js_setX2 self val)
  
 foreign import javascript unsafe "$1[\"x2\"]" js_getX2 ::
         SVGPathSegCurvetoCubicSmoothAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs.x2 Mozilla SVGPathSegCurvetoCubicSmoothAbs.x2 documentation> 
 getX2 :: (MonadIO m) => SVGPathSegCurvetoCubicSmoothAbs -> m Float
-getX2 self = liftIO (js_getX2 (self))
+getX2 self = liftIO (js_getX2 self)
  
 foreign import javascript unsafe "$1[\"y2\"] = $2;" js_setY2 ::
         SVGPathSegCurvetoCubicSmoothAbs -> Float -> IO ()
@@ -78,11 +79,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs.y2 Mozilla SVGPathSegCurvetoCubicSmoothAbs.y2 documentation> 
 setY2 ::
       (MonadIO m) => SVGPathSegCurvetoCubicSmoothAbs -> Float -> m ()
-setY2 self val = liftIO (js_setY2 (self) val)
+setY2 self val = liftIO (js_setY2 self val)
  
 foreign import javascript unsafe "$1[\"y2\"]" js_getY2 ::
         SVGPathSegCurvetoCubicSmoothAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs.y2 Mozilla SVGPathSegCurvetoCubicSmoothAbs.y2 documentation> 
 getY2 :: (MonadIO m) => SVGPathSegCurvetoCubicSmoothAbs -> m Float
-getY2 self = liftIO (js_getY2 (self))
+getY2 self = liftIO (js_getY2 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicSmoothRel.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicSmoothRel.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicSmoothRel.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoCubicSmoothRel.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,14 +34,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel.x Mozilla SVGPathSegCurvetoCubicSmoothRel.x documentation> 
 setX ::
      (MonadIO m) => SVGPathSegCurvetoCubicSmoothRel -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegCurvetoCubicSmoothRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel.x Mozilla SVGPathSegCurvetoCubicSmoothRel.x documentation> 
 getX :: (MonadIO m) => SVGPathSegCurvetoCubicSmoothRel -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegCurvetoCubicSmoothRel -> Float -> IO ()
@@ -48,14 +49,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel.y Mozilla SVGPathSegCurvetoCubicSmoothRel.y documentation> 
 setY ::
      (MonadIO m) => SVGPathSegCurvetoCubicSmoothRel -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegCurvetoCubicSmoothRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel.y Mozilla SVGPathSegCurvetoCubicSmoothRel.y documentation> 
 getY :: (MonadIO m) => SVGPathSegCurvetoCubicSmoothRel -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"x2\"] = $2;" js_setX2 ::
         SVGPathSegCurvetoCubicSmoothRel -> Float -> IO ()
@@ -63,14 +64,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel.x2 Mozilla SVGPathSegCurvetoCubicSmoothRel.x2 documentation> 
 setX2 ::
       (MonadIO m) => SVGPathSegCurvetoCubicSmoothRel -> Float -> m ()
-setX2 self val = liftIO (js_setX2 (self) val)
+setX2 self val = liftIO (js_setX2 self val)
  
 foreign import javascript unsafe "$1[\"x2\"]" js_getX2 ::
         SVGPathSegCurvetoCubicSmoothRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel.x2 Mozilla SVGPathSegCurvetoCubicSmoothRel.x2 documentation> 
 getX2 :: (MonadIO m) => SVGPathSegCurvetoCubicSmoothRel -> m Float
-getX2 self = liftIO (js_getX2 (self))
+getX2 self = liftIO (js_getX2 self)
  
 foreign import javascript unsafe "$1[\"y2\"] = $2;" js_setY2 ::
         SVGPathSegCurvetoCubicSmoothRel -> Float -> IO ()
@@ -78,11 +79,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel.y2 Mozilla SVGPathSegCurvetoCubicSmoothRel.y2 documentation> 
 setY2 ::
       (MonadIO m) => SVGPathSegCurvetoCubicSmoothRel -> Float -> m ()
-setY2 self val = liftIO (js_setY2 (self) val)
+setY2 self val = liftIO (js_setY2 self val)
  
 foreign import javascript unsafe "$1[\"y2\"]" js_getY2 ::
         SVGPathSegCurvetoCubicSmoothRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel.y2 Mozilla SVGPathSegCurvetoCubicSmoothRel.y2 documentation> 
 getY2 :: (MonadIO m) => SVGPathSegCurvetoCubicSmoothRel -> m Float
-getY2 self = liftIO (js_getY2 (self))
+getY2 self = liftIO (js_getY2 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticAbs.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticAbs.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticAbs.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticAbs.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,14 +34,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs.x Mozilla SVGPathSegCurvetoQuadraticAbs.x documentation> 
 setX ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticAbs -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegCurvetoQuadraticAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs.x Mozilla SVGPathSegCurvetoQuadraticAbs.x documentation> 
 getX :: (MonadIO m) => SVGPathSegCurvetoQuadraticAbs -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegCurvetoQuadraticAbs -> Float -> IO ()
@@ -48,14 +49,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs.y Mozilla SVGPathSegCurvetoQuadraticAbs.y documentation> 
 setY ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticAbs -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegCurvetoQuadraticAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs.y Mozilla SVGPathSegCurvetoQuadraticAbs.y documentation> 
 getY :: (MonadIO m) => SVGPathSegCurvetoQuadraticAbs -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"x1\"] = $2;" js_setX1 ::
         SVGPathSegCurvetoQuadraticAbs -> Float -> IO ()
@@ -63,14 +64,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs.x1 Mozilla SVGPathSegCurvetoQuadraticAbs.x1 documentation> 
 setX1 ::
       (MonadIO m) => SVGPathSegCurvetoQuadraticAbs -> Float -> m ()
-setX1 self val = liftIO (js_setX1 (self) val)
+setX1 self val = liftIO (js_setX1 self val)
  
 foreign import javascript unsafe "$1[\"x1\"]" js_getX1 ::
         SVGPathSegCurvetoQuadraticAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs.x1 Mozilla SVGPathSegCurvetoQuadraticAbs.x1 documentation> 
 getX1 :: (MonadIO m) => SVGPathSegCurvetoQuadraticAbs -> m Float
-getX1 self = liftIO (js_getX1 (self))
+getX1 self = liftIO (js_getX1 self)
  
 foreign import javascript unsafe "$1[\"y1\"] = $2;" js_setY1 ::
         SVGPathSegCurvetoQuadraticAbs -> Float -> IO ()
@@ -78,11 +79,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs.y1 Mozilla SVGPathSegCurvetoQuadraticAbs.y1 documentation> 
 setY1 ::
       (MonadIO m) => SVGPathSegCurvetoQuadraticAbs -> Float -> m ()
-setY1 self val = liftIO (js_setY1 (self) val)
+setY1 self val = liftIO (js_setY1 self val)
  
 foreign import javascript unsafe "$1[\"y1\"]" js_getY1 ::
         SVGPathSegCurvetoQuadraticAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs.y1 Mozilla SVGPathSegCurvetoQuadraticAbs.y1 documentation> 
 getY1 :: (MonadIO m) => SVGPathSegCurvetoQuadraticAbs -> m Float
-getY1 self = liftIO (js_getY1 (self))
+getY1 self = liftIO (js_getY1 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticRel.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticRel.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticRel.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticRel.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,14 +34,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel.x Mozilla SVGPathSegCurvetoQuadraticRel.x documentation> 
 setX ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticRel -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegCurvetoQuadraticRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel.x Mozilla SVGPathSegCurvetoQuadraticRel.x documentation> 
 getX :: (MonadIO m) => SVGPathSegCurvetoQuadraticRel -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegCurvetoQuadraticRel -> Float -> IO ()
@@ -48,14 +49,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel.y Mozilla SVGPathSegCurvetoQuadraticRel.y documentation> 
 setY ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticRel -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegCurvetoQuadraticRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel.y Mozilla SVGPathSegCurvetoQuadraticRel.y documentation> 
 getY :: (MonadIO m) => SVGPathSegCurvetoQuadraticRel -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"x1\"] = $2;" js_setX1 ::
         SVGPathSegCurvetoQuadraticRel -> Float -> IO ()
@@ -63,14 +64,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel.x1 Mozilla SVGPathSegCurvetoQuadraticRel.x1 documentation> 
 setX1 ::
       (MonadIO m) => SVGPathSegCurvetoQuadraticRel -> Float -> m ()
-setX1 self val = liftIO (js_setX1 (self) val)
+setX1 self val = liftIO (js_setX1 self val)
  
 foreign import javascript unsafe "$1[\"x1\"]" js_getX1 ::
         SVGPathSegCurvetoQuadraticRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel.x1 Mozilla SVGPathSegCurvetoQuadraticRel.x1 documentation> 
 getX1 :: (MonadIO m) => SVGPathSegCurvetoQuadraticRel -> m Float
-getX1 self = liftIO (js_getX1 (self))
+getX1 self = liftIO (js_getX1 self)
  
 foreign import javascript unsafe "$1[\"y1\"] = $2;" js_setY1 ::
         SVGPathSegCurvetoQuadraticRel -> Float -> IO ()
@@ -78,11 +79,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel.y1 Mozilla SVGPathSegCurvetoQuadraticRel.y1 documentation> 
 setY1 ::
       (MonadIO m) => SVGPathSegCurvetoQuadraticRel -> Float -> m ()
-setY1 self val = liftIO (js_setY1 (self) val)
+setY1 self val = liftIO (js_setY1 self val)
  
 foreign import javascript unsafe "$1[\"y1\"]" js_getY1 ::
         SVGPathSegCurvetoQuadraticRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel.y1 Mozilla SVGPathSegCurvetoQuadraticRel.y1 documentation> 
 getY1 :: (MonadIO m) => SVGPathSegCurvetoQuadraticRel -> m Float
-getY1 self = liftIO (js_getY1 (self))
+getY1 self = liftIO (js_getY1 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticSmoothAbs.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticSmoothAbs.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticSmoothAbs.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticSmoothAbs.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,7 +33,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothAbs.x Mozilla SVGPathSegCurvetoQuadraticSmoothAbs.x documentation> 
 setX ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticSmoothAbs -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegCurvetoQuadraticSmoothAbs -> IO Float
@@ -40,7 +41,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothAbs.x Mozilla SVGPathSegCurvetoQuadraticSmoothAbs.x documentation> 
 getX ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticSmoothAbs -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegCurvetoQuadraticSmoothAbs -> Float -> IO ()
@@ -48,7 +49,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothAbs.y Mozilla SVGPathSegCurvetoQuadraticSmoothAbs.y documentation> 
 setY ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticSmoothAbs -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegCurvetoQuadraticSmoothAbs -> IO Float
@@ -56,4 +57,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothAbs.y Mozilla SVGPathSegCurvetoQuadraticSmoothAbs.y documentation> 
 getY ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticSmoothAbs -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticSmoothRel.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticSmoothRel.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticSmoothRel.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegCurvetoQuadraticSmoothRel.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,7 +33,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothRel.x Mozilla SVGPathSegCurvetoQuadraticSmoothRel.x documentation> 
 setX ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticSmoothRel -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegCurvetoQuadraticSmoothRel -> IO Float
@@ -40,7 +41,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothRel.x Mozilla SVGPathSegCurvetoQuadraticSmoothRel.x documentation> 
 getX ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticSmoothRel -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegCurvetoQuadraticSmoothRel -> Float -> IO ()
@@ -48,7 +49,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothRel.y Mozilla SVGPathSegCurvetoQuadraticSmoothRel.y documentation> 
 setY ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticSmoothRel -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegCurvetoQuadraticSmoothRel -> IO Float
@@ -56,4 +57,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothRel.y Mozilla SVGPathSegCurvetoQuadraticSmoothRel.y documentation> 
 getY ::
      (MonadIO m) => SVGPathSegCurvetoQuadraticSmoothRel -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoAbs.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoAbs.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoAbs.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoAbs.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,25 +31,25 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoAbs.x Mozilla SVGPathSegLinetoAbs.x documentation> 
 setX :: (MonadIO m) => SVGPathSegLinetoAbs -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegLinetoAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoAbs.x Mozilla SVGPathSegLinetoAbs.x documentation> 
 getX :: (MonadIO m) => SVGPathSegLinetoAbs -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegLinetoAbs -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoAbs.y Mozilla SVGPathSegLinetoAbs.y documentation> 
 setY :: (MonadIO m) => SVGPathSegLinetoAbs -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegLinetoAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoAbs.y Mozilla SVGPathSegLinetoAbs.y documentation> 
 getY :: (MonadIO m) => SVGPathSegLinetoAbs -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoHorizontalAbs.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoHorizontalAbs.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoHorizontalAbs.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoHorizontalAbs.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,11 +32,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalAbs.x Mozilla SVGPathSegLinetoHorizontalAbs.x documentation> 
 setX ::
      (MonadIO m) => SVGPathSegLinetoHorizontalAbs -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegLinetoHorizontalAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalAbs.x Mozilla SVGPathSegLinetoHorizontalAbs.x documentation> 
 getX :: (MonadIO m) => SVGPathSegLinetoHorizontalAbs -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoHorizontalRel.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoHorizontalRel.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoHorizontalRel.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoHorizontalRel.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,11 +32,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalRel.x Mozilla SVGPathSegLinetoHorizontalRel.x documentation> 
 setX ::
      (MonadIO m) => SVGPathSegLinetoHorizontalRel -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegLinetoHorizontalRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalRel.x Mozilla SVGPathSegLinetoHorizontalRel.x documentation> 
 getX :: (MonadIO m) => SVGPathSegLinetoHorizontalRel -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoRel.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoRel.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoRel.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoRel.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,25 +31,25 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoRel.x Mozilla SVGPathSegLinetoRel.x documentation> 
 setX :: (MonadIO m) => SVGPathSegLinetoRel -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegLinetoRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoRel.x Mozilla SVGPathSegLinetoRel.x documentation> 
 getX :: (MonadIO m) => SVGPathSegLinetoRel -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegLinetoRel -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoRel.y Mozilla SVGPathSegLinetoRel.y documentation> 
 setY :: (MonadIO m) => SVGPathSegLinetoRel -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegLinetoRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoRel.y Mozilla SVGPathSegLinetoRel.y documentation> 
 getY :: (MonadIO m) => SVGPathSegLinetoRel -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoVerticalAbs.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoVerticalAbs.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoVerticalAbs.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoVerticalAbs.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,11 +31,11 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalAbs.y Mozilla SVGPathSegLinetoVerticalAbs.y documentation> 
 setY :: (MonadIO m) => SVGPathSegLinetoVerticalAbs -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegLinetoVerticalAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalAbs.y Mozilla SVGPathSegLinetoVerticalAbs.y documentation> 
 getY :: (MonadIO m) => SVGPathSegLinetoVerticalAbs -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoVerticalRel.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoVerticalRel.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoVerticalRel.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegLinetoVerticalRel.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,11 +31,11 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalRel.y Mozilla SVGPathSegLinetoVerticalRel.y documentation> 
 setY :: (MonadIO m) => SVGPathSegLinetoVerticalRel -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegLinetoVerticalRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalRel.y Mozilla SVGPathSegLinetoVerticalRel.y documentation> 
 getY :: (MonadIO m) => SVGPathSegLinetoVerticalRel -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegList.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegList.hs
@@ -5,21 +5,17 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGPathSegList
        (js_clear, clear, js_initialize, initialize, initialize_,
-        initializeUnsafe, initializeUnchecked, js_getItem, getItem,
-        getItem_, getItemUnsafe, getItemUnchecked, js_insertItemBefore,
-        insertItemBefore, insertItemBefore_, insertItemBeforeUnsafe,
-        insertItemBeforeUnchecked, js_replaceItem, replaceItem,
-        replaceItem_, replaceItemUnsafe, replaceItemUnchecked,
-        js_removeItem, removeItem, removeItem_, removeItemUnsafe,
-        removeItemUnchecked, js_appendItem, appendItem, appendItem_,
-        appendItemUnsafe, appendItemUnchecked, js_getNumberOfItems,
+        js_getItem, getItem, getItem_, js_insertItemBefore,
+        insertItemBefore, insertItemBefore_, js_replaceItem, replaceItem,
+        replaceItem_, js_removeItem, removeItem, removeItem_,
+        js_appendItem, appendItem, appendItem_, js_getNumberOfItems,
         getNumberOfItems, SVGPathSegList(..), gTypeSVGPathSegList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -38,21 +35,19 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.clear Mozilla SVGPathSegList.clear documentation> 
 clear :: (MonadIO m) => SVGPathSegList -> m ()
-clear self = liftIO (js_clear (self))
+clear self = liftIO (js_clear self)
  
 foreign import javascript unsafe "$1[\"initialize\"]($2)"
         js_initialize ::
-        SVGPathSegList -> Nullable SVGPathSeg -> IO (Nullable SVGPathSeg)
+        SVGPathSegList -> Optional SVGPathSeg -> IO SVGPathSeg
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.initialize Mozilla SVGPathSegList.initialize documentation> 
 initialize ::
            (MonadIO m, IsSVGPathSeg newItem) =>
-             SVGPathSegList -> Maybe newItem -> m (Maybe SVGPathSeg)
+             SVGPathSegList -> Maybe newItem -> m SVGPathSeg
 initialize self newItem
   = liftIO
-      (nullableToMaybe <$>
-         (js_initialize (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))))
+      (js_initialize self (maybeToOptional (fmap toSVGPathSeg newItem)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.initialize Mozilla SVGPathSegList.initialize documentation> 
 initialize_ ::
@@ -61,72 +56,32 @@
 initialize_ self newItem
   = liftIO
       (void
-         (js_initialize (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.initialize Mozilla SVGPathSegList.initialize documentation> 
-initializeUnsafe ::
-                 (MonadIO m, IsSVGPathSeg newItem, HasCallStack) =>
-                   SVGPathSegList -> Maybe newItem -> m SVGPathSeg
-initializeUnsafe self newItem
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_initialize (self)
-             (maybeToNullable (fmap toSVGPathSeg newItem))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.initialize Mozilla SVGPathSegList.initialize documentation> 
-initializeUnchecked ::
-                    (MonadIO m, IsSVGPathSeg newItem) =>
-                      SVGPathSegList -> Maybe newItem -> m SVGPathSeg
-initializeUnchecked self newItem
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_initialize (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))))
+         (js_initialize self (maybeToOptional (fmap toSVGPathSeg newItem))))
  
 foreign import javascript unsafe "$1[\"getItem\"]($2)" js_getItem
-        :: SVGPathSegList -> Word -> IO (Nullable SVGPathSeg)
+        :: SVGPathSegList -> Word -> IO SVGPathSeg
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.getItem Mozilla SVGPathSegList.getItem documentation> 
-getItem ::
-        (MonadIO m) => SVGPathSegList -> Word -> m (Maybe SVGPathSeg)
-getItem self index
-  = liftIO (nullableToMaybe <$> (js_getItem (self) index))
+getItem :: (MonadIO m) => SVGPathSegList -> Word -> m SVGPathSeg
+getItem self index = liftIO (js_getItem self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.getItem Mozilla SVGPathSegList.getItem documentation> 
 getItem_ :: (MonadIO m) => SVGPathSegList -> Word -> m ()
-getItem_ self index = liftIO (void (js_getItem (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.getItem Mozilla SVGPathSegList.getItem documentation> 
-getItemUnsafe ::
-              (MonadIO m, HasCallStack) => SVGPathSegList -> Word -> m SVGPathSeg
-getItemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_getItem (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.getItem Mozilla SVGPathSegList.getItem documentation> 
-getItemUnchecked ::
-                 (MonadIO m) => SVGPathSegList -> Word -> m SVGPathSeg
-getItemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_getItem (self) index))
+getItem_ self index = liftIO (void (js_getItem self index))
  
 foreign import javascript unsafe "$1[\"insertItemBefore\"]($2, $3)"
         js_insertItemBefore ::
-        SVGPathSegList ->
-          Nullable SVGPathSeg -> Word -> IO (Nullable SVGPathSeg)
+        SVGPathSegList -> Optional SVGPathSeg -> Word -> IO SVGPathSeg
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.insertItemBefore Mozilla SVGPathSegList.insertItemBefore documentation> 
 insertItemBefore ::
                  (MonadIO m, IsSVGPathSeg newItem) =>
-                   SVGPathSegList -> Maybe newItem -> Word -> m (Maybe SVGPathSeg)
+                   SVGPathSegList -> Maybe newItem -> Word -> m SVGPathSeg
 insertItemBefore self newItem index
   = liftIO
-      (nullableToMaybe <$>
-         (js_insertItemBefore (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))
-            index))
+      (js_insertItemBefore self
+         (maybeToOptional (fmap toSVGPathSeg newItem))
+         index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.insertItemBefore Mozilla SVGPathSegList.insertItemBefore documentation> 
 insertItemBefore_ ::
@@ -135,48 +90,22 @@
 insertItemBefore_ self newItem index
   = liftIO
       (void
-         (js_insertItemBefore (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))
-            index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.insertItemBefore Mozilla SVGPathSegList.insertItemBefore documentation> 
-insertItemBeforeUnsafe ::
-                       (MonadIO m, IsSVGPathSeg newItem, HasCallStack) =>
-                         SVGPathSegList -> Maybe newItem -> Word -> m SVGPathSeg
-insertItemBeforeUnsafe self newItem index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_insertItemBefore (self)
-             (maybeToNullable (fmap toSVGPathSeg newItem))
-             index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.insertItemBefore Mozilla SVGPathSegList.insertItemBefore documentation> 
-insertItemBeforeUnchecked ::
-                          (MonadIO m, IsSVGPathSeg newItem) =>
-                            SVGPathSegList -> Maybe newItem -> Word -> m SVGPathSeg
-insertItemBeforeUnchecked self newItem index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_insertItemBefore (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))
+         (js_insertItemBefore self
+            (maybeToOptional (fmap toSVGPathSeg newItem))
             index))
  
 foreign import javascript unsafe "$1[\"replaceItem\"]($2, $3)"
         js_replaceItem ::
-        SVGPathSegList ->
-          Nullable SVGPathSeg -> Word -> IO (Nullable SVGPathSeg)
+        SVGPathSegList -> Optional SVGPathSeg -> Word -> IO SVGPathSeg
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.replaceItem Mozilla SVGPathSegList.replaceItem documentation> 
 replaceItem ::
             (MonadIO m, IsSVGPathSeg newItem) =>
-              SVGPathSegList -> Maybe newItem -> Word -> m (Maybe SVGPathSeg)
+              SVGPathSegList -> Maybe newItem -> Word -> m SVGPathSeg
 replaceItem self newItem index
   = liftIO
-      (nullableToMaybe <$>
-         (js_replaceItem (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))
-            index))
+      (js_replaceItem self (maybeToOptional (fmap toSVGPathSeg newItem))
+         index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.replaceItem Mozilla SVGPathSegList.replaceItem documentation> 
 replaceItem_ ::
@@ -185,74 +114,31 @@
 replaceItem_ self newItem index
   = liftIO
       (void
-         (js_replaceItem (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))
-            index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.replaceItem Mozilla SVGPathSegList.replaceItem documentation> 
-replaceItemUnsafe ::
-                  (MonadIO m, IsSVGPathSeg newItem, HasCallStack) =>
-                    SVGPathSegList -> Maybe newItem -> Word -> m SVGPathSeg
-replaceItemUnsafe self newItem index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_replaceItem (self)
-             (maybeToNullable (fmap toSVGPathSeg newItem))
-             index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.replaceItem Mozilla SVGPathSegList.replaceItem documentation> 
-replaceItemUnchecked ::
-                     (MonadIO m, IsSVGPathSeg newItem) =>
-                       SVGPathSegList -> Maybe newItem -> Word -> m SVGPathSeg
-replaceItemUnchecked self newItem index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_replaceItem (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))
+         (js_replaceItem self (maybeToOptional (fmap toSVGPathSeg newItem))
             index))
  
 foreign import javascript unsafe "$1[\"removeItem\"]($2)"
-        js_removeItem :: SVGPathSegList -> Word -> IO (Nullable SVGPathSeg)
+        js_removeItem :: SVGPathSegList -> Word -> IO SVGPathSeg
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.removeItem Mozilla SVGPathSegList.removeItem documentation> 
-removeItem ::
-           (MonadIO m) => SVGPathSegList -> Word -> m (Maybe SVGPathSeg)
-removeItem self index
-  = liftIO (nullableToMaybe <$> (js_removeItem (self) index))
+removeItem :: (MonadIO m) => SVGPathSegList -> Word -> m SVGPathSeg
+removeItem self index = liftIO (js_removeItem self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.removeItem Mozilla SVGPathSegList.removeItem documentation> 
 removeItem_ :: (MonadIO m) => SVGPathSegList -> Word -> m ()
-removeItem_ self index = liftIO (void (js_removeItem (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.removeItem Mozilla SVGPathSegList.removeItem documentation> 
-removeItemUnsafe ::
-                 (MonadIO m, HasCallStack) => SVGPathSegList -> Word -> m SVGPathSeg
-removeItemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_removeItem (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.removeItem Mozilla SVGPathSegList.removeItem documentation> 
-removeItemUnchecked ::
-                    (MonadIO m) => SVGPathSegList -> Word -> m SVGPathSeg
-removeItemUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_removeItem (self) index))
+removeItem_ self index = liftIO (void (js_removeItem self index))
  
 foreign import javascript unsafe "$1[\"appendItem\"]($2)"
         js_appendItem ::
-        SVGPathSegList -> Nullable SVGPathSeg -> IO (Nullable SVGPathSeg)
+        SVGPathSegList -> Optional SVGPathSeg -> IO SVGPathSeg
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.appendItem Mozilla SVGPathSegList.appendItem documentation> 
 appendItem ::
            (MonadIO m, IsSVGPathSeg newItem) =>
-             SVGPathSegList -> Maybe newItem -> m (Maybe SVGPathSeg)
+             SVGPathSegList -> Maybe newItem -> m SVGPathSeg
 appendItem self newItem
   = liftIO
-      (nullableToMaybe <$>
-         (js_appendItem (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))))
+      (js_appendItem self (maybeToOptional (fmap toSVGPathSeg newItem)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.appendItem Mozilla SVGPathSegList.appendItem documentation> 
 appendItem_ ::
@@ -261,33 +147,11 @@
 appendItem_ self newItem
   = liftIO
       (void
-         (js_appendItem (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.appendItem Mozilla SVGPathSegList.appendItem documentation> 
-appendItemUnsafe ::
-                 (MonadIO m, IsSVGPathSeg newItem, HasCallStack) =>
-                   SVGPathSegList -> Maybe newItem -> m SVGPathSeg
-appendItemUnsafe self newItem
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_appendItem (self)
-             (maybeToNullable (fmap toSVGPathSeg newItem))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.appendItem Mozilla SVGPathSegList.appendItem documentation> 
-appendItemUnchecked ::
-                    (MonadIO m, IsSVGPathSeg newItem) =>
-                      SVGPathSegList -> Maybe newItem -> m SVGPathSeg
-appendItemUnchecked self newItem
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_appendItem (self)
-            (maybeToNullable (fmap toSVGPathSeg newItem))))
+         (js_appendItem self (maybeToOptional (fmap toSVGPathSeg newItem))))
  
 foreign import javascript unsafe "$1[\"numberOfItems\"]"
         js_getNumberOfItems :: SVGPathSegList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList.numberOfItems Mozilla SVGPathSegList.numberOfItems documentation> 
 getNumberOfItems :: (MonadIO m) => SVGPathSegList -> m Word
-getNumberOfItems self = liftIO (js_getNumberOfItems (self))
+getNumberOfItems self = liftIO (js_getNumberOfItems self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegMovetoAbs.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegMovetoAbs.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegMovetoAbs.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegMovetoAbs.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,25 +31,25 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoAbs.x Mozilla SVGPathSegMovetoAbs.x documentation> 
 setX :: (MonadIO m) => SVGPathSegMovetoAbs -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegMovetoAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoAbs.x Mozilla SVGPathSegMovetoAbs.x documentation> 
 getX :: (MonadIO m) => SVGPathSegMovetoAbs -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegMovetoAbs -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoAbs.y Mozilla SVGPathSegMovetoAbs.y documentation> 
 setY :: (MonadIO m) => SVGPathSegMovetoAbs -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegMovetoAbs -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoAbs.y Mozilla SVGPathSegMovetoAbs.y documentation> 
 getY :: (MonadIO m) => SVGPathSegMovetoAbs -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegMovetoRel.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegMovetoRel.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegMovetoRel.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPathSegMovetoRel.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,25 +31,25 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoRel.x Mozilla SVGPathSegMovetoRel.x documentation> 
 setX :: (MonadIO m) => SVGPathSegMovetoRel -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPathSegMovetoRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoRel.x Mozilla SVGPathSegMovetoRel.x documentation> 
 getX :: (MonadIO m) => SVGPathSegMovetoRel -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPathSegMovetoRel -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoRel.y Mozilla SVGPathSegMovetoRel.y documentation> 
 setY :: (MonadIO m) => SVGPathSegMovetoRel -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPathSegMovetoRel -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoRel.y Mozilla SVGPathSegMovetoRel.y documentation> 
 getY :: (MonadIO m) => SVGPathSegMovetoRel -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPatternElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPatternElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPatternElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPatternElement.hs
@@ -4,22 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGPatternElement
-       (js_getPatternUnits, getPatternUnits, getPatternUnitsUnsafe,
-        getPatternUnitsUnchecked, js_getPatternContentUnits,
-        getPatternContentUnits, getPatternContentUnitsUnsafe,
-        getPatternContentUnitsUnchecked, js_getPatternTransform,
-        getPatternTransform, getPatternTransformUnsafe,
-        getPatternTransformUnchecked, js_getX, getX, getXUnsafe,
-        getXUnchecked, js_getY, getY, getYUnsafe, getYUnchecked,
-        js_getWidth, getWidth, getWidthUnsafe, getWidthUnchecked,
-        js_getHeight, getHeight, getHeightUnsafe, getHeightUnchecked,
-        SVGPatternElement(..), gTypeSVGPatternElement)
+       (js_getPatternUnits, getPatternUnits, js_getPatternContentUnits,
+        getPatternContentUnits, js_getPatternTransform,
+        getPatternTransform, js_getX, getX, js_getY, getY, js_getWidth,
+        getWidth, js_getHeight, getHeight, SVGPatternElement(..),
+        gTypeSVGPatternElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -35,173 +31,57 @@
  
 foreign import javascript unsafe "$1[\"patternUnits\"]"
         js_getPatternUnits ::
-        SVGPatternElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGPatternElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.patternUnits Mozilla SVGPatternElement.patternUnits documentation> 
 getPatternUnits ::
-                (MonadIO m) =>
-                  SVGPatternElement -> m (Maybe SVGAnimatedEnumeration)
-getPatternUnits self
-  = liftIO (nullableToMaybe <$> (js_getPatternUnits (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.patternUnits Mozilla SVGPatternElement.patternUnits documentation> 
-getPatternUnitsUnsafe ::
-                      (MonadIO m, HasCallStack) =>
-                        SVGPatternElement -> m SVGAnimatedEnumeration
-getPatternUnitsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPatternUnits (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.patternUnits Mozilla SVGPatternElement.patternUnits documentation> 
-getPatternUnitsUnchecked ::
-                         (MonadIO m) => SVGPatternElement -> m SVGAnimatedEnumeration
-getPatternUnitsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPatternUnits (self)))
+                (MonadIO m) => SVGPatternElement -> m SVGAnimatedEnumeration
+getPatternUnits self = liftIO (js_getPatternUnits self)
  
 foreign import javascript unsafe "$1[\"patternContentUnits\"]"
         js_getPatternContentUnits ::
-        SVGPatternElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGPatternElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.patternContentUnits Mozilla SVGPatternElement.patternContentUnits documentation> 
 getPatternContentUnits ::
-                       (MonadIO m) =>
-                         SVGPatternElement -> m (Maybe SVGAnimatedEnumeration)
+                       (MonadIO m) => SVGPatternElement -> m SVGAnimatedEnumeration
 getPatternContentUnits self
-  = liftIO (nullableToMaybe <$> (js_getPatternContentUnits (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.patternContentUnits Mozilla SVGPatternElement.patternContentUnits documentation> 
-getPatternContentUnitsUnsafe ::
-                             (MonadIO m, HasCallStack) =>
-                               SVGPatternElement -> m SVGAnimatedEnumeration
-getPatternContentUnitsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPatternContentUnits (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.patternContentUnits Mozilla SVGPatternElement.patternContentUnits documentation> 
-getPatternContentUnitsUnchecked ::
-                                (MonadIO m) => SVGPatternElement -> m SVGAnimatedEnumeration
-getPatternContentUnitsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPatternContentUnits (self)))
+  = liftIO (js_getPatternContentUnits self)
  
 foreign import javascript unsafe "$1[\"patternTransform\"]"
         js_getPatternTransform ::
-        SVGPatternElement -> IO (Nullable SVGAnimatedTransformList)
+        SVGPatternElement -> IO SVGAnimatedTransformList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.patternTransform Mozilla SVGPatternElement.patternTransform documentation> 
 getPatternTransform ::
-                    (MonadIO m) =>
-                      SVGPatternElement -> m (Maybe SVGAnimatedTransformList)
-getPatternTransform self
-  = liftIO (nullableToMaybe <$> (js_getPatternTransform (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.patternTransform Mozilla SVGPatternElement.patternTransform documentation> 
-getPatternTransformUnsafe ::
-                          (MonadIO m, HasCallStack) =>
-                            SVGPatternElement -> m SVGAnimatedTransformList
-getPatternTransformUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPatternTransform (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.patternTransform Mozilla SVGPatternElement.patternTransform documentation> 
-getPatternTransformUnchecked ::
-                             (MonadIO m) => SVGPatternElement -> m SVGAnimatedTransformList
-getPatternTransformUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPatternTransform (self)))
+                    (MonadIO m) => SVGPatternElement -> m SVGAnimatedTransformList
+getPatternTransform self = liftIO (js_getPatternTransform self)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGPatternElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.x Mozilla SVGPatternElement.x documentation> 
-getX ::
-     (MonadIO m) => SVGPatternElement -> m (Maybe SVGAnimatedLength)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.x Mozilla SVGPatternElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGPatternElement -> m SVGAnimatedLength
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGPatternElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.x Mozilla SVGPatternElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m) => SVGPatternElement -> m SVGAnimatedLength
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+getX :: (MonadIO m) => SVGPatternElement -> m SVGAnimatedLength
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGPatternElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.y Mozilla SVGPatternElement.y documentation> 
-getY ::
-     (MonadIO m) => SVGPatternElement -> m (Maybe SVGAnimatedLength)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.y Mozilla SVGPatternElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGPatternElement -> m SVGAnimatedLength
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGPatternElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.y Mozilla SVGPatternElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m) => SVGPatternElement -> m SVGAnimatedLength
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+getY :: (MonadIO m) => SVGPatternElement -> m SVGAnimatedLength
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        SVGPatternElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.width Mozilla SVGPatternElement.width documentation> 
-getWidth ::
-         (MonadIO m) => SVGPatternElement -> m (Maybe SVGAnimatedLength)
-getWidth self = liftIO (nullableToMaybe <$> (js_getWidth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.width Mozilla SVGPatternElement.width documentation> 
-getWidthUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 SVGPatternElement -> m SVGAnimatedLength
-getWidthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWidth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGPatternElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.width Mozilla SVGPatternElement.width documentation> 
-getWidthUnchecked ::
-                  (MonadIO m) => SVGPatternElement -> m SVGAnimatedLength
-getWidthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getWidth (self)))
+getWidth :: (MonadIO m) => SVGPatternElement -> m SVGAnimatedLength
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        SVGPatternElement -> IO (Nullable SVGAnimatedLength)
+        SVGPatternElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.height Mozilla SVGPatternElement.height documentation> 
 getHeight ::
-          (MonadIO m) => SVGPatternElement -> m (Maybe SVGAnimatedLength)
-getHeight self = liftIO (nullableToMaybe <$> (js_getHeight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.height Mozilla SVGPatternElement.height documentation> 
-getHeightUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  SVGPatternElement -> m SVGAnimatedLength
-getHeightUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHeight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement.height Mozilla SVGPatternElement.height documentation> 
-getHeightUnchecked ::
-                   (MonadIO m) => SVGPatternElement -> m SVGAnimatedLength
-getHeightUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHeight (self)))
+          (MonadIO m) => SVGPatternElement -> m SVGAnimatedLength
+getHeight self = liftIO (js_getHeight self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPoint.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPoint.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPoint.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPoint.hs
@@ -4,16 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGPoint
-       (js_matrixTransform, matrixTransform, matrixTransform_,
-        matrixTransformUnsafe, matrixTransformUnchecked, js_setX, setX,
-        js_getX, getX, js_setY, setY, js_getY, getY, SVGPoint(..),
+       (js_matrixTransform, matrixTransform, matrixTransform_, js_setX,
+        setX, js_getX, getX, js_setY, setY, js_getY, getY, SVGPoint(..),
         gTypeSVGPoint)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,72 +21,50 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"matrixTransform\"]($2)"
-        js_matrixTransform ::
-        SVGPoint -> Nullable SVGMatrix -> IO (Nullable SVGPoint)
+        js_matrixTransform :: SVGPoint -> SVGMatrix -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint.matrixTransform Mozilla SVGPoint.matrixTransform documentation> 
 matrixTransform ::
-                (MonadIO m) => SVGPoint -> Maybe SVGMatrix -> m (Maybe SVGPoint)
+                (MonadIO m) => SVGPoint -> SVGMatrix -> m SVGPoint
 matrixTransform self matrix
-  = liftIO
-      (nullableToMaybe <$>
-         (js_matrixTransform (self) (maybeToNullable matrix)))
+  = liftIO (js_matrixTransform self matrix)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint.matrixTransform Mozilla SVGPoint.matrixTransform documentation> 
-matrixTransform_ ::
-                 (MonadIO m) => SVGPoint -> Maybe SVGMatrix -> m ()
+matrixTransform_ :: (MonadIO m) => SVGPoint -> SVGMatrix -> m ()
 matrixTransform_ self matrix
-  = liftIO
-      (void (js_matrixTransform (self) (maybeToNullable matrix)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint.matrixTransform Mozilla SVGPoint.matrixTransform documentation> 
-matrixTransformUnsafe ::
-                      (MonadIO m, HasCallStack) =>
-                        SVGPoint -> Maybe SVGMatrix -> m SVGPoint
-matrixTransformUnsafe self matrix
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_matrixTransform (self) (maybeToNullable matrix)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint.matrixTransform Mozilla SVGPoint.matrixTransform documentation> 
-matrixTransformUnchecked ::
-                         (MonadIO m) => SVGPoint -> Maybe SVGMatrix -> m SVGPoint
-matrixTransformUnchecked self matrix
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_matrixTransform (self) (maybeToNullable matrix)))
+  = liftIO (void (js_matrixTransform self matrix))
  
 foreign import javascript unsafe "$1[\"x\"] = $2;" js_setX ::
         SVGPoint -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint.x Mozilla SVGPoint.x documentation> 
 setX :: (MonadIO m) => SVGPoint -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGPoint -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint.x Mozilla SVGPoint.x documentation> 
 getX :: (MonadIO m) => SVGPoint -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGPoint -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint.y Mozilla SVGPoint.y documentation> 
 setY :: (MonadIO m) => SVGPoint -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGPoint -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint.y Mozilla SVGPoint.y documentation> 
 getY :: (MonadIO m) => SVGPoint -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPointList.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPointList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPointList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPointList.hs
@@ -5,21 +5,17 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGPointList
        (js_clear, clear, js_initialize, initialize, initialize_,
-        initializeUnsafe, initializeUnchecked, js_getItem, getItem,
-        getItem_, getItemUnsafe, getItemUnchecked, js_insertItemBefore,
-        insertItemBefore, insertItemBefore_, insertItemBeforeUnsafe,
-        insertItemBeforeUnchecked, js_replaceItem, replaceItem,
-        replaceItem_, replaceItemUnsafe, replaceItemUnchecked,
-        js_removeItem, removeItem, removeItem_, removeItemUnsafe,
-        removeItemUnchecked, js_appendItem, appendItem, appendItem_,
-        appendItemUnsafe, appendItemUnchecked, js_getNumberOfItems,
+        js_getItem, getItem, getItem_, js_insertItemBefore,
+        insertItemBefore, insertItemBefore_, js_replaceItem, replaceItem,
+        replaceItem_, js_removeItem, removeItem, removeItem_,
+        js_appendItem, appendItem, appendItem_, js_getNumberOfItems,
         getNumberOfItems, SVGPointList(..), gTypeSVGPointList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -38,212 +35,86 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.clear Mozilla SVGPointList.clear documentation> 
 clear :: (MonadIO m) => SVGPointList -> m ()
-clear self = liftIO (js_clear (self))
+clear self = liftIO (js_clear self)
  
 foreign import javascript unsafe "$1[\"initialize\"]($2)"
-        js_initialize ::
-        SVGPointList -> Nullable SVGPoint -> IO (Nullable SVGPoint)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.initialize Mozilla SVGPointList.initialize documentation> 
-initialize ::
-           (MonadIO m) => SVGPointList -> Maybe SVGPoint -> m (Maybe SVGPoint)
-initialize self item
-  = liftIO
-      (nullableToMaybe <$> (js_initialize (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.initialize Mozilla SVGPointList.initialize documentation> 
-initialize_ ::
-            (MonadIO m) => SVGPointList -> Maybe SVGPoint -> m ()
-initialize_ self item
-  = liftIO (void (js_initialize (self) (maybeToNullable item)))
+        js_initialize :: SVGPointList -> SVGPoint -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.initialize Mozilla SVGPointList.initialize documentation> 
-initializeUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGPointList -> Maybe SVGPoint -> m SVGPoint
-initializeUnsafe self item
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_initialize (self) (maybeToNullable item)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+initialize :: (MonadIO m) => SVGPointList -> SVGPoint -> m SVGPoint
+initialize self item = liftIO (js_initialize self item)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.initialize Mozilla SVGPointList.initialize documentation> 
-initializeUnchecked ::
-                    (MonadIO m) => SVGPointList -> Maybe SVGPoint -> m SVGPoint
-initializeUnchecked self item
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_initialize (self) (maybeToNullable item)))
+initialize_ :: (MonadIO m) => SVGPointList -> SVGPoint -> m ()
+initialize_ self item = liftIO (void (js_initialize self item))
  
 foreign import javascript unsafe "$1[\"getItem\"]($2)" js_getItem
-        :: SVGPointList -> Word -> IO (Nullable SVGPoint)
+        :: SVGPointList -> Word -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.getItem Mozilla SVGPointList.getItem documentation> 
-getItem ::
-        (MonadIO m) => SVGPointList -> Word -> m (Maybe SVGPoint)
-getItem self index
-  = liftIO (nullableToMaybe <$> (js_getItem (self) index))
+getItem :: (MonadIO m) => SVGPointList -> Word -> m SVGPoint
+getItem self index = liftIO (js_getItem self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.getItem Mozilla SVGPointList.getItem documentation> 
 getItem_ :: (MonadIO m) => SVGPointList -> Word -> m ()
-getItem_ self index = liftIO (void (js_getItem (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.getItem Mozilla SVGPointList.getItem documentation> 
-getItemUnsafe ::
-              (MonadIO m, HasCallStack) => SVGPointList -> Word -> m SVGPoint
-getItemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_getItem (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.getItem Mozilla SVGPointList.getItem documentation> 
-getItemUnchecked ::
-                 (MonadIO m) => SVGPointList -> Word -> m SVGPoint
-getItemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_getItem (self) index))
+getItem_ self index = liftIO (void (js_getItem self index))
  
 foreign import javascript unsafe "$1[\"insertItemBefore\"]($2, $3)"
         js_insertItemBefore ::
-        SVGPointList -> Nullable SVGPoint -> Word -> IO (Nullable SVGPoint)
+        SVGPointList -> SVGPoint -> Word -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.insertItemBefore Mozilla SVGPointList.insertItemBefore documentation> 
 insertItemBefore ::
-                 (MonadIO m) =>
-                   SVGPointList -> Maybe SVGPoint -> Word -> m (Maybe SVGPoint)
+                 (MonadIO m) => SVGPointList -> SVGPoint -> Word -> m SVGPoint
 insertItemBefore self item index
-  = liftIO
-      (nullableToMaybe <$>
-         (js_insertItemBefore (self) (maybeToNullable item) index))
+  = liftIO (js_insertItemBefore self item index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.insertItemBefore Mozilla SVGPointList.insertItemBefore documentation> 
 insertItemBefore_ ::
-                  (MonadIO m) => SVGPointList -> Maybe SVGPoint -> Word -> m ()
+                  (MonadIO m) => SVGPointList -> SVGPoint -> Word -> m ()
 insertItemBefore_ self item index
-  = liftIO
-      (void (js_insertItemBefore (self) (maybeToNullable item) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.insertItemBefore Mozilla SVGPointList.insertItemBefore documentation> 
-insertItemBeforeUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         SVGPointList -> Maybe SVGPoint -> Word -> m SVGPoint
-insertItemBeforeUnsafe self item index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_insertItemBefore (self) (maybeToNullable item) index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.insertItemBefore Mozilla SVGPointList.insertItemBefore documentation> 
-insertItemBeforeUnchecked ::
-                          (MonadIO m) => SVGPointList -> Maybe SVGPoint -> Word -> m SVGPoint
-insertItemBeforeUnchecked self item index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_insertItemBefore (self) (maybeToNullable item) index))
+  = liftIO (void (js_insertItemBefore self item index))
  
 foreign import javascript unsafe "$1[\"replaceItem\"]($2, $3)"
-        js_replaceItem ::
-        SVGPointList -> Nullable SVGPoint -> Word -> IO (Nullable SVGPoint)
+        js_replaceItem :: SVGPointList -> SVGPoint -> Word -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.replaceItem Mozilla SVGPointList.replaceItem documentation> 
 replaceItem ::
-            (MonadIO m) =>
-              SVGPointList -> Maybe SVGPoint -> Word -> m (Maybe SVGPoint)
+            (MonadIO m) => SVGPointList -> SVGPoint -> Word -> m SVGPoint
 replaceItem self item index
-  = liftIO
-      (nullableToMaybe <$>
-         (js_replaceItem (self) (maybeToNullable item) index))
+  = liftIO (js_replaceItem self item index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.replaceItem Mozilla SVGPointList.replaceItem documentation> 
 replaceItem_ ::
-             (MonadIO m) => SVGPointList -> Maybe SVGPoint -> Word -> m ()
+             (MonadIO m) => SVGPointList -> SVGPoint -> Word -> m ()
 replaceItem_ self item index
-  = liftIO
-      (void (js_replaceItem (self) (maybeToNullable item) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.replaceItem Mozilla SVGPointList.replaceItem documentation> 
-replaceItemUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    SVGPointList -> Maybe SVGPoint -> Word -> m SVGPoint
-replaceItemUnsafe self item index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_replaceItem (self) (maybeToNullable item) index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.replaceItem Mozilla SVGPointList.replaceItem documentation> 
-replaceItemUnchecked ::
-                     (MonadIO m) => SVGPointList -> Maybe SVGPoint -> Word -> m SVGPoint
-replaceItemUnchecked self item index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_replaceItem (self) (maybeToNullable item) index))
+  = liftIO (void (js_replaceItem self item index))
  
 foreign import javascript unsafe "$1[\"removeItem\"]($2)"
-        js_removeItem :: SVGPointList -> Word -> IO (Nullable SVGPoint)
+        js_removeItem :: SVGPointList -> Word -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.removeItem Mozilla SVGPointList.removeItem documentation> 
-removeItem ::
-           (MonadIO m) => SVGPointList -> Word -> m (Maybe SVGPoint)
-removeItem self index
-  = liftIO (nullableToMaybe <$> (js_removeItem (self) index))
+removeItem :: (MonadIO m) => SVGPointList -> Word -> m SVGPoint
+removeItem self index = liftIO (js_removeItem self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.removeItem Mozilla SVGPointList.removeItem documentation> 
 removeItem_ :: (MonadIO m) => SVGPointList -> Word -> m ()
-removeItem_ self index = liftIO (void (js_removeItem (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.removeItem Mozilla SVGPointList.removeItem documentation> 
-removeItemUnsafe ::
-                 (MonadIO m, HasCallStack) => SVGPointList -> Word -> m SVGPoint
-removeItemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_removeItem (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.removeItem Mozilla SVGPointList.removeItem documentation> 
-removeItemUnchecked ::
-                    (MonadIO m) => SVGPointList -> Word -> m SVGPoint
-removeItemUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_removeItem (self) index))
+removeItem_ self index = liftIO (void (js_removeItem self index))
  
 foreign import javascript unsafe "$1[\"appendItem\"]($2)"
-        js_appendItem ::
-        SVGPointList -> Nullable SVGPoint -> IO (Nullable SVGPoint)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.appendItem Mozilla SVGPointList.appendItem documentation> 
-appendItem ::
-           (MonadIO m) => SVGPointList -> Maybe SVGPoint -> m (Maybe SVGPoint)
-appendItem self item
-  = liftIO
-      (nullableToMaybe <$> (js_appendItem (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.appendItem Mozilla SVGPointList.appendItem documentation> 
-appendItem_ ::
-            (MonadIO m) => SVGPointList -> Maybe SVGPoint -> m ()
-appendItem_ self item
-  = liftIO (void (js_appendItem (self) (maybeToNullable item)))
+        js_appendItem :: SVGPointList -> SVGPoint -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.appendItem Mozilla SVGPointList.appendItem documentation> 
-appendItemUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGPointList -> Maybe SVGPoint -> m SVGPoint
-appendItemUnsafe self item
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_appendItem (self) (maybeToNullable item)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+appendItem :: (MonadIO m) => SVGPointList -> SVGPoint -> m SVGPoint
+appendItem self item = liftIO (js_appendItem self item)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.appendItem Mozilla SVGPointList.appendItem documentation> 
-appendItemUnchecked ::
-                    (MonadIO m) => SVGPointList -> Maybe SVGPoint -> m SVGPoint
-appendItemUnchecked self item
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_appendItem (self) (maybeToNullable item)))
+appendItem_ :: (MonadIO m) => SVGPointList -> SVGPoint -> m ()
+appendItem_ self item = liftIO (void (js_appendItem self item))
  
 foreign import javascript unsafe "$1[\"numberOfItems\"]"
         js_getNumberOfItems :: SVGPointList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList.numberOfItems Mozilla SVGPointList.numberOfItems documentation> 
 getNumberOfItems :: (MonadIO m) => SVGPointList -> m Word
-getNumberOfItems self = liftIO (js_getNumberOfItems (self))
+getNumberOfItems self = liftIO (js_getNumberOfItems self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPolygonElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPolygonElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPolygonElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPolygonElement.hs
@@ -4,16 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGPolygonElement
-       (js_getPoints, getPoints, getPointsUnsafe, getPointsUnchecked,
-        js_getAnimatedPoints, getAnimatedPoints, getAnimatedPointsUnsafe,
-        getAnimatedPointsUnchecked, SVGPolygonElement(..),
-        gTypeSVGPolygonElement)
+       (js_getPoints, getPoints, js_getAnimatedPoints, getAnimatedPoints,
+        SVGPolygonElement(..), gTypeSVGPolygonElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,54 +20,23 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"points\"]" js_getPoints ::
-        SVGPolygonElement -> IO (Nullable SVGPointList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolygonElement.points Mozilla SVGPolygonElement.points documentation> 
-getPoints ::
-          (MonadIO m) => SVGPolygonElement -> m (Maybe SVGPointList)
-getPoints self = liftIO (nullableToMaybe <$> (js_getPoints (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolygonElement.points Mozilla SVGPolygonElement.points documentation> 
-getPointsUnsafe ::
-                (MonadIO m, HasCallStack) => SVGPolygonElement -> m SVGPointList
-getPointsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPoints (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGPolygonElement -> IO SVGPointList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolygonElement.points Mozilla SVGPolygonElement.points documentation> 
-getPointsUnchecked ::
-                   (MonadIO m) => SVGPolygonElement -> m SVGPointList
-getPointsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPoints (self)))
+getPoints :: (MonadIO m) => SVGPolygonElement -> m SVGPointList
+getPoints self = liftIO (js_getPoints self)
  
 foreign import javascript unsafe "$1[\"animatedPoints\"]"
-        js_getAnimatedPoints ::
-        SVGPolygonElement -> IO (Nullable SVGPointList)
+        js_getAnimatedPoints :: SVGPolygonElement -> IO SVGPointList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolygonElement.animatedPoints Mozilla SVGPolygonElement.animatedPoints documentation> 
 getAnimatedPoints ::
-                  (MonadIO m) => SVGPolygonElement -> m (Maybe SVGPointList)
-getAnimatedPoints self
-  = liftIO (nullableToMaybe <$> (js_getAnimatedPoints (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolygonElement.animatedPoints Mozilla SVGPolygonElement.animatedPoints documentation> 
-getAnimatedPointsUnsafe ::
-                        (MonadIO m, HasCallStack) => SVGPolygonElement -> m SVGPointList
-getAnimatedPointsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnimatedPoints (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolygonElement.animatedPoints Mozilla SVGPolygonElement.animatedPoints documentation> 
-getAnimatedPointsUnchecked ::
-                           (MonadIO m) => SVGPolygonElement -> m SVGPointList
-getAnimatedPointsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getAnimatedPoints (self)))
+                  (MonadIO m) => SVGPolygonElement -> m SVGPointList
+getAnimatedPoints self = liftIO (js_getAnimatedPoints self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPolylineElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPolylineElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPolylineElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPolylineElement.hs
@@ -4,16 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGPolylineElement
-       (js_getPoints, getPoints, getPointsUnsafe, getPointsUnchecked,
-        js_getAnimatedPoints, getAnimatedPoints, getAnimatedPointsUnsafe,
-        getAnimatedPointsUnchecked, SVGPolylineElement(..),
-        gTypeSVGPolylineElement)
+       (js_getPoints, getPoints, js_getAnimatedPoints, getAnimatedPoints,
+        SVGPolylineElement(..), gTypeSVGPolylineElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,54 +20,23 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"points\"]" js_getPoints ::
-        SVGPolylineElement -> IO (Nullable SVGPointList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolylineElement.points Mozilla SVGPolylineElement.points documentation> 
-getPoints ::
-          (MonadIO m) => SVGPolylineElement -> m (Maybe SVGPointList)
-getPoints self = liftIO (nullableToMaybe <$> (js_getPoints (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolylineElement.points Mozilla SVGPolylineElement.points documentation> 
-getPointsUnsafe ::
-                (MonadIO m, HasCallStack) => SVGPolylineElement -> m SVGPointList
-getPointsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPoints (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGPolylineElement -> IO SVGPointList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolylineElement.points Mozilla SVGPolylineElement.points documentation> 
-getPointsUnchecked ::
-                   (MonadIO m) => SVGPolylineElement -> m SVGPointList
-getPointsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getPoints (self)))
+getPoints :: (MonadIO m) => SVGPolylineElement -> m SVGPointList
+getPoints self = liftIO (js_getPoints self)
  
 foreign import javascript unsafe "$1[\"animatedPoints\"]"
-        js_getAnimatedPoints ::
-        SVGPolylineElement -> IO (Nullable SVGPointList)
+        js_getAnimatedPoints :: SVGPolylineElement -> IO SVGPointList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolylineElement.animatedPoints Mozilla SVGPolylineElement.animatedPoints documentation> 
 getAnimatedPoints ::
-                  (MonadIO m) => SVGPolylineElement -> m (Maybe SVGPointList)
-getAnimatedPoints self
-  = liftIO (nullableToMaybe <$> (js_getAnimatedPoints (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolylineElement.animatedPoints Mozilla SVGPolylineElement.animatedPoints documentation> 
-getAnimatedPointsUnsafe ::
-                        (MonadIO m, HasCallStack) => SVGPolylineElement -> m SVGPointList
-getAnimatedPointsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAnimatedPoints (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolylineElement.animatedPoints Mozilla SVGPolylineElement.animatedPoints documentation> 
-getAnimatedPointsUnchecked ::
-                           (MonadIO m) => SVGPolylineElement -> m SVGPointList
-getAnimatedPointsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getAnimatedPoints (self)))
+                  (MonadIO m) => SVGPolylineElement -> m SVGPointList
+getAnimatedPoints self = liftIO (js_getAnimatedPoints self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGPreserveAspectRatio.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGPreserveAspectRatio.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGPreserveAspectRatio.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGPreserveAspectRatio.hs
@@ -25,7 +25,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -34,6 +34,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -58,14 +59,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPreserveAspectRatio.align Mozilla SVGPreserveAspectRatio.align documentation> 
 setAlign :: (MonadIO m) => SVGPreserveAspectRatio -> Word -> m ()
-setAlign self val = liftIO (js_setAlign (self) val)
+setAlign self val = liftIO (js_setAlign self val)
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         SVGPreserveAspectRatio -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPreserveAspectRatio.align Mozilla SVGPreserveAspectRatio.align documentation> 
 getAlign :: (MonadIO m) => SVGPreserveAspectRatio -> m Word
-getAlign self = liftIO (js_getAlign (self))
+getAlign self = liftIO (js_getAlign self)
  
 foreign import javascript unsafe "$1[\"meetOrSlice\"] = $2;"
         js_setMeetOrSlice :: SVGPreserveAspectRatio -> Word -> IO ()
@@ -73,11 +74,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPreserveAspectRatio.meetOrSlice Mozilla SVGPreserveAspectRatio.meetOrSlice documentation> 
 setMeetOrSlice ::
                (MonadIO m) => SVGPreserveAspectRatio -> Word -> m ()
-setMeetOrSlice self val = liftIO (js_setMeetOrSlice (self) val)
+setMeetOrSlice self val = liftIO (js_setMeetOrSlice self val)
  
 foreign import javascript unsafe "$1[\"meetOrSlice\"]"
         js_getMeetOrSlice :: SVGPreserveAspectRatio -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGPreserveAspectRatio.meetOrSlice Mozilla SVGPreserveAspectRatio.meetOrSlice documentation> 
 getMeetOrSlice :: (MonadIO m) => SVGPreserveAspectRatio -> m Word
-getMeetOrSlice self = liftIO (js_getMeetOrSlice (self))
+getMeetOrSlice self = liftIO (js_getMeetOrSlice self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGRadialGradientElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGRadialGradientElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGRadialGradientElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGRadialGradientElement.hs
@@ -4,18 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGRadialGradientElement
-       (js_getCx, getCx, getCxUnsafe, getCxUnchecked, js_getCy, getCy,
-        getCyUnsafe, getCyUnchecked, js_getR, getR, getRUnsafe,
-        getRUnchecked, js_getFx, getFx, getFxUnsafe, getFxUnchecked,
-        js_getFy, getFy, getFyUnsafe, getFyUnchecked, js_getFr, getFr,
-        getFrUnsafe, getFrUnchecked, SVGRadialGradientElement(..),
+       (js_getCx, getCx, js_getCy, getCy, js_getR, getR, js_getFx, getFx,
+        js_getFy, getFy, js_getFr, getFr, SVGRadialGradientElement(..),
         gTypeSVGRadialGradientElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,151 +21,56 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"cx\"]" js_getCx ::
-        SVGRadialGradientElement -> IO (Nullable SVGAnimatedLength)
+        SVGRadialGradientElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.cx Mozilla SVGRadialGradientElement.cx documentation> 
 getCx ::
-      (MonadIO m) =>
-        SVGRadialGradientElement -> m (Maybe SVGAnimatedLength)
-getCx self = liftIO (nullableToMaybe <$> (js_getCx (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.cx Mozilla SVGRadialGradientElement.cx documentation> 
-getCxUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGRadialGradientElement -> m SVGAnimatedLength
-getCxUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCx (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.cx Mozilla SVGRadialGradientElement.cx documentation> 
-getCxUnchecked ::
-               (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
-getCxUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCx (self)))
+      (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
+getCx self = liftIO (js_getCx self)
  
 foreign import javascript unsafe "$1[\"cy\"]" js_getCy ::
-        SVGRadialGradientElement -> IO (Nullable SVGAnimatedLength)
+        SVGRadialGradientElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.cy Mozilla SVGRadialGradientElement.cy documentation> 
 getCy ::
-      (MonadIO m) =>
-        SVGRadialGradientElement -> m (Maybe SVGAnimatedLength)
-getCy self = liftIO (nullableToMaybe <$> (js_getCy (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.cy Mozilla SVGRadialGradientElement.cy documentation> 
-getCyUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGRadialGradientElement -> m SVGAnimatedLength
-getCyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCy (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.cy Mozilla SVGRadialGradientElement.cy documentation> 
-getCyUnchecked ::
-               (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
-getCyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCy (self)))
+      (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
+getCy self = liftIO (js_getCy self)
  
 foreign import javascript unsafe "$1[\"r\"]" js_getR ::
-        SVGRadialGradientElement -> IO (Nullable SVGAnimatedLength)
+        SVGRadialGradientElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.r Mozilla SVGRadialGradientElement.r documentation> 
 getR ::
-     (MonadIO m) =>
-       SVGRadialGradientElement -> m (Maybe SVGAnimatedLength)
-getR self = liftIO (nullableToMaybe <$> (js_getR (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.r Mozilla SVGRadialGradientElement.r documentation> 
-getRUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SVGRadialGradientElement -> m SVGAnimatedLength
-getRUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getR (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.r Mozilla SVGRadialGradientElement.r documentation> 
-getRUnchecked ::
-              (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
-getRUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getR (self)))
+     (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
+getR self = liftIO (js_getR self)
  
 foreign import javascript unsafe "$1[\"fx\"]" js_getFx ::
-        SVGRadialGradientElement -> IO (Nullable SVGAnimatedLength)
+        SVGRadialGradientElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.fx Mozilla SVGRadialGradientElement.fx documentation> 
 getFx ::
-      (MonadIO m) =>
-        SVGRadialGradientElement -> m (Maybe SVGAnimatedLength)
-getFx self = liftIO (nullableToMaybe <$> (js_getFx (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.fx Mozilla SVGRadialGradientElement.fx documentation> 
-getFxUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGRadialGradientElement -> m SVGAnimatedLength
-getFxUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFx (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.fx Mozilla SVGRadialGradientElement.fx documentation> 
-getFxUnchecked ::
-               (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
-getFxUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFx (self)))
+      (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
+getFx self = liftIO (js_getFx self)
  
 foreign import javascript unsafe "$1[\"fy\"]" js_getFy ::
-        SVGRadialGradientElement -> IO (Nullable SVGAnimatedLength)
+        SVGRadialGradientElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.fy Mozilla SVGRadialGradientElement.fy documentation> 
 getFy ::
-      (MonadIO m) =>
-        SVGRadialGradientElement -> m (Maybe SVGAnimatedLength)
-getFy self = liftIO (nullableToMaybe <$> (js_getFy (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.fy Mozilla SVGRadialGradientElement.fy documentation> 
-getFyUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGRadialGradientElement -> m SVGAnimatedLength
-getFyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFy (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.fy Mozilla SVGRadialGradientElement.fy documentation> 
-getFyUnchecked ::
-               (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
-getFyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFy (self)))
+      (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
+getFy self = liftIO (js_getFy self)
  
 foreign import javascript unsafe "$1[\"fr\"]" js_getFr ::
-        SVGRadialGradientElement -> IO (Nullable SVGAnimatedLength)
+        SVGRadialGradientElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.fr Mozilla SVGRadialGradientElement.fr documentation> 
 getFr ::
-      (MonadIO m) =>
-        SVGRadialGradientElement -> m (Maybe SVGAnimatedLength)
-getFr self = liftIO (nullableToMaybe <$> (js_getFr (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.fr Mozilla SVGRadialGradientElement.fr documentation> 
-getFrUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              SVGRadialGradientElement -> m SVGAnimatedLength
-getFrUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFr (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement.fr Mozilla SVGRadialGradientElement.fr documentation> 
-getFrUnchecked ::
-               (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
-getFrUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFr (self)))
+      (MonadIO m) => SVGRadialGradientElement -> m SVGAnimatedLength
+getFr self = liftIO (js_getFr self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGRect.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGRect.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGRect.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGRect.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,53 +32,53 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect.x Mozilla SVGRect.x documentation> 
 setX :: (MonadIO m) => SVGRect -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         SVGRect -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect.x Mozilla SVGRect.x documentation> 
 getX :: (MonadIO m) => SVGRect -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         SVGRect -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect.y Mozilla SVGRect.y documentation> 
 setY :: (MonadIO m) => SVGRect -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         SVGRect -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect.y Mozilla SVGRect.y documentation> 
 getY :: (MonadIO m) => SVGRect -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: SVGRect -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect.width Mozilla SVGRect.width documentation> 
 setWidth :: (MonadIO m) => SVGRect -> Float -> m ()
-setWidth self val = liftIO (js_setWidth (self) val)
+setWidth self val = liftIO (js_setWidth self val)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         SVGRect -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect.width Mozilla SVGRect.width documentation> 
 getWidth :: (MonadIO m) => SVGRect -> m Float
-getWidth self = liftIO (js_getWidth (self))
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
         js_setHeight :: SVGRect -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect.height Mozilla SVGRect.height documentation> 
 setHeight :: (MonadIO m) => SVGRect -> Float -> m ()
-setHeight self val = liftIO (js_setHeight (self) val)
+setHeight self val = liftIO (js_setHeight self val)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
         SVGRect -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect.height Mozilla SVGRect.height documentation> 
 getHeight :: (MonadIO m) => SVGRect -> m Float
-getHeight self = liftIO (js_getHeight (self))
+getHeight self = liftIO (js_getHeight self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGRectElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGRectElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGRectElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGRectElement.hs
@@ -4,18 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGRectElement
-       (js_getX, getX, getXUnsafe, getXUnchecked, js_getY, getY,
-        getYUnsafe, getYUnchecked, js_getWidth, getWidth, getWidthUnsafe,
-        getWidthUnchecked, js_getHeight, getHeight, getHeightUnsafe,
-        getHeightUnchecked, js_getRx, getRx, getRxUnsafe, getRxUnchecked,
-        js_getRy, getRy, getRyUnsafe, getRyUnchecked, SVGRectElement(..),
+       (js_getX, getX, js_getY, getY, js_getWidth, getWidth, js_getHeight,
+        getHeight, js_getRx, getRx, js_getRy, getRy, SVGRectElement(..),
         gTypeSVGRectElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,139 +21,50 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGRectElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.x Mozilla SVGRectElement.x documentation> 
-getX ::
-     (MonadIO m) => SVGRectElement -> m (Maybe SVGAnimatedLength)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.x Mozilla SVGRectElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) => SVGRectElement -> m SVGAnimatedLength
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGRectElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.x Mozilla SVGRectElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+getX :: (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGRectElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.y Mozilla SVGRectElement.y documentation> 
-getY ::
-     (MonadIO m) => SVGRectElement -> m (Maybe SVGAnimatedLength)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.y Mozilla SVGRectElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) => SVGRectElement -> m SVGAnimatedLength
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGRectElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.y Mozilla SVGRectElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+getY :: (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        SVGRectElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.width Mozilla SVGRectElement.width documentation> 
-getWidth ::
-         (MonadIO m) => SVGRectElement -> m (Maybe SVGAnimatedLength)
-getWidth self = liftIO (nullableToMaybe <$> (js_getWidth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.width Mozilla SVGRectElement.width documentation> 
-getWidthUnsafe ::
-               (MonadIO m, HasCallStack) => SVGRectElement -> m SVGAnimatedLength
-getWidthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWidth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGRectElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.width Mozilla SVGRectElement.width documentation> 
-getWidthUnchecked ::
-                  (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
-getWidthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getWidth (self)))
+getWidth :: (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        SVGRectElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.height Mozilla SVGRectElement.height documentation> 
-getHeight ::
-          (MonadIO m) => SVGRectElement -> m (Maybe SVGAnimatedLength)
-getHeight self = liftIO (nullableToMaybe <$> (js_getHeight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.height Mozilla SVGRectElement.height documentation> 
-getHeightUnsafe ::
-                (MonadIO m, HasCallStack) => SVGRectElement -> m SVGAnimatedLength
-getHeightUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHeight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGRectElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.height Mozilla SVGRectElement.height documentation> 
-getHeightUnchecked ::
-                   (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
-getHeightUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHeight (self)))
+getHeight :: (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
+getHeight self = liftIO (js_getHeight self)
  
 foreign import javascript unsafe "$1[\"rx\"]" js_getRx ::
-        SVGRectElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.rx Mozilla SVGRectElement.rx documentation> 
-getRx ::
-      (MonadIO m) => SVGRectElement -> m (Maybe SVGAnimatedLength)
-getRx self = liftIO (nullableToMaybe <$> (js_getRx (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.rx Mozilla SVGRectElement.rx documentation> 
-getRxUnsafe ::
-            (MonadIO m, HasCallStack) => SVGRectElement -> m SVGAnimatedLength
-getRxUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRx (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGRectElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.rx Mozilla SVGRectElement.rx documentation> 
-getRxUnchecked ::
-               (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
-getRxUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRx (self)))
+getRx :: (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
+getRx self = liftIO (js_getRx self)
  
 foreign import javascript unsafe "$1[\"ry\"]" js_getRy ::
-        SVGRectElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.ry Mozilla SVGRectElement.ry documentation> 
-getRy ::
-      (MonadIO m) => SVGRectElement -> m (Maybe SVGAnimatedLength)
-getRy self = liftIO (nullableToMaybe <$> (js_getRy (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.ry Mozilla SVGRectElement.ry documentation> 
-getRyUnsafe ::
-            (MonadIO m, HasCallStack) => SVGRectElement -> m SVGAnimatedLength
-getRyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRy (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGRectElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement.ry Mozilla SVGRectElement.ry documentation> 
-getRyUnchecked ::
-               (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
-getRyUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRy (self)))
+getRy :: (MonadIO m) => SVGRectElement -> m SVGAnimatedLength
+getRy self = liftIO (js_getRy self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGRenderingIntent.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGRenderingIntent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGRenderingIntent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGRenderingIntent.hs
@@ -15,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGSVGElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGSVGElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGSVGElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGSVGElement.hs
@@ -12,52 +12,38 @@
         animationsPaused_, js_getCurrentTime, getCurrentTime,
         getCurrentTime_, js_setCurrentTime, setCurrentTime,
         js_getIntersectionList, getIntersectionList, getIntersectionList_,
-        getIntersectionListUnsafe, getIntersectionListUnchecked,
         js_getEnclosureList, getEnclosureList, getEnclosureList_,
-        getEnclosureListUnsafe, getEnclosureListUnchecked,
         js_checkIntersection, checkIntersection, checkIntersection_,
         js_checkEnclosure, checkEnclosure, checkEnclosure_, js_deselectAll,
         deselectAll, js_createSVGNumber, createSVGNumber, createSVGNumber_,
-        createSVGNumberUnsafe, createSVGNumberUnchecked,
         js_createSVGLength, createSVGLength, createSVGLength_,
-        createSVGLengthUnsafe, createSVGLengthUnchecked, js_createSVGAngle,
-        createSVGAngle, createSVGAngle_, createSVGAngleUnsafe,
-        createSVGAngleUnchecked, js_createSVGPoint, createSVGPoint,
-        createSVGPoint_, createSVGPointUnsafe, createSVGPointUnchecked,
+        js_createSVGAngle, createSVGAngle, createSVGAngle_,
+        js_createSVGPoint, createSVGPoint, createSVGPoint_,
         js_createSVGMatrix, createSVGMatrix, createSVGMatrix_,
-        createSVGMatrixUnsafe, createSVGMatrixUnchecked, js_createSVGRect,
-        createSVGRect, createSVGRect_, createSVGRectUnsafe,
-        createSVGRectUnchecked, js_createSVGTransform, createSVGTransform,
-        createSVGTransform_, createSVGTransformUnsafe,
-        createSVGTransformUnchecked, js_createSVGTransformFromMatrix,
-        createSVGTransformFromMatrix, createSVGTransformFromMatrix_,
-        createSVGTransformFromMatrixUnsafe,
-        createSVGTransformFromMatrixUnchecked, js_getElementById,
-        getElementById, getElementById_, getElementByIdUnsafe,
-        getElementByIdUnchecked, js_getX, getX, getXUnsafe, getXUnchecked,
-        js_getY, getY, getYUnsafe, getYUnchecked, js_getWidth, getWidth,
-        getWidthUnsafe, getWidthUnchecked, js_getHeight, getHeight,
-        getHeightUnsafe, getHeightUnchecked, js_setContentScriptType,
+        js_createSVGRect, createSVGRect, createSVGRect_,
+        js_createSVGTransform, createSVGTransform, createSVGTransform_,
+        js_createSVGTransformFromMatrix, createSVGTransformFromMatrix,
+        createSVGTransformFromMatrix_, js_getElementById, getElementById,
+        getElementById_, js_getX, getX, js_getY, getY, js_getWidth,
+        getWidth, js_getHeight, getHeight, js_setContentScriptType,
         setContentScriptType, js_getContentScriptType,
         getContentScriptType, js_setContentStyleType, setContentStyleType,
         js_getContentStyleType, getContentStyleType, js_getViewport,
-        getViewport, getViewportUnsafe, getViewportUnchecked,
-        js_getPixelUnitToMillimeterX, getPixelUnitToMillimeterX,
-        js_getPixelUnitToMillimeterY, getPixelUnitToMillimeterY,
-        js_getScreenPixelToMillimeterX, getScreenPixelToMillimeterX,
-        js_getScreenPixelToMillimeterY, getScreenPixelToMillimeterY,
-        js_getUseCurrentView, getUseCurrentView, js_getCurrentView,
-        getCurrentView, getCurrentViewUnsafe, getCurrentViewUnchecked,
+        getViewport, js_getPixelUnitToMillimeterX,
+        getPixelUnitToMillimeterX, js_getPixelUnitToMillimeterY,
+        getPixelUnitToMillimeterY, js_getScreenPixelToMillimeterX,
+        getScreenPixelToMillimeterX, js_getScreenPixelToMillimeterY,
+        getScreenPixelToMillimeterY, js_getUseCurrentView,
+        getUseCurrentView, js_getCurrentView, getCurrentView,
         js_setCurrentScale, setCurrentScale, js_getCurrentScale,
         getCurrentScale, js_getCurrentTranslate, getCurrentTranslate,
-        getCurrentTranslateUnsafe, getCurrentTranslateUnchecked,
         SVGSVGElement(..), gTypeSVGSVGElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -66,59 +52,67 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"suspendRedraw\"]($2)"
-        js_suspendRedraw :: SVGSVGElement -> Word -> IO Word
+        js_suspendRedraw :: SVGSVGElement -> Optional Word -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.suspendRedraw Mozilla SVGSVGElement.suspendRedraw documentation> 
-suspendRedraw :: (MonadIO m) => SVGSVGElement -> Word -> m Word
+suspendRedraw ::
+              (MonadIO m) => SVGSVGElement -> Maybe Word -> m Word
 suspendRedraw self maxWaitMilliseconds
-  = liftIO (js_suspendRedraw (self) maxWaitMilliseconds)
+  = liftIO
+      (js_suspendRedraw self (maybeToOptional maxWaitMilliseconds))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.suspendRedraw Mozilla SVGSVGElement.suspendRedraw documentation> 
-suspendRedraw_ :: (MonadIO m) => SVGSVGElement -> Word -> m ()
+suspendRedraw_ ::
+               (MonadIO m) => SVGSVGElement -> Maybe Word -> m ()
 suspendRedraw_ self maxWaitMilliseconds
-  = liftIO (void (js_suspendRedraw (self) maxWaitMilliseconds))
+  = liftIO
+      (void
+         (js_suspendRedraw self (maybeToOptional maxWaitMilliseconds)))
  
 foreign import javascript unsafe "$1[\"unsuspendRedraw\"]($2)"
-        js_unsuspendRedraw :: SVGSVGElement -> Word -> IO ()
+        js_unsuspendRedraw :: SVGSVGElement -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.unsuspendRedraw Mozilla SVGSVGElement.unsuspendRedraw documentation> 
-unsuspendRedraw :: (MonadIO m) => SVGSVGElement -> Word -> m ()
+unsuspendRedraw ::
+                (MonadIO m) => SVGSVGElement -> Maybe Word -> m ()
 unsuspendRedraw self suspendHandleId
-  = liftIO (js_unsuspendRedraw (self) suspendHandleId)
+  = liftIO
+      (js_unsuspendRedraw self (maybeToOptional suspendHandleId))
  
 foreign import javascript unsafe "$1[\"unsuspendRedrawAll\"]()"
         js_unsuspendRedrawAll :: SVGSVGElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.unsuspendRedrawAll Mozilla SVGSVGElement.unsuspendRedrawAll documentation> 
 unsuspendRedrawAll :: (MonadIO m) => SVGSVGElement -> m ()
-unsuspendRedrawAll self = liftIO (js_unsuspendRedrawAll (self))
+unsuspendRedrawAll self = liftIO (js_unsuspendRedrawAll self)
  
 foreign import javascript unsafe "$1[\"forceRedraw\"]()"
         js_forceRedraw :: SVGSVGElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.forceRedraw Mozilla SVGSVGElement.forceRedraw documentation> 
 forceRedraw :: (MonadIO m) => SVGSVGElement -> m ()
-forceRedraw self = liftIO (js_forceRedraw (self))
+forceRedraw self = liftIO (js_forceRedraw self)
  
 foreign import javascript unsafe "$1[\"pauseAnimations\"]()"
         js_pauseAnimations :: SVGSVGElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.pauseAnimations Mozilla SVGSVGElement.pauseAnimations documentation> 
 pauseAnimations :: (MonadIO m) => SVGSVGElement -> m ()
-pauseAnimations self = liftIO (js_pauseAnimations (self))
+pauseAnimations self = liftIO (js_pauseAnimations self)
  
 foreign import javascript unsafe "$1[\"unpauseAnimations\"]()"
         js_unpauseAnimations :: SVGSVGElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.unpauseAnimations Mozilla SVGSVGElement.unpauseAnimations documentation> 
 unpauseAnimations :: (MonadIO m) => SVGSVGElement -> m ()
-unpauseAnimations self = liftIO (js_unpauseAnimations (self))
+unpauseAnimations self = liftIO (js_unpauseAnimations self)
  
 foreign import javascript unsafe
         "($1[\"animationsPaused\"]() ? 1 : 0)" js_animationsPaused ::
@@ -126,547 +120,275 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.animationsPaused Mozilla SVGSVGElement.animationsPaused documentation> 
 animationsPaused :: (MonadIO m) => SVGSVGElement -> m Bool
-animationsPaused self = liftIO (js_animationsPaused (self))
+animationsPaused self = liftIO (js_animationsPaused self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.animationsPaused Mozilla SVGSVGElement.animationsPaused documentation> 
 animationsPaused_ :: (MonadIO m) => SVGSVGElement -> m ()
-animationsPaused_ self = liftIO (void (js_animationsPaused (self)))
+animationsPaused_ self = liftIO (void (js_animationsPaused self))
  
 foreign import javascript unsafe "$1[\"getCurrentTime\"]()"
         js_getCurrentTime :: SVGSVGElement -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getCurrentTime Mozilla SVGSVGElement.getCurrentTime documentation> 
 getCurrentTime :: (MonadIO m) => SVGSVGElement -> m Float
-getCurrentTime self = liftIO (js_getCurrentTime (self))
+getCurrentTime self = liftIO (js_getCurrentTime self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getCurrentTime Mozilla SVGSVGElement.getCurrentTime documentation> 
 getCurrentTime_ :: (MonadIO m) => SVGSVGElement -> m ()
-getCurrentTime_ self = liftIO (void (js_getCurrentTime (self)))
+getCurrentTime_ self = liftIO (void (js_getCurrentTime self))
  
 foreign import javascript unsafe "$1[\"setCurrentTime\"]($2)"
-        js_setCurrentTime :: SVGSVGElement -> Float -> IO ()
+        js_setCurrentTime :: SVGSVGElement -> Optional Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.setCurrentTime Mozilla SVGSVGElement.setCurrentTime documentation> 
-setCurrentTime :: (MonadIO m) => SVGSVGElement -> Float -> m ()
+setCurrentTime ::
+               (MonadIO m) => SVGSVGElement -> Maybe Float -> m ()
 setCurrentTime self seconds
-  = liftIO (js_setCurrentTime (self) seconds)
+  = liftIO (js_setCurrentTime self (maybeToOptional seconds))
  
 foreign import javascript unsafe
         "$1[\"getIntersectionList\"]($2,\n$3)" js_getIntersectionList ::
-        SVGSVGElement ->
-          Nullable SVGRect -> Nullable SVGElement -> IO (Nullable NodeList)
+        SVGSVGElement -> SVGRect -> Optional SVGElement -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getIntersectionList Mozilla SVGSVGElement.getIntersectionList documentation> 
 getIntersectionList ::
                     (MonadIO m, IsSVGElement referenceElement) =>
-                      SVGSVGElement ->
-                        Maybe SVGRect -> Maybe referenceElement -> m (Maybe NodeList)
+                      SVGSVGElement -> SVGRect -> Maybe referenceElement -> m NodeList
 getIntersectionList self rect referenceElement
   = liftIO
-      (nullableToMaybe <$>
-         (js_getIntersectionList (self) (maybeToNullable rect)
-            (maybeToNullable (fmap toSVGElement referenceElement))))
+      (js_getIntersectionList self rect
+         (maybeToOptional (fmap toSVGElement referenceElement)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getIntersectionList Mozilla SVGSVGElement.getIntersectionList documentation> 
 getIntersectionList_ ::
                      (MonadIO m, IsSVGElement referenceElement) =>
-                       SVGSVGElement -> Maybe SVGRect -> Maybe referenceElement -> m ()
+                       SVGSVGElement -> SVGRect -> Maybe referenceElement -> m ()
 getIntersectionList_ self rect referenceElement
   = liftIO
       (void
-         (js_getIntersectionList (self) (maybeToNullable rect)
-            (maybeToNullable (fmap toSVGElement referenceElement))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getIntersectionList Mozilla SVGSVGElement.getIntersectionList documentation> 
-getIntersectionListUnsafe ::
-                          (MonadIO m, IsSVGElement referenceElement, HasCallStack) =>
-                            SVGSVGElement ->
-                              Maybe SVGRect -> Maybe referenceElement -> m NodeList
-getIntersectionListUnsafe self rect referenceElement
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getIntersectionList (self) (maybeToNullable rect)
-             (maybeToNullable (fmap toSVGElement referenceElement))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getIntersectionList Mozilla SVGSVGElement.getIntersectionList documentation> 
-getIntersectionListUnchecked ::
-                             (MonadIO m, IsSVGElement referenceElement) =>
-                               SVGSVGElement ->
-                                 Maybe SVGRect -> Maybe referenceElement -> m NodeList
-getIntersectionListUnchecked self rect referenceElement
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getIntersectionList (self) (maybeToNullable rect)
-            (maybeToNullable (fmap toSVGElement referenceElement))))
+         (js_getIntersectionList self rect
+            (maybeToOptional (fmap toSVGElement referenceElement))))
  
 foreign import javascript unsafe "$1[\"getEnclosureList\"]($2, $3)"
         js_getEnclosureList ::
-        SVGSVGElement ->
-          Nullable SVGRect -> Nullable SVGElement -> IO (Nullable NodeList)
+        SVGSVGElement -> SVGRect -> Optional SVGElement -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getEnclosureList Mozilla SVGSVGElement.getEnclosureList documentation> 
 getEnclosureList ::
                  (MonadIO m, IsSVGElement referenceElement) =>
-                   SVGSVGElement ->
-                     Maybe SVGRect -> Maybe referenceElement -> m (Maybe NodeList)
+                   SVGSVGElement -> SVGRect -> Maybe referenceElement -> m NodeList
 getEnclosureList self rect referenceElement
   = liftIO
-      (nullableToMaybe <$>
-         (js_getEnclosureList (self) (maybeToNullable rect)
-            (maybeToNullable (fmap toSVGElement referenceElement))))
+      (js_getEnclosureList self rect
+         (maybeToOptional (fmap toSVGElement referenceElement)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getEnclosureList Mozilla SVGSVGElement.getEnclosureList documentation> 
 getEnclosureList_ ::
                   (MonadIO m, IsSVGElement referenceElement) =>
-                    SVGSVGElement -> Maybe SVGRect -> Maybe referenceElement -> m ()
+                    SVGSVGElement -> SVGRect -> Maybe referenceElement -> m ()
 getEnclosureList_ self rect referenceElement
   = liftIO
       (void
-         (js_getEnclosureList (self) (maybeToNullable rect)
-            (maybeToNullable (fmap toSVGElement referenceElement))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getEnclosureList Mozilla SVGSVGElement.getEnclosureList documentation> 
-getEnclosureListUnsafe ::
-                       (MonadIO m, IsSVGElement referenceElement, HasCallStack) =>
-                         SVGSVGElement ->
-                           Maybe SVGRect -> Maybe referenceElement -> m NodeList
-getEnclosureListUnsafe self rect referenceElement
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getEnclosureList (self) (maybeToNullable rect)
-             (maybeToNullable (fmap toSVGElement referenceElement))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getEnclosureList Mozilla SVGSVGElement.getEnclosureList documentation> 
-getEnclosureListUnchecked ::
-                          (MonadIO m, IsSVGElement referenceElement) =>
-                            SVGSVGElement ->
-                              Maybe SVGRect -> Maybe referenceElement -> m NodeList
-getEnclosureListUnchecked self rect referenceElement
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getEnclosureList (self) (maybeToNullable rect)
-            (maybeToNullable (fmap toSVGElement referenceElement))))
+         (js_getEnclosureList self rect
+            (maybeToOptional (fmap toSVGElement referenceElement))))
  
 foreign import javascript unsafe
         "($1[\"checkIntersection\"]($2,\n$3) ? 1 : 0)" js_checkIntersection
-        ::
-        SVGSVGElement -> Nullable SVGElement -> Nullable SVGRect -> IO Bool
+        :: SVGSVGElement -> Optional SVGElement -> SVGRect -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.checkIntersection Mozilla SVGSVGElement.checkIntersection documentation> 
 checkIntersection ::
                   (MonadIO m, IsSVGElement element) =>
-                    SVGSVGElement -> Maybe element -> Maybe SVGRect -> m Bool
+                    SVGSVGElement -> Maybe element -> SVGRect -> m Bool
 checkIntersection self element rect
   = liftIO
-      (js_checkIntersection (self)
-         (maybeToNullable (fmap toSVGElement element))
-         (maybeToNullable rect))
+      (js_checkIntersection self
+         (maybeToOptional (fmap toSVGElement element))
+         rect)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.checkIntersection Mozilla SVGSVGElement.checkIntersection documentation> 
 checkIntersection_ ::
                    (MonadIO m, IsSVGElement element) =>
-                     SVGSVGElement -> Maybe element -> Maybe SVGRect -> m ()
+                     SVGSVGElement -> Maybe element -> SVGRect -> m ()
 checkIntersection_ self element rect
   = liftIO
       (void
-         (js_checkIntersection (self)
-            (maybeToNullable (fmap toSVGElement element))
-            (maybeToNullable rect)))
+         (js_checkIntersection self
+            (maybeToOptional (fmap toSVGElement element))
+            rect))
  
 foreign import javascript unsafe
         "($1[\"checkEnclosure\"]($2,\n$3) ? 1 : 0)" js_checkEnclosure ::
-        SVGSVGElement -> Nullable SVGElement -> Nullable SVGRect -> IO Bool
+        SVGSVGElement -> Optional SVGElement -> SVGRect -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.checkEnclosure Mozilla SVGSVGElement.checkEnclosure documentation> 
 checkEnclosure ::
                (MonadIO m, IsSVGElement element) =>
-                 SVGSVGElement -> Maybe element -> Maybe SVGRect -> m Bool
+                 SVGSVGElement -> Maybe element -> SVGRect -> m Bool
 checkEnclosure self element rect
   = liftIO
-      (js_checkEnclosure (self)
-         (maybeToNullable (fmap toSVGElement element))
-         (maybeToNullable rect))
+      (js_checkEnclosure self
+         (maybeToOptional (fmap toSVGElement element))
+         rect)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.checkEnclosure Mozilla SVGSVGElement.checkEnclosure documentation> 
 checkEnclosure_ ::
                 (MonadIO m, IsSVGElement element) =>
-                  SVGSVGElement -> Maybe element -> Maybe SVGRect -> m ()
+                  SVGSVGElement -> Maybe element -> SVGRect -> m ()
 checkEnclosure_ self element rect
   = liftIO
       (void
-         (js_checkEnclosure (self)
-            (maybeToNullable (fmap toSVGElement element))
-            (maybeToNullable rect)))
+         (js_checkEnclosure self
+            (maybeToOptional (fmap toSVGElement element))
+            rect))
  
 foreign import javascript unsafe "$1[\"deselectAll\"]()"
         js_deselectAll :: SVGSVGElement -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.deselectAll Mozilla SVGSVGElement.deselectAll documentation> 
 deselectAll :: (MonadIO m) => SVGSVGElement -> m ()
-deselectAll self = liftIO (js_deselectAll (self))
+deselectAll self = liftIO (js_deselectAll self)
  
 foreign import javascript unsafe "$1[\"createSVGNumber\"]()"
-        js_createSVGNumber :: SVGSVGElement -> IO (Nullable SVGNumber)
+        js_createSVGNumber :: SVGSVGElement -> IO SVGNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGNumber Mozilla SVGSVGElement.createSVGNumber documentation> 
-createSVGNumber ::
-                (MonadIO m) => SVGSVGElement -> m (Maybe SVGNumber)
-createSVGNumber self
-  = liftIO (nullableToMaybe <$> (js_createSVGNumber (self)))
+createSVGNumber :: (MonadIO m) => SVGSVGElement -> m SVGNumber
+createSVGNumber self = liftIO (js_createSVGNumber self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGNumber Mozilla SVGSVGElement.createSVGNumber documentation> 
 createSVGNumber_ :: (MonadIO m) => SVGSVGElement -> m ()
-createSVGNumber_ self = liftIO (void (js_createSVGNumber (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGNumber Mozilla SVGSVGElement.createSVGNumber documentation> 
-createSVGNumberUnsafe ::
-                      (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGNumber
-createSVGNumberUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGNumber (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGNumber Mozilla SVGSVGElement.createSVGNumber documentation> 
-createSVGNumberUnchecked ::
-                         (MonadIO m) => SVGSVGElement -> m SVGNumber
-createSVGNumberUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_createSVGNumber (self)))
+createSVGNumber_ self = liftIO (void (js_createSVGNumber self))
  
 foreign import javascript unsafe "$1[\"createSVGLength\"]()"
-        js_createSVGLength :: SVGSVGElement -> IO (Nullable SVGLength)
+        js_createSVGLength :: SVGSVGElement -> IO SVGLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGLength Mozilla SVGSVGElement.createSVGLength documentation> 
-createSVGLength ::
-                (MonadIO m) => SVGSVGElement -> m (Maybe SVGLength)
-createSVGLength self
-  = liftIO (nullableToMaybe <$> (js_createSVGLength (self)))
+createSVGLength :: (MonadIO m) => SVGSVGElement -> m SVGLength
+createSVGLength self = liftIO (js_createSVGLength self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGLength Mozilla SVGSVGElement.createSVGLength documentation> 
 createSVGLength_ :: (MonadIO m) => SVGSVGElement -> m ()
-createSVGLength_ self = liftIO (void (js_createSVGLength (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGLength Mozilla SVGSVGElement.createSVGLength documentation> 
-createSVGLengthUnsafe ::
-                      (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGLength
-createSVGLengthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGLength (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGLength Mozilla SVGSVGElement.createSVGLength documentation> 
-createSVGLengthUnchecked ::
-                         (MonadIO m) => SVGSVGElement -> m SVGLength
-createSVGLengthUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_createSVGLength (self)))
+createSVGLength_ self = liftIO (void (js_createSVGLength self))
  
 foreign import javascript unsafe "$1[\"createSVGAngle\"]()"
-        js_createSVGAngle :: SVGSVGElement -> IO (Nullable SVGAngle)
+        js_createSVGAngle :: SVGSVGElement -> IO SVGAngle
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGAngle Mozilla SVGSVGElement.createSVGAngle documentation> 
-createSVGAngle ::
-               (MonadIO m) => SVGSVGElement -> m (Maybe SVGAngle)
-createSVGAngle self
-  = liftIO (nullableToMaybe <$> (js_createSVGAngle (self)))
+createSVGAngle :: (MonadIO m) => SVGSVGElement -> m SVGAngle
+createSVGAngle self = liftIO (js_createSVGAngle self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGAngle Mozilla SVGSVGElement.createSVGAngle documentation> 
 createSVGAngle_ :: (MonadIO m) => SVGSVGElement -> m ()
-createSVGAngle_ self = liftIO (void (js_createSVGAngle (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGAngle Mozilla SVGSVGElement.createSVGAngle documentation> 
-createSVGAngleUnsafe ::
-                     (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGAngle
-createSVGAngleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGAngle (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGAngle Mozilla SVGSVGElement.createSVGAngle documentation> 
-createSVGAngleUnchecked ::
-                        (MonadIO m) => SVGSVGElement -> m SVGAngle
-createSVGAngleUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_createSVGAngle (self)))
+createSVGAngle_ self = liftIO (void (js_createSVGAngle self))
  
 foreign import javascript unsafe "$1[\"createSVGPoint\"]()"
-        js_createSVGPoint :: SVGSVGElement -> IO (Nullable SVGPoint)
+        js_createSVGPoint :: SVGSVGElement -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGPoint Mozilla SVGSVGElement.createSVGPoint documentation> 
-createSVGPoint ::
-               (MonadIO m) => SVGSVGElement -> m (Maybe SVGPoint)
-createSVGPoint self
-  = liftIO (nullableToMaybe <$> (js_createSVGPoint (self)))
+createSVGPoint :: (MonadIO m) => SVGSVGElement -> m SVGPoint
+createSVGPoint self = liftIO (js_createSVGPoint self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGPoint Mozilla SVGSVGElement.createSVGPoint documentation> 
 createSVGPoint_ :: (MonadIO m) => SVGSVGElement -> m ()
-createSVGPoint_ self = liftIO (void (js_createSVGPoint (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGPoint Mozilla SVGSVGElement.createSVGPoint documentation> 
-createSVGPointUnsafe ::
-                     (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGPoint
-createSVGPointUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGPoint (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGPoint Mozilla SVGSVGElement.createSVGPoint documentation> 
-createSVGPointUnchecked ::
-                        (MonadIO m) => SVGSVGElement -> m SVGPoint
-createSVGPointUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_createSVGPoint (self)))
+createSVGPoint_ self = liftIO (void (js_createSVGPoint self))
  
 foreign import javascript unsafe "$1[\"createSVGMatrix\"]()"
-        js_createSVGMatrix :: SVGSVGElement -> IO (Nullable SVGMatrix)
+        js_createSVGMatrix :: SVGSVGElement -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGMatrix Mozilla SVGSVGElement.createSVGMatrix documentation> 
-createSVGMatrix ::
-                (MonadIO m) => SVGSVGElement -> m (Maybe SVGMatrix)
-createSVGMatrix self
-  = liftIO (nullableToMaybe <$> (js_createSVGMatrix (self)))
+createSVGMatrix :: (MonadIO m) => SVGSVGElement -> m SVGMatrix
+createSVGMatrix self = liftIO (js_createSVGMatrix self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGMatrix Mozilla SVGSVGElement.createSVGMatrix documentation> 
 createSVGMatrix_ :: (MonadIO m) => SVGSVGElement -> m ()
-createSVGMatrix_ self = liftIO (void (js_createSVGMatrix (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGMatrix Mozilla SVGSVGElement.createSVGMatrix documentation> 
-createSVGMatrixUnsafe ::
-                      (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGMatrix
-createSVGMatrixUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGMatrix (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGMatrix Mozilla SVGSVGElement.createSVGMatrix documentation> 
-createSVGMatrixUnchecked ::
-                         (MonadIO m) => SVGSVGElement -> m SVGMatrix
-createSVGMatrixUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_createSVGMatrix (self)))
+createSVGMatrix_ self = liftIO (void (js_createSVGMatrix self))
  
 foreign import javascript unsafe "$1[\"createSVGRect\"]()"
-        js_createSVGRect :: SVGSVGElement -> IO (Nullable SVGRect)
+        js_createSVGRect :: SVGSVGElement -> IO SVGRect
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGRect Mozilla SVGSVGElement.createSVGRect documentation> 
-createSVGRect :: (MonadIO m) => SVGSVGElement -> m (Maybe SVGRect)
-createSVGRect self
-  = liftIO (nullableToMaybe <$> (js_createSVGRect (self)))
+createSVGRect :: (MonadIO m) => SVGSVGElement -> m SVGRect
+createSVGRect self = liftIO (js_createSVGRect self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGRect Mozilla SVGSVGElement.createSVGRect documentation> 
 createSVGRect_ :: (MonadIO m) => SVGSVGElement -> m ()
-createSVGRect_ self = liftIO (void (js_createSVGRect (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGRect Mozilla SVGSVGElement.createSVGRect documentation> 
-createSVGRectUnsafe ::
-                    (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGRect
-createSVGRectUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGRect (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGRect Mozilla SVGSVGElement.createSVGRect documentation> 
-createSVGRectUnchecked :: (MonadIO m) => SVGSVGElement -> m SVGRect
-createSVGRectUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_createSVGRect (self)))
+createSVGRect_ self = liftIO (void (js_createSVGRect self))
  
 foreign import javascript unsafe "$1[\"createSVGTransform\"]()"
-        js_createSVGTransform ::
-        SVGSVGElement -> IO (Nullable SVGTransform)
+        js_createSVGTransform :: SVGSVGElement -> IO SVGTransform
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGTransform Mozilla SVGSVGElement.createSVGTransform documentation> 
 createSVGTransform ::
-                   (MonadIO m) => SVGSVGElement -> m (Maybe SVGTransform)
-createSVGTransform self
-  = liftIO (nullableToMaybe <$> (js_createSVGTransform (self)))
+                   (MonadIO m) => SVGSVGElement -> m SVGTransform
+createSVGTransform self = liftIO (js_createSVGTransform self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGTransform Mozilla SVGSVGElement.createSVGTransform documentation> 
 createSVGTransform_ :: (MonadIO m) => SVGSVGElement -> m ()
 createSVGTransform_ self
-  = liftIO (void (js_createSVGTransform (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGTransform Mozilla SVGSVGElement.createSVGTransform documentation> 
-createSVGTransformUnsafe ::
-                         (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGTransform
-createSVGTransformUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createSVGTransform (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGTransform Mozilla SVGSVGElement.createSVGTransform documentation> 
-createSVGTransformUnchecked ::
-                            (MonadIO m) => SVGSVGElement -> m SVGTransform
-createSVGTransformUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_createSVGTransform (self)))
+  = liftIO (void (js_createSVGTransform self))
  
 foreign import javascript unsafe
         "$1[\"createSVGTransformFromMatrix\"]($2)"
         js_createSVGTransformFromMatrix ::
-        SVGSVGElement -> Nullable SVGMatrix -> IO (Nullable SVGTransform)
+        SVGSVGElement -> SVGMatrix -> IO SVGTransform
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGTransformFromMatrix Mozilla SVGSVGElement.createSVGTransformFromMatrix documentation> 
 createSVGTransformFromMatrix ::
-                             (MonadIO m) =>
-                               SVGSVGElement -> Maybe SVGMatrix -> m (Maybe SVGTransform)
+                             (MonadIO m) => SVGSVGElement -> SVGMatrix -> m SVGTransform
 createSVGTransformFromMatrix self matrix
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGTransformFromMatrix (self) (maybeToNullable matrix)))
+  = liftIO (js_createSVGTransformFromMatrix self matrix)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGTransformFromMatrix Mozilla SVGSVGElement.createSVGTransformFromMatrix documentation> 
 createSVGTransformFromMatrix_ ::
-                              (MonadIO m) => SVGSVGElement -> Maybe SVGMatrix -> m ()
+                              (MonadIO m) => SVGSVGElement -> SVGMatrix -> m ()
 createSVGTransformFromMatrix_ self matrix
-  = liftIO
-      (void
-         (js_createSVGTransformFromMatrix (self) (maybeToNullable matrix)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGTransformFromMatrix Mozilla SVGSVGElement.createSVGTransformFromMatrix documentation> 
-createSVGTransformFromMatrixUnsafe ::
-                                   (MonadIO m, HasCallStack) =>
-                                     SVGSVGElement -> Maybe SVGMatrix -> m SVGTransform
-createSVGTransformFromMatrixUnsafe self matrix
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGTransformFromMatrix (self) (maybeToNullable matrix)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.createSVGTransformFromMatrix Mozilla SVGSVGElement.createSVGTransformFromMatrix documentation> 
-createSVGTransformFromMatrixUnchecked ::
-                                      (MonadIO m) =>
-                                        SVGSVGElement -> Maybe SVGMatrix -> m SVGTransform
-createSVGTransformFromMatrixUnchecked self matrix
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGTransformFromMatrix (self) (maybeToNullable matrix)))
+  = liftIO (void (js_createSVGTransformFromMatrix self matrix))
  
 foreign import javascript unsafe "$1[\"getElementById\"]($2)"
-        js_getElementById ::
-        SVGSVGElement -> JSString -> IO (Nullable Element)
+        js_getElementById :: SVGSVGElement -> JSString -> IO Element
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getElementById Mozilla SVGSVGElement.getElementById documentation> 
 getElementById ::
                (MonadIO m, ToJSString elementId) =>
-                 SVGSVGElement -> elementId -> m (Maybe Element)
+                 SVGSVGElement -> elementId -> m Element
 getElementById self elementId
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getElementById (self) (toJSString elementId)))
+  = liftIO (js_getElementById self (toJSString elementId))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getElementById Mozilla SVGSVGElement.getElementById documentation> 
 getElementById_ ::
                 (MonadIO m, ToJSString elementId) =>
                   SVGSVGElement -> elementId -> m ()
 getElementById_ self elementId
-  = liftIO (void (js_getElementById (self) (toJSString elementId)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getElementById Mozilla SVGSVGElement.getElementById documentation> 
-getElementByIdUnsafe ::
-                     (MonadIO m, ToJSString elementId, HasCallStack) =>
-                       SVGSVGElement -> elementId -> m Element
-getElementByIdUnsafe self elementId
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getElementById (self) (toJSString elementId)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.getElementById Mozilla SVGSVGElement.getElementById documentation> 
-getElementByIdUnchecked ::
-                        (MonadIO m, ToJSString elementId) =>
-                          SVGSVGElement -> elementId -> m Element
-getElementByIdUnchecked self elementId
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getElementById (self) (toJSString elementId)))
+  = liftIO (void (js_getElementById self (toJSString elementId)))
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGSVGElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.x Mozilla SVGSVGElement.x documentation> 
-getX :: (MonadIO m) => SVGSVGElement -> m (Maybe SVGAnimatedLength)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.x Mozilla SVGSVGElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGAnimatedLength
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGSVGElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.x Mozilla SVGSVGElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m) => SVGSVGElement -> m SVGAnimatedLength
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+getX :: (MonadIO m) => SVGSVGElement -> m SVGAnimatedLength
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGSVGElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.y Mozilla SVGSVGElement.y documentation> 
-getY :: (MonadIO m) => SVGSVGElement -> m (Maybe SVGAnimatedLength)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.y Mozilla SVGSVGElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGAnimatedLength
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGSVGElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.y Mozilla SVGSVGElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m) => SVGSVGElement -> m SVGAnimatedLength
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+getY :: (MonadIO m) => SVGSVGElement -> m SVGAnimatedLength
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        SVGSVGElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.width Mozilla SVGSVGElement.width documentation> 
-getWidth ::
-         (MonadIO m) => SVGSVGElement -> m (Maybe SVGAnimatedLength)
-getWidth self = liftIO (nullableToMaybe <$> (js_getWidth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.width Mozilla SVGSVGElement.width documentation> 
-getWidthUnsafe ::
-               (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGAnimatedLength
-getWidthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWidth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGSVGElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.width Mozilla SVGSVGElement.width documentation> 
-getWidthUnchecked ::
-                  (MonadIO m) => SVGSVGElement -> m SVGAnimatedLength
-getWidthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getWidth (self)))
+getWidth :: (MonadIO m) => SVGSVGElement -> m SVGAnimatedLength
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        SVGSVGElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.height Mozilla SVGSVGElement.height documentation> 
-getHeight ::
-          (MonadIO m) => SVGSVGElement -> m (Maybe SVGAnimatedLength)
-getHeight self = liftIO (nullableToMaybe <$> (js_getHeight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.height Mozilla SVGSVGElement.height documentation> 
-getHeightUnsafe ::
-                (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGAnimatedLength
-getHeightUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHeight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGSVGElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.height Mozilla SVGSVGElement.height documentation> 
-getHeightUnchecked ::
-                   (MonadIO m) => SVGSVGElement -> m SVGAnimatedLength
-getHeightUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHeight (self)))
+getHeight :: (MonadIO m) => SVGSVGElement -> m SVGAnimatedLength
+getHeight self = liftIO (js_getHeight self)
  
 foreign import javascript unsafe "$1[\"contentScriptType\"] = $2;"
         js_setContentScriptType :: SVGSVGElement -> JSString -> IO ()
@@ -675,7 +397,7 @@
 setContentScriptType ::
                      (MonadIO m, ToJSString val) => SVGSVGElement -> val -> m ()
 setContentScriptType self val
-  = liftIO (js_setContentScriptType (self) (toJSString val))
+  = liftIO (js_setContentScriptType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"contentScriptType\"]"
         js_getContentScriptType :: SVGSVGElement -> IO JSString
@@ -684,7 +406,7 @@
 getContentScriptType ::
                      (MonadIO m, FromJSString result) => SVGSVGElement -> m result
 getContentScriptType self
-  = liftIO (fromJSString <$> (js_getContentScriptType (self)))
+  = liftIO (fromJSString <$> (js_getContentScriptType self))
  
 foreign import javascript unsafe "$1[\"contentStyleType\"] = $2;"
         js_setContentStyleType :: SVGSVGElement -> JSString -> IO ()
@@ -693,7 +415,7 @@
 setContentStyleType ::
                     (MonadIO m, ToJSString val) => SVGSVGElement -> val -> m ()
 setContentStyleType self val
-  = liftIO (js_setContentStyleType (self) (toJSString val))
+  = liftIO (js_setContentStyleType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"contentStyleType\"]"
         js_getContentStyleType :: SVGSVGElement -> IO JSString
@@ -702,28 +424,14 @@
 getContentStyleType ::
                     (MonadIO m, FromJSString result) => SVGSVGElement -> m result
 getContentStyleType self
-  = liftIO (fromJSString <$> (js_getContentStyleType (self)))
+  = liftIO (fromJSString <$> (js_getContentStyleType self))
  
 foreign import javascript unsafe "$1[\"viewport\"]" js_getViewport
-        :: SVGSVGElement -> IO (Nullable SVGRect)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.viewport Mozilla SVGSVGElement.viewport documentation> 
-getViewport :: (MonadIO m) => SVGSVGElement -> m (Maybe SVGRect)
-getViewport self
-  = liftIO (nullableToMaybe <$> (js_getViewport (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.viewport Mozilla SVGSVGElement.viewport documentation> 
-getViewportUnsafe ::
-                  (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGRect
-getViewportUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getViewport (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: SVGSVGElement -> IO SVGRect
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.viewport Mozilla SVGSVGElement.viewport documentation> 
-getViewportUnchecked :: (MonadIO m) => SVGSVGElement -> m SVGRect
-getViewportUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getViewport (self)))
+getViewport :: (MonadIO m) => SVGSVGElement -> m SVGRect
+getViewport self = liftIO (js_getViewport self)
  
 foreign import javascript unsafe "$1[\"pixelUnitToMillimeterX\"]"
         js_getPixelUnitToMillimeterX :: SVGSVGElement -> IO Float
@@ -732,7 +440,7 @@
 getPixelUnitToMillimeterX ::
                           (MonadIO m) => SVGSVGElement -> m Float
 getPixelUnitToMillimeterX self
-  = liftIO (js_getPixelUnitToMillimeterX (self))
+  = liftIO (js_getPixelUnitToMillimeterX self)
  
 foreign import javascript unsafe "$1[\"pixelUnitToMillimeterY\"]"
         js_getPixelUnitToMillimeterY :: SVGSVGElement -> IO Float
@@ -741,7 +449,7 @@
 getPixelUnitToMillimeterY ::
                           (MonadIO m) => SVGSVGElement -> m Float
 getPixelUnitToMillimeterY self
-  = liftIO (js_getPixelUnitToMillimeterY (self))
+  = liftIO (js_getPixelUnitToMillimeterY self)
  
 foreign import javascript unsafe "$1[\"screenPixelToMillimeterX\"]"
         js_getScreenPixelToMillimeterX :: SVGSVGElement -> IO Float
@@ -750,7 +458,7 @@
 getScreenPixelToMillimeterX ::
                             (MonadIO m) => SVGSVGElement -> m Float
 getScreenPixelToMillimeterX self
-  = liftIO (js_getScreenPixelToMillimeterX (self))
+  = liftIO (js_getScreenPixelToMillimeterX self)
  
 foreign import javascript unsafe "$1[\"screenPixelToMillimeterY\"]"
         js_getScreenPixelToMillimeterY :: SVGSVGElement -> IO Float
@@ -759,73 +467,39 @@
 getScreenPixelToMillimeterY ::
                             (MonadIO m) => SVGSVGElement -> m Float
 getScreenPixelToMillimeterY self
-  = liftIO (js_getScreenPixelToMillimeterY (self))
+  = liftIO (js_getScreenPixelToMillimeterY self)
  
 foreign import javascript unsafe "($1[\"useCurrentView\"] ? 1 : 0)"
         js_getUseCurrentView :: SVGSVGElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.useCurrentView Mozilla SVGSVGElement.useCurrentView documentation> 
 getUseCurrentView :: (MonadIO m) => SVGSVGElement -> m Bool
-getUseCurrentView self = liftIO (js_getUseCurrentView (self))
+getUseCurrentView self = liftIO (js_getUseCurrentView self)
  
 foreign import javascript unsafe "$1[\"currentView\"]"
-        js_getCurrentView :: SVGSVGElement -> IO (Nullable SVGViewSpec)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.currentView Mozilla SVGSVGElement.currentView documentation> 
-getCurrentView ::
-               (MonadIO m) => SVGSVGElement -> m (Maybe SVGViewSpec)
-getCurrentView self
-  = liftIO (nullableToMaybe <$> (js_getCurrentView (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.currentView Mozilla SVGSVGElement.currentView documentation> 
-getCurrentViewUnsafe ::
-                     (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGViewSpec
-getCurrentViewUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCurrentView (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getCurrentView :: SVGSVGElement -> IO SVGViewSpec
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.currentView Mozilla SVGSVGElement.currentView documentation> 
-getCurrentViewUnchecked ::
-                        (MonadIO m) => SVGSVGElement -> m SVGViewSpec
-getCurrentViewUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getCurrentView (self)))
+getCurrentView :: (MonadIO m) => SVGSVGElement -> m SVGViewSpec
+getCurrentView self = liftIO (js_getCurrentView self)
  
 foreign import javascript unsafe "$1[\"currentScale\"] = $2;"
         js_setCurrentScale :: SVGSVGElement -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.currentScale Mozilla SVGSVGElement.currentScale documentation> 
 setCurrentScale :: (MonadIO m) => SVGSVGElement -> Float -> m ()
-setCurrentScale self val = liftIO (js_setCurrentScale (self) val)
+setCurrentScale self val = liftIO (js_setCurrentScale self val)
  
 foreign import javascript unsafe "$1[\"currentScale\"]"
         js_getCurrentScale :: SVGSVGElement -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.currentScale Mozilla SVGSVGElement.currentScale documentation> 
 getCurrentScale :: (MonadIO m) => SVGSVGElement -> m Float
-getCurrentScale self = liftIO (js_getCurrentScale (self))
+getCurrentScale self = liftIO (js_getCurrentScale self)
  
 foreign import javascript unsafe "$1[\"currentTranslate\"]"
-        js_getCurrentTranslate :: SVGSVGElement -> IO (Nullable SVGPoint)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.currentTranslate Mozilla SVGSVGElement.currentTranslate documentation> 
-getCurrentTranslate ::
-                    (MonadIO m) => SVGSVGElement -> m (Maybe SVGPoint)
-getCurrentTranslate self
-  = liftIO (nullableToMaybe <$> (js_getCurrentTranslate (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.currentTranslate Mozilla SVGSVGElement.currentTranslate documentation> 
-getCurrentTranslateUnsafe ::
-                          (MonadIO m, HasCallStack) => SVGSVGElement -> m SVGPoint
-getCurrentTranslateUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCurrentTranslate (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getCurrentTranslate :: SVGSVGElement -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement.currentTranslate Mozilla SVGSVGElement.currentTranslate documentation> 
-getCurrentTranslateUnchecked ::
-                             (MonadIO m) => SVGSVGElement -> m SVGPoint
-getCurrentTranslateUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getCurrentTranslate (self)))
+getCurrentTranslate :: (MonadIO m) => SVGSVGElement -> m SVGPoint
+getCurrentTranslate self = liftIO (js_getCurrentTranslate self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGScriptElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGScriptElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGScriptElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGScriptElement.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGScriptElement
-       (js_setType, setType, js_getType, getType, getTypeUnsafe,
-        getTypeUnchecked, SVGScriptElement(..), gTypeSVGScriptElement)
+       (js_setType, setType, js_getType, getType, SVGScriptElement(..),
+        gTypeSVGScriptElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,40 +20,24 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
-        SVGScriptElement -> Nullable JSString -> IO ()
+        SVGScriptElement -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGScriptElement.type Mozilla SVGScriptElement.type documentation> 
 setType ::
-        (MonadIO m, ToJSString val) =>
-          SVGScriptElement -> Maybe val -> m ()
-setType self val = liftIO (js_setType (self) (toMaybeJSString val))
+        (MonadIO m, ToJSString val) => SVGScriptElement -> val -> m ()
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
-        SVGScriptElement -> IO (Nullable JSString)
+        SVGScriptElement -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGScriptElement.type Mozilla SVGScriptElement.type documentation> 
 getType ::
-        (MonadIO m, FromJSString result) =>
-          SVGScriptElement -> m (Maybe result)
-getType self = liftIO (fromMaybeJSString <$> (js_getType (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGScriptElement.type Mozilla SVGScriptElement.type documentation> 
-getTypeUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                SVGScriptElement -> m result
-getTypeUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getType (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGScriptElement.type Mozilla SVGScriptElement.type documentation> 
-getTypeUnchecked ::
-                 (MonadIO m, FromJSString result) => SVGScriptElement -> m result
-getTypeUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getType (self)))
+        (MonadIO m, FromJSString result) => SVGScriptElement -> m result
+getType self = liftIO (fromJSString <$> (js_getType self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGStopElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGStopElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGStopElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGStopElement.hs
@@ -4,14 +4,13 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGStopElement
-       (js_getOffset, getOffset, getOffsetUnsafe, getOffsetUnchecked,
-        SVGStopElement(..), gTypeSVGStopElement)
+       (js_getOffset, getOffset, SVGStopElement(..), gTypeSVGStopElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,29 +19,15 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"offset\"]" js_getOffset ::
-        SVGStopElement -> IO (Nullable SVGAnimatedNumber)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStopElement.offset Mozilla SVGStopElement.offset documentation> 
-getOffset ::
-          (MonadIO m) => SVGStopElement -> m (Maybe SVGAnimatedNumber)
-getOffset self = liftIO (nullableToMaybe <$> (js_getOffset (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStopElement.offset Mozilla SVGStopElement.offset documentation> 
-getOffsetUnsafe ::
-                (MonadIO m, HasCallStack) => SVGStopElement -> m SVGAnimatedNumber
-getOffsetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOffset (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGStopElement -> IO SVGAnimatedNumber
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStopElement.offset Mozilla SVGStopElement.offset documentation> 
-getOffsetUnchecked ::
-                   (MonadIO m) => SVGStopElement -> m SVGAnimatedNumber
-getOffsetUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getOffset (self)))
+getOffset :: (MonadIO m) => SVGStopElement -> m SVGAnimatedNumber
+getOffset self = liftIO (js_getOffset self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGStringList.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGStringList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGStringList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGStringList.hs
@@ -15,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,6 +24,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,7 +35,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList.clear Mozilla SVGStringList.clear documentation> 
 clear :: (MonadIO m) => SVGStringList -> m ()
-clear self = liftIO (js_clear (self))
+clear self = liftIO (js_clear self)
  
 foreign import javascript unsafe "$1[\"initialize\"]($2)"
         js_initialize :: SVGStringList -> JSString -> IO JSString
@@ -44,14 +45,13 @@
            (MonadIO m, ToJSString item, FromJSString result) =>
              SVGStringList -> item -> m result
 initialize self item
-  = liftIO
-      (fromJSString <$> (js_initialize (self) (toJSString item)))
+  = liftIO (fromJSString <$> (js_initialize self (toJSString item)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList.initialize Mozilla SVGStringList.initialize documentation> 
 initialize_ ::
             (MonadIO m, ToJSString item) => SVGStringList -> item -> m ()
 initialize_ self item
-  = liftIO (void (js_initialize (self) (toJSString item)))
+  = liftIO (void (js_initialize self (toJSString item)))
  
 foreign import javascript unsafe "$1[\"getItem\"]($2)" js_getItem
         :: SVGStringList -> Word -> IO JSString
@@ -61,11 +61,11 @@
         (MonadIO m, FromJSString result) =>
           SVGStringList -> Word -> m result
 getItem self index
-  = liftIO (fromJSString <$> (js_getItem (self) index))
+  = liftIO (fromJSString <$> (js_getItem self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList.getItem Mozilla SVGStringList.getItem documentation> 
 getItem_ :: (MonadIO m) => SVGStringList -> Word -> m ()
-getItem_ self index = liftIO (void (js_getItem (self) index))
+getItem_ self index = liftIO (void (js_getItem self index))
  
 foreign import javascript unsafe "$1[\"insertItemBefore\"]($2, $3)"
         js_insertItemBefore ::
@@ -78,15 +78,14 @@
 insertItemBefore self item index
   = liftIO
       (fromJSString <$>
-         (js_insertItemBefore (self) (toJSString item) index))
+         (js_insertItemBefore self (toJSString item) index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList.insertItemBefore Mozilla SVGStringList.insertItemBefore documentation> 
 insertItemBefore_ ::
                   (MonadIO m, ToJSString item) =>
                     SVGStringList -> item -> Word -> m ()
 insertItemBefore_ self item index
-  = liftIO
-      (void (js_insertItemBefore (self) (toJSString item) index))
+  = liftIO (void (js_insertItemBefore self (toJSString item) index))
  
 foreign import javascript unsafe "$1[\"replaceItem\"]($2, $3)"
         js_replaceItem :: SVGStringList -> JSString -> Word -> IO JSString
@@ -97,14 +96,14 @@
               SVGStringList -> item -> Word -> m result
 replaceItem self item index
   = liftIO
-      (fromJSString <$> (js_replaceItem (self) (toJSString item) index))
+      (fromJSString <$> (js_replaceItem self (toJSString item) index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList.replaceItem Mozilla SVGStringList.replaceItem documentation> 
 replaceItem_ ::
              (MonadIO m, ToJSString item) =>
                SVGStringList -> item -> Word -> m ()
 replaceItem_ self item index
-  = liftIO (void (js_replaceItem (self) (toJSString item) index))
+  = liftIO (void (js_replaceItem self (toJSString item) index))
  
 foreign import javascript unsafe "$1[\"removeItem\"]($2)"
         js_removeItem :: SVGStringList -> Word -> IO JSString
@@ -114,11 +113,11 @@
            (MonadIO m, FromJSString result) =>
              SVGStringList -> Word -> m result
 removeItem self index
-  = liftIO (fromJSString <$> (js_removeItem (self) index))
+  = liftIO (fromJSString <$> (js_removeItem self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList.removeItem Mozilla SVGStringList.removeItem documentation> 
 removeItem_ :: (MonadIO m) => SVGStringList -> Word -> m ()
-removeItem_ self index = liftIO (void (js_removeItem (self) index))
+removeItem_ self index = liftIO (void (js_removeItem self index))
  
 foreign import javascript unsafe "$1[\"appendItem\"]($2)"
         js_appendItem :: SVGStringList -> JSString -> IO JSString
@@ -128,18 +127,17 @@
            (MonadIO m, ToJSString item, FromJSString result) =>
              SVGStringList -> item -> m result
 appendItem self item
-  = liftIO
-      (fromJSString <$> (js_appendItem (self) (toJSString item)))
+  = liftIO (fromJSString <$> (js_appendItem self (toJSString item)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList.appendItem Mozilla SVGStringList.appendItem documentation> 
 appendItem_ ::
             (MonadIO m, ToJSString item) => SVGStringList -> item -> m ()
 appendItem_ self item
-  = liftIO (void (js_appendItem (self) (toJSString item)))
+  = liftIO (void (js_appendItem self (toJSString item)))
  
 foreign import javascript unsafe "$1[\"numberOfItems\"]"
         js_getNumberOfItems :: SVGStringList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList.numberOfItems Mozilla SVGStringList.numberOfItems documentation> 
 getNumberOfItems :: (MonadIO m) => SVGStringList -> m Word
-getNumberOfItems self = liftIO (js_getNumberOfItems (self))
+getNumberOfItems self = liftIO (js_getNumberOfItems self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGStyleElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGStyleElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGStyleElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGStyleElement.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,14 +33,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement.disabled Mozilla SVGStyleElement.disabled documentation> 
 setDisabled :: (MonadIO m) => SVGStyleElement -> Bool -> m ()
-setDisabled self val = liftIO (js_setDisabled (self) val)
+setDisabled self val = liftIO (js_setDisabled self val)
  
 foreign import javascript unsafe "($1[\"disabled\"] ? 1 : 0)"
         js_getDisabled :: SVGStyleElement -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement.disabled Mozilla SVGStyleElement.disabled documentation> 
 getDisabled :: (MonadIO m) => SVGStyleElement -> m Bool
-getDisabled self = liftIO (js_getDisabled (self))
+getDisabled self = liftIO (js_getDisabled self)
  
 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType ::
         SVGStyleElement -> JSString -> IO ()
@@ -47,7 +48,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement.type Mozilla SVGStyleElement.type documentation> 
 setType ::
         (MonadIO m, ToJSString val) => SVGStyleElement -> val -> m ()
-setType self val = liftIO (js_setType (self) (toJSString val))
+setType self val = liftIO (js_setType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         SVGStyleElement -> IO JSString
@@ -55,7 +56,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement.type Mozilla SVGStyleElement.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => SVGStyleElement -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
  
 foreign import javascript unsafe "$1[\"media\"] = $2;" js_setMedia
         :: SVGStyleElement -> JSString -> IO ()
@@ -63,7 +64,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement.media Mozilla SVGStyleElement.media documentation> 
 setMedia ::
          (MonadIO m, ToJSString val) => SVGStyleElement -> val -> m ()
-setMedia self val = liftIO (js_setMedia (self) (toJSString val))
+setMedia self val = liftIO (js_setMedia self (toJSString val))
  
 foreign import javascript unsafe "$1[\"media\"]" js_getMedia ::
         SVGStyleElement -> IO JSString
@@ -71,7 +72,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement.media Mozilla SVGStyleElement.media documentation> 
 getMedia ::
          (MonadIO m, FromJSString result) => SVGStyleElement -> m result
-getMedia self = liftIO (fromJSString <$> (js_getMedia (self)))
+getMedia self = liftIO (fromJSString <$> (js_getMedia self))
  
 foreign import javascript unsafe "$1[\"title\"] = $2;" js_setTitle
         :: SVGStyleElement -> JSString -> IO ()
@@ -79,7 +80,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement.title Mozilla SVGStyleElement.title documentation> 
 setTitle ::
          (MonadIO m, ToJSString val) => SVGStyleElement -> val -> m ()
-setTitle self val = liftIO (js_setTitle (self) (toJSString val))
+setTitle self val = liftIO (js_setTitle self (toJSString val))
  
 foreign import javascript unsafe "$1[\"title\"]" js_getTitle ::
         SVGStyleElement -> IO JSString
@@ -87,4 +88,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement.title Mozilla SVGStyleElement.title documentation> 
 getTitle ::
          (MonadIO m, FromJSString result) => SVGStyleElement -> m result
-getTitle self = liftIO (fromJSString <$> (js_getTitle (self)))
+getTitle self = liftIO (fromJSString <$> (js_getTitle self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGTests.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGTests.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGTests.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGTests.hs
@@ -6,17 +6,15 @@
 module GHCJS.DOM.JSFFI.Generated.SVGTests
        (js_hasExtension, hasExtension, hasExtension_,
         js_getRequiredFeatures, getRequiredFeatures,
-        getRequiredFeaturesUnsafe, getRequiredFeaturesUnchecked,
         js_getRequiredExtensions, getRequiredExtensions,
-        getRequiredExtensionsUnsafe, getRequiredExtensionsUnchecked,
-        js_getSystemLanguage, getSystemLanguage, getSystemLanguageUnsafe,
-        getSystemLanguageUnchecked, SVGTests(..), gTypeSVGTests)
+        js_getSystemLanguage, getSystemLanguage, SVGTests(..),
+        gTypeSVGTests, IsSVGTests, toSVGTests)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -32,89 +31,48 @@
  
 foreign import javascript unsafe
         "($1[\"hasExtension\"]($2) ? 1 : 0)" js_hasExtension ::
-        SVGTests -> JSString -> IO Bool
+        SVGTests -> Optional JSString -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests.hasExtension Mozilla SVGTests.hasExtension documentation> 
 hasExtension ::
-             (MonadIO m, ToJSString extension) =>
-               SVGTests -> extension -> m Bool
+             (MonadIO m, IsSVGTests self, ToJSString extension) =>
+               self -> Maybe extension -> m Bool
 hasExtension self extension
-  = liftIO (js_hasExtension (self) (toJSString extension))
+  = liftIO
+      (js_hasExtension (toSVGTests self) (toOptionalJSString extension))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests.hasExtension Mozilla SVGTests.hasExtension documentation> 
 hasExtension_ ::
-              (MonadIO m, ToJSString extension) => SVGTests -> extension -> m ()
+              (MonadIO m, IsSVGTests self, ToJSString extension) =>
+                self -> Maybe extension -> m ()
 hasExtension_ self extension
-  = liftIO (void (js_hasExtension (self) (toJSString extension)))
+  = liftIO
+      (void
+         (js_hasExtension (toSVGTests self) (toOptionalJSString extension)))
  
 foreign import javascript unsafe "$1[\"requiredFeatures\"]"
-        js_getRequiredFeatures :: SVGTests -> IO (Nullable SVGStringList)
+        js_getRequiredFeatures :: SVGTests -> IO SVGStringList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests.requiredFeatures Mozilla SVGTests.requiredFeatures documentation> 
 getRequiredFeatures ::
-                    (MonadIO m) => SVGTests -> m (Maybe SVGStringList)
+                    (MonadIO m, IsSVGTests self) => self -> m SVGStringList
 getRequiredFeatures self
-  = liftIO (nullableToMaybe <$> (js_getRequiredFeatures (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests.requiredFeatures Mozilla SVGTests.requiredFeatures documentation> 
-getRequiredFeaturesUnsafe ::
-                          (MonadIO m, HasCallStack) => SVGTests -> m SVGStringList
-getRequiredFeaturesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRequiredFeatures (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests.requiredFeatures Mozilla SVGTests.requiredFeatures documentation> 
-getRequiredFeaturesUnchecked ::
-                             (MonadIO m) => SVGTests -> m SVGStringList
-getRequiredFeaturesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRequiredFeatures (self)))
+  = liftIO (js_getRequiredFeatures (toSVGTests self))
  
 foreign import javascript unsafe "$1[\"requiredExtensions\"]"
-        js_getRequiredExtensions :: SVGTests -> IO (Nullable SVGStringList)
+        js_getRequiredExtensions :: SVGTests -> IO SVGStringList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests.requiredExtensions Mozilla SVGTests.requiredExtensions documentation> 
 getRequiredExtensions ::
-                      (MonadIO m) => SVGTests -> m (Maybe SVGStringList)
+                      (MonadIO m, IsSVGTests self) => self -> m SVGStringList
 getRequiredExtensions self
-  = liftIO (nullableToMaybe <$> (js_getRequiredExtensions (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests.requiredExtensions Mozilla SVGTests.requiredExtensions documentation> 
-getRequiredExtensionsUnsafe ::
-                            (MonadIO m, HasCallStack) => SVGTests -> m SVGStringList
-getRequiredExtensionsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRequiredExtensions (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests.requiredExtensions Mozilla SVGTests.requiredExtensions documentation> 
-getRequiredExtensionsUnchecked ::
-                               (MonadIO m) => SVGTests -> m SVGStringList
-getRequiredExtensionsUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRequiredExtensions (self)))
+  = liftIO (js_getRequiredExtensions (toSVGTests self))
  
 foreign import javascript unsafe "$1[\"systemLanguage\"]"
-        js_getSystemLanguage :: SVGTests -> IO (Nullable SVGStringList)
+        js_getSystemLanguage :: SVGTests -> IO SVGStringList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests.systemLanguage Mozilla SVGTests.systemLanguage documentation> 
 getSystemLanguage ::
-                  (MonadIO m) => SVGTests -> m (Maybe SVGStringList)
+                  (MonadIO m, IsSVGTests self) => self -> m SVGStringList
 getSystemLanguage self
-  = liftIO (nullableToMaybe <$> (js_getSystemLanguage (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests.systemLanguage Mozilla SVGTests.systemLanguage documentation> 
-getSystemLanguageUnsafe ::
-                        (MonadIO m, HasCallStack) => SVGTests -> m SVGStringList
-getSystemLanguageUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSystemLanguage (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests.systemLanguage Mozilla SVGTests.systemLanguage documentation> 
-getSystemLanguageUnchecked ::
-                           (MonadIO m) => SVGTests -> m SVGStringList
-getSystemLanguageUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSystemLanguage (self)))
+  = liftIO (js_getSystemLanguage (toSVGTests self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGTextContentElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGTextContentElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGTextContentElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGTextContentElement.hs
@@ -9,27 +9,22 @@
         getComputedTextLength_, js_getSubStringLength, getSubStringLength,
         getSubStringLength_, js_getStartPositionOfChar,
         getStartPositionOfChar, getStartPositionOfChar_,
-        getStartPositionOfCharUnsafe, getStartPositionOfCharUnchecked,
         js_getEndPositionOfChar, getEndPositionOfChar,
-        getEndPositionOfChar_, getEndPositionOfCharUnsafe,
-        getEndPositionOfCharUnchecked, js_getExtentOfChar, getExtentOfChar,
-        getExtentOfChar_, getExtentOfCharUnsafe, getExtentOfCharUnchecked,
-        js_getRotationOfChar, getRotationOfChar, getRotationOfChar_,
-        js_getCharNumAtPosition, getCharNumAtPosition,
+        getEndPositionOfChar_, js_getExtentOfChar, getExtentOfChar,
+        getExtentOfChar_, js_getRotationOfChar, getRotationOfChar,
+        getRotationOfChar_, js_getCharNumAtPosition, getCharNumAtPosition,
         getCharNumAtPosition_, js_selectSubString, selectSubString,
         pattern LENGTHADJUST_UNKNOWN, pattern LENGTHADJUST_SPACING,
         pattern LENGTHADJUST_SPACINGANDGLYPHS, js_getTextLength,
-        getTextLength, getTextLengthUnsafe, getTextLengthUnchecked,
-        js_getLengthAdjust, getLengthAdjust, getLengthAdjustUnsafe,
-        getLengthAdjustUnchecked, SVGTextContentElement(..),
-        gTypeSVGTextContentElement, IsSVGTextContentElement,
-        toSVGTextContentElement)
+        getTextLength, js_getLengthAdjust, getLengthAdjust,
+        SVGTextContentElement(..), gTypeSVGTextContentElement,
+        IsSVGTextContentElement, toSVGTextContentElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -38,6 +33,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -77,262 +73,176 @@
  
 foreign import javascript unsafe
         "$1[\"getSubStringLength\"]($2, $3)" js_getSubStringLength ::
-        SVGTextContentElement -> Word -> Word -> IO Float
+        SVGTextContentElement -> Optional Word -> Optional Word -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getSubStringLength Mozilla SVGTextContentElement.getSubStringLength documentation> 
 getSubStringLength ::
                    (MonadIO m, IsSVGTextContentElement self) =>
-                     self -> Word -> Word -> m Float
+                     self -> Maybe Word -> Maybe Word -> m Float
 getSubStringLength self offset length
   = liftIO
-      (js_getSubStringLength (toSVGTextContentElement self) offset
-         length)
+      (js_getSubStringLength (toSVGTextContentElement self)
+         (maybeToOptional offset)
+         (maybeToOptional length))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getSubStringLength Mozilla SVGTextContentElement.getSubStringLength documentation> 
 getSubStringLength_ ::
                     (MonadIO m, IsSVGTextContentElement self) =>
-                      self -> Word -> Word -> m ()
+                      self -> Maybe Word -> Maybe Word -> m ()
 getSubStringLength_ self offset length
   = liftIO
       (void
-         (js_getSubStringLength (toSVGTextContentElement self) offset
-            length))
+         (js_getSubStringLength (toSVGTextContentElement self)
+            (maybeToOptional offset)
+            (maybeToOptional length)))
  
 foreign import javascript unsafe
         "$1[\"getStartPositionOfChar\"]($2)" js_getStartPositionOfChar ::
-        SVGTextContentElement -> Word -> IO (Nullable SVGPoint)
+        SVGTextContentElement -> Optional Word -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getStartPositionOfChar Mozilla SVGTextContentElement.getStartPositionOfChar documentation> 
 getStartPositionOfChar ::
                        (MonadIO m, IsSVGTextContentElement self) =>
-                         self -> Word -> m (Maybe SVGPoint)
+                         self -> Maybe Word -> m SVGPoint
 getStartPositionOfChar self offset
   = liftIO
-      (nullableToMaybe <$>
-         (js_getStartPositionOfChar (toSVGTextContentElement self) offset))
+      (js_getStartPositionOfChar (toSVGTextContentElement self)
+         (maybeToOptional offset))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getStartPositionOfChar Mozilla SVGTextContentElement.getStartPositionOfChar documentation> 
 getStartPositionOfChar_ ::
-                        (MonadIO m, IsSVGTextContentElement self) => self -> Word -> m ()
+                        (MonadIO m, IsSVGTextContentElement self) =>
+                          self -> Maybe Word -> m ()
 getStartPositionOfChar_ self offset
   = liftIO
       (void
-         (js_getStartPositionOfChar (toSVGTextContentElement self) offset))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getStartPositionOfChar Mozilla SVGTextContentElement.getStartPositionOfChar documentation> 
-getStartPositionOfCharUnsafe ::
-                             (MonadIO m, IsSVGTextContentElement self, HasCallStack) =>
-                               self -> Word -> m SVGPoint
-getStartPositionOfCharUnsafe self offset
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getStartPositionOfChar (toSVGTextContentElement self) offset))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getStartPositionOfChar Mozilla SVGTextContentElement.getStartPositionOfChar documentation> 
-getStartPositionOfCharUnchecked ::
-                                (MonadIO m, IsSVGTextContentElement self) =>
-                                  self -> Word -> m SVGPoint
-getStartPositionOfCharUnchecked self offset
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getStartPositionOfChar (toSVGTextContentElement self) offset))
+         (js_getStartPositionOfChar (toSVGTextContentElement self)
+            (maybeToOptional offset)))
  
 foreign import javascript unsafe "$1[\"getEndPositionOfChar\"]($2)"
         js_getEndPositionOfChar ::
-        SVGTextContentElement -> Word -> IO (Nullable SVGPoint)
+        SVGTextContentElement -> Optional Word -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getEndPositionOfChar Mozilla SVGTextContentElement.getEndPositionOfChar documentation> 
 getEndPositionOfChar ::
                      (MonadIO m, IsSVGTextContentElement self) =>
-                       self -> Word -> m (Maybe SVGPoint)
+                       self -> Maybe Word -> m SVGPoint
 getEndPositionOfChar self offset
   = liftIO
-      (nullableToMaybe <$>
-         (js_getEndPositionOfChar (toSVGTextContentElement self) offset))
+      (js_getEndPositionOfChar (toSVGTextContentElement self)
+         (maybeToOptional offset))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getEndPositionOfChar Mozilla SVGTextContentElement.getEndPositionOfChar documentation> 
 getEndPositionOfChar_ ::
-                      (MonadIO m, IsSVGTextContentElement self) => self -> Word -> m ()
+                      (MonadIO m, IsSVGTextContentElement self) =>
+                        self -> Maybe Word -> m ()
 getEndPositionOfChar_ self offset
   = liftIO
       (void
-         (js_getEndPositionOfChar (toSVGTextContentElement self) offset))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getEndPositionOfChar Mozilla SVGTextContentElement.getEndPositionOfChar documentation> 
-getEndPositionOfCharUnsafe ::
-                           (MonadIO m, IsSVGTextContentElement self, HasCallStack) =>
-                             self -> Word -> m SVGPoint
-getEndPositionOfCharUnsafe self offset
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getEndPositionOfChar (toSVGTextContentElement self) offset))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getEndPositionOfChar Mozilla SVGTextContentElement.getEndPositionOfChar documentation> 
-getEndPositionOfCharUnchecked ::
-                              (MonadIO m, IsSVGTextContentElement self) =>
-                                self -> Word -> m SVGPoint
-getEndPositionOfCharUnchecked self offset
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getEndPositionOfChar (toSVGTextContentElement self) offset))
+         (js_getEndPositionOfChar (toSVGTextContentElement self)
+            (maybeToOptional offset)))
  
 foreign import javascript unsafe "$1[\"getExtentOfChar\"]($2)"
         js_getExtentOfChar ::
-        SVGTextContentElement -> Word -> IO (Nullable SVGRect)
+        SVGTextContentElement -> Optional Word -> IO SVGRect
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getExtentOfChar Mozilla SVGTextContentElement.getExtentOfChar documentation> 
 getExtentOfChar ::
                 (MonadIO m, IsSVGTextContentElement self) =>
-                  self -> Word -> m (Maybe SVGRect)
+                  self -> Maybe Word -> m SVGRect
 getExtentOfChar self offset
   = liftIO
-      (nullableToMaybe <$>
-         (js_getExtentOfChar (toSVGTextContentElement self) offset))
+      (js_getExtentOfChar (toSVGTextContentElement self)
+         (maybeToOptional offset))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getExtentOfChar Mozilla SVGTextContentElement.getExtentOfChar documentation> 
 getExtentOfChar_ ::
-                 (MonadIO m, IsSVGTextContentElement self) => self -> Word -> m ()
+                 (MonadIO m, IsSVGTextContentElement self) =>
+                   self -> Maybe Word -> m ()
 getExtentOfChar_ self offset
   = liftIO
-      (void (js_getExtentOfChar (toSVGTextContentElement self) offset))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getExtentOfChar Mozilla SVGTextContentElement.getExtentOfChar documentation> 
-getExtentOfCharUnsafe ::
-                      (MonadIO m, IsSVGTextContentElement self, HasCallStack) =>
-                        self -> Word -> m SVGRect
-getExtentOfCharUnsafe self offset
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getExtentOfChar (toSVGTextContentElement self) offset))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getExtentOfChar Mozilla SVGTextContentElement.getExtentOfChar documentation> 
-getExtentOfCharUnchecked ::
-                         (MonadIO m, IsSVGTextContentElement self) =>
-                           self -> Word -> m SVGRect
-getExtentOfCharUnchecked self offset
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getExtentOfChar (toSVGTextContentElement self) offset))
+      (void
+         (js_getExtentOfChar (toSVGTextContentElement self)
+            (maybeToOptional offset)))
  
 foreign import javascript unsafe "$1[\"getRotationOfChar\"]($2)"
-        js_getRotationOfChar :: SVGTextContentElement -> Word -> IO Float
+        js_getRotationOfChar ::
+        SVGTextContentElement -> Optional Word -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getRotationOfChar Mozilla SVGTextContentElement.getRotationOfChar documentation> 
 getRotationOfChar ::
                   (MonadIO m, IsSVGTextContentElement self) =>
-                    self -> Word -> m Float
+                    self -> Maybe Word -> m Float
 getRotationOfChar self offset
   = liftIO
-      (js_getRotationOfChar (toSVGTextContentElement self) offset)
+      (js_getRotationOfChar (toSVGTextContentElement self)
+         (maybeToOptional offset))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getRotationOfChar Mozilla SVGTextContentElement.getRotationOfChar documentation> 
 getRotationOfChar_ ::
-                   (MonadIO m, IsSVGTextContentElement self) => self -> Word -> m ()
+                   (MonadIO m, IsSVGTextContentElement self) =>
+                     self -> Maybe Word -> m ()
 getRotationOfChar_ self offset
   = liftIO
-      (void (js_getRotationOfChar (toSVGTextContentElement self) offset))
+      (void
+         (js_getRotationOfChar (toSVGTextContentElement self)
+            (maybeToOptional offset)))
  
 foreign import javascript unsafe "$1[\"getCharNumAtPosition\"]($2)"
         js_getCharNumAtPosition ::
-        SVGTextContentElement -> Nullable SVGPoint -> IO Int
+        SVGTextContentElement -> SVGPoint -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getCharNumAtPosition Mozilla SVGTextContentElement.getCharNumAtPosition documentation> 
 getCharNumAtPosition ::
                      (MonadIO m, IsSVGTextContentElement self) =>
-                       self -> Maybe SVGPoint -> m Int
+                       self -> SVGPoint -> m Int
 getCharNumAtPosition self point
   = liftIO
-      (js_getCharNumAtPosition (toSVGTextContentElement self)
-         (maybeToNullable point))
+      (js_getCharNumAtPosition (toSVGTextContentElement self) point)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.getCharNumAtPosition Mozilla SVGTextContentElement.getCharNumAtPosition documentation> 
 getCharNumAtPosition_ ::
                       (MonadIO m, IsSVGTextContentElement self) =>
-                        self -> Maybe SVGPoint -> m ()
+                        self -> SVGPoint -> m ()
 getCharNumAtPosition_ self point
   = liftIO
       (void
-         (js_getCharNumAtPosition (toSVGTextContentElement self)
-            (maybeToNullable point)))
+         (js_getCharNumAtPosition (toSVGTextContentElement self) point))
  
 foreign import javascript unsafe "$1[\"selectSubString\"]($2, $3)"
         js_selectSubString ::
-        SVGTextContentElement -> Word -> Word -> IO ()
+        SVGTextContentElement -> Optional Word -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.selectSubString Mozilla SVGTextContentElement.selectSubString documentation> 
 selectSubString ::
                 (MonadIO m, IsSVGTextContentElement self) =>
-                  self -> Word -> Word -> m ()
+                  self -> Maybe Word -> Maybe Word -> m ()
 selectSubString self offset length
   = liftIO
-      (js_selectSubString (toSVGTextContentElement self) offset length)
+      (js_selectSubString (toSVGTextContentElement self)
+         (maybeToOptional offset)
+         (maybeToOptional length))
 pattern LENGTHADJUST_UNKNOWN = 0
 pattern LENGTHADJUST_SPACING = 1
 pattern LENGTHADJUST_SPACINGANDGLYPHS = 2
  
 foreign import javascript unsafe "$1[\"textLength\"]"
-        js_getTextLength ::
-        SVGTextContentElement -> IO (Nullable SVGAnimatedLength)
+        js_getTextLength :: SVGTextContentElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.textLength Mozilla SVGTextContentElement.textLength documentation> 
 getTextLength ::
               (MonadIO m, IsSVGTextContentElement self) =>
-                self -> m (Maybe SVGAnimatedLength)
+                self -> m SVGAnimatedLength
 getTextLength self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getTextLength (toSVGTextContentElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.textLength Mozilla SVGTextContentElement.textLength documentation> 
-getTextLengthUnsafe ::
-                    (MonadIO m, IsSVGTextContentElement self, HasCallStack) =>
-                      self -> m SVGAnimatedLength
-getTextLengthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getTextLength (toSVGTextContentElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.textLength Mozilla SVGTextContentElement.textLength documentation> 
-getTextLengthUnchecked ::
-                       (MonadIO m, IsSVGTextContentElement self) =>
-                         self -> m SVGAnimatedLength
-getTextLengthUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTextLength (toSVGTextContentElement self)))
+  = liftIO (js_getTextLength (toSVGTextContentElement self))
  
 foreign import javascript unsafe "$1[\"lengthAdjust\"]"
         js_getLengthAdjust ::
-        SVGTextContentElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGTextContentElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.lengthAdjust Mozilla SVGTextContentElement.lengthAdjust documentation> 
 getLengthAdjust ::
                 (MonadIO m, IsSVGTextContentElement self) =>
-                  self -> m (Maybe SVGAnimatedEnumeration)
+                  self -> m SVGAnimatedEnumeration
 getLengthAdjust self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getLengthAdjust (toSVGTextContentElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.lengthAdjust Mozilla SVGTextContentElement.lengthAdjust documentation> 
-getLengthAdjustUnsafe ::
-                      (MonadIO m, IsSVGTextContentElement self, HasCallStack) =>
-                        self -> m SVGAnimatedEnumeration
-getLengthAdjustUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getLengthAdjust (toSVGTextContentElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement.lengthAdjust Mozilla SVGTextContentElement.lengthAdjust documentation> 
-getLengthAdjustUnchecked ::
-                         (MonadIO m, IsSVGTextContentElement self) =>
-                           self -> m SVGAnimatedEnumeration
-getLengthAdjustUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getLengthAdjust (toSVGTextContentElement self)))
+  = liftIO (js_getLengthAdjust (toSVGTextContentElement self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGTextPathElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGTextPathElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGTextPathElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGTextPathElement.hs
@@ -10,16 +10,14 @@
         pattern TEXTPATH_SPACINGTYPE_UNKNOWN,
         pattern TEXTPATH_SPACINGTYPE_AUTO,
         pattern TEXTPATH_SPACINGTYPE_EXACT, js_getStartOffset,
-        getStartOffset, getStartOffsetUnsafe, getStartOffsetUnchecked,
-        js_getMethod, getMethod, getMethodUnsafe, getMethodUnchecked,
-        js_getSpacing, getSpacing, getSpacingUnsafe, getSpacingUnchecked,
+        getStartOffset, js_getMethod, getMethod, js_getSpacing, getSpacing,
         SVGTextPathElement(..), gTypeSVGTextPathElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +26,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -40,76 +39,25 @@
 pattern TEXTPATH_SPACINGTYPE_EXACT = 2
  
 foreign import javascript unsafe "$1[\"startOffset\"]"
-        js_getStartOffset ::
-        SVGTextPathElement -> IO (Nullable SVGAnimatedLength)
+        js_getStartOffset :: SVGTextPathElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement.startOffset Mozilla SVGTextPathElement.startOffset documentation> 
 getStartOffset ::
-               (MonadIO m) => SVGTextPathElement -> m (Maybe SVGAnimatedLength)
-getStartOffset self
-  = liftIO (nullableToMaybe <$> (js_getStartOffset (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement.startOffset Mozilla SVGTextPathElement.startOffset documentation> 
-getStartOffsetUnsafe ::
-                     (MonadIO m, HasCallStack) =>
-                       SVGTextPathElement -> m SVGAnimatedLength
-getStartOffsetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStartOffset (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement.startOffset Mozilla SVGTextPathElement.startOffset documentation> 
-getStartOffsetUnchecked ::
-                        (MonadIO m) => SVGTextPathElement -> m SVGAnimatedLength
-getStartOffsetUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getStartOffset (self)))
+               (MonadIO m) => SVGTextPathElement -> m SVGAnimatedLength
+getStartOffset self = liftIO (js_getStartOffset self)
  
 foreign import javascript unsafe "$1[\"method\"]" js_getMethod ::
-        SVGTextPathElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGTextPathElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement.method Mozilla SVGTextPathElement.method documentation> 
 getMethod ::
-          (MonadIO m) =>
-            SVGTextPathElement -> m (Maybe SVGAnimatedEnumeration)
-getMethod self = liftIO (nullableToMaybe <$> (js_getMethod (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement.method Mozilla SVGTextPathElement.method documentation> 
-getMethodUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  SVGTextPathElement -> m SVGAnimatedEnumeration
-getMethodUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMethod (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement.method Mozilla SVGTextPathElement.method documentation> 
-getMethodUnchecked ::
-                   (MonadIO m) => SVGTextPathElement -> m SVGAnimatedEnumeration
-getMethodUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getMethod (self)))
+          (MonadIO m) => SVGTextPathElement -> m SVGAnimatedEnumeration
+getMethod self = liftIO (js_getMethod self)
  
 foreign import javascript unsafe "$1[\"spacing\"]" js_getSpacing ::
-        SVGTextPathElement -> IO (Nullable SVGAnimatedEnumeration)
+        SVGTextPathElement -> IO SVGAnimatedEnumeration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement.spacing Mozilla SVGTextPathElement.spacing documentation> 
 getSpacing ::
-           (MonadIO m) =>
-             SVGTextPathElement -> m (Maybe SVGAnimatedEnumeration)
-getSpacing self
-  = liftIO (nullableToMaybe <$> (js_getSpacing (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement.spacing Mozilla SVGTextPathElement.spacing documentation> 
-getSpacingUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGTextPathElement -> m SVGAnimatedEnumeration
-getSpacingUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSpacing (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement.spacing Mozilla SVGTextPathElement.spacing documentation> 
-getSpacingUnchecked ::
-                    (MonadIO m) => SVGTextPathElement -> m SVGAnimatedEnumeration
-getSpacingUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getSpacing (self)))
+           (MonadIO m) => SVGTextPathElement -> m SVGAnimatedEnumeration
+getSpacing self = liftIO (js_getSpacing self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGTextPositioningElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGTextPositioningElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGTextPositioningElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGTextPositioningElement.hs
@@ -4,18 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGTextPositioningElement
-       (js_getX, getX, getXUnsafe, getXUnchecked, js_getY, getY,
-        getYUnsafe, getYUnchecked, js_getDx, getDx, getDxUnsafe,
-        getDxUnchecked, js_getDy, getDy, getDyUnsafe, getDyUnchecked,
-        js_getRotate, getRotate, getRotateUnsafe, getRotateUnchecked,
-        SVGTextPositioningElement(..), gTypeSVGTextPositioningElement,
-        IsSVGTextPositioningElement, toSVGTextPositioningElement)
+       (js_getX, getX, js_getY, getY, js_getDx, getDx, js_getDy, getDy,
+        js_getRotate, getRotate, SVGTextPositioningElement(..),
+        gTypeSVGTextPositioningElement, IsSVGTextPositioningElement,
+        toSVGTextPositioningElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,156 +22,54 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGTextPositioningElement -> IO (Nullable SVGAnimatedLengthList)
+        SVGTextPositioningElement -> IO SVGAnimatedLengthList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.x Mozilla SVGTextPositioningElement.x documentation> 
 getX ::
      (MonadIO m, IsSVGTextPositioningElement self) =>
-       self -> m (Maybe SVGAnimatedLengthList)
-getX self
-  = liftIO
-      (nullableToMaybe <$> (js_getX (toSVGTextPositioningElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.x Mozilla SVGTextPositioningElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, IsSVGTextPositioningElement self, HasCallStack) =>
-             self -> m SVGAnimatedLengthList
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (toSVGTextPositioningElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.x Mozilla SVGTextPositioningElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m, IsSVGTextPositioningElement self) =>
-                self -> m SVGAnimatedLengthList
-getXUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getX (toSVGTextPositioningElement self)))
+       self -> m SVGAnimatedLengthList
+getX self = liftIO (js_getX (toSVGTextPositioningElement self))
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGTextPositioningElement -> IO (Nullable SVGAnimatedLengthList)
+        SVGTextPositioningElement -> IO SVGAnimatedLengthList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.y Mozilla SVGTextPositioningElement.y documentation> 
 getY ::
      (MonadIO m, IsSVGTextPositioningElement self) =>
-       self -> m (Maybe SVGAnimatedLengthList)
-getY self
-  = liftIO
-      (nullableToMaybe <$> (js_getY (toSVGTextPositioningElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.y Mozilla SVGTextPositioningElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, IsSVGTextPositioningElement self, HasCallStack) =>
-             self -> m SVGAnimatedLengthList
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (toSVGTextPositioningElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.y Mozilla SVGTextPositioningElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m, IsSVGTextPositioningElement self) =>
-                self -> m SVGAnimatedLengthList
-getYUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getY (toSVGTextPositioningElement self)))
+       self -> m SVGAnimatedLengthList
+getY self = liftIO (js_getY (toSVGTextPositioningElement self))
  
 foreign import javascript unsafe "$1[\"dx\"]" js_getDx ::
-        SVGTextPositioningElement -> IO (Nullable SVGAnimatedLengthList)
+        SVGTextPositioningElement -> IO SVGAnimatedLengthList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.dx Mozilla SVGTextPositioningElement.dx documentation> 
 getDx ::
       (MonadIO m, IsSVGTextPositioningElement self) =>
-        self -> m (Maybe SVGAnimatedLengthList)
-getDx self
-  = liftIO
-      (nullableToMaybe <$> (js_getDx (toSVGTextPositioningElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.dx Mozilla SVGTextPositioningElement.dx documentation> 
-getDxUnsafe ::
-            (MonadIO m, IsSVGTextPositioningElement self, HasCallStack) =>
-              self -> m SVGAnimatedLengthList
-getDxUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getDx (toSVGTextPositioningElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.dx Mozilla SVGTextPositioningElement.dx documentation> 
-getDxUnchecked ::
-               (MonadIO m, IsSVGTextPositioningElement self) =>
-                 self -> m SVGAnimatedLengthList
-getDxUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getDx (toSVGTextPositioningElement self)))
+        self -> m SVGAnimatedLengthList
+getDx self = liftIO (js_getDx (toSVGTextPositioningElement self))
  
 foreign import javascript unsafe "$1[\"dy\"]" js_getDy ::
-        SVGTextPositioningElement -> IO (Nullable SVGAnimatedLengthList)
+        SVGTextPositioningElement -> IO SVGAnimatedLengthList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.dy Mozilla SVGTextPositioningElement.dy documentation> 
 getDy ::
       (MonadIO m, IsSVGTextPositioningElement self) =>
-        self -> m (Maybe SVGAnimatedLengthList)
-getDy self
-  = liftIO
-      (nullableToMaybe <$> (js_getDy (toSVGTextPositioningElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.dy Mozilla SVGTextPositioningElement.dy documentation> 
-getDyUnsafe ::
-            (MonadIO m, IsSVGTextPositioningElement self, HasCallStack) =>
-              self -> m SVGAnimatedLengthList
-getDyUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getDy (toSVGTextPositioningElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.dy Mozilla SVGTextPositioningElement.dy documentation> 
-getDyUnchecked ::
-               (MonadIO m, IsSVGTextPositioningElement self) =>
-                 self -> m SVGAnimatedLengthList
-getDyUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getDy (toSVGTextPositioningElement self)))
+        self -> m SVGAnimatedLengthList
+getDy self = liftIO (js_getDy (toSVGTextPositioningElement self))
  
 foreign import javascript unsafe "$1[\"rotate\"]" js_getRotate ::
-        SVGTextPositioningElement -> IO (Nullable SVGAnimatedNumberList)
+        SVGTextPositioningElement -> IO SVGAnimatedNumberList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.rotate Mozilla SVGTextPositioningElement.rotate documentation> 
 getRotate ::
           (MonadIO m, IsSVGTextPositioningElement self) =>
-            self -> m (Maybe SVGAnimatedNumberList)
+            self -> m SVGAnimatedNumberList
 getRotate self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getRotate (toSVGTextPositioningElement self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.rotate Mozilla SVGTextPositioningElement.rotate documentation> 
-getRotateUnsafe ::
-                (MonadIO m, IsSVGTextPositioningElement self, HasCallStack) =>
-                  self -> m SVGAnimatedNumberList
-getRotateUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getRotate (toSVGTextPositioningElement self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement.rotate Mozilla SVGTextPositioningElement.rotate documentation> 
-getRotateUnchecked ::
-                   (MonadIO m, IsSVGTextPositioningElement self) =>
-                     self -> m SVGAnimatedNumberList
-getRotateUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getRotate (toSVGTextPositioningElement self)))
+  = liftIO (js_getRotate (toSVGTextPositioningElement self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGTransform.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGTransform.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGTransform.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGTransform.hs
@@ -10,15 +10,14 @@
         pattern SVG_TRANSFORM_MATRIX, pattern SVG_TRANSFORM_TRANSLATE,
         pattern SVG_TRANSFORM_SCALE, pattern SVG_TRANSFORM_ROTATE,
         pattern SVG_TRANSFORM_SKEWX, pattern SVG_TRANSFORM_SKEWY,
-        js_getType, getType, js_getMatrix, getMatrix, getMatrixUnsafe,
-        getMatrixUnchecked, js_getAngle, getAngle, SVGTransform(..),
-        gTypeSVGTransform)
+        js_getType, getType, js_getMatrix, getMatrix, js_getAngle,
+        getAngle, SVGTransform(..), gTypeSVGTransform)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,18 +26,18 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"setMatrix\"]($2)"
-        js_setMatrix :: SVGTransform -> Nullable SVGMatrix -> IO ()
+        js_setMatrix :: SVGTransform -> SVGMatrix -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform.setMatrix Mozilla SVGTransform.setMatrix documentation> 
-setMatrix :: (MonadIO m) => SVGTransform -> Maybe SVGMatrix -> m ()
-setMatrix self matrix
-  = liftIO (js_setMatrix (self) (maybeToNullable matrix))
+setMatrix :: (MonadIO m) => SVGTransform -> SVGMatrix -> m ()
+setMatrix self matrix = liftIO (js_setMatrix self matrix)
  
 foreign import javascript unsafe "$1[\"setTranslate\"]($2, $3)"
         js_setTranslate :: SVGTransform -> Float -> Float -> IO ()
@@ -46,14 +45,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform.setTranslate Mozilla SVGTransform.setTranslate documentation> 
 setTranslate ::
              (MonadIO m) => SVGTransform -> Float -> Float -> m ()
-setTranslate self tx ty = liftIO (js_setTranslate (self) tx ty)
+setTranslate self tx ty = liftIO (js_setTranslate self tx ty)
  
 foreign import javascript unsafe "$1[\"setScale\"]($2, $3)"
         js_setScale :: SVGTransform -> Float -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform.setScale Mozilla SVGTransform.setScale documentation> 
 setScale :: (MonadIO m) => SVGTransform -> Float -> Float -> m ()
-setScale self sx sy = liftIO (js_setScale (self) sx sy)
+setScale self sx sy = liftIO (js_setScale self sx sy)
  
 foreign import javascript unsafe "$1[\"setRotate\"]($2, $3, $4)"
         js_setRotate :: SVGTransform -> Float -> Float -> Float -> IO ()
@@ -61,22 +60,21 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform.setRotate Mozilla SVGTransform.setRotate documentation> 
 setRotate ::
           (MonadIO m) => SVGTransform -> Float -> Float -> Float -> m ()
-setRotate self angle cx cy
-  = liftIO (js_setRotate (self) angle cx cy)
+setRotate self angle cx cy = liftIO (js_setRotate self angle cx cy)
  
 foreign import javascript unsafe "$1[\"setSkewX\"]($2)" js_setSkewX
         :: SVGTransform -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform.setSkewX Mozilla SVGTransform.setSkewX documentation> 
 setSkewX :: (MonadIO m) => SVGTransform -> Float -> m ()
-setSkewX self angle = liftIO (js_setSkewX (self) angle)
+setSkewX self angle = liftIO (js_setSkewX self angle)
  
 foreign import javascript unsafe "$1[\"setSkewY\"]($2)" js_setSkewY
         :: SVGTransform -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform.setSkewY Mozilla SVGTransform.setSkewY documentation> 
 setSkewY :: (MonadIO m) => SVGTransform -> Float -> m ()
-setSkewY self angle = liftIO (js_setSkewY (self) angle)
+setSkewY self angle = liftIO (js_setSkewY self angle)
 pattern SVG_TRANSFORM_UNKNOWN = 0
 pattern SVG_TRANSFORM_MATRIX = 1
 pattern SVG_TRANSFORM_TRANSLATE = 2
@@ -90,31 +88,18 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform.type Mozilla SVGTransform.type documentation> 
 getType :: (MonadIO m) => SVGTransform -> m Word
-getType self = liftIO (js_getType (self))
+getType self = liftIO (js_getType self)
  
 foreign import javascript unsafe "$1[\"matrix\"]" js_getMatrix ::
-        SVGTransform -> IO (Nullable SVGMatrix)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform.matrix Mozilla SVGTransform.matrix documentation> 
-getMatrix :: (MonadIO m) => SVGTransform -> m (Maybe SVGMatrix)
-getMatrix self = liftIO (nullableToMaybe <$> (js_getMatrix (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform.matrix Mozilla SVGTransform.matrix documentation> 
-getMatrixUnsafe ::
-                (MonadIO m, HasCallStack) => SVGTransform -> m SVGMatrix
-getMatrixUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMatrix (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGTransform -> IO SVGMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform.matrix Mozilla SVGTransform.matrix documentation> 
-getMatrixUnchecked :: (MonadIO m) => SVGTransform -> m SVGMatrix
-getMatrixUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getMatrix (self)))
+getMatrix :: (MonadIO m) => SVGTransform -> m SVGMatrix
+getMatrix self = liftIO (js_getMatrix self)
  
 foreign import javascript unsafe "$1[\"angle\"]" js_getAngle ::
         SVGTransform -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform.angle Mozilla SVGTransform.angle documentation> 
 getAngle :: (MonadIO m) => SVGTransform -> m Float
-getAngle self = liftIO (js_getAngle (self))
+getAngle self = liftIO (js_getAngle self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGTransformList.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGTransformList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGTransformList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGTransformList.hs
@@ -5,26 +5,20 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGTransformList
        (js_clear, clear, js_initialize, initialize, initialize_,
-        initializeUnsafe, initializeUnchecked, js_getItem, getItem,
-        getItem_, getItemUnsafe, getItemUnchecked, js_insertItemBefore,
-        insertItemBefore, insertItemBefore_, insertItemBeforeUnsafe,
-        insertItemBeforeUnchecked, js_replaceItem, replaceItem,
-        replaceItem_, replaceItemUnsafe, replaceItemUnchecked,
-        js_removeItem, removeItem, removeItem_, removeItemUnsafe,
-        removeItemUnchecked, js_appendItem, appendItem, appendItem_,
-        appendItemUnsafe, appendItemUnchecked,
+        js_getItem, getItem, getItem_, js_insertItemBefore,
+        insertItemBefore, insertItemBefore_, js_replaceItem, replaceItem,
+        replaceItem_, js_removeItem, removeItem, removeItem_,
+        js_appendItem, appendItem, appendItem_,
         js_createSVGTransformFromMatrix, createSVGTransformFromMatrix,
-        createSVGTransformFromMatrix_, createSVGTransformFromMatrixUnsafe,
-        createSVGTransformFromMatrixUnchecked, js_consolidate, consolidate,
-        consolidate_, consolidateUnsafe, consolidateUnchecked,
-        js_getNumberOfItems, getNumberOfItems, SVGTransformList(..),
-        gTypeSVGTransformList)
+        createSVGTransformFromMatrix_, js_consolidate, consolidate,
+        consolidate_, js_getNumberOfItems, getNumberOfItems,
+        SVGTransformList(..), gTypeSVGTransformList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -33,6 +27,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -43,298 +38,125 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.clear Mozilla SVGTransformList.clear documentation> 
 clear :: (MonadIO m) => SVGTransformList -> m ()
-clear self = liftIO (js_clear (self))
+clear self = liftIO (js_clear self)
  
 foreign import javascript unsafe "$1[\"initialize\"]($2)"
         js_initialize ::
-        SVGTransformList ->
-          Nullable SVGTransform -> IO (Nullable SVGTransform)
+        SVGTransformList -> SVGTransform -> IO SVGTransform
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.initialize Mozilla SVGTransformList.initialize documentation> 
 initialize ::
-           (MonadIO m) =>
-             SVGTransformList -> Maybe SVGTransform -> m (Maybe SVGTransform)
-initialize self item
-  = liftIO
-      (nullableToMaybe <$> (js_initialize (self) (maybeToNullable item)))
+           (MonadIO m) => SVGTransformList -> SVGTransform -> m SVGTransform
+initialize self item = liftIO (js_initialize self item)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.initialize Mozilla SVGTransformList.initialize documentation> 
 initialize_ ::
-            (MonadIO m) => SVGTransformList -> Maybe SVGTransform -> m ()
-initialize_ self item
-  = liftIO (void (js_initialize (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.initialize Mozilla SVGTransformList.initialize documentation> 
-initializeUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGTransformList -> Maybe SVGTransform -> m SVGTransform
-initializeUnsafe self item
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_initialize (self) (maybeToNullable item)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.initialize Mozilla SVGTransformList.initialize documentation> 
-initializeUnchecked ::
-                    (MonadIO m) =>
-                      SVGTransformList -> Maybe SVGTransform -> m SVGTransform
-initializeUnchecked self item
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_initialize (self) (maybeToNullable item)))
+            (MonadIO m) => SVGTransformList -> SVGTransform -> m ()
+initialize_ self item = liftIO (void (js_initialize self item))
  
 foreign import javascript unsafe "$1[\"getItem\"]($2)" js_getItem
-        :: SVGTransformList -> Word -> IO (Nullable SVGTransform)
+        :: SVGTransformList -> Word -> IO SVGTransform
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.getItem Mozilla SVGTransformList.getItem documentation> 
 getItem ::
-        (MonadIO m) => SVGTransformList -> Word -> m (Maybe SVGTransform)
-getItem self index
-  = liftIO (nullableToMaybe <$> (js_getItem (self) index))
+        (MonadIO m) => SVGTransformList -> Word -> m SVGTransform
+getItem self index = liftIO (js_getItem self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.getItem Mozilla SVGTransformList.getItem documentation> 
 getItem_ :: (MonadIO m) => SVGTransformList -> Word -> m ()
-getItem_ self index = liftIO (void (js_getItem (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.getItem Mozilla SVGTransformList.getItem documentation> 
-getItemUnsafe ::
-              (MonadIO m, HasCallStack) =>
-                SVGTransformList -> Word -> m SVGTransform
-getItemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_getItem (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.getItem Mozilla SVGTransformList.getItem documentation> 
-getItemUnchecked ::
-                 (MonadIO m) => SVGTransformList -> Word -> m SVGTransform
-getItemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_getItem (self) index))
+getItem_ self index = liftIO (void (js_getItem self index))
  
 foreign import javascript unsafe "$1[\"insertItemBefore\"]($2, $3)"
         js_insertItemBefore ::
-        SVGTransformList ->
-          Nullable SVGTransform -> Word -> IO (Nullable SVGTransform)
+        SVGTransformList -> SVGTransform -> Word -> IO SVGTransform
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.insertItemBefore Mozilla SVGTransformList.insertItemBefore documentation> 
 insertItemBefore ::
                  (MonadIO m) =>
-                   SVGTransformList ->
-                     Maybe SVGTransform -> Word -> m (Maybe SVGTransform)
+                   SVGTransformList -> SVGTransform -> Word -> m SVGTransform
 insertItemBefore self item index
-  = liftIO
-      (nullableToMaybe <$>
-         (js_insertItemBefore (self) (maybeToNullable item) index))
+  = liftIO (js_insertItemBefore self item index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.insertItemBefore Mozilla SVGTransformList.insertItemBefore documentation> 
 insertItemBefore_ ::
-                  (MonadIO m) =>
-                    SVGTransformList -> Maybe SVGTransform -> Word -> m ()
+                  (MonadIO m) => SVGTransformList -> SVGTransform -> Word -> m ()
 insertItemBefore_ self item index
-  = liftIO
-      (void (js_insertItemBefore (self) (maybeToNullable item) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.insertItemBefore Mozilla SVGTransformList.insertItemBefore documentation> 
-insertItemBeforeUnsafe ::
-                       (MonadIO m, HasCallStack) =>
-                         SVGTransformList -> Maybe SVGTransform -> Word -> m SVGTransform
-insertItemBeforeUnsafe self item index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_insertItemBefore (self) (maybeToNullable item) index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.insertItemBefore Mozilla SVGTransformList.insertItemBefore documentation> 
-insertItemBeforeUnchecked ::
-                          (MonadIO m) =>
-                            SVGTransformList -> Maybe SVGTransform -> Word -> m SVGTransform
-insertItemBeforeUnchecked self item index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_insertItemBefore (self) (maybeToNullable item) index))
+  = liftIO (void (js_insertItemBefore self item index))
  
 foreign import javascript unsafe "$1[\"replaceItem\"]($2, $3)"
         js_replaceItem ::
-        SVGTransformList ->
-          Nullable SVGTransform -> Word -> IO (Nullable SVGTransform)
+        SVGTransformList -> SVGTransform -> Word -> IO SVGTransform
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.replaceItem Mozilla SVGTransformList.replaceItem documentation> 
 replaceItem ::
             (MonadIO m) =>
-              SVGTransformList ->
-                Maybe SVGTransform -> Word -> m (Maybe SVGTransform)
+              SVGTransformList -> SVGTransform -> Word -> m SVGTransform
 replaceItem self item index
-  = liftIO
-      (nullableToMaybe <$>
-         (js_replaceItem (self) (maybeToNullable item) index))
+  = liftIO (js_replaceItem self item index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.replaceItem Mozilla SVGTransformList.replaceItem documentation> 
 replaceItem_ ::
-             (MonadIO m) =>
-               SVGTransformList -> Maybe SVGTransform -> Word -> m ()
+             (MonadIO m) => SVGTransformList -> SVGTransform -> Word -> m ()
 replaceItem_ self item index
-  = liftIO
-      (void (js_replaceItem (self) (maybeToNullable item) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.replaceItem Mozilla SVGTransformList.replaceItem documentation> 
-replaceItemUnsafe ::
-                  (MonadIO m, HasCallStack) =>
-                    SVGTransformList -> Maybe SVGTransform -> Word -> m SVGTransform
-replaceItemUnsafe self item index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_replaceItem (self) (maybeToNullable item) index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.replaceItem Mozilla SVGTransformList.replaceItem documentation> 
-replaceItemUnchecked ::
-                     (MonadIO m) =>
-                       SVGTransformList -> Maybe SVGTransform -> Word -> m SVGTransform
-replaceItemUnchecked self item index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_replaceItem (self) (maybeToNullable item) index))
+  = liftIO (void (js_replaceItem self item index))
  
 foreign import javascript unsafe "$1[\"removeItem\"]($2)"
-        js_removeItem ::
-        SVGTransformList -> Word -> IO (Nullable SVGTransform)
+        js_removeItem :: SVGTransformList -> Word -> IO SVGTransform
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.removeItem Mozilla SVGTransformList.removeItem documentation> 
 removeItem ::
-           (MonadIO m) => SVGTransformList -> Word -> m (Maybe SVGTransform)
-removeItem self index
-  = liftIO (nullableToMaybe <$> (js_removeItem (self) index))
+           (MonadIO m) => SVGTransformList -> Word -> m SVGTransform
+removeItem self index = liftIO (js_removeItem self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.removeItem Mozilla SVGTransformList.removeItem documentation> 
 removeItem_ :: (MonadIO m) => SVGTransformList -> Word -> m ()
-removeItem_ self index = liftIO (void (js_removeItem (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.removeItem Mozilla SVGTransformList.removeItem documentation> 
-removeItemUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGTransformList -> Word -> m SVGTransform
-removeItemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_removeItem (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.removeItem Mozilla SVGTransformList.removeItem documentation> 
-removeItemUnchecked ::
-                    (MonadIO m) => SVGTransformList -> Word -> m SVGTransform
-removeItemUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_removeItem (self) index))
+removeItem_ self index = liftIO (void (js_removeItem self index))
  
 foreign import javascript unsafe "$1[\"appendItem\"]($2)"
         js_appendItem ::
-        SVGTransformList ->
-          Nullable SVGTransform -> IO (Nullable SVGTransform)
+        SVGTransformList -> SVGTransform -> IO SVGTransform
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.appendItem Mozilla SVGTransformList.appendItem documentation> 
 appendItem ::
-           (MonadIO m) =>
-             SVGTransformList -> Maybe SVGTransform -> m (Maybe SVGTransform)
-appendItem self item
-  = liftIO
-      (nullableToMaybe <$> (js_appendItem (self) (maybeToNullable item)))
+           (MonadIO m) => SVGTransformList -> SVGTransform -> m SVGTransform
+appendItem self item = liftIO (js_appendItem self item)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.appendItem Mozilla SVGTransformList.appendItem documentation> 
 appendItem_ ::
-            (MonadIO m) => SVGTransformList -> Maybe SVGTransform -> m ()
-appendItem_ self item
-  = liftIO (void (js_appendItem (self) (maybeToNullable item)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.appendItem Mozilla SVGTransformList.appendItem documentation> 
-appendItemUnsafe ::
-                 (MonadIO m, HasCallStack) =>
-                   SVGTransformList -> Maybe SVGTransform -> m SVGTransform
-appendItemUnsafe self item
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_appendItem (self) (maybeToNullable item)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.appendItem Mozilla SVGTransformList.appendItem documentation> 
-appendItemUnchecked ::
-                    (MonadIO m) =>
-                      SVGTransformList -> Maybe SVGTransform -> m SVGTransform
-appendItemUnchecked self item
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_appendItem (self) (maybeToNullable item)))
+            (MonadIO m) => SVGTransformList -> SVGTransform -> m ()
+appendItem_ self item = liftIO (void (js_appendItem self item))
  
 foreign import javascript unsafe
         "$1[\"createSVGTransformFromMatrix\"]($2)"
         js_createSVGTransformFromMatrix ::
-        SVGTransformList ->
-          Nullable SVGMatrix -> IO (Nullable SVGTransform)
+        SVGTransformList -> SVGMatrix -> IO SVGTransform
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.createSVGTransformFromMatrix Mozilla SVGTransformList.createSVGTransformFromMatrix documentation> 
 createSVGTransformFromMatrix ::
-                             (MonadIO m) =>
-                               SVGTransformList -> Maybe SVGMatrix -> m (Maybe SVGTransform)
+                             (MonadIO m) => SVGTransformList -> SVGMatrix -> m SVGTransform
 createSVGTransformFromMatrix self matrix
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createSVGTransformFromMatrix (self) (maybeToNullable matrix)))
+  = liftIO (js_createSVGTransformFromMatrix self matrix)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.createSVGTransformFromMatrix Mozilla SVGTransformList.createSVGTransformFromMatrix documentation> 
 createSVGTransformFromMatrix_ ::
-                              (MonadIO m) => SVGTransformList -> Maybe SVGMatrix -> m ()
+                              (MonadIO m) => SVGTransformList -> SVGMatrix -> m ()
 createSVGTransformFromMatrix_ self matrix
-  = liftIO
-      (void
-         (js_createSVGTransformFromMatrix (self) (maybeToNullable matrix)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.createSVGTransformFromMatrix Mozilla SVGTransformList.createSVGTransformFromMatrix documentation> 
-createSVGTransformFromMatrixUnsafe ::
-                                   (MonadIO m, HasCallStack) =>
-                                     SVGTransformList -> Maybe SVGMatrix -> m SVGTransform
-createSVGTransformFromMatrixUnsafe self matrix
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createSVGTransformFromMatrix (self) (maybeToNullable matrix)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.createSVGTransformFromMatrix Mozilla SVGTransformList.createSVGTransformFromMatrix documentation> 
-createSVGTransformFromMatrixUnchecked ::
-                                      (MonadIO m) =>
-                                        SVGTransformList -> Maybe SVGMatrix -> m SVGTransform
-createSVGTransformFromMatrixUnchecked self matrix
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createSVGTransformFromMatrix (self) (maybeToNullable matrix)))
+  = liftIO (void (js_createSVGTransformFromMatrix self matrix))
  
 foreign import javascript unsafe "$1[\"consolidate\"]()"
-        js_consolidate :: SVGTransformList -> IO (Nullable SVGTransform)
+        js_consolidate :: SVGTransformList -> IO SVGTransform
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.consolidate Mozilla SVGTransformList.consolidate documentation> 
-consolidate ::
-            (MonadIO m) => SVGTransformList -> m (Maybe SVGTransform)
-consolidate self
-  = liftIO (nullableToMaybe <$> (js_consolidate (self)))
+consolidate :: (MonadIO m) => SVGTransformList -> m SVGTransform
+consolidate self = liftIO (js_consolidate self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.consolidate Mozilla SVGTransformList.consolidate documentation> 
 consolidate_ :: (MonadIO m) => SVGTransformList -> m ()
-consolidate_ self = liftIO (void (js_consolidate (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.consolidate Mozilla SVGTransformList.consolidate documentation> 
-consolidateUnsafe ::
-                  (MonadIO m, HasCallStack) => SVGTransformList -> m SVGTransform
-consolidateUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_consolidate (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.consolidate Mozilla SVGTransformList.consolidate documentation> 
-consolidateUnchecked ::
-                     (MonadIO m) => SVGTransformList -> m SVGTransform
-consolidateUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_consolidate (self)))
+consolidate_ self = liftIO (void (js_consolidate self))
  
 foreign import javascript unsafe "$1[\"numberOfItems\"]"
         js_getNumberOfItems :: SVGTransformList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList.numberOfItems Mozilla SVGTransformList.numberOfItems documentation> 
 getNumberOfItems :: (MonadIO m) => SVGTransformList -> m Word
-getNumberOfItems self = liftIO (js_getNumberOfItems (self))
+getNumberOfItems self = liftIO (js_getNumberOfItems self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGURIReference.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGURIReference.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGURIReference.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGURIReference.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGURIReference
-       (js_getHref, getHref, getHrefUnsafe, getHrefUnchecked,
-        SVGURIReference(..), gTypeSVGURIReference)
+       (js_getHref, getHref, SVGURIReference(..), gTypeSVGURIReference,
+        IsSVGURIReference, toSVGURIReference)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,29 +20,16 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"href\"]" js_getHref ::
-        SVGURIReference -> IO (Nullable SVGAnimatedString)
+        SVGURIReference -> IO SVGAnimatedString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGURIReference.href Mozilla SVGURIReference.href documentation> 
 getHref ::
-        (MonadIO m) => SVGURIReference -> m (Maybe SVGAnimatedString)
-getHref self = liftIO (nullableToMaybe <$> (js_getHref (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGURIReference.href Mozilla SVGURIReference.href documentation> 
-getHrefUnsafe ::
-              (MonadIO m, HasCallStack) => SVGURIReference -> m SVGAnimatedString
-getHrefUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHref (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGURIReference.href Mozilla SVGURIReference.href documentation> 
-getHrefUnchecked ::
-                 (MonadIO m) => SVGURIReference -> m SVGAnimatedString
-getHrefUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHref (self)))
+        (MonadIO m, IsSVGURIReference self) => self -> m SVGAnimatedString
+getHref self = liftIO (js_getHref (toSVGURIReference self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGUnitTypes.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGUnitTypes.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGUnitTypes.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGUnitTypes.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGUseElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGUseElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGUseElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGUseElement.hs
@@ -4,16 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGUseElement
-       (js_getX, getX, getXUnsafe, getXUnchecked, js_getY, getY,
-        getYUnsafe, getYUnchecked, js_getWidth, getWidth, getWidthUnsafe,
-        getWidthUnchecked, js_getHeight, getHeight, getHeightUnsafe,
-        getHeightUnchecked, SVGUseElement(..), gTypeSVGUseElement)
+       (js_getX, getX, js_getY, getY, js_getWidth, getWidth, js_getHeight,
+        getHeight, SVGUseElement(..), gTypeSVGUseElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,93 +20,36 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
-        SVGUseElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.x Mozilla SVGUseElement.x documentation> 
-getX :: (MonadIO m) => SVGUseElement -> m (Maybe SVGAnimatedLength)
-getX self = liftIO (nullableToMaybe <$> (js_getX (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.x Mozilla SVGUseElement.x documentation> 
-getXUnsafe ::
-           (MonadIO m, HasCallStack) => SVGUseElement -> m SVGAnimatedLength
-getXUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getX (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGUseElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.x Mozilla SVGUseElement.x documentation> 
-getXUnchecked ::
-              (MonadIO m) => SVGUseElement -> m SVGAnimatedLength
-getXUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getX (self)))
+getX :: (MonadIO m) => SVGUseElement -> m SVGAnimatedLength
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
-        SVGUseElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.y Mozilla SVGUseElement.y documentation> 
-getY :: (MonadIO m) => SVGUseElement -> m (Maybe SVGAnimatedLength)
-getY self = liftIO (nullableToMaybe <$> (js_getY (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.y Mozilla SVGUseElement.y documentation> 
-getYUnsafe ::
-           (MonadIO m, HasCallStack) => SVGUseElement -> m SVGAnimatedLength
-getYUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getY (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGUseElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.y Mozilla SVGUseElement.y documentation> 
-getYUnchecked ::
-              (MonadIO m) => SVGUseElement -> m SVGAnimatedLength
-getYUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getY (self)))
+getY :: (MonadIO m) => SVGUseElement -> m SVGAnimatedLength
+getY self = liftIO (js_getY self)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
-        SVGUseElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.width Mozilla SVGUseElement.width documentation> 
-getWidth ::
-         (MonadIO m) => SVGUseElement -> m (Maybe SVGAnimatedLength)
-getWidth self = liftIO (nullableToMaybe <$> (js_getWidth (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.width Mozilla SVGUseElement.width documentation> 
-getWidthUnsafe ::
-               (MonadIO m, HasCallStack) => SVGUseElement -> m SVGAnimatedLength
-getWidthUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWidth (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGUseElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.width Mozilla SVGUseElement.width documentation> 
-getWidthUnchecked ::
-                  (MonadIO m) => SVGUseElement -> m SVGAnimatedLength
-getWidthUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getWidth (self)))
+getWidth :: (MonadIO m) => SVGUseElement -> m SVGAnimatedLength
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
-        SVGUseElement -> IO (Nullable SVGAnimatedLength)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.height Mozilla SVGUseElement.height documentation> 
-getHeight ::
-          (MonadIO m) => SVGUseElement -> m (Maybe SVGAnimatedLength)
-getHeight self = liftIO (nullableToMaybe <$> (js_getHeight (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.height Mozilla SVGUseElement.height documentation> 
-getHeightUnsafe ::
-                (MonadIO m, HasCallStack) => SVGUseElement -> m SVGAnimatedLength
-getHeightUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHeight (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        SVGUseElement -> IO SVGAnimatedLength
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement.height Mozilla SVGUseElement.height documentation> 
-getHeightUnchecked ::
-                   (MonadIO m) => SVGUseElement -> m SVGAnimatedLength
-getHeightUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHeight (self)))
+getHeight :: (MonadIO m) => SVGUseElement -> m SVGAnimatedLength
+getHeight self = liftIO (js_getHeight self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGViewElement.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGViewElement.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGViewElement.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGViewElement.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGViewElement
-       (js_getViewTarget, getViewTarget, getViewTargetUnsafe,
-        getViewTargetUnchecked, SVGViewElement(..), gTypeSVGViewElement)
+       (js_getViewTarget, getViewTarget, SVGViewElement(..),
+        gTypeSVGViewElement)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,30 +20,15 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"viewTarget\"]"
-        js_getViewTarget :: SVGViewElement -> IO (Nullable SVGStringList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewElement.viewTarget Mozilla SVGViewElement.viewTarget documentation> 
-getViewTarget ::
-              (MonadIO m) => SVGViewElement -> m (Maybe SVGStringList)
-getViewTarget self
-  = liftIO (nullableToMaybe <$> (js_getViewTarget (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewElement.viewTarget Mozilla SVGViewElement.viewTarget documentation> 
-getViewTargetUnsafe ::
-                    (MonadIO m, HasCallStack) => SVGViewElement -> m SVGStringList
-getViewTargetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getViewTarget (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getViewTarget :: SVGViewElement -> IO SVGStringList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewElement.viewTarget Mozilla SVGViewElement.viewTarget documentation> 
-getViewTargetUnchecked ::
-                       (MonadIO m) => SVGViewElement -> m SVGStringList
-getViewTargetUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getViewTarget (self)))
+getViewTarget :: (MonadIO m) => SVGViewElement -> m SVGStringList
+getViewTarget self = liftIO (js_getViewTarget self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGViewSpec.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGViewSpec.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGViewSpec.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGViewSpec.hs
@@ -4,20 +4,18 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGViewSpec
-       (js_getTransform, getTransform, getTransformUnsafe,
-        getTransformUnchecked, js_getViewTarget, getViewTarget,
-        getViewTargetUnsafe, getViewTargetUnchecked, js_getViewBoxString,
-        getViewBoxString, js_getPreserveAspectRatioString,
-        getPreserveAspectRatioString, js_getTransformString,
-        getTransformString, js_getViewTargetString, getViewTargetString,
-        js_setZoomAndPan, setZoomAndPan, js_getZoomAndPan, getZoomAndPan,
-        SVGViewSpec(..), gTypeSVGViewSpec)
+       (js_getTransform, getTransform, js_getViewTarget, getViewTarget,
+        js_getViewBoxString, getViewBoxString,
+        js_getPreserveAspectRatioString, getPreserveAspectRatioString,
+        js_getTransformString, getTransformString, js_getViewTargetString,
+        getViewTargetString, js_setZoomAndPan, setZoomAndPan,
+        js_getZoomAndPan, getZoomAndPan, SVGViewSpec(..), gTypeSVGViewSpec)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,55 +24,25 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"transform\"]"
-        js_getTransform :: SVGViewSpec -> IO (Nullable SVGTransformList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec.transform Mozilla SVGViewSpec.transform documentation> 
-getTransform ::
-             (MonadIO m) => SVGViewSpec -> m (Maybe SVGTransformList)
-getTransform self
-  = liftIO (nullableToMaybe <$> (js_getTransform (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec.transform Mozilla SVGViewSpec.transform documentation> 
-getTransformUnsafe ::
-                   (MonadIO m, HasCallStack) => SVGViewSpec -> m SVGTransformList
-getTransformUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTransform (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getTransform :: SVGViewSpec -> IO SVGTransformList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec.transform Mozilla SVGViewSpec.transform documentation> 
-getTransformUnchecked ::
-                      (MonadIO m) => SVGViewSpec -> m SVGTransformList
-getTransformUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTransform (self)))
+getTransform :: (MonadIO m) => SVGViewSpec -> m SVGTransformList
+getTransform self = liftIO (js_getTransform self)
  
 foreign import javascript unsafe "$1[\"viewTarget\"]"
-        js_getViewTarget :: SVGViewSpec -> IO (Nullable SVGElement)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec.viewTarget Mozilla SVGViewSpec.viewTarget documentation> 
-getViewTarget :: (MonadIO m) => SVGViewSpec -> m (Maybe SVGElement)
-getViewTarget self
-  = liftIO (nullableToMaybe <$> (js_getViewTarget (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec.viewTarget Mozilla SVGViewSpec.viewTarget documentation> 
-getViewTargetUnsafe ::
-                    (MonadIO m, HasCallStack) => SVGViewSpec -> m SVGElement
-getViewTargetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getViewTarget (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getViewTarget :: SVGViewSpec -> IO SVGElement
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec.viewTarget Mozilla SVGViewSpec.viewTarget documentation> 
-getViewTargetUnchecked ::
-                       (MonadIO m) => SVGViewSpec -> m SVGElement
-getViewTargetUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getViewTarget (self)))
+getViewTarget :: (MonadIO m) => SVGViewSpec -> m SVGElement
+getViewTarget self = liftIO (js_getViewTarget self)
  
 foreign import javascript unsafe "$1[\"viewBoxString\"]"
         js_getViewBoxString :: SVGViewSpec -> IO JSString
@@ -83,7 +51,7 @@
 getViewBoxString ::
                  (MonadIO m, FromJSString result) => SVGViewSpec -> m result
 getViewBoxString self
-  = liftIO (fromJSString <$> (js_getViewBoxString (self)))
+  = liftIO (fromJSString <$> (js_getViewBoxString self))
  
 foreign import javascript unsafe
         "$1[\"preserveAspectRatioString\"]" js_getPreserveAspectRatioString
@@ -93,8 +61,7 @@
 getPreserveAspectRatioString ::
                              (MonadIO m, FromJSString result) => SVGViewSpec -> m result
 getPreserveAspectRatioString self
-  = liftIO
-      (fromJSString <$> (js_getPreserveAspectRatioString (self)))
+  = liftIO (fromJSString <$> (js_getPreserveAspectRatioString self))
  
 foreign import javascript unsafe "$1[\"transformString\"]"
         js_getTransformString :: SVGViewSpec -> IO JSString
@@ -103,7 +70,7 @@
 getTransformString ::
                    (MonadIO m, FromJSString result) => SVGViewSpec -> m result
 getTransformString self
-  = liftIO (fromJSString <$> (js_getTransformString (self)))
+  = liftIO (fromJSString <$> (js_getTransformString self))
  
 foreign import javascript unsafe "$1[\"viewTargetString\"]"
         js_getViewTargetString :: SVGViewSpec -> IO JSString
@@ -112,18 +79,18 @@
 getViewTargetString ::
                     (MonadIO m, FromJSString result) => SVGViewSpec -> m result
 getViewTargetString self
-  = liftIO (fromJSString <$> (js_getViewTargetString (self)))
+  = liftIO (fromJSString <$> (js_getViewTargetString self))
  
 foreign import javascript unsafe "$1[\"zoomAndPan\"] = $2;"
         js_setZoomAndPan :: SVGViewSpec -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec.zoomAndPan Mozilla SVGViewSpec.zoomAndPan documentation> 
 setZoomAndPan :: (MonadIO m) => SVGViewSpec -> Word -> m ()
-setZoomAndPan self val = liftIO (js_setZoomAndPan (self) val)
+setZoomAndPan self val = liftIO (js_setZoomAndPan self val)
  
 foreign import javascript unsafe "$1[\"zoomAndPan\"]"
         js_getZoomAndPan :: SVGViewSpec -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec.zoomAndPan Mozilla SVGViewSpec.zoomAndPan documentation> 
 getZoomAndPan :: (MonadIO m) => SVGViewSpec -> m Word
-getZoomAndPan self = liftIO (js_getZoomAndPan (self))
+getZoomAndPan self = liftIO (js_getZoomAndPan self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGZoomAndPan.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGZoomAndPan.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGZoomAndPan.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGZoomAndPan.hs
@@ -7,13 +7,13 @@
        (pattern SVG_ZOOMANDPAN_UNKNOWN, pattern SVG_ZOOMANDPAN_DISABLE,
         pattern SVG_ZOOMANDPAN_MAGNIFY, js_setZoomAndPan, setZoomAndPan,
         js_getZoomAndPan, getZoomAndPan, SVGZoomAndPan(..),
-        gTypeSVGZoomAndPan)
+        gTypeSVGZoomAndPan, IsSVGZoomAndPan, toSVGZoomAndPan)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,12 +35,16 @@
         js_setZoomAndPan :: SVGZoomAndPan -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomAndPan.zoomAndPan Mozilla SVGZoomAndPan.zoomAndPan documentation> 
-setZoomAndPan :: (MonadIO m) => SVGZoomAndPan -> Word -> m ()
-setZoomAndPan self val = liftIO (js_setZoomAndPan (self) val)
+setZoomAndPan ::
+              (MonadIO m, IsSVGZoomAndPan self) => self -> Word -> m ()
+setZoomAndPan self val
+  = liftIO (js_setZoomAndPan (toSVGZoomAndPan self) val)
  
 foreign import javascript unsafe "$1[\"zoomAndPan\"]"
         js_getZoomAndPan :: SVGZoomAndPan -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomAndPan.zoomAndPan Mozilla SVGZoomAndPan.zoomAndPan documentation> 
-getZoomAndPan :: (MonadIO m) => SVGZoomAndPan -> m Word
-getZoomAndPan self = liftIO (js_getZoomAndPan (self))
+getZoomAndPan ::
+              (MonadIO m, IsSVGZoomAndPan self) => self -> m Word
+getZoomAndPan self
+  = liftIO (js_getZoomAndPan (toSVGZoomAndPan self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SVGZoomEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/SVGZoomEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SVGZoomEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SVGZoomEvent.hs
@@ -4,19 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SVGZoomEvent
-       (js_getZoomRectScreen, getZoomRectScreen, getZoomRectScreenUnsafe,
-        getZoomRectScreenUnchecked, js_getPreviousScale, getPreviousScale,
-        js_getPreviousTranslate, getPreviousTranslate,
-        getPreviousTranslateUnsafe, getPreviousTranslateUnchecked,
+       (js_getZoomRectScreen, getZoomRectScreen, js_getPreviousScale,
+        getPreviousScale, js_getPreviousTranslate, getPreviousTranslate,
         js_getNewScale, getNewScale, js_getNewTranslate, getNewTranslate,
-        getNewTranslateUnsafe, getNewTranslateUnchecked, SVGZoomEvent(..),
-        gTypeSVGZoomEvent)
+        SVGZoomEvent(..), gTypeSVGZoomEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,93 +22,43 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"zoomRectScreen\"]"
-        js_getZoomRectScreen :: SVGZoomEvent -> IO (Nullable SVGRect)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent.zoomRectScreen Mozilla SVGZoomEvent.zoomRectScreen documentation> 
-getZoomRectScreen ::
-                  (MonadIO m) => SVGZoomEvent -> m (Maybe SVGRect)
-getZoomRectScreen self
-  = liftIO (nullableToMaybe <$> (js_getZoomRectScreen (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent.zoomRectScreen Mozilla SVGZoomEvent.zoomRectScreen documentation> 
-getZoomRectScreenUnsafe ::
-                        (MonadIO m, HasCallStack) => SVGZoomEvent -> m SVGRect
-getZoomRectScreenUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getZoomRectScreen (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getZoomRectScreen :: SVGZoomEvent -> IO SVGRect
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent.zoomRectScreen Mozilla SVGZoomEvent.zoomRectScreen documentation> 
-getZoomRectScreenUnchecked ::
-                           (MonadIO m) => SVGZoomEvent -> m SVGRect
-getZoomRectScreenUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getZoomRectScreen (self)))
+getZoomRectScreen :: (MonadIO m) => SVGZoomEvent -> m SVGRect
+getZoomRectScreen self = liftIO (js_getZoomRectScreen self)
  
 foreign import javascript unsafe "$1[\"previousScale\"]"
         js_getPreviousScale :: SVGZoomEvent -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent.previousScale Mozilla SVGZoomEvent.previousScale documentation> 
 getPreviousScale :: (MonadIO m) => SVGZoomEvent -> m Float
-getPreviousScale self = liftIO (js_getPreviousScale (self))
+getPreviousScale self = liftIO (js_getPreviousScale self)
  
 foreign import javascript unsafe "$1[\"previousTranslate\"]"
-        js_getPreviousTranslate :: SVGZoomEvent -> IO (Nullable SVGPoint)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent.previousTranslate Mozilla SVGZoomEvent.previousTranslate documentation> 
-getPreviousTranslate ::
-                     (MonadIO m) => SVGZoomEvent -> m (Maybe SVGPoint)
-getPreviousTranslate self
-  = liftIO (nullableToMaybe <$> (js_getPreviousTranslate (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent.previousTranslate Mozilla SVGZoomEvent.previousTranslate documentation> 
-getPreviousTranslateUnsafe ::
-                           (MonadIO m, HasCallStack) => SVGZoomEvent -> m SVGPoint
-getPreviousTranslateUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPreviousTranslate (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getPreviousTranslate :: SVGZoomEvent -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent.previousTranslate Mozilla SVGZoomEvent.previousTranslate documentation> 
-getPreviousTranslateUnchecked ::
-                              (MonadIO m) => SVGZoomEvent -> m SVGPoint
-getPreviousTranslateUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPreviousTranslate (self)))
+getPreviousTranslate :: (MonadIO m) => SVGZoomEvent -> m SVGPoint
+getPreviousTranslate self = liftIO (js_getPreviousTranslate self)
  
 foreign import javascript unsafe "$1[\"newScale\"]" js_getNewScale
         :: SVGZoomEvent -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent.newScale Mozilla SVGZoomEvent.newScale documentation> 
 getNewScale :: (MonadIO m) => SVGZoomEvent -> m Float
-getNewScale self = liftIO (js_getNewScale (self))
+getNewScale self = liftIO (js_getNewScale self)
  
 foreign import javascript unsafe "$1[\"newTranslate\"]"
-        js_getNewTranslate :: SVGZoomEvent -> IO (Nullable SVGPoint)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent.newTranslate Mozilla SVGZoomEvent.newTranslate documentation> 
-getNewTranslate ::
-                (MonadIO m) => SVGZoomEvent -> m (Maybe SVGPoint)
-getNewTranslate self
-  = liftIO (nullableToMaybe <$> (js_getNewTranslate (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent.newTranslate Mozilla SVGZoomEvent.newTranslate documentation> 
-getNewTranslateUnsafe ::
-                      (MonadIO m, HasCallStack) => SVGZoomEvent -> m SVGPoint
-getNewTranslateUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getNewTranslate (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getNewTranslate :: SVGZoomEvent -> IO SVGPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent.newTranslate Mozilla SVGZoomEvent.newTranslate documentation> 
-getNewTranslateUnchecked ::
-                         (MonadIO m) => SVGZoomEvent -> m SVGPoint
-getNewTranslateUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getNewTranslate (self)))
+getNewTranslate :: (MonadIO m) => SVGZoomEvent -> m SVGPoint
+getNewTranslate self = liftIO (js_getNewTranslate self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Screen.hs b/src/GHCJS/DOM/JSFFI/Generated/Screen.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Screen.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Screen.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,53 +34,53 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Screen.height Mozilla Screen.height documentation> 
 getHeight :: (MonadIO m) => Screen -> m Word
-getHeight self = liftIO (js_getHeight (self))
+getHeight self = liftIO (js_getHeight self)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         Screen -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Screen.width Mozilla Screen.width documentation> 
 getWidth :: (MonadIO m) => Screen -> m Word
-getWidth self = liftIO (js_getWidth (self))
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"colorDepth\"]"
         js_getColorDepth :: Screen -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Screen.colorDepth Mozilla Screen.colorDepth documentation> 
 getColorDepth :: (MonadIO m) => Screen -> m Word
-getColorDepth self = liftIO (js_getColorDepth (self))
+getColorDepth self = liftIO (js_getColorDepth self)
  
 foreign import javascript unsafe "$1[\"pixelDepth\"]"
         js_getPixelDepth :: Screen -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Screen.pixelDepth Mozilla Screen.pixelDepth documentation> 
 getPixelDepth :: (MonadIO m) => Screen -> m Word
-getPixelDepth self = liftIO (js_getPixelDepth (self))
+getPixelDepth self = liftIO (js_getPixelDepth self)
  
 foreign import javascript unsafe "$1[\"availLeft\"]"
         js_getAvailLeft :: Screen -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Screen.availLeft Mozilla Screen.availLeft documentation> 
 getAvailLeft :: (MonadIO m) => Screen -> m Int
-getAvailLeft self = liftIO (js_getAvailLeft (self))
+getAvailLeft self = liftIO (js_getAvailLeft self)
  
 foreign import javascript unsafe "$1[\"availTop\"]" js_getAvailTop
         :: Screen -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Screen.availTop Mozilla Screen.availTop documentation> 
 getAvailTop :: (MonadIO m) => Screen -> m Int
-getAvailTop self = liftIO (js_getAvailTop (self))
+getAvailTop self = liftIO (js_getAvailTop self)
  
 foreign import javascript unsafe "$1[\"availHeight\"]"
         js_getAvailHeight :: Screen -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Screen.availHeight Mozilla Screen.availHeight documentation> 
 getAvailHeight :: (MonadIO m) => Screen -> m Word
-getAvailHeight self = liftIO (js_getAvailHeight (self))
+getAvailHeight self = liftIO (js_getAvailHeight self)
  
 foreign import javascript unsafe "$1[\"availWidth\"]"
         js_getAvailWidth :: Screen -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Screen.availWidth Mozilla Screen.availWidth documentation> 
 getAvailWidth :: (MonadIO m) => Screen -> m Word
-getAvailWidth self = liftIO (js_getAvailWidth (self))
+getAvailWidth self = liftIO (js_getAvailWidth self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ScriptProcessorNode.hs b/src/GHCJS/DOM/JSFFI/Generated/ScriptProcessorNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ScriptProcessorNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ScriptProcessorNode.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,4 +35,4 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode.bufferSize Mozilla ScriptProcessorNode.bufferSize documentation> 
 getBufferSize :: (MonadIO m) => ScriptProcessorNode -> m Int
-getBufferSize self = liftIO (js_getBufferSize (self))
+getBufferSize self = liftIO (js_getBufferSize self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ScriptProfile.hs b/src/GHCJS/DOM/JSFFI/Generated/ScriptProfile.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/ScriptProfile.hs
+++ /dev/null
@@ -1,65 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.ScriptProfile
-       (js_getTitle, getTitle, js_getUid, getUid, js_getRootNode,
-        getRootNode, getRootNodeUnsafe, getRootNodeUnchecked,
-        ScriptProfile(..), gTypeScriptProfile)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"title\"]" js_getTitle ::
-        ScriptProfile -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfile.title Mozilla ScriptProfile.title documentation> 
-getTitle ::
-         (MonadIO m, FromJSString result) => ScriptProfile -> m result
-getTitle self = liftIO (fromJSString <$> (js_getTitle (self)))
- 
-foreign import javascript unsafe "$1[\"uid\"]" js_getUid ::
-        ScriptProfile -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfile.uid Mozilla ScriptProfile.uid documentation> 
-getUid :: (MonadIO m) => ScriptProfile -> m Word
-getUid self = liftIO (js_getUid (self))
- 
-foreign import javascript unsafe "$1[\"rootNode\"]" js_getRootNode
-        :: ScriptProfile -> IO (Nullable ScriptProfileNode)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfile.rootNode Mozilla ScriptProfile.rootNode documentation> 
-getRootNode ::
-            (MonadIO m) => ScriptProfile -> m (Maybe ScriptProfileNode)
-getRootNode self
-  = liftIO (nullableToMaybe <$> (js_getRootNode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfile.rootNode Mozilla ScriptProfile.rootNode documentation> 
-getRootNodeUnsafe ::
-                  (MonadIO m, HasCallStack) => ScriptProfile -> m ScriptProfileNode
-getRootNodeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRootNode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfile.rootNode Mozilla ScriptProfile.rootNode documentation> 
-getRootNodeUnchecked ::
-                     (MonadIO m) => ScriptProfile -> m ScriptProfileNode
-getRootNodeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRootNode (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ScriptProfileNode.hs b/src/GHCJS/DOM/JSFFI/Generated/ScriptProfileNode.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/ScriptProfileNode.hs
+++ /dev/null
@@ -1,79 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.ScriptProfileNode
-       (js_children, children, children_, js_getId, getId,
-        js_getFunctionName, getFunctionName, js_getUrl, getUrl,
-        js_getLineNumber, getLineNumber, js_getColumnNumber,
-        getColumnNumber, ScriptProfileNode(..), gTypeScriptProfileNode)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"children\"]()" js_children
-        :: ScriptProfileNode -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfileNode.children Mozilla ScriptProfileNode.children documentation> 
-children ::
-         (MonadIO m) => ScriptProfileNode -> m [Maybe ScriptProfileNode]
-children self
-  = liftIO ((js_children (self)) >>= fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfileNode.children Mozilla ScriptProfileNode.children documentation> 
-children_ :: (MonadIO m) => ScriptProfileNode -> m ()
-children_ self = liftIO (void (js_children (self)))
- 
-foreign import javascript unsafe "$1[\"id\"]" js_getId ::
-        ScriptProfileNode -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfileNode.id Mozilla ScriptProfileNode.id documentation> 
-getId :: (MonadIO m) => ScriptProfileNode -> m Word
-getId self = liftIO (js_getId (self))
- 
-foreign import javascript unsafe "$1[\"functionName\"]"
-        js_getFunctionName :: ScriptProfileNode -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfileNode.functionName Mozilla ScriptProfileNode.functionName documentation> 
-getFunctionName ::
-                (MonadIO m, FromJSString result) => ScriptProfileNode -> m result
-getFunctionName self
-  = liftIO (fromJSString <$> (js_getFunctionName (self)))
- 
-foreign import javascript unsafe "$1[\"url\"]" js_getUrl ::
-        ScriptProfileNode -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfileNode.url Mozilla ScriptProfileNode.url documentation> 
-getUrl ::
-       (MonadIO m, FromJSString result) => ScriptProfileNode -> m result
-getUrl self = liftIO (fromJSString <$> (js_getUrl (self)))
- 
-foreign import javascript unsafe "$1[\"lineNumber\"]"
-        js_getLineNumber :: ScriptProfileNode -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfileNode.lineNumber Mozilla ScriptProfileNode.lineNumber documentation> 
-getLineNumber :: (MonadIO m) => ScriptProfileNode -> m Word
-getLineNumber self = liftIO (js_getLineNumber (self))
- 
-foreign import javascript unsafe "$1[\"columnNumber\"]"
-        js_getColumnNumber :: ScriptProfileNode -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfileNode.columnNumber Mozilla ScriptProfileNode.columnNumber documentation> 
-getColumnNumber :: (MonadIO m) => ScriptProfileNode -> m Word
-getColumnNumber self = liftIO (js_getColumnNumber (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SecurityPolicy.hs b/src/GHCJS/DOM/JSFFI/Generated/SecurityPolicy.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/SecurityPolicy.hs
+++ /dev/null
@@ -1,253 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.SecurityPolicy
-       (js_allowsConnectionTo, allowsConnectionTo, allowsConnectionTo_,
-        js_allowsFontFrom, allowsFontFrom, allowsFontFrom_,
-        js_allowsFormAction, allowsFormAction, allowsFormAction_,
-        js_allowsFrameFrom, allowsFrameFrom, allowsFrameFrom_,
-        js_allowsImageFrom, allowsImageFrom, allowsImageFrom_,
-        js_allowsMediaFrom, allowsMediaFrom, allowsMediaFrom_,
-        js_allowsObjectFrom, allowsObjectFrom, allowsObjectFrom_,
-        js_allowsPluginType, allowsPluginType, allowsPluginType_,
-        js_allowsScriptFrom, allowsScriptFrom, allowsScriptFrom_,
-        js_allowsStyleFrom, allowsStyleFrom, allowsStyleFrom_,
-        js_getAllowsEval, getAllowsEval, js_getAllowsInlineScript,
-        getAllowsInlineScript, js_getAllowsInlineStyle,
-        getAllowsInlineStyle, js_getIsActive, getIsActive,
-        js_getReportURIs, getReportURIs, getReportURIsUnsafe,
-        getReportURIsUnchecked, SecurityPolicy(..), gTypeSecurityPolicy)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe
-        "($1[\"allowsConnectionTo\"]($2) ? 1 : 0)" js_allowsConnectionTo ::
-        SecurityPolicy -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsConnectionTo Mozilla SecurityPolicy.allowsConnectionTo documentation> 
-allowsConnectionTo ::
-                   (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m Bool
-allowsConnectionTo self url
-  = liftIO (js_allowsConnectionTo (self) (toJSString url))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsConnectionTo Mozilla SecurityPolicy.allowsConnectionTo documentation> 
-allowsConnectionTo_ ::
-                    (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m ()
-allowsConnectionTo_ self url
-  = liftIO (void (js_allowsConnectionTo (self) (toJSString url)))
- 
-foreign import javascript unsafe
-        "($1[\"allowsFontFrom\"]($2) ? 1 : 0)" js_allowsFontFrom ::
-        SecurityPolicy -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsFontFrom Mozilla SecurityPolicy.allowsFontFrom documentation> 
-allowsFontFrom ::
-               (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m Bool
-allowsFontFrom self url
-  = liftIO (js_allowsFontFrom (self) (toJSString url))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsFontFrom Mozilla SecurityPolicy.allowsFontFrom documentation> 
-allowsFontFrom_ ::
-                (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m ()
-allowsFontFrom_ self url
-  = liftIO (void (js_allowsFontFrom (self) (toJSString url)))
- 
-foreign import javascript unsafe
-        "($1[\"allowsFormAction\"]($2) ? 1 : 0)" js_allowsFormAction ::
-        SecurityPolicy -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsFormAction Mozilla SecurityPolicy.allowsFormAction documentation> 
-allowsFormAction ::
-                 (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m Bool
-allowsFormAction self url
-  = liftIO (js_allowsFormAction (self) (toJSString url))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsFormAction Mozilla SecurityPolicy.allowsFormAction documentation> 
-allowsFormAction_ ::
-                  (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m ()
-allowsFormAction_ self url
-  = liftIO (void (js_allowsFormAction (self) (toJSString url)))
- 
-foreign import javascript unsafe
-        "($1[\"allowsFrameFrom\"]($2) ? 1 : 0)" js_allowsFrameFrom ::
-        SecurityPolicy -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsFrameFrom Mozilla SecurityPolicy.allowsFrameFrom documentation> 
-allowsFrameFrom ::
-                (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m Bool
-allowsFrameFrom self url
-  = liftIO (js_allowsFrameFrom (self) (toJSString url))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsFrameFrom Mozilla SecurityPolicy.allowsFrameFrom documentation> 
-allowsFrameFrom_ ::
-                 (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m ()
-allowsFrameFrom_ self url
-  = liftIO (void (js_allowsFrameFrom (self) (toJSString url)))
- 
-foreign import javascript unsafe
-        "($1[\"allowsImageFrom\"]($2) ? 1 : 0)" js_allowsImageFrom ::
-        SecurityPolicy -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsImageFrom Mozilla SecurityPolicy.allowsImageFrom documentation> 
-allowsImageFrom ::
-                (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m Bool
-allowsImageFrom self url
-  = liftIO (js_allowsImageFrom (self) (toJSString url))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsImageFrom Mozilla SecurityPolicy.allowsImageFrom documentation> 
-allowsImageFrom_ ::
-                 (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m ()
-allowsImageFrom_ self url
-  = liftIO (void (js_allowsImageFrom (self) (toJSString url)))
- 
-foreign import javascript unsafe
-        "($1[\"allowsMediaFrom\"]($2) ? 1 : 0)" js_allowsMediaFrom ::
-        SecurityPolicy -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsMediaFrom Mozilla SecurityPolicy.allowsMediaFrom documentation> 
-allowsMediaFrom ::
-                (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m Bool
-allowsMediaFrom self url
-  = liftIO (js_allowsMediaFrom (self) (toJSString url))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsMediaFrom Mozilla SecurityPolicy.allowsMediaFrom documentation> 
-allowsMediaFrom_ ::
-                 (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m ()
-allowsMediaFrom_ self url
-  = liftIO (void (js_allowsMediaFrom (self) (toJSString url)))
- 
-foreign import javascript unsafe
-        "($1[\"allowsObjectFrom\"]($2) ? 1 : 0)" js_allowsObjectFrom ::
-        SecurityPolicy -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsObjectFrom Mozilla SecurityPolicy.allowsObjectFrom documentation> 
-allowsObjectFrom ::
-                 (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m Bool
-allowsObjectFrom self url
-  = liftIO (js_allowsObjectFrom (self) (toJSString url))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsObjectFrom Mozilla SecurityPolicy.allowsObjectFrom documentation> 
-allowsObjectFrom_ ::
-                  (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m ()
-allowsObjectFrom_ self url
-  = liftIO (void (js_allowsObjectFrom (self) (toJSString url)))
- 
-foreign import javascript unsafe
-        "($1[\"allowsPluginType\"]($2) ? 1 : 0)" js_allowsPluginType ::
-        SecurityPolicy -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsPluginType Mozilla SecurityPolicy.allowsPluginType documentation> 
-allowsPluginType ::
-                 (MonadIO m, ToJSString type') => SecurityPolicy -> type' -> m Bool
-allowsPluginType self type'
-  = liftIO (js_allowsPluginType (self) (toJSString type'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsPluginType Mozilla SecurityPolicy.allowsPluginType documentation> 
-allowsPluginType_ ::
-                  (MonadIO m, ToJSString type') => SecurityPolicy -> type' -> m ()
-allowsPluginType_ self type'
-  = liftIO (void (js_allowsPluginType (self) (toJSString type')))
- 
-foreign import javascript unsafe
-        "($1[\"allowsScriptFrom\"]($2) ? 1 : 0)" js_allowsScriptFrom ::
-        SecurityPolicy -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsScriptFrom Mozilla SecurityPolicy.allowsScriptFrom documentation> 
-allowsScriptFrom ::
-                 (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m Bool
-allowsScriptFrom self url
-  = liftIO (js_allowsScriptFrom (self) (toJSString url))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsScriptFrom Mozilla SecurityPolicy.allowsScriptFrom documentation> 
-allowsScriptFrom_ ::
-                  (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m ()
-allowsScriptFrom_ self url
-  = liftIO (void (js_allowsScriptFrom (self) (toJSString url)))
- 
-foreign import javascript unsafe
-        "($1[\"allowsStyleFrom\"]($2) ? 1 : 0)" js_allowsStyleFrom ::
-        SecurityPolicy -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsStyleFrom Mozilla SecurityPolicy.allowsStyleFrom documentation> 
-allowsStyleFrom ::
-                (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m Bool
-allowsStyleFrom self url
-  = liftIO (js_allowsStyleFrom (self) (toJSString url))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsStyleFrom Mozilla SecurityPolicy.allowsStyleFrom documentation> 
-allowsStyleFrom_ ::
-                 (MonadIO m, ToJSString url) => SecurityPolicy -> url -> m ()
-allowsStyleFrom_ self url
-  = liftIO (void (js_allowsStyleFrom (self) (toJSString url)))
- 
-foreign import javascript unsafe "($1[\"allowsEval\"] ? 1 : 0)"
-        js_getAllowsEval :: SecurityPolicy -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsEval Mozilla SecurityPolicy.allowsEval documentation> 
-getAllowsEval :: (MonadIO m) => SecurityPolicy -> m Bool
-getAllowsEval self = liftIO (js_getAllowsEval (self))
- 
-foreign import javascript unsafe
-        "($1[\"allowsInlineScript\"] ? 1 : 0)" js_getAllowsInlineScript ::
-        SecurityPolicy -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsInlineScript Mozilla SecurityPolicy.allowsInlineScript documentation> 
-getAllowsInlineScript :: (MonadIO m) => SecurityPolicy -> m Bool
-getAllowsInlineScript self
-  = liftIO (js_getAllowsInlineScript (self))
- 
-foreign import javascript unsafe
-        "($1[\"allowsInlineStyle\"] ? 1 : 0)" js_getAllowsInlineStyle ::
-        SecurityPolicy -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.allowsInlineStyle Mozilla SecurityPolicy.allowsInlineStyle documentation> 
-getAllowsInlineStyle :: (MonadIO m) => SecurityPolicy -> m Bool
-getAllowsInlineStyle self = liftIO (js_getAllowsInlineStyle (self))
- 
-foreign import javascript unsafe "($1[\"isActive\"] ? 1 : 0)"
-        js_getIsActive :: SecurityPolicy -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.isActive Mozilla SecurityPolicy.isActive documentation> 
-getIsActive :: (MonadIO m) => SecurityPolicy -> m Bool
-getIsActive self = liftIO (js_getIsActive (self))
- 
-foreign import javascript unsafe "$1[\"reportURIs\"]"
-        js_getReportURIs :: SecurityPolicy -> IO (Nullable DOMStringList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.reportURIs Mozilla SecurityPolicy.reportURIs documentation> 
-getReportURIs ::
-              (MonadIO m) => SecurityPolicy -> m (Maybe DOMStringList)
-getReportURIs self
-  = liftIO (nullableToMaybe <$> (js_getReportURIs (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.reportURIs Mozilla SecurityPolicy.reportURIs documentation> 
-getReportURIsUnsafe ::
-                    (MonadIO m, HasCallStack) => SecurityPolicy -> m DOMStringList
-getReportURIsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getReportURIs (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy.reportURIs Mozilla SecurityPolicy.reportURIs documentation> 
-getReportURIsUnchecked ::
-                       (MonadIO m) => SecurityPolicy -> m DOMStringList
-getReportURIsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getReportURIs (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SecurityPolicyViolationEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/SecurityPolicyViolationEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SecurityPolicyViolationEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SecurityPolicyViolationEvent.hs
@@ -4,11 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SecurityPolicyViolationEvent
-       (js_getDocumentURI, getDocumentURI, js_getReferrer, getReferrer,
-        js_getBlockedURI, getBlockedURI, js_getViolatedDirective,
-        getViolatedDirective, js_getEffectiveDirective,
-        getEffectiveDirective, js_getOriginalPolicy, getOriginalPolicy,
-        js_getSourceFile, getSourceFile, js_getLineNumber, getLineNumber,
+       (js_newSecurityPolicyViolationEvent,
+        newSecurityPolicyViolationEvent, js_getDocumentURI, getDocumentURI,
+        js_getReferrer, getReferrer, js_getBlockedURI, getBlockedURI,
+        js_getViolatedDirective, getViolatedDirective,
+        js_getEffectiveDirective, getEffectiveDirective,
+        js_getOriginalPolicy, getOriginalPolicy, js_getSourceFile,
+        getSourceFile, js_getStatusCode, getStatusCode, js_getLineNumber,
+        getLineNumber, js_getColumnNumber, getColumnNumber,
         SecurityPolicyViolationEvent(..),
         gTypeSecurityPolicyViolationEvent)
        where
@@ -16,7 +19,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,11 +28,30 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"SecurityPolicyViolationEvent\"]($1,\n$2)"
+        js_newSecurityPolicyViolationEvent ::
+        JSString ->
+          Optional SecurityPolicyViolationEventInit ->
+            IO SecurityPolicyViolationEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicyViolationEvent Mozilla SecurityPolicyViolationEvent documentation> 
+newSecurityPolicyViolationEvent ::
+                                (MonadIO m, ToJSString type') =>
+                                  type' ->
+                                    Maybe SecurityPolicyViolationEventInit ->
+                                      m SecurityPolicyViolationEvent
+newSecurityPolicyViolationEvent type' eventInitDict
+  = liftIO
+      (js_newSecurityPolicyViolationEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"documentURI\"]"
         js_getDocumentURI :: SecurityPolicyViolationEvent -> IO JSString
 
@@ -38,7 +60,7 @@
                (MonadIO m, FromJSString result) =>
                  SecurityPolicyViolationEvent -> m result
 getDocumentURI self
-  = liftIO (fromJSString <$> (js_getDocumentURI (self)))
+  = liftIO (fromJSString <$> (js_getDocumentURI self))
  
 foreign import javascript unsafe "$1[\"referrer\"]" js_getReferrer
         :: SecurityPolicyViolationEvent -> IO JSString
@@ -47,8 +69,7 @@
 getReferrer ::
             (MonadIO m, FromJSString result) =>
               SecurityPolicyViolationEvent -> m result
-getReferrer self
-  = liftIO (fromJSString <$> (js_getReferrer (self)))
+getReferrer self = liftIO (fromJSString <$> (js_getReferrer self))
  
 foreign import javascript unsafe "$1[\"blockedURI\"]"
         js_getBlockedURI :: SecurityPolicyViolationEvent -> IO JSString
@@ -58,7 +79,7 @@
               (MonadIO m, FromJSString result) =>
                 SecurityPolicyViolationEvent -> m result
 getBlockedURI self
-  = liftIO (fromJSString <$> (js_getBlockedURI (self)))
+  = liftIO (fromJSString <$> (js_getBlockedURI self))
  
 foreign import javascript unsafe "$1[\"violatedDirective\"]"
         js_getViolatedDirective ::
@@ -69,7 +90,7 @@
                      (MonadIO m, FromJSString result) =>
                        SecurityPolicyViolationEvent -> m result
 getViolatedDirective self
-  = liftIO (fromJSString <$> (js_getViolatedDirective (self)))
+  = liftIO (fromJSString <$> (js_getViolatedDirective self))
  
 foreign import javascript unsafe "$1[\"effectiveDirective\"]"
         js_getEffectiveDirective ::
@@ -80,7 +101,7 @@
                       (MonadIO m, FromJSString result) =>
                         SecurityPolicyViolationEvent -> m result
 getEffectiveDirective self
-  = liftIO (fromJSString <$> (js_getEffectiveDirective (self)))
+  = liftIO (fromJSString <$> (js_getEffectiveDirective self))
  
 foreign import javascript unsafe "$1[\"originalPolicy\"]"
         js_getOriginalPolicy :: SecurityPolicyViolationEvent -> IO JSString
@@ -90,7 +111,7 @@
                   (MonadIO m, FromJSString result) =>
                     SecurityPolicyViolationEvent -> m result
 getOriginalPolicy self
-  = liftIO (fromJSString <$> (js_getOriginalPolicy (self)))
+  = liftIO (fromJSString <$> (js_getOriginalPolicy self))
  
 foreign import javascript unsafe "$1[\"sourceFile\"]"
         js_getSourceFile :: SecurityPolicyViolationEvent -> IO JSString
@@ -100,12 +121,28 @@
               (MonadIO m, FromJSString result) =>
                 SecurityPolicyViolationEvent -> m result
 getSourceFile self
-  = liftIO (fromJSString <$> (js_getSourceFile (self)))
+  = liftIO (fromJSString <$> (js_getSourceFile self))
  
+foreign import javascript unsafe "$1[\"statusCode\"]"
+        js_getStatusCode :: SecurityPolicyViolationEvent -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicyViolationEvent.statusCode Mozilla SecurityPolicyViolationEvent.statusCode documentation> 
+getStatusCode ::
+              (MonadIO m) => SecurityPolicyViolationEvent -> m Word
+getStatusCode self = liftIO (js_getStatusCode self)
+ 
 foreign import javascript unsafe "$1[\"lineNumber\"]"
         js_getLineNumber :: SecurityPolicyViolationEvent -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicyViolationEvent.lineNumber Mozilla SecurityPolicyViolationEvent.lineNumber documentation> 
 getLineNumber ::
               (MonadIO m) => SecurityPolicyViolationEvent -> m Int
-getLineNumber self = liftIO (js_getLineNumber (self))
+getLineNumber self = liftIO (js_getLineNumber self)
+ 
+foreign import javascript unsafe "$1[\"columnNumber\"]"
+        js_getColumnNumber :: SecurityPolicyViolationEvent -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicyViolationEvent.columnNumber Mozilla SecurityPolicyViolationEvent.columnNumber documentation> 
+getColumnNumber ::
+                (MonadIO m) => SecurityPolicyViolationEvent -> m Int
+getColumnNumber self = liftIO (js_getColumnNumber self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Selection.hs b/src/GHCJS/DOM/JSFFI/Generated/Selection.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Selection.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Selection.hs
@@ -8,26 +8,26 @@
         js_collapseToStart, collapseToStart, js_deleteFromDocument,
         deleteFromDocument, js_containsNode, containsNode, containsNode_,
         js_selectAllChildren, selectAllChildren, js_extend, extend,
-        js_getRangeAt, getRangeAt, getRangeAt_, getRangeAtUnsafe,
-        getRangeAtUnchecked, js_removeAllRanges, removeAllRanges,
-        js_addRange, addRange, js_toString, toString, toString_, js_modify,
-        modify, js_setBaseAndExtent, setBaseAndExtent, js_setPosition,
-        setPosition, js_empty, empty, js_getAnchorNode, getAnchorNode,
-        getAnchorNodeUnsafe, getAnchorNodeUnchecked, js_getAnchorOffset,
-        getAnchorOffset, js_getFocusNode, getFocusNode, getFocusNodeUnsafe,
-        getFocusNodeUnchecked, js_getFocusOffset, getFocusOffset,
-        js_getIsCollapsed, getIsCollapsed, js_getRangeCount, getRangeCount,
+        js_getRangeAt, getRangeAt, getRangeAt_, js_removeAllRanges,
+        removeAllRanges, js_addRange, addRange, js_toString, toString,
+        toString_, js_setBaseAndExtent, setBaseAndExtent, js_setPosition,
+        setPosition, js_empty, empty, js_modify, modify, js_getAnchorNode,
+        getAnchorNode, getAnchorNodeUnsafe, getAnchorNodeUnchecked,
+        js_getAnchorOffset, getAnchorOffset, js_getFocusNode, getFocusNode,
+        getFocusNodeUnsafe, getFocusNodeUnchecked, js_getFocusOffset,
+        getFocusOffset, js_getIsCollapsed, getIsCollapsed,
+        js_getRangeCount, getRangeCount, js_getType, getType,
         js_getBaseNode, getBaseNode, getBaseNodeUnsafe,
         getBaseNodeUnchecked, js_getBaseOffset, getBaseOffset,
         js_getExtentNode, getExtentNode, getExtentNodeUnsafe,
         getExtentNodeUnchecked, js_getExtentOffset, getExtentOffset,
-        js_getType, getType, Selection(..), gTypeSelection)
+        Selection(..), gTypeSelection)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -36,124 +36,103 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"collapse\"]($2, $3)"
-        js_collapse :: Selection -> Nullable Node -> Int -> IO ()
+        js_collapse :: Selection -> Optional Node -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.collapse Mozilla Selection.collapse documentation> 
 collapse ::
-         (MonadIO m, IsNode node) => Selection -> Maybe node -> Int -> m ()
-collapse self node index
+         (MonadIO m, IsNode node) =>
+           Selection -> Maybe node -> Maybe Word -> m ()
+collapse self node offset
   = liftIO
-      (js_collapse (self) (maybeToNullable (fmap toNode node)) index)
+      (js_collapse self (maybeToOptional (fmap toNode node))
+         (maybeToOptional offset))
  
 foreign import javascript unsafe "$1[\"collapseToEnd\"]()"
         js_collapseToEnd :: Selection -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.collapseToEnd Mozilla Selection.collapseToEnd documentation> 
 collapseToEnd :: (MonadIO m) => Selection -> m ()
-collapseToEnd self = liftIO (js_collapseToEnd (self))
+collapseToEnd self = liftIO (js_collapseToEnd self)
  
 foreign import javascript unsafe "$1[\"collapseToStart\"]()"
         js_collapseToStart :: Selection -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.collapseToStart Mozilla Selection.collapseToStart documentation> 
 collapseToStart :: (MonadIO m) => Selection -> m ()
-collapseToStart self = liftIO (js_collapseToStart (self))
+collapseToStart self = liftIO (js_collapseToStart self)
  
 foreign import javascript unsafe "$1[\"deleteFromDocument\"]()"
         js_deleteFromDocument :: Selection -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.deleteFromDocument Mozilla Selection.deleteFromDocument documentation> 
 deleteFromDocument :: (MonadIO m) => Selection -> m ()
-deleteFromDocument self = liftIO (js_deleteFromDocument (self))
+deleteFromDocument self = liftIO (js_deleteFromDocument self)
  
 foreign import javascript unsafe
         "($1[\"containsNode\"]($2,\n$3) ? 1 : 0)" js_containsNode ::
-        Selection -> Nullable Node -> Bool -> IO Bool
+        Selection -> Node -> Bool -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.containsNode Mozilla Selection.containsNode documentation> 
 containsNode ::
-             (MonadIO m, IsNode node) =>
-               Selection -> Maybe node -> Bool -> m Bool
+             (MonadIO m, IsNode node) => Selection -> node -> Bool -> m Bool
 containsNode self node allowPartial
-  = liftIO
-      (js_containsNode (self) (maybeToNullable (fmap toNode node))
-         allowPartial)
+  = liftIO (js_containsNode self (toNode node) allowPartial)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.containsNode Mozilla Selection.containsNode documentation> 
 containsNode_ ::
-              (MonadIO m, IsNode node) => Selection -> Maybe node -> Bool -> m ()
+              (MonadIO m, IsNode node) => Selection -> node -> Bool -> m ()
 containsNode_ self node allowPartial
-  = liftIO
-      (void
-         (js_containsNode (self) (maybeToNullable (fmap toNode node))
-            allowPartial))
+  = liftIO (void (js_containsNode self (toNode node) allowPartial))
  
 foreign import javascript unsafe "$1[\"selectAllChildren\"]($2)"
-        js_selectAllChildren :: Selection -> Nullable Node -> IO ()
+        js_selectAllChildren :: Selection -> Node -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.selectAllChildren Mozilla Selection.selectAllChildren documentation> 
 selectAllChildren ::
-                  (MonadIO m, IsNode node) => Selection -> Maybe node -> m ()
+                  (MonadIO m, IsNode node) => Selection -> node -> m ()
 selectAllChildren self node
-  = liftIO
-      (js_selectAllChildren (self) (maybeToNullable (fmap toNode node)))
+  = liftIO (js_selectAllChildren self (toNode node))
  
 foreign import javascript unsafe "$1[\"extend\"]($2, $3)" js_extend
-        :: Selection -> Nullable Node -> Int -> IO ()
+        :: Selection -> Node -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.extend Mozilla Selection.extend documentation> 
 extend ::
-       (MonadIO m, IsNode node) => Selection -> Maybe node -> Int -> m ()
+       (MonadIO m, IsNode node) => Selection -> node -> Maybe Word -> m ()
 extend self node offset
-  = liftIO
-      (js_extend (self) (maybeToNullable (fmap toNode node)) offset)
+  = liftIO (js_extend self (toNode node) (maybeToOptional offset))
  
 foreign import javascript unsafe "$1[\"getRangeAt\"]($2)"
-        js_getRangeAt :: Selection -> Int -> IO (Nullable Range)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.getRangeAt Mozilla Selection.getRangeAt documentation> 
-getRangeAt :: (MonadIO m) => Selection -> Int -> m (Maybe Range)
-getRangeAt self index
-  = liftIO (nullableToMaybe <$> (js_getRangeAt (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.getRangeAt Mozilla Selection.getRangeAt documentation> 
-getRangeAt_ :: (MonadIO m) => Selection -> Int -> m ()
-getRangeAt_ self index = liftIO (void (js_getRangeAt (self) index))
+        js_getRangeAt :: Selection -> Word -> IO Range
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.getRangeAt Mozilla Selection.getRangeAt documentation> 
-getRangeAtUnsafe ::
-                 (MonadIO m, HasCallStack) => Selection -> Int -> m Range
-getRangeAtUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_getRangeAt (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+getRangeAt :: (MonadIO m) => Selection -> Word -> m Range
+getRangeAt self index = liftIO (js_getRangeAt self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.getRangeAt Mozilla Selection.getRangeAt documentation> 
-getRangeAtUnchecked :: (MonadIO m) => Selection -> Int -> m Range
-getRangeAtUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getRangeAt (self) index))
+getRangeAt_ :: (MonadIO m) => Selection -> Word -> m ()
+getRangeAt_ self index = liftIO (void (js_getRangeAt self index))
  
 foreign import javascript unsafe "$1[\"removeAllRanges\"]()"
         js_removeAllRanges :: Selection -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.removeAllRanges Mozilla Selection.removeAllRanges documentation> 
 removeAllRanges :: (MonadIO m) => Selection -> m ()
-removeAllRanges self = liftIO (js_removeAllRanges (self))
+removeAllRanges self = liftIO (js_removeAllRanges self)
  
 foreign import javascript unsafe "$1[\"addRange\"]($2)" js_addRange
-        :: Selection -> Nullable Range -> IO ()
+        :: Selection -> Range -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.addRange Mozilla Selection.addRange documentation> 
-addRange :: (MonadIO m) => Selection -> Maybe Range -> m ()
-addRange self range
-  = liftIO (js_addRange (self) (maybeToNullable range))
+addRange :: (MonadIO m) => Selection -> Range -> m ()
+addRange self range = liftIO (js_addRange self range)
  
 foreign import javascript unsafe "$1[\"toString\"]()" js_toString
         :: Selection -> IO JSString
@@ -161,86 +140,94 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.toString Mozilla Selection.toString documentation> 
 toString ::
          (MonadIO m, FromJSString result) => Selection -> m result
-toString self = liftIO (fromJSString <$> (js_toString (self)))
+toString self = liftIO (fromJSString <$> (js_toString self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.toString Mozilla Selection.toString documentation> 
 toString_ :: (MonadIO m) => Selection -> m ()
-toString_ self = liftIO (void (js_toString (self)))
- 
-foreign import javascript unsafe "$1[\"modify\"]($2, $3, $4)"
-        js_modify :: Selection -> JSString -> JSString -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.modify Mozilla Selection.modify documentation> 
-modify ::
-       (MonadIO m, ToJSString alter, ToJSString direction,
-        ToJSString granularity) =>
-         Selection -> alter -> direction -> granularity -> m ()
-modify self alter direction granularity
-  = liftIO
-      (js_modify (self) (toJSString alter) (toJSString direction)
-         (toJSString granularity))
+toString_ self = liftIO (void (js_toString self))
  
 foreign import javascript unsafe
         "$1[\"setBaseAndExtent\"]($2, $3,\n$4, $5)" js_setBaseAndExtent ::
-        Selection -> Nullable Node -> Int -> Nullable Node -> Int -> IO ()
+        Selection ->
+          Optional Node -> Word -> Optional Node -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.setBaseAndExtent Mozilla Selection.setBaseAndExtent documentation> 
 setBaseAndExtent ::
                  (MonadIO m, IsNode baseNode, IsNode extentNode) =>
                    Selection ->
-                     Maybe baseNode -> Int -> Maybe extentNode -> Int -> m ()
+                     Maybe baseNode -> Word -> Maybe extentNode -> Word -> m ()
 setBaseAndExtent self baseNode baseOffset extentNode extentOffset
   = liftIO
-      (js_setBaseAndExtent (self)
-         (maybeToNullable (fmap toNode baseNode))
+      (js_setBaseAndExtent self (maybeToOptional (fmap toNode baseNode))
          baseOffset
-         (maybeToNullable (fmap toNode extentNode))
+         (maybeToOptional (fmap toNode extentNode))
          extentOffset)
  
 foreign import javascript unsafe "$1[\"setPosition\"]($2, $3)"
-        js_setPosition :: Selection -> Nullable Node -> Int -> IO ()
+        js_setPosition ::
+        Selection -> Optional Node -> Optional Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.setPosition Mozilla Selection.setPosition documentation> 
 setPosition ::
-            (MonadIO m, IsNode node) => Selection -> Maybe node -> Int -> m ()
+            (MonadIO m, IsNode node) =>
+              Selection -> Maybe node -> Maybe Word -> m ()
 setPosition self node offset
   = liftIO
-      (js_setPosition (self) (maybeToNullable (fmap toNode node)) offset)
+      (js_setPosition self (maybeToOptional (fmap toNode node))
+         (maybeToOptional offset))
  
 foreign import javascript unsafe "$1[\"empty\"]()" js_empty ::
         Selection -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.empty Mozilla Selection.empty documentation> 
 empty :: (MonadIO m) => Selection -> m ()
-empty self = liftIO (js_empty (self))
+empty self = liftIO (js_empty self)
  
+foreign import javascript unsafe "$1[\"modify\"]($2, $3, $4)"
+        js_modify ::
+        Selection ->
+          Optional JSString ->
+            Optional JSString -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.modify Mozilla Selection.modify documentation> 
+modify ::
+       (MonadIO m, ToJSString alter, ToJSString direction,
+        ToJSString granularity) =>
+         Selection ->
+           Maybe alter -> Maybe direction -> Maybe granularity -> m ()
+modify self alter direction granularity
+  = liftIO
+      (js_modify self (toOptionalJSString alter)
+         (toOptionalJSString direction)
+         (toOptionalJSString granularity))
+ 
 foreign import javascript unsafe "$1[\"anchorNode\"]"
         js_getAnchorNode :: Selection -> IO (Nullable Node)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.anchorNode Mozilla Selection.anchorNode documentation> 
 getAnchorNode :: (MonadIO m) => Selection -> m (Maybe Node)
 getAnchorNode self
-  = liftIO (nullableToMaybe <$> (js_getAnchorNode (self)))
+  = liftIO (nullableToMaybe <$> (js_getAnchorNode self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.anchorNode Mozilla Selection.anchorNode documentation> 
 getAnchorNodeUnsafe ::
                     (MonadIO m, HasCallStack) => Selection -> m Node
 getAnchorNodeUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getAnchorNode (self))) >>=
+      ((nullableToMaybe <$> (js_getAnchorNode self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.anchorNode Mozilla Selection.anchorNode documentation> 
 getAnchorNodeUnchecked :: (MonadIO m) => Selection -> m Node
 getAnchorNodeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getAnchorNode (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getAnchorNode self))
  
 foreign import javascript unsafe "$1[\"anchorOffset\"]"
-        js_getAnchorOffset :: Selection -> IO Int
+        js_getAnchorOffset :: Selection -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.anchorOffset Mozilla Selection.anchorOffset documentation> 
-getAnchorOffset :: (MonadIO m) => Selection -> m Int
-getAnchorOffset self = liftIO (js_getAnchorOffset (self))
+getAnchorOffset :: (MonadIO m) => Selection -> m Word
+getAnchorOffset self = liftIO (js_getAnchorOffset self)
  
 foreign import javascript unsafe "$1[\"focusNode\"]"
         js_getFocusNode :: Selection -> IO (Nullable Node)
@@ -248,69 +235,77 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.focusNode Mozilla Selection.focusNode documentation> 
 getFocusNode :: (MonadIO m) => Selection -> m (Maybe Node)
 getFocusNode self
-  = liftIO (nullableToMaybe <$> (js_getFocusNode (self)))
+  = liftIO (nullableToMaybe <$> (js_getFocusNode self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.focusNode Mozilla Selection.focusNode documentation> 
 getFocusNodeUnsafe ::
                    (MonadIO m, HasCallStack) => Selection -> m Node
 getFocusNodeUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getFocusNode (self))) >>=
+      ((nullableToMaybe <$> (js_getFocusNode self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.focusNode Mozilla Selection.focusNode documentation> 
 getFocusNodeUnchecked :: (MonadIO m) => Selection -> m Node
 getFocusNodeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFocusNode (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getFocusNode self))
  
 foreign import javascript unsafe "$1[\"focusOffset\"]"
-        js_getFocusOffset :: Selection -> IO Int
+        js_getFocusOffset :: Selection -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.focusOffset Mozilla Selection.focusOffset documentation> 
-getFocusOffset :: (MonadIO m) => Selection -> m Int
-getFocusOffset self = liftIO (js_getFocusOffset (self))
+getFocusOffset :: (MonadIO m) => Selection -> m Word
+getFocusOffset self = liftIO (js_getFocusOffset self)
  
 foreign import javascript unsafe "($1[\"isCollapsed\"] ? 1 : 0)"
         js_getIsCollapsed :: Selection -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.isCollapsed Mozilla Selection.isCollapsed documentation> 
 getIsCollapsed :: (MonadIO m) => Selection -> m Bool
-getIsCollapsed self = liftIO (js_getIsCollapsed (self))
+getIsCollapsed self = liftIO (js_getIsCollapsed self)
  
 foreign import javascript unsafe "$1[\"rangeCount\"]"
-        js_getRangeCount :: Selection -> IO Int
+        js_getRangeCount :: Selection -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.rangeCount Mozilla Selection.rangeCount documentation> 
-getRangeCount :: (MonadIO m) => Selection -> m Int
-getRangeCount self = liftIO (js_getRangeCount (self))
+getRangeCount :: (MonadIO m) => Selection -> m Word
+getRangeCount self = liftIO (js_getRangeCount self)
  
+foreign import javascript unsafe "$1[\"type\"]" js_getType ::
+        Selection -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.type Mozilla Selection.type documentation> 
+getType ::
+        (MonadIO m, FromJSString result) => Selection -> m result
+getType self = liftIO (fromJSString <$> (js_getType self))
+ 
 foreign import javascript unsafe "$1[\"baseNode\"]" js_getBaseNode
         :: Selection -> IO (Nullable Node)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.baseNode Mozilla Selection.baseNode documentation> 
 getBaseNode :: (MonadIO m) => Selection -> m (Maybe Node)
 getBaseNode self
-  = liftIO (nullableToMaybe <$> (js_getBaseNode (self)))
+  = liftIO (nullableToMaybe <$> (js_getBaseNode self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.baseNode Mozilla Selection.baseNode documentation> 
 getBaseNodeUnsafe ::
                   (MonadIO m, HasCallStack) => Selection -> m Node
 getBaseNodeUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getBaseNode (self))) >>=
+      ((nullableToMaybe <$> (js_getBaseNode self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.baseNode Mozilla Selection.baseNode documentation> 
 getBaseNodeUnchecked :: (MonadIO m) => Selection -> m Node
 getBaseNodeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBaseNode (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getBaseNode self))
  
 foreign import javascript unsafe "$1[\"baseOffset\"]"
-        js_getBaseOffset :: Selection -> IO Int
+        js_getBaseOffset :: Selection -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.baseOffset Mozilla Selection.baseOffset documentation> 
-getBaseOffset :: (MonadIO m) => Selection -> m Int
-getBaseOffset self = liftIO (js_getBaseOffset (self))
+getBaseOffset :: (MonadIO m) => Selection -> m Word
+getBaseOffset self = liftIO (js_getBaseOffset self)
  
 foreign import javascript unsafe "$1[\"extentNode\"]"
         js_getExtentNode :: Selection -> IO (Nullable Node)
@@ -318,32 +313,24 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.extentNode Mozilla Selection.extentNode documentation> 
 getExtentNode :: (MonadIO m) => Selection -> m (Maybe Node)
 getExtentNode self
-  = liftIO (nullableToMaybe <$> (js_getExtentNode (self)))
+  = liftIO (nullableToMaybe <$> (js_getExtentNode self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.extentNode Mozilla Selection.extentNode documentation> 
 getExtentNodeUnsafe ::
                     (MonadIO m, HasCallStack) => Selection -> m Node
 getExtentNodeUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getExtentNode (self))) >>=
+      ((nullableToMaybe <$> (js_getExtentNode self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.extentNode Mozilla Selection.extentNode documentation> 
 getExtentNodeUnchecked :: (MonadIO m) => Selection -> m Node
 getExtentNodeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getExtentNode (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getExtentNode self))
  
 foreign import javascript unsafe "$1[\"extentOffset\"]"
-        js_getExtentOffset :: Selection -> IO Int
+        js_getExtentOffset :: Selection -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.extentOffset Mozilla Selection.extentOffset documentation> 
-getExtentOffset :: (MonadIO m) => Selection -> m Int
-getExtentOffset self = liftIO (js_getExtentOffset (self))
- 
-foreign import javascript unsafe "$1[\"type\"]" js_getType ::
-        Selection -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Selection.type Mozilla Selection.type documentation> 
-getType ::
-        (MonadIO m, FromJSString result) => Selection -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getExtentOffset :: (MonadIO m) => Selection -> m Word
+getExtentOffset self = liftIO (js_getExtentOffset self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ShadowRoot.hs b/src/GHCJS/DOM/JSFFI/Generated/ShadowRoot.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/ShadowRoot.hs
@@ -0,0 +1,75 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.ShadowRoot
+       (js_getMode, getMode, js_getHost, getHost, js_setInnerHTML,
+        setInnerHTML, js_getInnerHTML, getInnerHTML, getInnerHTMLUnsafe,
+        getInnerHTMLUnchecked, ShadowRoot(..), gTypeShadowRoot)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"mode\"]" js_getMode ::
+        ShadowRoot -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot.mode Mozilla ShadowRoot.mode documentation> 
+getMode :: (MonadIO m) => ShadowRoot -> m ShadowRootMode
+getMode self = liftIO ((js_getMode self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"host\"]" js_getHost ::
+        ShadowRoot -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot.host Mozilla ShadowRoot.host documentation> 
+getHost :: (MonadIO m) => ShadowRoot -> m Element
+getHost self = liftIO (js_getHost self)
+ 
+foreign import javascript unsafe "$1[\"innerHTML\"] = $2;"
+        js_setInnerHTML :: ShadowRoot -> Optional JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot.innerHTML Mozilla ShadowRoot.innerHTML documentation> 
+setInnerHTML ::
+             (MonadIO m, ToJSString val) => ShadowRoot -> Maybe val -> m ()
+setInnerHTML self val
+  = liftIO (js_setInnerHTML self (toOptionalJSString val))
+ 
+foreign import javascript unsafe "$1[\"innerHTML\"]"
+        js_getInnerHTML :: ShadowRoot -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot.innerHTML Mozilla ShadowRoot.innerHTML documentation> 
+getInnerHTML ::
+             (MonadIO m, FromJSString result) => ShadowRoot -> m (Maybe result)
+getInnerHTML self
+  = liftIO (fromMaybeJSString <$> (js_getInnerHTML self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot.innerHTML Mozilla ShadowRoot.innerHTML documentation> 
+getInnerHTMLUnsafe ::
+                   (MonadIO m, HasCallStack, FromJSString result) =>
+                     ShadowRoot -> m result
+getInnerHTMLUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getInnerHTML self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot.innerHTML Mozilla ShadowRoot.innerHTML documentation> 
+getInnerHTMLUnchecked ::
+                      (MonadIO m, FromJSString result) => ShadowRoot -> m result
+getInnerHTMLUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getInnerHTML self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Slotable.hs b/src/GHCJS/DOM/JSFFI/Generated/Slotable.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/Slotable.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.Slotable
+       (js_getAssignedSlot, getAssignedSlot, getAssignedSlotUnsafe,
+        getAssignedSlotUnchecked, Slotable(..), gTypeSlotable, IsSlotable,
+        toSlotable)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"assignedSlot\"]"
+        js_getAssignedSlot :: Slotable -> IO (Nullable HTMLSlotElement)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Slotable.assignedSlot Mozilla Slotable.assignedSlot documentation> 
+getAssignedSlot ::
+                (MonadIO m, IsSlotable self) => self -> m (Maybe HTMLSlotElement)
+getAssignedSlot self
+  = liftIO
+      (nullableToMaybe <$> (js_getAssignedSlot (toSlotable self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Slotable.assignedSlot Mozilla Slotable.assignedSlot documentation> 
+getAssignedSlotUnsafe ::
+                      (MonadIO m, IsSlotable self, HasCallStack) =>
+                        self -> m HTMLSlotElement
+getAssignedSlotUnsafe self
+  = liftIO
+      ((nullableToMaybe <$> (js_getAssignedSlot (toSlotable self))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Slotable.assignedSlot Mozilla Slotable.assignedSlot documentation> 
+getAssignedSlotUnchecked ::
+                         (MonadIO m, IsSlotable self) => self -> m HTMLSlotElement
+getAssignedSlotUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getAssignedSlot (toSlotable self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SourceBuffer.hs b/src/GHCJS/DOM/JSFFI/Generated/SourceBuffer.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SourceBuffer.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SourceBuffer.hs
@@ -4,26 +4,23 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SourceBuffer
-       (js_appendBuffer, appendBuffer, js_appendBufferView,
-        appendBufferView, js_abort, abort, js_remove, remove, js_setMode,
-        setMode, js_getMode, getMode, js_getUpdating, getUpdating,
-        js_getBuffered, getBuffered, getBufferedUnsafe,
-        getBufferedUnchecked, js_setTimestampOffset, setTimestampOffset,
-        js_getTimestampOffset, getTimestampOffset, js_getAudioTracks,
-        getAudioTracks, getAudioTracksUnsafe, getAudioTracksUnchecked,
-        js_getVideoTracks, getVideoTracks, getVideoTracksUnsafe,
-        getVideoTracksUnchecked, js_getTextTracks, getTextTracks,
-        getTextTracksUnsafe, getTextTracksUnchecked,
+       (js_appendBuffer, appendBuffer, js_abort, abort, js_remove, remove,
+        js_setMode, setMode, js_getMode, getMode, js_getUpdating,
+        getUpdating, js_getBuffered, getBuffered, js_setTimestampOffset,
+        setTimestampOffset, js_getTimestampOffset, getTimestampOffset,
+        js_getAudioTracks, getAudioTracks, js_getVideoTracks,
+        getVideoTracks, js_getTextTracks, getTextTracks,
         js_setAppendWindowStart, setAppendWindowStart,
         js_getAppendWindowStart, getAppendWindowStart,
         js_setAppendWindowEnd, setAppendWindowEnd, js_getAppendWindowEnd,
-        getAppendWindowEnd, SourceBuffer(..), gTypeSourceBuffer)
+        getAppendWindowEnd, updatestart, update, updateend, error,
+        abortEvent, SourceBuffer(..), gTypeSourceBuffer)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -32,91 +29,62 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"appendBuffer\"]($2)"
-        js_appendBuffer :: SourceBuffer -> Nullable ArrayBuffer -> IO ()
+        js_appendBuffer :: SourceBuffer -> BufferSource -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.appendBuffer Mozilla SourceBuffer.appendBuffer documentation> 
 appendBuffer ::
-             (MonadIO m, IsArrayBuffer data') =>
-               SourceBuffer -> Maybe data' -> m ()
+             (MonadIO m, IsBufferSource data') => SourceBuffer -> data' -> m ()
 appendBuffer self data'
-  = liftIO
-      (js_appendBuffer (self)
-         (maybeToNullable (fmap toArrayBuffer data')))
- 
-foreign import javascript unsafe "$1[\"appendBuffer\"]($2)"
-        js_appendBufferView ::
-        SourceBuffer -> Nullable ArrayBufferView -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.appendBuffer Mozilla SourceBuffer.appendBuffer documentation> 
-appendBufferView ::
-                 (MonadIO m, IsArrayBufferView data') =>
-                   SourceBuffer -> Maybe data' -> m ()
-appendBufferView self data'
-  = liftIO
-      (js_appendBufferView (self)
-         (maybeToNullable (fmap toArrayBufferView data')))
+  = liftIO (js_appendBuffer self (toBufferSource data'))
  
 foreign import javascript unsafe "$1[\"abort\"]()" js_abort ::
         SourceBuffer -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.abort Mozilla SourceBuffer.abort documentation> 
 abort :: (MonadIO m) => SourceBuffer -> m ()
-abort self = liftIO (js_abort (self))
+abort self = liftIO (js_abort self)
  
 foreign import javascript unsafe "$1[\"remove\"]($2, $3)" js_remove
         :: SourceBuffer -> Double -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.remove Mozilla SourceBuffer.remove documentation> 
 remove :: (MonadIO m) => SourceBuffer -> Double -> Double -> m ()
-remove self start end = liftIO (js_remove (self) start end)
+remove self start end = liftIO (js_remove self start end)
  
 foreign import javascript unsafe "$1[\"mode\"] = $2;" js_setMode ::
         SourceBuffer -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.mode Mozilla SourceBuffer.mode documentation> 
 setMode :: (MonadIO m) => SourceBuffer -> AppendMode -> m ()
-setMode self val = liftIO (js_setMode (self) (pToJSVal val))
+setMode self val = liftIO (js_setMode self (pToJSVal val))
  
 foreign import javascript unsafe "$1[\"mode\"]" js_getMode ::
         SourceBuffer -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.mode Mozilla SourceBuffer.mode documentation> 
 getMode :: (MonadIO m) => SourceBuffer -> m AppendMode
-getMode self = liftIO ((js_getMode (self)) >>= fromJSValUnchecked)
+getMode self = liftIO ((js_getMode self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "($1[\"updating\"] ? 1 : 0)"
         js_getUpdating :: SourceBuffer -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.updating Mozilla SourceBuffer.updating documentation> 
 getUpdating :: (MonadIO m) => SourceBuffer -> m Bool
-getUpdating self = liftIO (js_getUpdating (self))
+getUpdating self = liftIO (js_getUpdating self)
  
 foreign import javascript unsafe "$1[\"buffered\"]" js_getBuffered
-        :: SourceBuffer -> IO (Nullable TimeRanges)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.buffered Mozilla SourceBuffer.buffered documentation> 
-getBuffered :: (MonadIO m) => SourceBuffer -> m (Maybe TimeRanges)
-getBuffered self
-  = liftIO (nullableToMaybe <$> (js_getBuffered (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.buffered Mozilla SourceBuffer.buffered documentation> 
-getBufferedUnsafe ::
-                  (MonadIO m, HasCallStack) => SourceBuffer -> m TimeRanges
-getBufferedUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getBuffered (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: SourceBuffer -> IO TimeRanges
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.buffered Mozilla SourceBuffer.buffered documentation> 
-getBufferedUnchecked :: (MonadIO m) => SourceBuffer -> m TimeRanges
-getBufferedUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getBuffered (self)))
+getBuffered :: (MonadIO m) => SourceBuffer -> m TimeRanges
+getBuffered self = liftIO (js_getBuffered self)
  
 foreign import javascript unsafe "$1[\"timestampOffset\"] = $2;"
         js_setTimestampOffset :: SourceBuffer -> Double -> IO ()
@@ -124,85 +92,35 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.timestampOffset Mozilla SourceBuffer.timestampOffset documentation> 
 setTimestampOffset :: (MonadIO m) => SourceBuffer -> Double -> m ()
 setTimestampOffset self val
-  = liftIO (js_setTimestampOffset (self) val)
+  = liftIO (js_setTimestampOffset self val)
  
 foreign import javascript unsafe "$1[\"timestampOffset\"]"
         js_getTimestampOffset :: SourceBuffer -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.timestampOffset Mozilla SourceBuffer.timestampOffset documentation> 
 getTimestampOffset :: (MonadIO m) => SourceBuffer -> m Double
-getTimestampOffset self = liftIO (js_getTimestampOffset (self))
+getTimestampOffset self = liftIO (js_getTimestampOffset self)
  
 foreign import javascript unsafe "$1[\"audioTracks\"]"
-        js_getAudioTracks :: SourceBuffer -> IO (Nullable AudioTrackList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.audioTracks Mozilla SourceBuffer.audioTracks documentation> 
-getAudioTracks ::
-               (MonadIO m) => SourceBuffer -> m (Maybe AudioTrackList)
-getAudioTracks self
-  = liftIO (nullableToMaybe <$> (js_getAudioTracks (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.audioTracks Mozilla SourceBuffer.audioTracks documentation> 
-getAudioTracksUnsafe ::
-                     (MonadIO m, HasCallStack) => SourceBuffer -> m AudioTrackList
-getAudioTracksUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getAudioTracks (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getAudioTracks :: SourceBuffer -> IO AudioTrackList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.audioTracks Mozilla SourceBuffer.audioTracks documentation> 
-getAudioTracksUnchecked ::
-                        (MonadIO m) => SourceBuffer -> m AudioTrackList
-getAudioTracksUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getAudioTracks (self)))
+getAudioTracks :: (MonadIO m) => SourceBuffer -> m AudioTrackList
+getAudioTracks self = liftIO (js_getAudioTracks self)
  
 foreign import javascript unsafe "$1[\"videoTracks\"]"
-        js_getVideoTracks :: SourceBuffer -> IO (Nullable VideoTrackList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.videoTracks Mozilla SourceBuffer.videoTracks documentation> 
-getVideoTracks ::
-               (MonadIO m) => SourceBuffer -> m (Maybe VideoTrackList)
-getVideoTracks self
-  = liftIO (nullableToMaybe <$> (js_getVideoTracks (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.videoTracks Mozilla SourceBuffer.videoTracks documentation> 
-getVideoTracksUnsafe ::
-                     (MonadIO m, HasCallStack) => SourceBuffer -> m VideoTrackList
-getVideoTracksUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getVideoTracks (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getVideoTracks :: SourceBuffer -> IO VideoTrackList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.videoTracks Mozilla SourceBuffer.videoTracks documentation> 
-getVideoTracksUnchecked ::
-                        (MonadIO m) => SourceBuffer -> m VideoTrackList
-getVideoTracksUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getVideoTracks (self)))
+getVideoTracks :: (MonadIO m) => SourceBuffer -> m VideoTrackList
+getVideoTracks self = liftIO (js_getVideoTracks self)
  
 foreign import javascript unsafe "$1[\"textTracks\"]"
-        js_getTextTracks :: SourceBuffer -> IO (Nullable TextTrackList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.textTracks Mozilla SourceBuffer.textTracks documentation> 
-getTextTracks ::
-              (MonadIO m) => SourceBuffer -> m (Maybe TextTrackList)
-getTextTracks self
-  = liftIO (nullableToMaybe <$> (js_getTextTracks (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.textTracks Mozilla SourceBuffer.textTracks documentation> 
-getTextTracksUnsafe ::
-                    (MonadIO m, HasCallStack) => SourceBuffer -> m TextTrackList
-getTextTracksUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTextTracks (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getTextTracks :: SourceBuffer -> IO TextTrackList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.textTracks Mozilla SourceBuffer.textTracks documentation> 
-getTextTracksUnchecked ::
-                       (MonadIO m) => SourceBuffer -> m TextTrackList
-getTextTracksUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTextTracks (self)))
+getTextTracks :: (MonadIO m) => SourceBuffer -> m TextTrackList
+getTextTracks self = liftIO (js_getTextTracks self)
  
 foreign import javascript unsafe "$1[\"appendWindowStart\"] = $2;"
         js_setAppendWindowStart :: SourceBuffer -> Double -> IO ()
@@ -211,14 +129,14 @@
 setAppendWindowStart ::
                      (MonadIO m) => SourceBuffer -> Double -> m ()
 setAppendWindowStart self val
-  = liftIO (js_setAppendWindowStart (self) val)
+  = liftIO (js_setAppendWindowStart self val)
  
 foreign import javascript unsafe "$1[\"appendWindowStart\"]"
         js_getAppendWindowStart :: SourceBuffer -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.appendWindowStart Mozilla SourceBuffer.appendWindowStart documentation> 
 getAppendWindowStart :: (MonadIO m) => SourceBuffer -> m Double
-getAppendWindowStart self = liftIO (js_getAppendWindowStart (self))
+getAppendWindowStart self = liftIO (js_getAppendWindowStart self)
  
 foreign import javascript unsafe "$1[\"appendWindowEnd\"] = $2;"
         js_setAppendWindowEnd :: SourceBuffer -> Double -> IO ()
@@ -226,11 +144,31 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.appendWindowEnd Mozilla SourceBuffer.appendWindowEnd documentation> 
 setAppendWindowEnd :: (MonadIO m) => SourceBuffer -> Double -> m ()
 setAppendWindowEnd self val
-  = liftIO (js_setAppendWindowEnd (self) val)
+  = liftIO (js_setAppendWindowEnd self val)
  
 foreign import javascript unsafe "$1[\"appendWindowEnd\"]"
         js_getAppendWindowEnd :: SourceBuffer -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.appendWindowEnd Mozilla SourceBuffer.appendWindowEnd documentation> 
 getAppendWindowEnd :: (MonadIO m) => SourceBuffer -> m Double
-getAppendWindowEnd self = liftIO (js_getAppendWindowEnd (self))
+getAppendWindowEnd self = liftIO (js_getAppendWindowEnd self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.onupdatestart Mozilla SourceBuffer.onupdatestart documentation> 
+updatestart :: EventName SourceBuffer onupdatestart
+updatestart = unsafeEventName (toJSString "updatestart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.onupdate Mozilla SourceBuffer.onupdate documentation> 
+update :: EventName SourceBuffer onupdate
+update = unsafeEventName (toJSString "update")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.onupdateend Mozilla SourceBuffer.onupdateend documentation> 
+updateend :: EventName SourceBuffer onupdateend
+updateend = unsafeEventName (toJSString "updateend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.onerror Mozilla SourceBuffer.onerror documentation> 
+error :: EventName SourceBuffer UIEvent
+error = unsafeEventName (toJSString "error")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer.onabort Mozilla SourceBuffer.onabort documentation> 
+abortEvent :: EventName SourceBuffer UIEvent
+abortEvent = unsafeEventName (toJSString "abort")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SourceBufferList.hs b/src/GHCJS/DOM/JSFFI/Generated/SourceBufferList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SourceBufferList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SourceBufferList.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SourceBufferList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getLength,
-        getLength, SourceBufferList(..), gTypeSourceBufferList)
+       (js_item, item, item_, js_getLength, getLength, addsourcebuffer,
+        removesourcebuffer, SourceBufferList(..), gTypeSourceBufferList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,42 +20,36 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        SourceBufferList -> Word -> IO (Nullable SourceBuffer)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        SourceBufferList -> Word -> IO SourceBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferList.item Mozilla SourceBufferList.item documentation> 
-item ::
-     (MonadIO m) => SourceBufferList -> Word -> m (Maybe SourceBuffer)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item :: (MonadIO m) => SourceBufferList -> Word -> m SourceBuffer
+item self index = liftIO (js_item self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferList.item Mozilla SourceBufferList.item documentation> 
 item_ :: (MonadIO m) => SourceBufferList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferList.item Mozilla SourceBufferList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             SourceBufferList -> Word -> m SourceBuffer
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferList.item Mozilla SourceBufferList.item documentation> 
-itemUnchecked ::
-              (MonadIO m) => SourceBufferList -> Word -> m SourceBuffer
-itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         SourceBufferList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferList.length Mozilla SourceBufferList.length documentation> 
 getLength :: (MonadIO m) => SourceBufferList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferList.onaddsourcebuffer Mozilla SourceBufferList.onaddsourcebuffer documentation> 
+addsourcebuffer :: EventName SourceBufferList onaddsourcebuffer
+addsourcebuffer = unsafeEventName (toJSString "addsourcebuffer")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferList.onremovesourcebuffer Mozilla SourceBufferList.onremovesourcebuffer documentation> 
+removesourcebuffer ::
+                     EventName SourceBufferList onremovesourcebuffer
+removesourcebuffer
+  = unsafeEventName (toJSString "removesourcebuffer")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SourceInfo.hs b/src/GHCJS/DOM/JSFFI/Generated/SourceInfo.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/SourceInfo.hs
+++ /dev/null
@@ -1,51 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.SourceInfo
-       (js_getSourceId, getSourceId, js_getKind, getKind, js_getLabel,
-        getLabel, SourceInfo(..), gTypeSourceInfo)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"sourceId\"]" js_getSourceId
-        :: SourceInfo -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceInfo.sourceId Mozilla SourceInfo.sourceId documentation> 
-getSourceId ::
-            (MonadIO m, FromJSString result) => SourceInfo -> m result
-getSourceId self
-  = liftIO (fromJSString <$> (js_getSourceId (self)))
- 
-foreign import javascript unsafe "$1[\"kind\"]" js_getKind ::
-        SourceInfo -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceInfo.kind Mozilla SourceInfo.kind documentation> 
-getKind ::
-        (MonadIO m, FromJSString result) => SourceInfo -> m result
-getKind self = liftIO (fromJSString <$> (js_getKind (self)))
- 
-foreign import javascript unsafe "$1[\"label\"]" js_getLabel ::
-        SourceInfo -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/SourceInfo.label Mozilla SourceInfo.label documentation> 
-getLabel ::
-         (MonadIO m, FromJSString result) => SourceInfo -> m result
-getLabel self = liftIO (fromJSString <$> (js_getLabel (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesis.hs b/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesis.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesis.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesis.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,72 +22,71 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"speak\"]($2)" js_speak ::
-        SpeechSynthesis -> Nullable SpeechSynthesisUtterance -> IO ()
+        SpeechSynthesis -> SpeechSynthesisUtterance -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis.speak Mozilla SpeechSynthesis.speak documentation> 
 speak ::
-      (MonadIO m) =>
-        SpeechSynthesis -> Maybe SpeechSynthesisUtterance -> m ()
-speak self utterance
-  = liftIO (js_speak (self) (maybeToNullable utterance))
+      (MonadIO m) => SpeechSynthesis -> SpeechSynthesisUtterance -> m ()
+speak self utterance = liftIO (js_speak self utterance)
  
 foreign import javascript unsafe "$1[\"cancel\"]()" js_cancel ::
         SpeechSynthesis -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis.cancel Mozilla SpeechSynthesis.cancel documentation> 
 cancel :: (MonadIO m) => SpeechSynthesis -> m ()
-cancel self = liftIO (js_cancel (self))
+cancel self = liftIO (js_cancel self)
  
 foreign import javascript unsafe "$1[\"pause\"]()" js_pause ::
         SpeechSynthesis -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis.pause Mozilla SpeechSynthesis.pause documentation> 
 pause :: (MonadIO m) => SpeechSynthesis -> m ()
-pause self = liftIO (js_pause (self))
+pause self = liftIO (js_pause self)
  
 foreign import javascript unsafe "$1[\"resume\"]()" js_resume ::
         SpeechSynthesis -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis.resume Mozilla SpeechSynthesis.resume documentation> 
 resume :: (MonadIO m) => SpeechSynthesis -> m ()
-resume self = liftIO (js_resume (self))
+resume self = liftIO (js_resume self)
  
 foreign import javascript unsafe "$1[\"getVoices\"]()" js_getVoices
         :: SpeechSynthesis -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis.getVoices Mozilla SpeechSynthesis.getVoices documentation> 
 getVoices ::
-          (MonadIO m) => SpeechSynthesis -> m [Maybe SpeechSynthesisVoice]
+          (MonadIO m) => SpeechSynthesis -> m [SpeechSynthesisVoice]
 getVoices self
-  = liftIO ((js_getVoices (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_getVoices self) >>= fromJSValUnchecked)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis.getVoices Mozilla SpeechSynthesis.getVoices documentation> 
 getVoices_ :: (MonadIO m) => SpeechSynthesis -> m ()
-getVoices_ self = liftIO (void (js_getVoices (self)))
+getVoices_ self = liftIO (void (js_getVoices self))
  
 foreign import javascript unsafe "($1[\"pending\"] ? 1 : 0)"
         js_getPending :: SpeechSynthesis -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis.pending Mozilla SpeechSynthesis.pending documentation> 
 getPending :: (MonadIO m) => SpeechSynthesis -> m Bool
-getPending self = liftIO (js_getPending (self))
+getPending self = liftIO (js_getPending self)
  
 foreign import javascript unsafe "($1[\"speaking\"] ? 1 : 0)"
         js_getSpeaking :: SpeechSynthesis -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis.speaking Mozilla SpeechSynthesis.speaking documentation> 
 getSpeaking :: (MonadIO m) => SpeechSynthesis -> m Bool
-getSpeaking self = liftIO (js_getSpeaking (self))
+getSpeaking self = liftIO (js_getSpeaking self)
  
 foreign import javascript unsafe "($1[\"paused\"] ? 1 : 0)"
         js_getPaused :: SpeechSynthesis -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis.paused Mozilla SpeechSynthesis.paused documentation> 
 getPaused :: (MonadIO m) => SpeechSynthesis -> m Bool
-getPaused self = liftIO (js_getPaused (self))
+getPaused self = liftIO (js_getPaused self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisEvent.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,14 +32,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisEvent.charIndex Mozilla SpeechSynthesisEvent.charIndex documentation> 
 getCharIndex :: (MonadIO m) => SpeechSynthesisEvent -> m Word
-getCharIndex self = liftIO (js_getCharIndex (self))
+getCharIndex self = liftIO (js_getCharIndex self)
  
 foreign import javascript unsafe "$1[\"elapsedTime\"]"
         js_getElapsedTime :: SpeechSynthesisEvent -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisEvent.elapsedTime Mozilla SpeechSynthesisEvent.elapsedTime documentation> 
 getElapsedTime :: (MonadIO m) => SpeechSynthesisEvent -> m Float
-getElapsedTime self = liftIO (js_getElapsedTime (self))
+getElapsedTime self = liftIO (js_getElapsedTime self)
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         SpeechSynthesisEvent -> IO JSString
@@ -47,4 +48,4 @@
 getName ::
         (MonadIO m, FromJSString result) =>
           SpeechSynthesisEvent -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisUtterance.hs b/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisUtterance.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisUtterance.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisUtterance.hs
@@ -17,7 +17,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,6 +26,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,13 +35,14 @@
 foreign import javascript unsafe
         "new window[\"SpeechSynthesisUtterance\"]($1)"
         js_newSpeechSynthesisUtterance ::
-        JSString -> IO SpeechSynthesisUtterance
+        Optional JSString -> IO SpeechSynthesisUtterance
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance Mozilla SpeechSynthesisUtterance documentation> 
 newSpeechSynthesisUtterance ::
-                            (MonadIO m, ToJSString text) => text -> m SpeechSynthesisUtterance
+                            (MonadIO m, ToJSString text) =>
+                              Maybe text -> m SpeechSynthesisUtterance
 newSpeechSynthesisUtterance text
-  = liftIO (js_newSpeechSynthesisUtterance (toJSString text))
+  = liftIO (js_newSpeechSynthesisUtterance (toOptionalJSString text))
  
 foreign import javascript unsafe "$1[\"text\"] = $2;" js_setText ::
         SpeechSynthesisUtterance -> JSString -> IO ()
@@ -49,7 +51,7 @@
 setText ::
         (MonadIO m, ToJSString val) =>
           SpeechSynthesisUtterance -> val -> m ()
-setText self val = liftIO (js_setText (self) (toJSString val))
+setText self val = liftIO (js_setText self (toJSString val))
  
 foreign import javascript unsafe "$1[\"text\"]" js_getText ::
         SpeechSynthesisUtterance -> IO JSString
@@ -58,7 +60,7 @@
 getText ::
         (MonadIO m, FromJSString result) =>
           SpeechSynthesisUtterance -> m result
-getText self = liftIO (fromJSString <$> (js_getText (self)))
+getText self = liftIO (fromJSString <$> (js_getText self))
  
 foreign import javascript unsafe "$1[\"lang\"] = $2;" js_setLang ::
         SpeechSynthesisUtterance -> JSString -> IO ()
@@ -67,7 +69,7 @@
 setLang ::
         (MonadIO m, ToJSString val) =>
           SpeechSynthesisUtterance -> val -> m ()
-setLang self val = liftIO (js_setLang (self) (toJSString val))
+setLang self val = liftIO (js_setLang self (toJSString val))
  
 foreign import javascript unsafe "$1[\"lang\"]" js_getLang ::
         SpeechSynthesisUtterance -> IO JSString
@@ -76,18 +78,17 @@
 getLang ::
         (MonadIO m, FromJSString result) =>
           SpeechSynthesisUtterance -> m result
-getLang self = liftIO (fromJSString <$> (js_getLang (self)))
+getLang self = liftIO (fromJSString <$> (js_getLang self))
  
 foreign import javascript unsafe "$1[\"voice\"] = $2;" js_setVoice
         ::
-        SpeechSynthesisUtterance -> Nullable SpeechSynthesisVoice -> IO ()
+        SpeechSynthesisUtterance -> Optional SpeechSynthesisVoice -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance.voice Mozilla SpeechSynthesisUtterance.voice documentation> 
 setVoice ::
          (MonadIO m) =>
            SpeechSynthesisUtterance -> Maybe SpeechSynthesisVoice -> m ()
-setVoice self val
-  = liftIO (js_setVoice (self) (maybeToNullable val))
+setVoice self val = liftIO (js_setVoice self (maybeToOptional val))
  
 foreign import javascript unsafe "$1[\"voice\"]" js_getVoice ::
         SpeechSynthesisUtterance -> IO (Nullable SpeechSynthesisVoice)
@@ -96,7 +97,7 @@
 getVoice ::
          (MonadIO m) =>
            SpeechSynthesisUtterance -> m (Maybe SpeechSynthesisVoice)
-getVoice self = liftIO (nullableToMaybe <$> (js_getVoice (self)))
+getVoice self = liftIO (nullableToMaybe <$> (js_getVoice self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance.voice Mozilla SpeechSynthesisUtterance.voice documentation> 
 getVoiceUnsafe ::
@@ -104,14 +105,14 @@
                  SpeechSynthesisUtterance -> m SpeechSynthesisVoice
 getVoiceUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getVoice (self))) >>=
+      ((nullableToMaybe <$> (js_getVoice self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance.voice Mozilla SpeechSynthesisUtterance.voice documentation> 
 getVoiceUnchecked ::
                   (MonadIO m) => SpeechSynthesisUtterance -> m SpeechSynthesisVoice
 getVoiceUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getVoice (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getVoice self))
  
 foreign import javascript unsafe "$1[\"volume\"] = $2;"
         js_setVolume :: SpeechSynthesisUtterance -> Float -> IO ()
@@ -119,28 +120,28 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance.volume Mozilla SpeechSynthesisUtterance.volume documentation> 
 setVolume ::
           (MonadIO m) => SpeechSynthesisUtterance -> Float -> m ()
-setVolume self val = liftIO (js_setVolume (self) val)
+setVolume self val = liftIO (js_setVolume self val)
  
 foreign import javascript unsafe "$1[\"volume\"]" js_getVolume ::
         SpeechSynthesisUtterance -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance.volume Mozilla SpeechSynthesisUtterance.volume documentation> 
 getVolume :: (MonadIO m) => SpeechSynthesisUtterance -> m Float
-getVolume self = liftIO (js_getVolume (self))
+getVolume self = liftIO (js_getVolume self)
  
 foreign import javascript unsafe "$1[\"rate\"] = $2;" js_setRate ::
         SpeechSynthesisUtterance -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance.rate Mozilla SpeechSynthesisUtterance.rate documentation> 
 setRate :: (MonadIO m) => SpeechSynthesisUtterance -> Float -> m ()
-setRate self val = liftIO (js_setRate (self) val)
+setRate self val = liftIO (js_setRate self val)
  
 foreign import javascript unsafe "$1[\"rate\"]" js_getRate ::
         SpeechSynthesisUtterance -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance.rate Mozilla SpeechSynthesisUtterance.rate documentation> 
 getRate :: (MonadIO m) => SpeechSynthesisUtterance -> m Float
-getRate self = liftIO (js_getRate (self))
+getRate self = liftIO (js_getRate self)
  
 foreign import javascript unsafe "$1[\"pitch\"] = $2;" js_setPitch
         :: SpeechSynthesisUtterance -> Float -> IO ()
@@ -148,14 +149,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance.pitch Mozilla SpeechSynthesisUtterance.pitch documentation> 
 setPitch ::
          (MonadIO m) => SpeechSynthesisUtterance -> Float -> m ()
-setPitch self val = liftIO (js_setPitch (self) val)
+setPitch self val = liftIO (js_setPitch self val)
  
 foreign import javascript unsafe "$1[\"pitch\"]" js_getPitch ::
         SpeechSynthesisUtterance -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance.pitch Mozilla SpeechSynthesisUtterance.pitch documentation> 
 getPitch :: (MonadIO m) => SpeechSynthesisUtterance -> m Float
-getPitch self = liftIO (js_getPitch (self))
+getPitch self = liftIO (js_getPitch self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance.onstart Mozilla SpeechSynthesisUtterance.onstart documentation> 
 start :: EventName SpeechSynthesisUtterance Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisVoice.hs b/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisVoice.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisVoice.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SpeechSynthesisVoice.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,8 +34,7 @@
 getVoiceURI ::
             (MonadIO m, FromJSString result) =>
               SpeechSynthesisVoice -> m result
-getVoiceURI self
-  = liftIO (fromJSString <$> (js_getVoiceURI (self)))
+getVoiceURI self = liftIO (fromJSString <$> (js_getVoiceURI self))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         SpeechSynthesisVoice -> IO JSString
@@ -43,7 +43,7 @@
 getName ::
         (MonadIO m, FromJSString result) =>
           SpeechSynthesisVoice -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "$1[\"lang\"]" js_getLang ::
         SpeechSynthesisVoice -> IO JSString
@@ -52,18 +52,18 @@
 getLang ::
         (MonadIO m, FromJSString result) =>
           SpeechSynthesisVoice -> m result
-getLang self = liftIO (fromJSString <$> (js_getLang (self)))
+getLang self = liftIO (fromJSString <$> (js_getLang self))
  
 foreign import javascript unsafe "($1[\"localService\"] ? 1 : 0)"
         js_getLocalService :: SpeechSynthesisVoice -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisVoice.localService Mozilla SpeechSynthesisVoice.localService documentation> 
 getLocalService :: (MonadIO m) => SpeechSynthesisVoice -> m Bool
-getLocalService self = liftIO (js_getLocalService (self))
+getLocalService self = liftIO (js_getLocalService self)
  
 foreign import javascript unsafe "($1[\"default\"] ? 1 : 0)"
         js_getDefault :: SpeechSynthesisVoice -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisVoice.default Mozilla SpeechSynthesisVoice.default documentation> 
 getDefault :: (MonadIO m) => SpeechSynthesisVoice -> m Bool
-getDefault self = liftIO (js_getDefault (self))
+getDefault self = liftIO (js_getDefault self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/StaticRange.hs b/src/GHCJS/DOM/JSFFI/Generated/StaticRange.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/StaticRange.hs
@@ -0,0 +1,64 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.StaticRange
+       (js_getStartOffset, getStartOffset, js_getEndOffset, getEndOffset,
+        js_getStartContainer, getStartContainer, js_getEndContainer,
+        getEndContainer, js_getCollapsed, getCollapsed, StaticRange(..),
+        gTypeStaticRange)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"startOffset\"]"
+        js_getStartOffset :: StaticRange -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/StaticRange.startOffset Mozilla StaticRange.startOffset documentation> 
+getStartOffset :: (MonadIO m) => StaticRange -> m Word
+getStartOffset self = liftIO (js_getStartOffset self)
+ 
+foreign import javascript unsafe "$1[\"endOffset\"]"
+        js_getEndOffset :: StaticRange -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/StaticRange.endOffset Mozilla StaticRange.endOffset documentation> 
+getEndOffset :: (MonadIO m) => StaticRange -> m Word
+getEndOffset self = liftIO (js_getEndOffset self)
+ 
+foreign import javascript unsafe "$1[\"startContainer\"]"
+        js_getStartContainer :: StaticRange -> IO Node
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/StaticRange.startContainer Mozilla StaticRange.startContainer documentation> 
+getStartContainer :: (MonadIO m) => StaticRange -> m Node
+getStartContainer self = liftIO (js_getStartContainer self)
+ 
+foreign import javascript unsafe "$1[\"endContainer\"]"
+        js_getEndContainer :: StaticRange -> IO Node
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/StaticRange.endContainer Mozilla StaticRange.endContainer documentation> 
+getEndContainer :: (MonadIO m) => StaticRange -> m Node
+getEndContainer self = liftIO (js_getEndContainer self)
+ 
+foreign import javascript unsafe "($1[\"collapsed\"] ? 1 : 0)"
+        js_getCollapsed :: StaticRange -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/StaticRange.collapsed Mozilla StaticRange.collapsed documentation> 
+getCollapsed :: (MonadIO m) => StaticRange -> m Bool
+getCollapsed self = liftIO (js_getCollapsed self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Storage.hs b/src/GHCJS/DOM/JSFFI/Generated/Storage.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Storage.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Storage.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,12 +35,11 @@
 key ::
     (MonadIO m, FromJSString result) =>
       Storage -> Word -> m (Maybe result)
-key self index
-  = liftIO (fromMaybeJSString <$> (js_key (self) index))
+key self index = liftIO (fromMaybeJSString <$> (js_key self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Storage.key Mozilla Storage.key documentation> 
 key_ :: (MonadIO m) => Storage -> Word -> m ()
-key_ self index = liftIO (void (js_key (self) index))
+key_ self index = liftIO (void (js_key self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Storage.key Mozilla Storage.key documentation> 
 keyUnsafe ::
@@ -47,30 +47,29 @@
             Storage -> Word -> m result
 keyUnsafe self index
   = liftIO
-      ((fromMaybeJSString <$> (js_key (self) index)) >>=
+      ((fromMaybeJSString <$> (js_key self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Storage.key Mozilla Storage.key documentation> 
 keyUnchecked ::
              (MonadIO m, FromJSString result) => Storage -> Word -> m result
 keyUnchecked self index
-  = liftIO (fromJust . fromMaybeJSString <$> (js_key (self) index))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_key self index))
  
-foreign import javascript unsafe "$1[\"getItem\"]($2)" js_getItem
-        :: Storage -> JSString -> IO (Nullable JSString)
+foreign import javascript unsafe "$1[$2]" js_getItem ::
+        Storage -> JSString -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Storage.getItem Mozilla Storage.getItem documentation> 
 getItem ::
         (MonadIO m, ToJSString key, FromJSString result) =>
           Storage -> key -> m (Maybe result)
 getItem self key
-  = liftIO
-      (fromMaybeJSString <$> (js_getItem (self) (toJSString key)))
+  = liftIO (fromMaybeJSString <$> (js_getItem self (toJSString key)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Storage.getItem Mozilla Storage.getItem documentation> 
 getItem_ :: (MonadIO m, ToJSString key) => Storage -> key -> m ()
 getItem_ self key
-  = liftIO (void (js_getItem (self) (toJSString key)))
+  = liftIO (void (js_getItem self (toJSString key)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Storage.getItem Mozilla Storage.getItem documentation> 
 getItemUnsafe ::
@@ -78,7 +77,7 @@
                 Storage -> key -> m result
 getItemUnsafe self key
   = liftIO
-      ((fromMaybeJSString <$> (js_getItem (self) (toJSString key))) >>=
+      ((fromMaybeJSString <$> (js_getItem self (toJSString key))) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Storage.getItem Mozilla Storage.getItem documentation> 
@@ -88,7 +87,7 @@
 getItemUnchecked self key
   = liftIO
       (fromJust . fromMaybeJSString <$>
-         (js_getItem (self) (toJSString key)))
+         (js_getItem self (toJSString key)))
  
 foreign import javascript unsafe "$1[\"setItem\"]($2, $3)"
         js_setItem :: Storage -> JSString -> JSString -> IO ()
@@ -98,26 +97,25 @@
         (MonadIO m, ToJSString key, ToJSString data') =>
           Storage -> key -> data' -> m ()
 setItem self key data'
-  = liftIO (js_setItem (self) (toJSString key) (toJSString data'))
+  = liftIO (js_setItem self (toJSString key) (toJSString data'))
  
 foreign import javascript unsafe "$1[\"removeItem\"]($2)"
         js_removeItem :: Storage -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Storage.removeItem Mozilla Storage.removeItem documentation> 
 removeItem :: (MonadIO m, ToJSString key) => Storage -> key -> m ()
-removeItem self key
-  = liftIO (js_removeItem (self) (toJSString key))
+removeItem self key = liftIO (js_removeItem self (toJSString key))
  
 foreign import javascript unsafe "$1[\"clear\"]()" js_clear ::
         Storage -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Storage.clear Mozilla Storage.clear documentation> 
 clear :: (MonadIO m) => Storage -> m ()
-clear self = liftIO (js_clear (self))
+clear self = liftIO (js_clear self)
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         Storage -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Storage.length Mozilla Storage.length documentation> 
 getLength :: (MonadIO m) => Storage -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/StorageErrorCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/StorageErrorCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/StorageErrorCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/StorageErrorCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -27,8 +28,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageErrorCallback Mozilla StorageErrorCallback documentation> 
 newStorageErrorCallback ::
-                        (MonadIO m) =>
-                          (Maybe DOMException -> IO ()) -> m StorageErrorCallback
+                        (MonadIO m) => (DOMException -> IO ()) -> m StorageErrorCallback
 newStorageErrorCallback callback
   = liftIO
       (StorageErrorCallback <$>
@@ -38,8 +38,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageErrorCallback Mozilla StorageErrorCallback documentation> 
 newStorageErrorCallbackSync ::
-                            (MonadIO m) =>
-                              (Maybe DOMException -> IO ()) -> m StorageErrorCallback
+                            (MonadIO m) => (DOMException -> IO ()) -> m StorageErrorCallback
 newStorageErrorCallbackSync callback
   = liftIO
       (StorageErrorCallback <$>
@@ -49,8 +48,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageErrorCallback Mozilla StorageErrorCallback documentation> 
 newStorageErrorCallbackAsync ::
-                             (MonadIO m) =>
-                               (Maybe DOMException -> IO ()) -> m StorageErrorCallback
+                             (MonadIO m) => (DOMException -> IO ()) -> m StorageErrorCallback
 newStorageErrorCallbackAsync callback
   = liftIO
       (StorageErrorCallback <$>
diff --git a/src/GHCJS/DOM/JSFFI/Generated/StorageEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/StorageEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/StorageEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/StorageEvent.hs
@@ -4,7 +4,8 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.StorageEvent
-       (js_initStorageEvent, initStorageEvent, js_getKey, getKey,
+       (js_newStorageEvent, newStorageEvent, js_initStorageEvent,
+        initStorageEvent, js_getKey, getKey, getKeyUnsafe, getKeyUnchecked,
         js_getOldValue, getOldValue, getOldValueUnsafe,
         getOldValueUnchecked, js_getNewValue, getNewValue,
         getNewValueUnsafe, getNewValueUnchecked, js_getUrl, getUrl,
@@ -15,7 +16,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,21 +25,35 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
+        "new window[\"StorageEvent\"]($1,\n$2)" js_newStorageEvent ::
+        JSString -> Optional StorageEventInit -> IO StorageEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent Mozilla StorageEvent documentation> 
+newStorageEvent ::
+                (MonadIO m, ToJSString type') =>
+                  type' -> Maybe StorageEventInit -> m StorageEvent
+newStorageEvent type' eventInitDict
+  = liftIO
+      (js_newStorageEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe
         "$1[\"initStorageEvent\"]($2, $3,\n$4, $5, $6, $7, $8, $9)"
         js_initStorageEvent ::
         StorageEvent ->
-          JSString ->
+          Optional JSString ->
             Bool ->
               Bool ->
-                JSString ->
-                  Nullable JSString ->
-                    Nullable JSString -> JSString -> Nullable Storage -> IO ()
+                Optional JSString ->
+                  Optional JSString ->
+                    Optional JSString -> Optional JSString -> Optional Storage -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.initStorageEvent Mozilla StorageEvent.initStorageEvent documentation> 
 initStorageEvent ::
@@ -46,30 +61,46 @@
                   ToJSString oldValueArg, ToJSString newValueArg,
                   ToJSString urlArg) =>
                    StorageEvent ->
-                     typeArg ->
+                     Maybe typeArg ->
                        Bool ->
                          Bool ->
-                           keyArg ->
+                           Maybe keyArg ->
                              Maybe oldValueArg ->
-                               Maybe newValueArg -> urlArg -> Maybe Storage -> m ()
+                               Maybe newValueArg -> Maybe urlArg -> Maybe Storage -> m ()
 initStorageEvent self typeArg canBubbleArg cancelableArg keyArg
   oldValueArg newValueArg urlArg storageAreaArg
   = liftIO
-      (js_initStorageEvent (self) (toJSString typeArg) canBubbleArg
+      (js_initStorageEvent self (toOptionalJSString typeArg) canBubbleArg
          cancelableArg
-         (toJSString keyArg)
-         (toMaybeJSString oldValueArg)
-         (toMaybeJSString newValueArg)
-         (toJSString urlArg)
-         (maybeToNullable storageAreaArg))
+         (toOptionalJSString keyArg)
+         (toOptionalJSString oldValueArg)
+         (toOptionalJSString newValueArg)
+         (toOptionalJSString urlArg)
+         (maybeToOptional storageAreaArg))
  
 foreign import javascript unsafe "$1[\"key\"]" js_getKey ::
-        StorageEvent -> IO JSString
+        StorageEvent -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.key Mozilla StorageEvent.key documentation> 
 getKey ::
-       (MonadIO m, FromJSString result) => StorageEvent -> m result
-getKey self = liftIO (fromJSString <$> (js_getKey (self)))
+       (MonadIO m, FromJSString result) =>
+         StorageEvent -> m (Maybe result)
+getKey self = liftIO (fromMaybeJSString <$> (js_getKey self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.key Mozilla StorageEvent.key documentation> 
+getKeyUnsafe ::
+             (MonadIO m, HasCallStack, FromJSString result) =>
+               StorageEvent -> m result
+getKeyUnsafe self
+  = liftIO
+      ((fromMaybeJSString <$> (js_getKey self)) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.key Mozilla StorageEvent.key documentation> 
+getKeyUnchecked ::
+                (MonadIO m, FromJSString result) => StorageEvent -> m result
+getKeyUnchecked self
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getKey self))
  
 foreign import javascript unsafe "$1[\"oldValue\"]" js_getOldValue
         :: StorageEvent -> IO (Nullable JSString)
@@ -79,7 +110,7 @@
             (MonadIO m, FromJSString result) =>
               StorageEvent -> m (Maybe result)
 getOldValue self
-  = liftIO (fromMaybeJSString <$> (js_getOldValue (self)))
+  = liftIO (fromMaybeJSString <$> (js_getOldValue self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.oldValue Mozilla StorageEvent.oldValue documentation> 
 getOldValueUnsafe ::
@@ -87,14 +118,14 @@
                     StorageEvent -> m result
 getOldValueUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getOldValue (self))) >>=
+      ((fromMaybeJSString <$> (js_getOldValue self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.oldValue Mozilla StorageEvent.oldValue documentation> 
 getOldValueUnchecked ::
                      (MonadIO m, FromJSString result) => StorageEvent -> m result
 getOldValueUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getOldValue (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getOldValue self))
  
 foreign import javascript unsafe "$1[\"newValue\"]" js_getNewValue
         :: StorageEvent -> IO (Nullable JSString)
@@ -104,7 +135,7 @@
             (MonadIO m, FromJSString result) =>
               StorageEvent -> m (Maybe result)
 getNewValue self
-  = liftIO (fromMaybeJSString <$> (js_getNewValue (self)))
+  = liftIO (fromMaybeJSString <$> (js_getNewValue self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.newValue Mozilla StorageEvent.newValue documentation> 
 getNewValueUnsafe ::
@@ -112,14 +143,14 @@
                     StorageEvent -> m result
 getNewValueUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getNewValue (self))) >>=
+      ((fromMaybeJSString <$> (js_getNewValue self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.newValue Mozilla StorageEvent.newValue documentation> 
 getNewValueUnchecked ::
                      (MonadIO m, FromJSString result) => StorageEvent -> m result
 getNewValueUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getNewValue (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getNewValue self))
  
 foreign import javascript unsafe "$1[\"url\"]" js_getUrl ::
         StorageEvent -> IO JSString
@@ -127,7 +158,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.url Mozilla StorageEvent.url documentation> 
 getUrl ::
        (MonadIO m, FromJSString result) => StorageEvent -> m result
-getUrl self = liftIO (fromJSString <$> (js_getUrl (self)))
+getUrl self = liftIO (fromJSString <$> (js_getUrl self))
  
 foreign import javascript unsafe "$1[\"storageArea\"]"
         js_getStorageArea :: StorageEvent -> IO (Nullable Storage)
@@ -135,18 +166,17 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.storageArea Mozilla StorageEvent.storageArea documentation> 
 getStorageArea :: (MonadIO m) => StorageEvent -> m (Maybe Storage)
 getStorageArea self
-  = liftIO (nullableToMaybe <$> (js_getStorageArea (self)))
+  = liftIO (nullableToMaybe <$> (js_getStorageArea self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.storageArea Mozilla StorageEvent.storageArea documentation> 
 getStorageAreaUnsafe ::
                      (MonadIO m, HasCallStack) => StorageEvent -> m Storage
 getStorageAreaUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getStorageArea (self))) >>=
+      ((nullableToMaybe <$> (js_getStorageArea self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent.storageArea Mozilla StorageEvent.storageArea documentation> 
 getStorageAreaUnchecked :: (MonadIO m) => StorageEvent -> m Storage
 getStorageAreaUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getStorageArea (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getStorageArea self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/StorageInfo.hs b/src/GHCJS/DOM/JSFFI/Generated/StorageInfo.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/StorageInfo.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/StorageInfo.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,8 +31,8 @@
         "$1[\"queryUsageAndQuota\"]($2, $3,\n$4)" js_queryUsageAndQuota ::
         StorageInfo ->
           Word ->
-            Nullable StorageUsageCallback ->
-              Nullable StorageErrorCallback -> IO ()
+            Optional StorageUsageCallback ->
+              Optional StorageErrorCallback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageInfo.queryUsageAndQuota Mozilla StorageInfo.queryUsageAndQuota documentation> 
 queryUsageAndQuota ::
@@ -41,17 +42,17 @@
                          Maybe StorageUsageCallback -> Maybe StorageErrorCallback -> m ()
 queryUsageAndQuota self storageType usageCallback errorCallback
   = liftIO
-      (js_queryUsageAndQuota (self) storageType
-         (maybeToNullable usageCallback)
-         (maybeToNullable errorCallback))
+      (js_queryUsageAndQuota self storageType
+         (maybeToOptional usageCallback)
+         (maybeToOptional errorCallback))
  
 foreign import javascript unsafe
         "$1[\"requestQuota\"]($2, $3, $4,\n$5)" js_requestQuota ::
         StorageInfo ->
           Word ->
             Double ->
-              Nullable StorageQuotaCallback ->
-                Nullable StorageErrorCallback -> IO ()
+              Optional StorageQuotaCallback ->
+                Optional StorageErrorCallback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageInfo.requestQuota Mozilla StorageInfo.requestQuota documentation> 
 requestQuota ::
@@ -63,8 +64,8 @@
 requestQuota self storageType newQuotaInBytes quotaCallback
   errorCallback
   = liftIO
-      (js_requestQuota (self) storageType (fromIntegral newQuotaInBytes)
-         (maybeToNullable quotaCallback)
-         (maybeToNullable errorCallback))
+      (js_requestQuota self storageType (fromIntegral newQuotaInBytes)
+         (maybeToOptional quotaCallback)
+         (maybeToOptional errorCallback))
 pattern TEMPORARY = 0
 pattern PERSISTENT = 1
diff --git a/src/GHCJS/DOM/JSFFI/Generated/StorageQuota.hs b/src/GHCJS/DOM/JSFFI/Generated/StorageQuota.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/StorageQuota.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/StorageQuota.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,25 +29,24 @@
 foreign import javascript unsafe
         "$1[\"queryUsageAndQuota\"]($2, $3)" js_queryUsageAndQuota ::
         StorageQuota ->
-          Nullable StorageUsageCallback ->
-            Nullable StorageErrorCallback -> IO ()
+          StorageUsageCallback -> Optional StorageErrorCallback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageQuota.queryUsageAndQuota Mozilla StorageQuota.queryUsageAndQuota documentation> 
 queryUsageAndQuota ::
                    (MonadIO m) =>
                      StorageQuota ->
-                       Maybe StorageUsageCallback -> Maybe StorageErrorCallback -> m ()
+                       StorageUsageCallback -> Maybe StorageErrorCallback -> m ()
 queryUsageAndQuota self usageCallback errorCallback
   = liftIO
-      (js_queryUsageAndQuota (self) (maybeToNullable usageCallback)
-         (maybeToNullable errorCallback))
+      (js_queryUsageAndQuota self usageCallback
+         (maybeToOptional errorCallback))
  
 foreign import javascript unsafe "$1[\"requestQuota\"]($2, $3, $4)"
         js_requestQuota ::
         StorageQuota ->
           Double ->
-            Nullable StorageQuotaCallback ->
-              Nullable StorageErrorCallback -> IO ()
+            Optional StorageQuotaCallback ->
+              Optional StorageErrorCallback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StorageQuota.requestQuota Mozilla StorageQuota.requestQuota documentation> 
 requestQuota ::
@@ -56,6 +56,6 @@
                    Maybe StorageQuotaCallback -> Maybe StorageErrorCallback -> m ()
 requestQuota self newQuotaInBytes quotaCallback errorCallback
   = liftIO
-      (js_requestQuota (self) (fromIntegral newQuotaInBytes)
-         (maybeToNullable quotaCallback)
-         (maybeToNullable errorCallback))
+      (js_requestQuota self (fromIntegral newQuotaInBytes)
+         (maybeToOptional quotaCallback)
+         (maybeToOptional errorCallback))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/StorageQuotaCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/StorageQuotaCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/StorageQuotaCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/StorageQuotaCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/StorageUsageCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/StorageUsageCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/StorageUsageCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/StorageUsageCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/StringCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/StringCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/StringCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/StringCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/StyleMedia.hs b/src/GHCJS/DOM/JSFFI/Generated/StyleMedia.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/StyleMedia.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/StyleMedia.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -27,21 +28,22 @@
  
 foreign import javascript unsafe
         "($1[\"matchMedium\"]($2) ? 1 : 0)" js_matchMedium ::
-        StyleMedia -> JSString -> IO Bool
+        StyleMedia -> Optional JSString -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleMedia.matchMedium Mozilla StyleMedia.matchMedium documentation> 
 matchMedium ::
             (MonadIO m, ToJSString mediaquery) =>
-              StyleMedia -> mediaquery -> m Bool
+              StyleMedia -> Maybe mediaquery -> m Bool
 matchMedium self mediaquery
-  = liftIO (js_matchMedium (self) (toJSString mediaquery))
+  = liftIO (js_matchMedium self (toOptionalJSString mediaquery))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleMedia.matchMedium Mozilla StyleMedia.matchMedium documentation> 
 matchMedium_ ::
              (MonadIO m, ToJSString mediaquery) =>
-               StyleMedia -> mediaquery -> m ()
+               StyleMedia -> Maybe mediaquery -> m ()
 matchMedium_ self mediaquery
-  = liftIO (void (js_matchMedium (self) (toJSString mediaquery)))
+  = liftIO
+      (void (js_matchMedium self (toOptionalJSString mediaquery)))
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         StyleMedia -> IO JSString
@@ -49,4 +51,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleMedia.type Mozilla StyleMedia.type documentation> 
 getType ::
         (MonadIO m, FromJSString result) => StyleMedia -> m result
-getType self = liftIO (fromJSString <$> (js_getType (self)))
+getType self = liftIO (fromJSString <$> (js_getType self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/StyleSheet.hs b/src/GHCJS/DOM/JSFFI/Generated/StyleSheet.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/StyleSheet.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/StyleSheet.hs
@@ -6,19 +6,17 @@
 module GHCJS.DOM.JSFFI.Generated.StyleSheet
        (js_getType, getType, getTypeUnsafe, getTypeUnchecked,
         js_setDisabled, setDisabled, js_getDisabled, getDisabled,
-        js_getOwnerNode, getOwnerNode, getOwnerNodeUnsafe,
-        getOwnerNodeUnchecked, js_getParentStyleSheet, getParentStyleSheet,
-        getParentStyleSheetUnsafe, getParentStyleSheetUnchecked,
-        js_getHref, getHref, getHrefUnsafe, getHrefUnchecked, js_getTitle,
-        getTitle, getTitleUnsafe, getTitleUnchecked, js_getMedia, getMedia,
-        getMediaUnsafe, getMediaUnchecked, StyleSheet(..), gTypeStyleSheet,
-        IsStyleSheet, toStyleSheet)
+        js_getOwnerNode, getOwnerNode, js_getParentStyleSheet,
+        getParentStyleSheet, js_getHref, getHref, getHrefUnsafe,
+        getHrefUnchecked, js_getTitle, getTitle, getTitleUnsafe,
+        getTitleUnchecked, js_getMedia, getMedia, StyleSheet(..),
+        gTypeStyleSheet, IsStyleSheet, toStyleSheet)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,6 +25,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -77,57 +76,20 @@
 getDisabled self = liftIO (js_getDisabled (toStyleSheet self))
  
 foreign import javascript unsafe "$1[\"ownerNode\"]"
-        js_getOwnerNode :: StyleSheet -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet.ownerNode Mozilla StyleSheet.ownerNode documentation> 
-getOwnerNode ::
-             (MonadIO m, IsStyleSheet self) => self -> m (Maybe Node)
-getOwnerNode self
-  = liftIO
-      (nullableToMaybe <$> (js_getOwnerNode (toStyleSheet self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet.ownerNode Mozilla StyleSheet.ownerNode documentation> 
-getOwnerNodeUnsafe ::
-                   (MonadIO m, IsStyleSheet self, HasCallStack) => self -> m Node
-getOwnerNodeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOwnerNode (toStyleSheet self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getOwnerNode :: StyleSheet -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet.ownerNode Mozilla StyleSheet.ownerNode documentation> 
-getOwnerNodeUnchecked ::
-                      (MonadIO m, IsStyleSheet self) => self -> m Node
-getOwnerNodeUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getOwnerNode (toStyleSheet self)))
+getOwnerNode :: (MonadIO m, IsStyleSheet self) => self -> m Node
+getOwnerNode self = liftIO (js_getOwnerNode (toStyleSheet self))
  
 foreign import javascript unsafe "$1[\"parentStyleSheet\"]"
-        js_getParentStyleSheet :: StyleSheet -> IO (Nullable StyleSheet)
+        js_getParentStyleSheet :: StyleSheet -> IO StyleSheet
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet.parentStyleSheet Mozilla StyleSheet.parentStyleSheet documentation> 
 getParentStyleSheet ::
-                    (MonadIO m, IsStyleSheet self) => self -> m (Maybe StyleSheet)
+                    (MonadIO m, IsStyleSheet self) => self -> m StyleSheet
 getParentStyleSheet self
-  = liftIO
-      (nullableToMaybe <$> (js_getParentStyleSheet (toStyleSheet self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet.parentStyleSheet Mozilla StyleSheet.parentStyleSheet documentation> 
-getParentStyleSheetUnsafe ::
-                          (MonadIO m, IsStyleSheet self, HasCallStack) =>
-                            self -> m StyleSheet
-getParentStyleSheetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getParentStyleSheet (toStyleSheet self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet.parentStyleSheet Mozilla StyleSheet.parentStyleSheet documentation> 
-getParentStyleSheetUnchecked ::
-                             (MonadIO m, IsStyleSheet self) => self -> m StyleSheet
-getParentStyleSheetUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getParentStyleSheet (toStyleSheet self)))
+  = liftIO (js_getParentStyleSheet (toStyleSheet self))
  
 foreign import javascript unsafe "$1[\"href\"]" js_getHref ::
         StyleSheet -> IO (Nullable JSString)
@@ -187,25 +149,8 @@
          (js_getTitle (toStyleSheet self)))
  
 foreign import javascript unsafe "$1[\"media\"]" js_getMedia ::
-        StyleSheet -> IO (Nullable MediaList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet.media Mozilla StyleSheet.media documentation> 
-getMedia ::
-         (MonadIO m, IsStyleSheet self) => self -> m (Maybe MediaList)
-getMedia self
-  = liftIO (nullableToMaybe <$> (js_getMedia (toStyleSheet self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet.media Mozilla StyleSheet.media documentation> 
-getMediaUnsafe ::
-               (MonadIO m, IsStyleSheet self, HasCallStack) => self -> m MediaList
-getMediaUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMedia (toStyleSheet self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        StyleSheet -> IO MediaList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet.media Mozilla StyleSheet.media documentation> 
-getMediaUnchecked ::
-                  (MonadIO m, IsStyleSheet self) => self -> m MediaList
-getMediaUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getMedia (toStyleSheet self)))
+getMedia :: (MonadIO m, IsStyleSheet self) => self -> m MediaList
+getMedia self = liftIO (js_getMedia (toStyleSheet self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/StyleSheetList.hs b/src/GHCJS/DOM/JSFFI/Generated/StyleSheetList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/StyleSheetList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/StyleSheetList.hs
@@ -4,15 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.StyleSheetList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js__get, _get,
-        _get_, _getUnsafe, _getUnchecked, js_getLength, getLength,
-        StyleSheetList(..), gTypeStyleSheetList)
+       (js_item, item, item_, itemUnsafe, itemUnchecked, js_get, get,
+        get_, js_getLength, getLength, StyleSheetList(..),
+        gTypeStyleSheetList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,73 +21,55 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
+foreign import javascript unsafe "$1[$2]" js_item ::
         StyleSheetList -> Word -> IO (Nullable StyleSheet)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList.item Mozilla StyleSheetList.item documentation> 
 item ::
      (MonadIO m) => StyleSheetList -> Word -> m (Maybe StyleSheet)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item self index = liftIO (nullableToMaybe <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList.item Mozilla StyleSheetList.item documentation> 
 item_ :: (MonadIO m) => StyleSheetList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList.item Mozilla StyleSheetList.item documentation> 
 itemUnsafe ::
            (MonadIO m, HasCallStack) => StyleSheetList -> Word -> m StyleSheet
 itemUnsafe self index
   = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
+      ((nullableToMaybe <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList.item Mozilla StyleSheetList.item documentation> 
 itemUnchecked ::
               (MonadIO m) => StyleSheetList -> Word -> m StyleSheet
 itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+  = liftIO (fromJust . nullableToMaybe <$> (js_item self index))
  
-foreign import javascript unsafe "$1[\"_get\"]($2)" js__get ::
-        StyleSheetList -> JSString -> IO (Nullable CSSStyleSheet)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList._get Mozilla StyleSheetList._get documentation> 
-_get ::
-     (MonadIO m, ToJSString name) =>
-       StyleSheetList -> name -> m (Maybe CSSStyleSheet)
-_get self name
-  = liftIO (nullableToMaybe <$> (js__get (self) (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList._get Mozilla StyleSheetList._get documentation> 
-_get_ ::
-      (MonadIO m, ToJSString name) => StyleSheetList -> name -> m ()
-_get_ self name = liftIO (void (js__get (self) (toJSString name)))
+foreign import javascript unsafe "$1[$2]" js_get ::
+        StyleSheetList -> JSString -> IO CSSStyleSheet
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList._get Mozilla StyleSheetList._get documentation> 
-_getUnsafe ::
-           (MonadIO m, ToJSString name, HasCallStack) =>
-             StyleSheetList -> name -> m CSSStyleSheet
-_getUnsafe self name
-  = liftIO
-      ((nullableToMaybe <$> (js__get (self) (toJSString name))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList.get Mozilla StyleSheetList.get documentation> 
+get ::
+    (MonadIO m, ToJSString name) =>
+      StyleSheetList -> name -> m CSSStyleSheet
+get self name = liftIO (js_get self (toJSString name))
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList._get Mozilla StyleSheetList._get documentation> 
-_getUnchecked ::
-              (MonadIO m, ToJSString name) =>
-                StyleSheetList -> name -> m CSSStyleSheet
-_getUnchecked self name
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js__get (self) (toJSString name)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList.get Mozilla StyleSheetList.get documentation> 
+get_ ::
+     (MonadIO m, ToJSString name) => StyleSheetList -> name -> m ()
+get_ self name = liftIO (void (js_get self (toJSString name)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         StyleSheetList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList.length Mozilla StyleSheetList.length documentation> 
 getLength :: (MonadIO m) => StyleSheetList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/SubtleCrypto.hs b/src/GHCJS/DOM/JSFFI/Generated/SubtleCrypto.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/SubtleCrypto.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/SubtleCrypto.hs
@@ -4,24 +4,20 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.SubtleCrypto
-       (js_encrypt, encrypt, encrypt_, encryptUnsafe, encryptUnchecked,
-        js_decrypt, decrypt, decrypt_, decryptUnsafe, decryptUnchecked,
-        js_sign, sign, sign_, signUnsafe, signUnchecked, js_verify, verify,
-        verify_, verifyUnsafe, verifyUnchecked, js_digest, digest, digest_,
-        digestUnsafe, digestUnchecked, js_generateKey, generateKey,
-        generateKey_, generateKeyUnsafe, generateKeyUnchecked,
-        js_importKey, importKey, importKey_, importKeyUnsafe,
-        importKeyUnchecked, js_exportKey, exportKey, exportKey_,
-        exportKeyUnsafe, exportKeyUnchecked, js_wrapKey, wrapKey, wrapKey_,
-        wrapKeyUnsafe, wrapKeyUnchecked, js_unwrapKey, unwrapKey,
-        unwrapKey_, unwrapKeyUnsafe, unwrapKeyUnchecked, SubtleCrypto(..),
+       (js_encrypt, encrypt, encrypt_, js_decrypt, decrypt, decrypt_,
+        js_sign, sign, sign_, js_verify, verify, verify_, js_digest,
+        digest, digest_, js_deriveKey, deriveKey, deriveKey_,
+        js_deriveBits, deriveBits, deriveBits_, js_generateKey,
+        generateKey, generateKey_, js_importKey, importKey, importKey_,
+        js_exportKey, exportKey, exportKey_, js_wrapKey, wrapKey, wrapKey_,
+        js_unwrapKey, unwrapKey, unwrapKey_, SubtleCrypto(..),
         gTypeSubtleCrypto)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -30,646 +26,345 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"encrypt\"]($2, $3, $4)"
-        js_encrypt ::
-        SubtleCrypto ->
-          JSString -> Nullable CryptoKey -> JSVal -> IO (Nullable Promise)
+foreign import javascript interruptible
+        "$1[\"encrypt\"]($2, $3, $4).\nthen($c);" js_encrypt ::
+        SubtleCrypto -> JSString -> CryptoKey -> BufferSource -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.encrypt Mozilla WebKitSubtleCrypto.encrypt documentation> 
 encrypt ::
-        (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-          SubtleCrypto ->
-            algorithm -> Maybe CryptoKey -> [Maybe data'] -> m (Maybe Promise)
+        (MonadIO m, ToJSString algorithm, IsBufferSource data') =>
+          SubtleCrypto -> algorithm -> CryptoKey -> data' -> m JSVal
 encrypt self algorithm key data'
   = liftIO
-      (nullableToMaybe <$>
-         (toJSVal data' >>=
-            \ data'' ->
-              js_encrypt (self) (toJSString algorithm) (maybeToNullable key)
-                data''))
+      (js_encrypt self (toJSString algorithm) key (toBufferSource data'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.encrypt Mozilla WebKitSubtleCrypto.encrypt documentation> 
 encrypt_ ::
-         (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-           SubtleCrypto ->
-             algorithm -> Maybe CryptoKey -> [Maybe data'] -> m ()
+         (MonadIO m, ToJSString algorithm, IsBufferSource data') =>
+           SubtleCrypto -> algorithm -> CryptoKey -> data' -> m ()
 encrypt_ self algorithm key data'
   = liftIO
       (void
-         (toJSVal data' >>=
-            \ data'' ->
-              js_encrypt (self) (toJSString algorithm) (maybeToNullable key)
-                data''))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.encrypt Mozilla WebKitSubtleCrypto.encrypt documentation> 
-encryptUnsafe ::
-              (MonadIO m, ToJSString algorithm, IsCryptoOperationData data',
-               HasCallStack) =>
-                SubtleCrypto ->
-                  algorithm -> Maybe CryptoKey -> [Maybe data'] -> m Promise
-encryptUnsafe self algorithm key data'
-  = liftIO
-      ((nullableToMaybe <$>
-          (toJSVal data' >>=
-             \ data'' ->
-               js_encrypt (self) (toJSString algorithm) (maybeToNullable key)
-                 data''))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.encrypt Mozilla WebKitSubtleCrypto.encrypt documentation> 
-encryptUnchecked ::
-                 (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-                   SubtleCrypto ->
-                     algorithm -> Maybe CryptoKey -> [Maybe data'] -> m Promise
-encryptUnchecked self algorithm key data'
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (toJSVal data' >>=
-            \ data'' ->
-              js_encrypt (self) (toJSString algorithm) (maybeToNullable key)
-                data''))
+         (js_encrypt self (toJSString algorithm) key
+            (toBufferSource data')))
  
-foreign import javascript unsafe "$1[\"decrypt\"]($2, $3, $4)"
-        js_decrypt ::
-        SubtleCrypto ->
-          JSString -> Nullable CryptoKey -> JSVal -> IO (Nullable Promise)
+foreign import javascript interruptible
+        "$1[\"decrypt\"]($2, $3, $4).\nthen($c);" js_decrypt ::
+        SubtleCrypto -> JSString -> CryptoKey -> BufferSource -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.decrypt Mozilla WebKitSubtleCrypto.decrypt documentation> 
 decrypt ::
-        (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-          SubtleCrypto ->
-            algorithm -> Maybe CryptoKey -> [Maybe data'] -> m (Maybe Promise)
+        (MonadIO m, ToJSString algorithm, IsBufferSource data') =>
+          SubtleCrypto -> algorithm -> CryptoKey -> data' -> m JSVal
 decrypt self algorithm key data'
   = liftIO
-      (nullableToMaybe <$>
-         (toJSVal data' >>=
-            \ data'' ->
-              js_decrypt (self) (toJSString algorithm) (maybeToNullable key)
-                data''))
+      (js_decrypt self (toJSString algorithm) key (toBufferSource data'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.decrypt Mozilla WebKitSubtleCrypto.decrypt documentation> 
 decrypt_ ::
-         (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-           SubtleCrypto ->
-             algorithm -> Maybe CryptoKey -> [Maybe data'] -> m ()
+         (MonadIO m, ToJSString algorithm, IsBufferSource data') =>
+           SubtleCrypto -> algorithm -> CryptoKey -> data' -> m ()
 decrypt_ self algorithm key data'
   = liftIO
       (void
-         (toJSVal data' >>=
-            \ data'' ->
-              js_decrypt (self) (toJSString algorithm) (maybeToNullable key)
-                data''))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.decrypt Mozilla WebKitSubtleCrypto.decrypt documentation> 
-decryptUnsafe ::
-              (MonadIO m, ToJSString algorithm, IsCryptoOperationData data',
-               HasCallStack) =>
-                SubtleCrypto ->
-                  algorithm -> Maybe CryptoKey -> [Maybe data'] -> m Promise
-decryptUnsafe self algorithm key data'
-  = liftIO
-      ((nullableToMaybe <$>
-          (toJSVal data' >>=
-             \ data'' ->
-               js_decrypt (self) (toJSString algorithm) (maybeToNullable key)
-                 data''))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.decrypt Mozilla WebKitSubtleCrypto.decrypt documentation> 
-decryptUnchecked ::
-                 (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-                   SubtleCrypto ->
-                     algorithm -> Maybe CryptoKey -> [Maybe data'] -> m Promise
-decryptUnchecked self algorithm key data'
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (toJSVal data' >>=
-            \ data'' ->
-              js_decrypt (self) (toJSString algorithm) (maybeToNullable key)
-                data''))
+         (js_decrypt self (toJSString algorithm) key
+            (toBufferSource data')))
  
-foreign import javascript unsafe "$1[\"sign\"]($2, $3, $4)" js_sign
-        ::
-        SubtleCrypto ->
-          JSString -> Nullable CryptoKey -> JSVal -> IO (Nullable Promise)
+foreign import javascript interruptible
+        "$1[\"sign\"]($2, $3, $4).then($c);" js_sign ::
+        SubtleCrypto -> JSString -> CryptoKey -> BufferSource -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.sign Mozilla WebKitSubtleCrypto.sign documentation> 
 sign ::
-     (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-       SubtleCrypto ->
-         algorithm -> Maybe CryptoKey -> [Maybe data'] -> m (Maybe Promise)
+     (MonadIO m, ToJSString algorithm, IsBufferSource data') =>
+       SubtleCrypto -> algorithm -> CryptoKey -> data' -> m JSVal
 sign self algorithm key data'
   = liftIO
-      (nullableToMaybe <$>
-         (toJSVal data' >>=
-            \ data'' ->
-              js_sign (self) (toJSString algorithm) (maybeToNullable key)
-                data''))
+      (js_sign self (toJSString algorithm) key (toBufferSource data'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.sign Mozilla WebKitSubtleCrypto.sign documentation> 
 sign_ ::
-      (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-        SubtleCrypto ->
-          algorithm -> Maybe CryptoKey -> [Maybe data'] -> m ()
+      (MonadIO m, ToJSString algorithm, IsBufferSource data') =>
+        SubtleCrypto -> algorithm -> CryptoKey -> data' -> m ()
 sign_ self algorithm key data'
   = liftIO
       (void
-         (toJSVal data' >>=
-            \ data'' ->
-              js_sign (self) (toJSString algorithm) (maybeToNullable key)
-                data''))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.sign Mozilla WebKitSubtleCrypto.sign documentation> 
-signUnsafe ::
-           (MonadIO m, ToJSString algorithm, IsCryptoOperationData data',
-            HasCallStack) =>
-             SubtleCrypto ->
-               algorithm -> Maybe CryptoKey -> [Maybe data'] -> m Promise
-signUnsafe self algorithm key data'
-  = liftIO
-      ((nullableToMaybe <$>
-          (toJSVal data' >>=
-             \ data'' ->
-               js_sign (self) (toJSString algorithm) (maybeToNullable key)
-                 data''))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.sign Mozilla WebKitSubtleCrypto.sign documentation> 
-signUnchecked ::
-              (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-                SubtleCrypto ->
-                  algorithm -> Maybe CryptoKey -> [Maybe data'] -> m Promise
-signUnchecked self algorithm key data'
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (toJSVal data' >>=
-            \ data'' ->
-              js_sign (self) (toJSString algorithm) (maybeToNullable key)
-                data''))
+         (js_sign self (toJSString algorithm) key (toBufferSource data')))
  
-foreign import javascript unsafe "$1[\"verify\"]($2, $3, $4, $5)"
-        js_verify ::
+foreign import javascript interruptible
+        "$1[\"verify\"]($2, $3, $4, $5).\nthen($c);" js_verify ::
         SubtleCrypto ->
-          JSString ->
-            Nullable CryptoKey ->
-              Nullable CryptoOperationData -> JSVal -> IO (Nullable Promise)
+          JSString -> CryptoKey -> BufferSource -> BufferSource -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.verify Mozilla WebKitSubtleCrypto.verify documentation> 
 verify ::
-       (MonadIO m, ToJSString algorithm, IsCryptoOperationData signature,
-        IsCryptoOperationData data') =>
+       (MonadIO m, ToJSString algorithm, IsBufferSource signature,
+        IsBufferSource data') =>
          SubtleCrypto ->
-           algorithm ->
-             Maybe CryptoKey ->
-               Maybe signature -> [Maybe data'] -> m (Maybe Promise)
+           algorithm -> CryptoKey -> signature -> data' -> m JSVal
 verify self algorithm key signature data'
   = liftIO
-      (nullableToMaybe <$>
-         (toJSVal data' >>=
-            \ data'' ->
-              js_verify (self) (toJSString algorithm) (maybeToNullable key)
-                (maybeToNullable (fmap toCryptoOperationData signature))
-                data''))
+      (js_verify self (toJSString algorithm) key
+         (toBufferSource signature)
+         (toBufferSource data'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.verify Mozilla WebKitSubtleCrypto.verify documentation> 
 verify_ ::
-        (MonadIO m, ToJSString algorithm, IsCryptoOperationData signature,
-         IsCryptoOperationData data') =>
+        (MonadIO m, ToJSString algorithm, IsBufferSource signature,
+         IsBufferSource data') =>
           SubtleCrypto ->
-            algorithm ->
-              Maybe CryptoKey -> Maybe signature -> [Maybe data'] -> m ()
+            algorithm -> CryptoKey -> signature -> data' -> m ()
 verify_ self algorithm key signature data'
   = liftIO
       (void
-         (toJSVal data' >>=
-            \ data'' ->
-              js_verify (self) (toJSString algorithm) (maybeToNullable key)
-                (maybeToNullable (fmap toCryptoOperationData signature))
-                data''))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.verify Mozilla WebKitSubtleCrypto.verify documentation> 
-verifyUnsafe ::
-             (MonadIO m, ToJSString algorithm, IsCryptoOperationData signature,
-              IsCryptoOperationData data', HasCallStack) =>
-               SubtleCrypto ->
-                 algorithm ->
-                   Maybe CryptoKey -> Maybe signature -> [Maybe data'] -> m Promise
-verifyUnsafe self algorithm key signature data'
-  = liftIO
-      ((nullableToMaybe <$>
-          (toJSVal data' >>=
-             \ data'' ->
-               js_verify (self) (toJSString algorithm) (maybeToNullable key)
-                 (maybeToNullable (fmap toCryptoOperationData signature))
-                 data''))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.verify Mozilla WebKitSubtleCrypto.verify documentation> 
-verifyUnchecked ::
-                (MonadIO m, ToJSString algorithm, IsCryptoOperationData signature,
-                 IsCryptoOperationData data') =>
-                  SubtleCrypto ->
-                    algorithm ->
-                      Maybe CryptoKey -> Maybe signature -> [Maybe data'] -> m Promise
-verifyUnchecked self algorithm key signature data'
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (toJSVal data' >>=
-            \ data'' ->
-              js_verify (self) (toJSString algorithm) (maybeToNullable key)
-                (maybeToNullable (fmap toCryptoOperationData signature))
-                data''))
+         (js_verify self (toJSString algorithm) key
+            (toBufferSource signature)
+            (toBufferSource data')))
  
-foreign import javascript unsafe "$1[\"digest\"]($2, $3)" js_digest
-        :: SubtleCrypto -> JSString -> JSVal -> IO (Nullable Promise)
+foreign import javascript interruptible
+        "$1[\"digest\"]($2, $3).then($c);" js_digest ::
+        SubtleCrypto -> JSString -> BufferSource -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.digest Mozilla WebKitSubtleCrypto.digest documentation> 
 digest ::
-       (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-         SubtleCrypto -> algorithm -> [Maybe data'] -> m (Maybe Promise)
+       (MonadIO m, ToJSString algorithm, IsBufferSource data') =>
+         SubtleCrypto -> algorithm -> data' -> m JSVal
 digest self algorithm data'
   = liftIO
-      (nullableToMaybe <$>
-         (toJSVal data' >>=
-            \ data'' -> js_digest (self) (toJSString algorithm) data''))
+      (js_digest self (toJSString algorithm) (toBufferSource data'))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.digest Mozilla WebKitSubtleCrypto.digest documentation> 
 digest_ ::
-        (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-          SubtleCrypto -> algorithm -> [Maybe data'] -> m ()
+        (MonadIO m, ToJSString algorithm, IsBufferSource data') =>
+          SubtleCrypto -> algorithm -> data' -> m ()
 digest_ self algorithm data'
   = liftIO
       (void
-         (toJSVal data' >>=
-            \ data'' -> js_digest (self) (toJSString algorithm) data''))
+         (js_digest self (toJSString algorithm) (toBufferSource data')))
+ 
+foreign import javascript interruptible
+        "$1[\"deriveKey\"]($2, $3, $4, $5,\n$6).\nthen($c);" js_deriveKey
+        ::
+        SubtleCrypto ->
+          JSString -> CryptoKey -> JSString -> Bool -> JSVal -> IO JSVal
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.digest Mozilla WebKitSubtleCrypto.digest documentation> 
-digestUnsafe ::
-             (MonadIO m, ToJSString algorithm, IsCryptoOperationData data',
-              HasCallStack) =>
-               SubtleCrypto -> algorithm -> [Maybe data'] -> m Promise
-digestUnsafe self algorithm data'
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.deriveKey Mozilla WebKitSubtleCrypto.deriveKey documentation> 
+deriveKey ::
+          (MonadIO m, ToJSString algorithm, ToJSString derivedKeyType) =>
+            SubtleCrypto ->
+              algorithm ->
+                CryptoKey -> derivedKeyType -> Bool -> [CryptoKeyUsage] -> m JSVal
+deriveKey self algorithm baseKey derivedKeyType extractable
+  keyUsages
   = liftIO
-      ((nullableToMaybe <$>
-          (toJSVal data' >>=
-             \ data'' -> js_digest (self) (toJSString algorithm) data''))
-         >>= maybe (Prelude.error "Nothing to return") return)
+      (toJSVal keyUsages >>=
+         \ keyUsages' ->
+           js_deriveKey self (toJSString algorithm) baseKey
+             (toJSString derivedKeyType)
+             extractable
+             keyUsages')
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.digest Mozilla WebKitSubtleCrypto.digest documentation> 
-digestUnchecked ::
-                (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
-                  SubtleCrypto -> algorithm -> [Maybe data'] -> m Promise
-digestUnchecked self algorithm data'
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.deriveKey Mozilla WebKitSubtleCrypto.deriveKey documentation> 
+deriveKey_ ::
+           (MonadIO m, ToJSString algorithm, ToJSString derivedKeyType) =>
+             SubtleCrypto ->
+               algorithm ->
+                 CryptoKey -> derivedKeyType -> Bool -> [CryptoKeyUsage] -> m ()
+deriveKey_ self algorithm baseKey derivedKeyType extractable
+  keyUsages
   = liftIO
-      (fromJust . nullableToMaybe <$>
-         (toJSVal data' >>=
-            \ data'' -> js_digest (self) (toJSString algorithm) data''))
+      (void
+         (toJSVal keyUsages >>=
+            \ keyUsages' ->
+              js_deriveKey self (toJSString algorithm) baseKey
+                (toJSString derivedKeyType)
+                extractable
+                keyUsages'))
  
-foreign import javascript unsafe "$1[\"generateKey\"]($2, $3, $4)"
-        js_generateKey ::
-        SubtleCrypto -> JSString -> Bool -> JSVal -> IO (Nullable Promise)
+foreign import javascript interruptible
+        "$1[\"deriveBits\"]($2, $3, $4).\nthen($c);" js_deriveBits ::
+        SubtleCrypto -> JSString -> CryptoKey -> Word -> IO ArrayBuffer
 
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.deriveBits Mozilla WebKitSubtleCrypto.deriveBits documentation> 
+deriveBits ::
+           (MonadIO m, ToJSString algorithm) =>
+             SubtleCrypto -> algorithm -> CryptoKey -> Word -> m ArrayBuffer
+deriveBits self algorithm baseKey length
+  = liftIO (js_deriveBits self (toJSString algorithm) baseKey length)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.deriveBits Mozilla WebKitSubtleCrypto.deriveBits documentation> 
+deriveBits_ ::
+            (MonadIO m, ToJSString algorithm) =>
+              SubtleCrypto -> algorithm -> CryptoKey -> Word -> m ()
+deriveBits_ self algorithm baseKey length
+  = liftIO
+      (void (js_deriveBits self (toJSString algorithm) baseKey length))
+ 
+foreign import javascript interruptible
+        "$1[\"generateKey\"]($2, $3, $4).\nthen($c);" js_generateKey ::
+        SubtleCrypto -> JSString -> Bool -> JSVal -> IO JSVal
+
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.generateKey Mozilla WebKitSubtleCrypto.generateKey documentation> 
 generateKey ::
             (MonadIO m, ToJSString algorithm) =>
-              SubtleCrypto ->
-                algorithm -> Bool -> [KeyUsage] -> m (Maybe Promise)
+              SubtleCrypto -> algorithm -> Bool -> [CryptoKeyUsage] -> m JSVal
 generateKey self algorithm extractable keyUsages
   = liftIO
-      (nullableToMaybe <$>
-         (toJSVal keyUsages >>=
-            \ keyUsages' ->
-              js_generateKey (self) (toJSString algorithm) extractable
-                keyUsages'))
+      (toJSVal keyUsages >>=
+         \ keyUsages' ->
+           js_generateKey self (toJSString algorithm) extractable keyUsages')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.generateKey Mozilla WebKitSubtleCrypto.generateKey documentation> 
 generateKey_ ::
              (MonadIO m, ToJSString algorithm) =>
-               SubtleCrypto -> algorithm -> Bool -> [KeyUsage] -> m ()
+               SubtleCrypto -> algorithm -> Bool -> [CryptoKeyUsage] -> m ()
 generateKey_ self algorithm extractable keyUsages
   = liftIO
       (void
          (toJSVal keyUsages >>=
             \ keyUsages' ->
-              js_generateKey (self) (toJSString algorithm) extractable
-                keyUsages'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.generateKey Mozilla WebKitSubtleCrypto.generateKey documentation> 
-generateKeyUnsafe ::
-                  (MonadIO m, ToJSString algorithm, HasCallStack) =>
-                    SubtleCrypto -> algorithm -> Bool -> [KeyUsage] -> m Promise
-generateKeyUnsafe self algorithm extractable keyUsages
-  = liftIO
-      ((nullableToMaybe <$>
-          (toJSVal keyUsages >>=
-             \ keyUsages' ->
-               js_generateKey (self) (toJSString algorithm) extractable
-                 keyUsages'))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.generateKey Mozilla WebKitSubtleCrypto.generateKey documentation> 
-generateKeyUnchecked ::
-                     (MonadIO m, ToJSString algorithm) =>
-                       SubtleCrypto -> algorithm -> Bool -> [KeyUsage] -> m Promise
-generateKeyUnchecked self algorithm extractable keyUsages
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (toJSVal keyUsages >>=
-            \ keyUsages' ->
-              js_generateKey (self) (toJSString algorithm) extractable
-                keyUsages'))
+              js_generateKey self (toJSString algorithm) extractable keyUsages'))
  
-foreign import javascript unsafe
-        "$1[\"importKey\"]($2, $3, $4, $5,\n$6)" js_importKey ::
+foreign import javascript interruptible
+        "$1[\"importKey\"]($2, $3, $4, $5,\n$6).\nthen($c);" js_importKey
+        ::
         SubtleCrypto ->
-          JSString ->
-            Nullable CryptoOperationData ->
-              JSString -> Bool -> JSVal -> IO (Nullable Promise)
+          JSString -> KeyData -> JSString -> Bool -> JSVal -> IO CryptoKey
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.importKey Mozilla WebKitSubtleCrypto.importKey documentation> 
 importKey ::
-          (MonadIO m, ToJSString format, IsCryptoOperationData keyData,
+          (MonadIO m, ToJSString format, IsKeyData keyData,
            ToJSString algorithm) =>
             SubtleCrypto ->
               format ->
-                Maybe keyData ->
-                  algorithm -> Bool -> [KeyUsage] -> m (Maybe Promise)
+                keyData -> algorithm -> Bool -> [CryptoKeyUsage] -> m CryptoKey
 importKey self format keyData algorithm extractable keyUsages
   = liftIO
-      (nullableToMaybe <$>
-         (toJSVal keyUsages >>=
-            \ keyUsages' ->
-              js_importKey (self) (toJSString format)
-                (maybeToNullable (fmap toCryptoOperationData keyData))
-                (toJSString algorithm)
-                extractable
-                keyUsages'))
+      (toJSVal keyUsages >>=
+         \ keyUsages' ->
+           toJSVal keyData >>=
+             \ keyData' ->
+               js_importKey self (toJSString format) (KeyData keyData')
+             (toJSString algorithm)
+             extractable
+             keyUsages')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.importKey Mozilla WebKitSubtleCrypto.importKey documentation> 
 importKey_ ::
-           (MonadIO m, ToJSString format, IsCryptoOperationData keyData,
+           (MonadIO m, ToJSString format, IsKeyData keyData,
             ToJSString algorithm) =>
              SubtleCrypto ->
-               format -> Maybe keyData -> algorithm -> Bool -> [KeyUsage] -> m ()
+               format -> keyData -> algorithm -> Bool -> [CryptoKeyUsage] -> m ()
 importKey_ self format keyData algorithm extractable keyUsages
   = liftIO
       (void
          (toJSVal keyUsages >>=
             \ keyUsages' ->
-              js_importKey (self) (toJSString format)
-                (maybeToNullable (fmap toCryptoOperationData keyData))
-                (toJSString algorithm)
-                extractable
-                keyUsages'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.importKey Mozilla WebKitSubtleCrypto.importKey documentation> 
-importKeyUnsafe ::
-                (MonadIO m, ToJSString format, IsCryptoOperationData keyData,
-                 ToJSString algorithm, HasCallStack) =>
-                  SubtleCrypto ->
-                    format ->
-                      Maybe keyData -> algorithm -> Bool -> [KeyUsage] -> m Promise
-importKeyUnsafe self format keyData algorithm extractable keyUsages
-  = liftIO
-      ((nullableToMaybe <$>
-          (toJSVal keyUsages >>=
-             \ keyUsages' ->
-               js_importKey (self) (toJSString format)
-                 (maybeToNullable (fmap toCryptoOperationData keyData))
-                 (toJSString algorithm)
-                 extractable
-                 keyUsages'))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.importKey Mozilla WebKitSubtleCrypto.importKey documentation> 
-importKeyUnchecked ::
-                   (MonadIO m, ToJSString format, IsCryptoOperationData keyData,
-                    ToJSString algorithm) =>
-                     SubtleCrypto ->
-                       format ->
-                         Maybe keyData -> algorithm -> Bool -> [KeyUsage] -> m Promise
-importKeyUnchecked self format keyData algorithm extractable
-  keyUsages
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (toJSVal keyUsages >>=
-            \ keyUsages' ->
-              js_importKey (self) (toJSString format)
-                (maybeToNullable (fmap toCryptoOperationData keyData))
+              toJSVal keyData >>=
+                \ keyData' ->
+                  js_importKey self (toJSString format) (KeyData keyData')
                 (toJSString algorithm)
                 extractable
                 keyUsages'))
  
-foreign import javascript unsafe "$1[\"exportKey\"]($2, $3)"
-        js_exportKey ::
-        SubtleCrypto ->
-          JSString -> Nullable CryptoKey -> IO (Nullable Promise)
+foreign import javascript interruptible
+        "$1[\"exportKey\"]($2, $3).\nthen($c);" js_exportKey ::
+        SubtleCrypto -> JSString -> CryptoKey -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.exportKey Mozilla WebKitSubtleCrypto.exportKey documentation> 
 exportKey ::
           (MonadIO m, ToJSString format) =>
-            SubtleCrypto -> format -> Maybe CryptoKey -> m (Maybe Promise)
+            SubtleCrypto -> format -> CryptoKey -> m JSVal
 exportKey self format key
-  = liftIO
-      (nullableToMaybe <$>
-         (js_exportKey (self) (toJSString format) (maybeToNullable key)))
+  = liftIO (js_exportKey self (toJSString format) key)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.exportKey Mozilla WebKitSubtleCrypto.exportKey documentation> 
 exportKey_ ::
            (MonadIO m, ToJSString format) =>
-             SubtleCrypto -> format -> Maybe CryptoKey -> m ()
+             SubtleCrypto -> format -> CryptoKey -> m ()
 exportKey_ self format key
-  = liftIO
-      (void
-         (js_exportKey (self) (toJSString format) (maybeToNullable key)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.exportKey Mozilla WebKitSubtleCrypto.exportKey documentation> 
-exportKeyUnsafe ::
-                (MonadIO m, ToJSString format, HasCallStack) =>
-                  SubtleCrypto -> format -> Maybe CryptoKey -> m Promise
-exportKeyUnsafe self format key
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_exportKey (self) (toJSString format) (maybeToNullable key)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.exportKey Mozilla WebKitSubtleCrypto.exportKey documentation> 
-exportKeyUnchecked ::
-                   (MonadIO m, ToJSString format) =>
-                     SubtleCrypto -> format -> Maybe CryptoKey -> m Promise
-exportKeyUnchecked self format key
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_exportKey (self) (toJSString format) (maybeToNullable key)))
+  = liftIO (void (js_exportKey self (toJSString format) key))
  
-foreign import javascript unsafe "$1[\"wrapKey\"]($2, $3, $4, $5)"
-        js_wrapKey ::
+foreign import javascript interruptible
+        "$1[\"wrapKey\"]($2, $3, $4, $5).\nthen($c);" js_wrapKey ::
         SubtleCrypto ->
-          JSString ->
-            Nullable CryptoKey ->
-              Nullable CryptoKey -> JSString -> IO (Nullable Promise)
+          JSString -> CryptoKey -> CryptoKey -> JSString -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.wrapKey Mozilla WebKitSubtleCrypto.wrapKey documentation> 
 wrapKey ::
         (MonadIO m, ToJSString format, ToJSString wrapAlgorithm) =>
           SubtleCrypto ->
-            format ->
-              Maybe CryptoKey ->
-                Maybe CryptoKey -> wrapAlgorithm -> m (Maybe Promise)
+            format -> CryptoKey -> CryptoKey -> wrapAlgorithm -> m JSVal
 wrapKey self format key wrappingKey wrapAlgorithm
   = liftIO
-      (nullableToMaybe <$>
-         (js_wrapKey (self) (toJSString format) (maybeToNullable key)
-            (maybeToNullable wrappingKey)
-            (toJSString wrapAlgorithm)))
+      (js_wrapKey self (toJSString format) key wrappingKey
+         (toJSString wrapAlgorithm))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.wrapKey Mozilla WebKitSubtleCrypto.wrapKey documentation> 
 wrapKey_ ::
          (MonadIO m, ToJSString format, ToJSString wrapAlgorithm) =>
            SubtleCrypto ->
-             format ->
-               Maybe CryptoKey -> Maybe CryptoKey -> wrapAlgorithm -> m ()
+             format -> CryptoKey -> CryptoKey -> wrapAlgorithm -> m ()
 wrapKey_ self format key wrappingKey wrapAlgorithm
   = liftIO
       (void
-         (js_wrapKey (self) (toJSString format) (maybeToNullable key)
-            (maybeToNullable wrappingKey)
-            (toJSString wrapAlgorithm)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.wrapKey Mozilla WebKitSubtleCrypto.wrapKey documentation> 
-wrapKeyUnsafe ::
-              (MonadIO m, ToJSString format, ToJSString wrapAlgorithm,
-               HasCallStack) =>
-                SubtleCrypto ->
-                  format ->
-                    Maybe CryptoKey -> Maybe CryptoKey -> wrapAlgorithm -> m Promise
-wrapKeyUnsafe self format key wrappingKey wrapAlgorithm
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_wrapKey (self) (toJSString format) (maybeToNullable key)
-             (maybeToNullable wrappingKey)
-             (toJSString wrapAlgorithm)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.wrapKey Mozilla WebKitSubtleCrypto.wrapKey documentation> 
-wrapKeyUnchecked ::
-                 (MonadIO m, ToJSString format, ToJSString wrapAlgorithm) =>
-                   SubtleCrypto ->
-                     format ->
-                       Maybe CryptoKey -> Maybe CryptoKey -> wrapAlgorithm -> m Promise
-wrapKeyUnchecked self format key wrappingKey wrapAlgorithm
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_wrapKey (self) (toJSString format) (maybeToNullable key)
-            (maybeToNullable wrappingKey)
+         (js_wrapKey self (toJSString format) key wrappingKey
             (toJSString wrapAlgorithm)))
  
-foreign import javascript unsafe
-        "$1[\"unwrapKey\"]($2, $3, $4, $5,\n$6, $7, $8)" js_unwrapKey ::
+foreign import javascript interruptible
+        "$1[\"unwrapKey\"]($2, $3, $4, $5,\n$6, $7, $8).\nthen($c);"
+        js_unwrapKey ::
         SubtleCrypto ->
           JSString ->
-            Nullable CryptoOperationData ->
-              Nullable CryptoKey ->
-                JSString -> JSString -> Bool -> JSVal -> IO (Nullable Promise)
+            BufferSource ->
+              CryptoKey -> JSString -> JSString -> Bool -> JSVal -> IO CryptoKey
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.unwrapKey Mozilla WebKitSubtleCrypto.unwrapKey documentation> 
 unwrapKey ::
-          (MonadIO m, ToJSString format, IsCryptoOperationData wrappedKey,
+          (MonadIO m, ToJSString format, IsBufferSource wrappedKey,
            ToJSString unwrapAlgorithm, ToJSString unwrappedKeyAlgorithm) =>
             SubtleCrypto ->
               format ->
-                Maybe wrappedKey ->
-                  Maybe CryptoKey ->
+                wrappedKey ->
+                  CryptoKey ->
                     unwrapAlgorithm ->
-                      unwrappedKeyAlgorithm -> Bool -> [KeyUsage] -> m (Maybe Promise)
+                      unwrappedKeyAlgorithm -> Bool -> [CryptoKeyUsage] -> m CryptoKey
 unwrapKey self format wrappedKey unwrappingKey unwrapAlgorithm
   unwrappedKeyAlgorithm extractable keyUsages
   = liftIO
-      (nullableToMaybe <$>
-         (toJSVal keyUsages >>=
-            \ keyUsages' ->
-              js_unwrapKey (self) (toJSString format)
-                (maybeToNullable (fmap toCryptoOperationData wrappedKey))
-                (maybeToNullable unwrappingKey)
-                (toJSString unwrapAlgorithm)
-                (toJSString unwrappedKeyAlgorithm)
-                extractable
-                keyUsages'))
+      (toJSVal keyUsages >>=
+         \ keyUsages' ->
+           js_unwrapKey self (toJSString format) (toBufferSource wrappedKey)
+             unwrappingKey
+             (toJSString unwrapAlgorithm)
+             (toJSString unwrappedKeyAlgorithm)
+             extractable
+             keyUsages')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.unwrapKey Mozilla WebKitSubtleCrypto.unwrapKey documentation> 
 unwrapKey_ ::
-           (MonadIO m, ToJSString format, IsCryptoOperationData wrappedKey,
+           (MonadIO m, ToJSString format, IsBufferSource wrappedKey,
             ToJSString unwrapAlgorithm, ToJSString unwrappedKeyAlgorithm) =>
              SubtleCrypto ->
                format ->
-                 Maybe wrappedKey ->
-                   Maybe CryptoKey ->
+                 wrappedKey ->
+                   CryptoKey ->
                      unwrapAlgorithm ->
-                       unwrappedKeyAlgorithm -> Bool -> [KeyUsage] -> m ()
+                       unwrappedKeyAlgorithm -> Bool -> [CryptoKeyUsage] -> m ()
 unwrapKey_ self format wrappedKey unwrappingKey unwrapAlgorithm
   unwrappedKeyAlgorithm extractable keyUsages
   = liftIO
       (void
          (toJSVal keyUsages >>=
             \ keyUsages' ->
-              js_unwrapKey (self) (toJSString format)
-                (maybeToNullable (fmap toCryptoOperationData wrappedKey))
-                (maybeToNullable unwrappingKey)
-                (toJSString unwrapAlgorithm)
-                (toJSString unwrappedKeyAlgorithm)
-                extractable
-                keyUsages'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.unwrapKey Mozilla WebKitSubtleCrypto.unwrapKey documentation> 
-unwrapKeyUnsafe ::
-                (MonadIO m, ToJSString format, IsCryptoOperationData wrappedKey,
-                 ToJSString unwrapAlgorithm, ToJSString unwrappedKeyAlgorithm,
-                 HasCallStack) =>
-                  SubtleCrypto ->
-                    format ->
-                      Maybe wrappedKey ->
-                        Maybe CryptoKey ->
-                          unwrapAlgorithm ->
-                            unwrappedKeyAlgorithm -> Bool -> [KeyUsage] -> m Promise
-unwrapKeyUnsafe self format wrappedKey unwrappingKey
-  unwrapAlgorithm unwrappedKeyAlgorithm extractable keyUsages
-  = liftIO
-      ((nullableToMaybe <$>
-          (toJSVal keyUsages >>=
-             \ keyUsages' ->
-               js_unwrapKey (self) (toJSString format)
-                 (maybeToNullable (fmap toCryptoOperationData wrappedKey))
-                 (maybeToNullable unwrappingKey)
-                 (toJSString unwrapAlgorithm)
-                 (toJSString unwrappedKeyAlgorithm)
-                 extractable
-                 keyUsages'))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.unwrapKey Mozilla WebKitSubtleCrypto.unwrapKey documentation> 
-unwrapKeyUnchecked ::
-                   (MonadIO m, ToJSString format, IsCryptoOperationData wrappedKey,
-                    ToJSString unwrapAlgorithm, ToJSString unwrappedKeyAlgorithm) =>
-                     SubtleCrypto ->
-                       format ->
-                         Maybe wrappedKey ->
-                           Maybe CryptoKey ->
-                             unwrapAlgorithm ->
-                               unwrappedKeyAlgorithm -> Bool -> [KeyUsage] -> m Promise
-unwrapKeyUnchecked self format wrappedKey unwrappingKey
-  unwrapAlgorithm unwrappedKeyAlgorithm extractable keyUsages
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (toJSVal keyUsages >>=
-            \ keyUsages' ->
-              js_unwrapKey (self) (toJSString format)
-                (maybeToNullable (fmap toCryptoOperationData wrappedKey))
-                (maybeToNullable unwrappingKey)
+              js_unwrapKey self (toJSString format) (toBufferSource wrappedKey)
+                unwrappingKey
                 (toJSString unwrapAlgorithm)
                 (toJSString unwrappedKeyAlgorithm)
                 extractable
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Text.hs b/src/GHCJS/DOM/JSFFI/Generated/Text.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Text.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Text.hs
@@ -5,16 +5,13 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Text
        (js_newText, newText, js_splitText, splitText, splitText_,
-        splitTextUnsafe, splitTextUnchecked, js_replaceWholeText,
-        replaceWholeText, replaceWholeText_, replaceWholeTextUnsafe,
-        replaceWholeTextUnchecked, js_getWholeText, getWholeText, Text(..),
-        gTypeText, IsText, toText)
+        js_getWholeText, getWholeText, Text(..), gTypeText, IsText, toText)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,86 +20,30 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "new window[\"Text\"]($1)"
-        js_newText :: JSString -> IO Text
+        js_newText :: Optional JSString -> IO Text
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Text Mozilla Text documentation> 
-newText :: (MonadIO m, ToJSString data') => data' -> m Text
-newText data' = liftIO (js_newText (toJSString data'))
+newText :: (MonadIO m, ToJSString data') => Maybe data' -> m Text
+newText data' = liftIO (js_newText (toOptionalJSString data'))
  
 foreign import javascript unsafe "$1[\"splitText\"]($2)"
-        js_splitText :: Text -> Word -> IO (Nullable Text)
+        js_splitText :: Text -> Word -> IO Text
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Text.splitText Mozilla Text.splitText documentation> 
-splitText ::
-          (MonadIO m, IsText self) => self -> Word -> m (Maybe Text)
-splitText self offset
-  = liftIO (nullableToMaybe <$> (js_splitText (toText self) offset))
+splitText :: (MonadIO m, IsText self) => self -> Word -> m Text
+splitText self offset = liftIO (js_splitText (toText self) offset)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Text.splitText Mozilla Text.splitText documentation> 
 splitText_ :: (MonadIO m, IsText self) => self -> Word -> m ()
 splitText_ self offset
   = liftIO (void (js_splitText (toText self) offset))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Text.splitText Mozilla Text.splitText documentation> 
-splitTextUnsafe ::
-                (MonadIO m, IsText self, HasCallStack) => self -> Word -> m Text
-splitTextUnsafe self offset
-  = liftIO
-      ((nullableToMaybe <$> (js_splitText (toText self) offset)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Text.splitText Mozilla Text.splitText documentation> 
-splitTextUnchecked ::
-                   (MonadIO m, IsText self) => self -> Word -> m Text
-splitTextUnchecked self offset
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_splitText (toText self) offset))
- 
-foreign import javascript unsafe "$1[\"replaceWholeText\"]($2)"
-        js_replaceWholeText :: Text -> JSString -> IO (Nullable Text)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Text.replaceWholeText Mozilla Text.replaceWholeText documentation> 
-replaceWholeText ::
-                 (MonadIO m, IsText self, ToJSString content) =>
-                   self -> content -> m (Maybe Text)
-replaceWholeText self content
-  = liftIO
-      (nullableToMaybe <$>
-         (js_replaceWholeText (toText self) (toJSString content)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Text.replaceWholeText Mozilla Text.replaceWholeText documentation> 
-replaceWholeText_ ::
-                  (MonadIO m, IsText self, ToJSString content) =>
-                    self -> content -> m ()
-replaceWholeText_ self content
-  = liftIO
-      (void (js_replaceWholeText (toText self) (toJSString content)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Text.replaceWholeText Mozilla Text.replaceWholeText documentation> 
-replaceWholeTextUnsafe ::
-                       (MonadIO m, IsText self, ToJSString content, HasCallStack) =>
-                         self -> content -> m Text
-replaceWholeTextUnsafe self content
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_replaceWholeText (toText self) (toJSString content)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Text.replaceWholeText Mozilla Text.replaceWholeText documentation> 
-replaceWholeTextUnchecked ::
-                          (MonadIO m, IsText self, ToJSString content) =>
-                            self -> content -> m Text
-replaceWholeTextUnchecked self content
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_replaceWholeText (toText self) (toJSString content)))
  
 foreign import javascript unsafe "$1[\"wholeText\"]"
         js_getWholeText :: Text -> IO JSString
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TextDecoder.hs b/src/GHCJS/DOM/JSFFI/Generated/TextDecoder.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/TextDecoder.hs
@@ -0,0 +1,88 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.TextDecoder
+       (js_newTextDecoder, newTextDecoder, js_decode, decode, decode_,
+        js_getEncoding, getEncoding, js_getFatal, getFatal,
+        js_getIgnoreBOM, getIgnoreBOM, TextDecoder(..), gTypeTextDecoder)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"TextDecoder\"]($1,\n$2)" js_newTextDecoder ::
+        Optional JSString -> Optional TextDecoderOptions -> IO TextDecoder
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder Mozilla TextDecoder documentation> 
+newTextDecoder ::
+               (MonadIO m, ToJSString label) =>
+                 Maybe label -> Maybe TextDecoderOptions -> m TextDecoder
+newTextDecoder label options
+  = liftIO
+      (js_newTextDecoder (toOptionalJSString label)
+         (maybeToOptional options))
+ 
+foreign import javascript unsafe "$1[\"decode\"]($2, $3)" js_decode
+        ::
+        TextDecoder ->
+          Optional BufferSource -> Optional TextDecodeOptions -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder.decode Mozilla TextDecoder.decode documentation> 
+decode ::
+       (MonadIO m, IsBufferSource input, FromJSString result) =>
+         TextDecoder -> Maybe input -> Maybe TextDecodeOptions -> m result
+decode self input options
+  = liftIO
+      (fromJSString <$>
+         (js_decode self (maybeToOptional (fmap toBufferSource input))
+            (maybeToOptional options)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder.decode Mozilla TextDecoder.decode documentation> 
+decode_ ::
+        (MonadIO m, IsBufferSource input) =>
+          TextDecoder -> Maybe input -> Maybe TextDecodeOptions -> m ()
+decode_ self input options
+  = liftIO
+      (void
+         (js_decode self (maybeToOptional (fmap toBufferSource input))
+            (maybeToOptional options)))
+ 
+foreign import javascript unsafe "$1[\"encoding\"]" js_getEncoding
+        :: TextDecoder -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder.encoding Mozilla TextDecoder.encoding documentation> 
+getEncoding ::
+            (MonadIO m, FromJSString result) => TextDecoder -> m result
+getEncoding self = liftIO (fromJSString <$> (js_getEncoding self))
+ 
+foreign import javascript unsafe "($1[\"fatal\"] ? 1 : 0)"
+        js_getFatal :: TextDecoder -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder.fatal Mozilla TextDecoder.fatal documentation> 
+getFatal :: (MonadIO m) => TextDecoder -> m Bool
+getFatal self = liftIO (js_getFatal self)
+ 
+foreign import javascript unsafe "($1[\"ignoreBOM\"] ? 1 : 0)"
+        js_getIgnoreBOM :: TextDecoder -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder.ignoreBOM Mozilla TextDecoder.ignoreBOM documentation> 
+getIgnoreBOM :: (MonadIO m) => TextDecoder -> m Bool
+getIgnoreBOM self = liftIO (js_getIgnoreBOM self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TextEncoder.hs b/src/GHCJS/DOM/JSFFI/Generated/TextEncoder.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/TextEncoder.hs
@@ -0,0 +1,58 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.TextEncoder
+       (js_newTextEncoder, newTextEncoder, js_encode, encode, encode_,
+        js_getEncoding, getEncoding, TextEncoder(..), gTypeTextEncoder)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "new window[\"TextEncoder\"]()"
+        js_newTextEncoder :: IO TextEncoder
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder Mozilla TextEncoder documentation> 
+newTextEncoder :: (MonadIO m) => m TextEncoder
+newTextEncoder = liftIO (js_newTextEncoder)
+ 
+foreign import javascript unsafe "$1[\"encode\"]($2)" js_encode ::
+        TextEncoder -> Optional JSString -> IO Uint8Array
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder.encode Mozilla TextEncoder.encode documentation> 
+encode ::
+       (MonadIO m, ToJSString input) =>
+         TextEncoder -> Maybe input -> m Uint8Array
+encode self input
+  = liftIO (js_encode self (toOptionalJSString input))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder.encode Mozilla TextEncoder.encode documentation> 
+encode_ ::
+        (MonadIO m, ToJSString input) => TextEncoder -> Maybe input -> m ()
+encode_ self input
+  = liftIO (void (js_encode self (toOptionalJSString input)))
+ 
+foreign import javascript unsafe "$1[\"encoding\"]" js_getEncoding
+        :: TextEncoder -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder.encoding Mozilla TextEncoder.encoding documentation> 
+getEncoding ::
+            (MonadIO m, FromJSString result) => TextEncoder -> m result
+getEncoding self = liftIO (fromJSString <$> (js_getEncoding self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TextEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/TextEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TextEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TextEvent.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,20 +29,22 @@
 foreign import javascript unsafe
         "$1[\"initTextEvent\"]($2, $3, $4,\n$5, $6)" js_initTextEvent ::
         TextEvent ->
-          JSString -> Bool -> Bool -> Nullable Window -> JSString -> IO ()
+          Optional JSString ->
+            Bool -> Bool -> Optional Window -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextEvent.initTextEvent Mozilla TextEvent.initTextEvent documentation> 
 initTextEvent ::
               (MonadIO m, ToJSString typeArg, ToJSString dataArg) =>
                 TextEvent ->
-                  typeArg -> Bool -> Bool -> Maybe Window -> dataArg -> m ()
+                  Maybe typeArg ->
+                    Bool -> Bool -> Maybe Window -> Maybe dataArg -> m ()
 initTextEvent self typeArg canBubbleArg cancelableArg viewArg
   dataArg
   = liftIO
-      (js_initTextEvent (self) (toJSString typeArg) canBubbleArg
+      (js_initTextEvent self (toOptionalJSString typeArg) canBubbleArg
          cancelableArg
-         (maybeToNullable viewArg)
-         (toJSString dataArg))
+         (maybeToOptional viewArg)
+         (toOptionalJSString dataArg))
  
 foreign import javascript unsafe "$1[\"data\"]" js_getData ::
         TextEvent -> IO JSString
@@ -49,4 +52,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextEvent.data Mozilla TextEvent.data documentation> 
 getData ::
         (MonadIO m, FromJSString result) => TextEvent -> m result
-getData self = liftIO (fromJSString <$> (js_getData (self)))
+getData self = liftIO (fromJSString <$> (js_getData self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TextMetrics.hs b/src/GHCJS/DOM/JSFFI/Generated/TextMetrics.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TextMetrics.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TextMetrics.hs
@@ -9,7 +9,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -18,6 +18,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,4 +29,4 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics.width Mozilla TextMetrics.width documentation> 
 getWidth :: (MonadIO m) => TextMetrics -> m Float
-getWidth self = liftIO (js_getWidth (self))
+getWidth self = liftIO (js_getWidth self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TextTrack.hs b/src/GHCJS/DOM/JSFFI/Generated/TextTrack.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TextTrack.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TextTrack.hs
@@ -13,15 +13,14 @@
         js_getMode, getMode, js_getCues, getCues, getCuesUnsafe,
         getCuesUnchecked, js_getActiveCues, getActiveCues,
         getActiveCuesUnsafe, getActiveCuesUnchecked, cueChange,
-        js_getRegions, getRegions, getRegionsUnsafe, getRegionsUnchecked,
-        js_getSourceBuffer, getSourceBuffer, getSourceBufferUnsafe,
-        getSourceBufferUnchecked, TextTrack(..), gTypeTextTrack)
+        js_getRegions, getRegions, js_getSourceBuffer, getSourceBuffer,
+        TextTrack(..), gTypeTextTrack)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -30,67 +29,65 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"addCue\"]($2)" js_addCue ::
-        TextTrack -> Nullable TextTrackCue -> IO ()
+        TextTrack -> TextTrackCue -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.addCue Mozilla TextTrack.addCue documentation> 
 addCue ::
-       (MonadIO m, IsTextTrackCue cue) => TextTrack -> Maybe cue -> m ()
-addCue self cue
-  = liftIO
-      (js_addCue (self) (maybeToNullable (fmap toTextTrackCue cue)))
+       (MonadIO m, IsTextTrackCue cue) => TextTrack -> cue -> m ()
+addCue self cue = liftIO (js_addCue self (toTextTrackCue cue))
  
 foreign import javascript unsafe "$1[\"removeCue\"]($2)"
-        js_removeCue :: TextTrack -> Nullable TextTrackCue -> IO ()
+        js_removeCue :: TextTrack -> TextTrackCue -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.removeCue Mozilla TextTrack.removeCue documentation> 
 removeCue ::
-          (MonadIO m, IsTextTrackCue cue) => TextTrack -> Maybe cue -> m ()
+          (MonadIO m, IsTextTrackCue cue) => TextTrack -> cue -> m ()
 removeCue self cue
-  = liftIO
-      (js_removeCue (self) (maybeToNullable (fmap toTextTrackCue cue)))
+  = liftIO (js_removeCue self (toTextTrackCue cue))
  
 foreign import javascript unsafe "$1[\"addRegion\"]($2)"
-        js_addRegion :: TextTrack -> Nullable VTTRegion -> IO ()
+        js_addRegion :: TextTrack -> Optional VTTRegion -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.addRegion Mozilla TextTrack.addRegion documentation> 
 addRegion :: (MonadIO m) => TextTrack -> Maybe VTTRegion -> m ()
 addRegion self region
-  = liftIO (js_addRegion (self) (maybeToNullable region))
+  = liftIO (js_addRegion self (maybeToOptional region))
  
 foreign import javascript unsafe "$1[\"removeRegion\"]($2)"
-        js_removeRegion :: TextTrack -> Nullable VTTRegion -> IO ()
+        js_removeRegion :: TextTrack -> Optional VTTRegion -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.removeRegion Mozilla TextTrack.removeRegion documentation> 
 removeRegion :: (MonadIO m) => TextTrack -> Maybe VTTRegion -> m ()
 removeRegion self region
-  = liftIO (js_removeRegion (self) (maybeToNullable region))
+  = liftIO (js_removeRegion self (maybeToOptional region))
  
 foreign import javascript unsafe "$1[\"id\"]" js_getId ::
         TextTrack -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.id Mozilla TextTrack.id documentation> 
 getId :: (MonadIO m, FromJSString result) => TextTrack -> m result
-getId self = liftIO (fromJSString <$> (js_getId (self)))
+getId self = liftIO (fromJSString <$> (js_getId self))
  
 foreign import javascript unsafe "$1[\"kind\"] = $2;" js_setKind ::
         TextTrack -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.kind Mozilla TextTrack.kind documentation> 
 setKind :: (MonadIO m) => TextTrack -> TextTrackKind -> m ()
-setKind self val = liftIO (js_setKind (self) (pToJSVal val))
+setKind self val = liftIO (js_setKind self (pToJSVal val))
  
 foreign import javascript unsafe "$1[\"kind\"]" js_getKind ::
         TextTrack -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.kind Mozilla TextTrack.kind documentation> 
 getKind :: (MonadIO m) => TextTrack -> m TextTrackKind
-getKind self = liftIO ((js_getKind (self)) >>= fromJSValUnchecked)
+getKind self = liftIO ((js_getKind self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "$1[\"label\"]" js_getLabel ::
         TextTrack -> IO JSString
@@ -98,7 +95,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.label Mozilla TextTrack.label documentation> 
 getLabel ::
          (MonadIO m, FromJSString result) => TextTrack -> m result
-getLabel self = liftIO (fromJSString <$> (js_getLabel (self)))
+getLabel self = liftIO (fromJSString <$> (js_getLabel self))
  
 foreign import javascript unsafe "$1[\"language\"] = $2;"
         js_setLanguage :: TextTrack -> JSString -> IO ()
@@ -107,7 +104,7 @@
 setLanguage ::
             (MonadIO m, ToJSString val) => TextTrack -> val -> m ()
 setLanguage self val
-  = liftIO (js_setLanguage (self) (toJSString val))
+  = liftIO (js_setLanguage self (toJSString val))
  
 foreign import javascript unsafe "$1[\"language\"]" js_getLanguage
         :: TextTrack -> IO JSString
@@ -115,8 +112,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.language Mozilla TextTrack.language documentation> 
 getLanguage ::
             (MonadIO m, FromJSString result) => TextTrack -> m result
-getLanguage self
-  = liftIO (fromJSString <$> (js_getLanguage (self)))
+getLanguage self = liftIO (fromJSString <$> (js_getLanguage self))
  
 foreign import javascript unsafe
         "$1[\"inBandMetadataTrackDispatchType\"]"
@@ -127,41 +123,41 @@
                                    (MonadIO m, FromJSString result) => TextTrack -> m result
 getInBandMetadataTrackDispatchType self
   = liftIO
-      (fromJSString <$> (js_getInBandMetadataTrackDispatchType (self)))
+      (fromJSString <$> (js_getInBandMetadataTrackDispatchType self))
  
 foreign import javascript unsafe "$1[\"mode\"] = $2;" js_setMode ::
         TextTrack -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.mode Mozilla TextTrack.mode documentation> 
 setMode :: (MonadIO m) => TextTrack -> TextTrackMode -> m ()
-setMode self val = liftIO (js_setMode (self) (pToJSVal val))
+setMode self val = liftIO (js_setMode self (pToJSVal val))
  
 foreign import javascript unsafe "$1[\"mode\"]" js_getMode ::
         TextTrack -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.mode Mozilla TextTrack.mode documentation> 
 getMode :: (MonadIO m) => TextTrack -> m TextTrackMode
-getMode self = liftIO ((js_getMode (self)) >>= fromJSValUnchecked)
+getMode self = liftIO ((js_getMode self) >>= fromJSValUnchecked)
  
 foreign import javascript unsafe "$1[\"cues\"]" js_getCues ::
         TextTrack -> IO (Nullable TextTrackCueList)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.cues Mozilla TextTrack.cues documentation> 
 getCues :: (MonadIO m) => TextTrack -> m (Maybe TextTrackCueList)
-getCues self = liftIO (nullableToMaybe <$> (js_getCues (self)))
+getCues self = liftIO (nullableToMaybe <$> (js_getCues self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.cues Mozilla TextTrack.cues documentation> 
 getCuesUnsafe ::
               (MonadIO m, HasCallStack) => TextTrack -> m TextTrackCueList
 getCuesUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getCues (self))) >>=
+      ((nullableToMaybe <$> (js_getCues self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.cues Mozilla TextTrack.cues documentation> 
 getCuesUnchecked :: (MonadIO m) => TextTrack -> m TextTrackCueList
 getCuesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCues (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getCues self))
  
 foreign import javascript unsafe "$1[\"activeCues\"]"
         js_getActiveCues :: TextTrack -> IO (Nullable TextTrackCueList)
@@ -170,67 +166,36 @@
 getActiveCues ::
               (MonadIO m) => TextTrack -> m (Maybe TextTrackCueList)
 getActiveCues self
-  = liftIO (nullableToMaybe <$> (js_getActiveCues (self)))
+  = liftIO (nullableToMaybe <$> (js_getActiveCues self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.activeCues Mozilla TextTrack.activeCues documentation> 
 getActiveCuesUnsafe ::
                     (MonadIO m, HasCallStack) => TextTrack -> m TextTrackCueList
 getActiveCuesUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getActiveCues (self))) >>=
+      ((nullableToMaybe <$> (js_getActiveCues self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.activeCues Mozilla TextTrack.activeCues documentation> 
 getActiveCuesUnchecked ::
                        (MonadIO m) => TextTrack -> m TextTrackCueList
 getActiveCuesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getActiveCues (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getActiveCues self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.oncuechange Mozilla TextTrack.oncuechange documentation> 
 cueChange :: EventName TextTrack Event
 cueChange = unsafeEventName (toJSString "cuechange")
  
 foreign import javascript unsafe "$1[\"regions\"]" js_getRegions ::
-        TextTrack -> IO (Nullable VTTRegionList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.regions Mozilla TextTrack.regions documentation> 
-getRegions :: (MonadIO m) => TextTrack -> m (Maybe VTTRegionList)
-getRegions self
-  = liftIO (nullableToMaybe <$> (js_getRegions (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.regions Mozilla TextTrack.regions documentation> 
-getRegionsUnsafe ::
-                 (MonadIO m, HasCallStack) => TextTrack -> m VTTRegionList
-getRegionsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRegions (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        TextTrack -> IO VTTRegionList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.regions Mozilla TextTrack.regions documentation> 
-getRegionsUnchecked :: (MonadIO m) => TextTrack -> m VTTRegionList
-getRegionsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRegions (self)))
+getRegions :: (MonadIO m) => TextTrack -> m VTTRegionList
+getRegions self = liftIO (js_getRegions self)
  
 foreign import javascript unsafe "$1[\"sourceBuffer\"]"
-        js_getSourceBuffer :: TextTrack -> IO (Nullable SourceBuffer)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.sourceBuffer Mozilla TextTrack.sourceBuffer documentation> 
-getSourceBuffer ::
-                (MonadIO m) => TextTrack -> m (Maybe SourceBuffer)
-getSourceBuffer self
-  = liftIO (nullableToMaybe <$> (js_getSourceBuffer (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.sourceBuffer Mozilla TextTrack.sourceBuffer documentation> 
-getSourceBufferUnsafe ::
-                      (MonadIO m, HasCallStack) => TextTrack -> m SourceBuffer
-getSourceBufferUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSourceBuffer (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getSourceBuffer :: TextTrack -> IO SourceBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack.sourceBuffer Mozilla TextTrack.sourceBuffer documentation> 
-getSourceBufferUnchecked ::
-                         (MonadIO m) => TextTrack -> m SourceBuffer
-getSourceBufferUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSourceBuffer (self)))
+getSourceBuffer :: (MonadIO m) => TextTrack -> m SourceBuffer
+getSourceBuffer self = liftIO (js_getSourceBuffer self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TextTrackCue.hs b/src/GHCJS/DOM/JSFFI/Generated/TextTrackCue.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TextTrackCue.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TextTrackCue.hs
@@ -4,10 +4,9 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.TextTrackCue
-       (js_newTextTrackCue, newTextTrackCue, js_getTrack, getTrack,
-        getTrackUnsafe, getTrackUnchecked, js_setId, setId, js_getId,
-        getId, js_setStartTime, setStartTime, js_getStartTime,
-        getStartTime, js_setEndTime, setEndTime, js_getEndTime, getEndTime,
+       (js_getTrack, getTrack, js_setId, setId, js_getId, getId,
+        js_setStartTime, setStartTime, js_getStartTime, getStartTime,
+        js_setEndTime, setEndTime, js_getEndTime, getEndTime,
         js_setPauseOnExit, setPauseOnExit, js_getPauseOnExit,
         getPauseOnExit, enter, exit, TextTrackCue(..), gTypeTextTrackCue,
         IsTextTrackCue, toTextTrackCue)
@@ -16,7 +15,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,47 +24,18 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe
-        "new window[\"TextTrackCue\"]($1,\n$2, $3)" js_newTextTrackCue ::
-        Double -> Double -> JSString -> IO TextTrackCue
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCue Mozilla TextTrackCue documentation> 
-newTextTrackCue ::
-                (MonadIO m, ToJSString text) =>
-                  Double -> Double -> text -> m TextTrackCue
-newTextTrackCue startTime endTime text
-  = liftIO (js_newTextTrackCue startTime endTime (toJSString text))
- 
 foreign import javascript unsafe "$1[\"track\"]" js_getTrack ::
-        TextTrackCue -> IO (Nullable TextTrack)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCue.track Mozilla TextTrackCue.track documentation> 
-getTrack ::
-         (MonadIO m, IsTextTrackCue self) => self -> m (Maybe TextTrack)
-getTrack self
-  = liftIO (nullableToMaybe <$> (js_getTrack (toTextTrackCue self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCue.track Mozilla TextTrackCue.track documentation> 
-getTrackUnsafe ::
-               (MonadIO m, IsTextTrackCue self, HasCallStack) =>
-                 self -> m TextTrack
-getTrackUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTrack (toTextTrackCue self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        TextTrackCue -> IO TextTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCue.track Mozilla TextTrackCue.track documentation> 
-getTrackUnchecked ::
-                  (MonadIO m, IsTextTrackCue self) => self -> m TextTrack
-getTrackUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTrack (toTextTrackCue self)))
+getTrack :: (MonadIO m, IsTextTrackCue self) => self -> m TextTrack
+getTrack self = liftIO (js_getTrack (toTextTrackCue self))
  
 foreign import javascript unsafe "$1[\"id\"] = $2;" js_setId ::
         TextTrackCue -> JSString -> IO ()
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TextTrackCueList.hs b/src/GHCJS/DOM/JSFFI/Generated/TextTrackCueList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TextTrackCueList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TextTrackCueList.hs
@@ -4,8 +4,7 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.TextTrackCueList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getCueById,
-        getCueById, getCueById_, getCueByIdUnsafe, getCueByIdUnchecked,
+       (js_item, item, item_, js_getCueById, getCueById, getCueById_,
         js_getLength, getLength, TextTrackCueList(..),
         gTypeTextTrackCueList)
        where
@@ -13,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,78 +21,41 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        TextTrackCueList -> Word -> IO (Nullable TextTrackCue)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        TextTrackCueList -> Word -> IO TextTrackCue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.item Mozilla TextTrackCueList.item documentation> 
-item ::
-     (MonadIO m) => TextTrackCueList -> Word -> m (Maybe TextTrackCue)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item :: (MonadIO m) => TextTrackCueList -> Word -> m TextTrackCue
+item self index = liftIO (js_item self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.item Mozilla TextTrackCueList.item documentation> 
 item_ :: (MonadIO m) => TextTrackCueList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.item Mozilla TextTrackCueList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             TextTrackCueList -> Word -> m TextTrackCue
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.item Mozilla TextTrackCueList.item documentation> 
-itemUnchecked ::
-              (MonadIO m) => TextTrackCueList -> Word -> m TextTrackCue
-itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"getCueById\"]($2)"
-        js_getCueById ::
-        TextTrackCueList -> JSString -> IO (Nullable TextTrackCue)
+        js_getCueById :: TextTrackCueList -> JSString -> IO TextTrackCue
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.getCueById Mozilla TextTrackCueList.getCueById documentation> 
 getCueById ::
            (MonadIO m, ToJSString id) =>
-             TextTrackCueList -> id -> m (Maybe TextTrackCue)
-getCueById self id
-  = liftIO
-      (nullableToMaybe <$> (js_getCueById (self) (toJSString id)))
+             TextTrackCueList -> id -> m TextTrackCue
+getCueById self id = liftIO (js_getCueById self (toJSString id))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.getCueById Mozilla TextTrackCueList.getCueById documentation> 
 getCueById_ ::
             (MonadIO m, ToJSString id) => TextTrackCueList -> id -> m ()
 getCueById_ self id
-  = liftIO (void (js_getCueById (self) (toJSString id)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.getCueById Mozilla TextTrackCueList.getCueById documentation> 
-getCueByIdUnsafe ::
-                 (MonadIO m, ToJSString id, HasCallStack) =>
-                   TextTrackCueList -> id -> m TextTrackCue
-getCueByIdUnsafe self id
-  = liftIO
-      ((nullableToMaybe <$> (js_getCueById (self) (toJSString id))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.getCueById Mozilla TextTrackCueList.getCueById documentation> 
-getCueByIdUnchecked ::
-                    (MonadIO m, ToJSString id) =>
-                      TextTrackCueList -> id -> m TextTrackCue
-getCueByIdUnchecked self id
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getCueById (self) (toJSString id)))
+  = liftIO (void (js_getCueById self (toJSString id)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         TextTrackCueList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList.length Mozilla TextTrackCueList.length documentation> 
 getLength :: (MonadIO m) => TextTrackCueList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TextTrackList.hs b/src/GHCJS/DOM/JSFFI/Generated/TextTrackList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TextTrackList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TextTrackList.hs
@@ -4,16 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.TextTrackList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getTrackById,
-        getTrackById, getTrackById_, getTrackByIdUnsafe,
-        getTrackByIdUnchecked, js_getLength, getLength, addTrack, change,
+       (js_item, item, item_, js_getTrackById, getTrackById,
+        getTrackById_, js_getLength, getLength, addTrack, change,
         removeTrack, TextTrackList(..), gTypeTextTrackList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,78 +21,44 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        TextTrackList -> Word -> IO (Nullable TextTrack)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        TextTrackList -> Word -> IO TextTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList.item Mozilla TextTrackList.item documentation> 
-item :: (MonadIO m) => TextTrackList -> Word -> m (Maybe TextTrack)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item :: (MonadIO m) => TextTrackList -> Word -> m TextTrack
+item self index = liftIO (js_item self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList.item Mozilla TextTrackList.item documentation> 
 item_ :: (MonadIO m) => TextTrackList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList.item Mozilla TextTrackList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, HasCallStack) => TextTrackList -> Word -> m TextTrack
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList.item Mozilla TextTrackList.item documentation> 
-itemUnchecked ::
-              (MonadIO m) => TextTrackList -> Word -> m TextTrack
-itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"getTrackById\"]($2)"
-        js_getTrackById ::
-        TextTrackList -> JSString -> IO (Nullable TextTrack)
+        js_getTrackById :: TextTrackList -> JSString -> IO TextTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList.getTrackById Mozilla TextTrackList.getTrackById documentation> 
 getTrackById ::
-             (MonadIO m, ToJSString id) =>
-               TextTrackList -> id -> m (Maybe TextTrack)
+             (MonadIO m, ToJSString id) => TextTrackList -> id -> m TextTrack
 getTrackById self id
-  = liftIO
-      (nullableToMaybe <$> (js_getTrackById (self) (toJSString id)))
+  = liftIO (js_getTrackById self (toJSString id))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList.getTrackById Mozilla TextTrackList.getTrackById documentation> 
 getTrackById_ ::
               (MonadIO m, ToJSString id) => TextTrackList -> id -> m ()
 getTrackById_ self id
-  = liftIO (void (js_getTrackById (self) (toJSString id)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList.getTrackById Mozilla TextTrackList.getTrackById documentation> 
-getTrackByIdUnsafe ::
-                   (MonadIO m, ToJSString id, HasCallStack) =>
-                     TextTrackList -> id -> m TextTrack
-getTrackByIdUnsafe self id
-  = liftIO
-      ((nullableToMaybe <$> (js_getTrackById (self) (toJSString id))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList.getTrackById Mozilla TextTrackList.getTrackById documentation> 
-getTrackByIdUnchecked ::
-                      (MonadIO m, ToJSString id) => TextTrackList -> id -> m TextTrack
-getTrackByIdUnchecked self id
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTrackById (self) (toJSString id)))
+  = liftIO (void (js_getTrackById self (toJSString id)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         TextTrackList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList.length Mozilla TextTrackList.length documentation> 
 getLength :: (MonadIO m) => TextTrackList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList.onaddtrack Mozilla TextTrackList.onaddtrack documentation> 
 addTrack :: EventName TextTrackList Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TimeRanges.hs b/src/GHCJS/DOM/JSFFI/Generated/TimeRanges.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TimeRanges.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TimeRanges.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,26 +31,26 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges.start Mozilla TimeRanges.start documentation> 
 start :: (MonadIO m) => TimeRanges -> Word -> m Double
-start self index = liftIO (js_start (self) index)
+start self index = liftIO (js_start self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges.start Mozilla TimeRanges.start documentation> 
 start_ :: (MonadIO m) => TimeRanges -> Word -> m ()
-start_ self index = liftIO (void (js_start (self) index))
+start_ self index = liftIO (void (js_start self index))
  
 foreign import javascript unsafe "$1[\"end\"]($2)" js_end ::
         TimeRanges -> Word -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges.end Mozilla TimeRanges.end documentation> 
 end :: (MonadIO m) => TimeRanges -> Word -> m Double
-end self index = liftIO (js_end (self) index)
+end self index = liftIO (js_end self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges.end Mozilla TimeRanges.end documentation> 
 end_ :: (MonadIO m) => TimeRanges -> Word -> m ()
-end_ self index = liftIO (void (js_end (self) index))
+end_ self index = liftIO (void (js_end self index))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         TimeRanges -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges.length Mozilla TimeRanges.length documentation> 
 getLength :: (MonadIO m) => TimeRanges -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Touch.hs b/src/GHCJS/DOM/JSFFI/Generated/Touch.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Touch.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Touch.hs
@@ -7,17 +7,16 @@
        (js_getClientX, getClientX, js_getClientY, getClientY,
         js_getScreenX, getScreenX, js_getScreenY, getScreenY, js_getPageX,
         getPageX, js_getPageY, getPageY, js_getTarget, getTarget,
-        getTargetUnsafe, getTargetUnchecked, js_getIdentifier,
-        getIdentifier, js_getWebkitRadiusX, getWebkitRadiusX,
-        js_getWebkitRadiusY, getWebkitRadiusY, js_getWebkitRotationAngle,
-        getWebkitRotationAngle, js_getWebkitForce, getWebkitForce,
-        Touch(..), gTypeTouch)
+        js_getIdentifier, getIdentifier, js_getWebkitRadiusX,
+        getWebkitRadiusX, js_getWebkitRadiusY, getWebkitRadiusY,
+        js_getWebkitRotationAngle, getWebkitRotationAngle,
+        js_getWebkitForce, getWebkitForce, Touch(..), gTypeTouch)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,6 +25,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -36,83 +36,70 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.clientX Mozilla Touch.clientX documentation> 
 getClientX :: (MonadIO m) => Touch -> m Int
-getClientX self = liftIO (js_getClientX (self))
+getClientX self = liftIO (js_getClientX self)
  
 foreign import javascript unsafe "$1[\"clientY\"]" js_getClientY ::
         Touch -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.clientY Mozilla Touch.clientY documentation> 
 getClientY :: (MonadIO m) => Touch -> m Int
-getClientY self = liftIO (js_getClientY (self))
+getClientY self = liftIO (js_getClientY self)
  
 foreign import javascript unsafe "$1[\"screenX\"]" js_getScreenX ::
         Touch -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.screenX Mozilla Touch.screenX documentation> 
 getScreenX :: (MonadIO m) => Touch -> m Int
-getScreenX self = liftIO (js_getScreenX (self))
+getScreenX self = liftIO (js_getScreenX self)
  
 foreign import javascript unsafe "$1[\"screenY\"]" js_getScreenY ::
         Touch -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.screenY Mozilla Touch.screenY documentation> 
 getScreenY :: (MonadIO m) => Touch -> m Int
-getScreenY self = liftIO (js_getScreenY (self))
+getScreenY self = liftIO (js_getScreenY self)
  
 foreign import javascript unsafe "$1[\"pageX\"]" js_getPageX ::
         Touch -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.pageX Mozilla Touch.pageX documentation> 
 getPageX :: (MonadIO m) => Touch -> m Int
-getPageX self = liftIO (js_getPageX (self))
+getPageX self = liftIO (js_getPageX self)
  
 foreign import javascript unsafe "$1[\"pageY\"]" js_getPageY ::
         Touch -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.pageY Mozilla Touch.pageY documentation> 
 getPageY :: (MonadIO m) => Touch -> m Int
-getPageY self = liftIO (js_getPageY (self))
+getPageY self = liftIO (js_getPageY self)
  
 foreign import javascript unsafe "$1[\"target\"]" js_getTarget ::
-        Touch -> IO (Nullable EventTarget)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.target Mozilla Touch.target documentation> 
-getTarget :: (MonadIO m) => Touch -> m (Maybe EventTarget)
-getTarget self = liftIO (nullableToMaybe <$> (js_getTarget (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.target Mozilla Touch.target documentation> 
-getTargetUnsafe ::
-                (MonadIO m, HasCallStack) => Touch -> m EventTarget
-getTargetUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTarget (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        Touch -> IO EventTarget
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.target Mozilla Touch.target documentation> 
-getTargetUnchecked :: (MonadIO m) => Touch -> m EventTarget
-getTargetUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTarget (self)))
+getTarget :: (MonadIO m) => Touch -> m EventTarget
+getTarget self = liftIO (js_getTarget self)
  
 foreign import javascript unsafe "$1[\"identifier\"]"
         js_getIdentifier :: Touch -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.identifier Mozilla Touch.identifier documentation> 
 getIdentifier :: (MonadIO m) => Touch -> m Word
-getIdentifier self = liftIO (js_getIdentifier (self))
+getIdentifier self = liftIO (js_getIdentifier self)
  
 foreign import javascript unsafe "$1[\"webkitRadiusX\"]"
         js_getWebkitRadiusX :: Touch -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.webkitRadiusX Mozilla Touch.webkitRadiusX documentation> 
 getWebkitRadiusX :: (MonadIO m) => Touch -> m Int
-getWebkitRadiusX self = liftIO (js_getWebkitRadiusX (self))
+getWebkitRadiusX self = liftIO (js_getWebkitRadiusX self)
  
 foreign import javascript unsafe "$1[\"webkitRadiusY\"]"
         js_getWebkitRadiusY :: Touch -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.webkitRadiusY Mozilla Touch.webkitRadiusY documentation> 
 getWebkitRadiusY :: (MonadIO m) => Touch -> m Int
-getWebkitRadiusY self = liftIO (js_getWebkitRadiusY (self))
+getWebkitRadiusY self = liftIO (js_getWebkitRadiusY self)
  
 foreign import javascript unsafe "$1[\"webkitRotationAngle\"]"
         js_getWebkitRotationAngle :: Touch -> IO Float
@@ -120,11 +107,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.webkitRotationAngle Mozilla Touch.webkitRotationAngle documentation> 
 getWebkitRotationAngle :: (MonadIO m) => Touch -> m Float
 getWebkitRotationAngle self
-  = liftIO (js_getWebkitRotationAngle (self))
+  = liftIO (js_getWebkitRotationAngle self)
  
 foreign import javascript unsafe "$1[\"webkitForce\"]"
         js_getWebkitForce :: Touch -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Touch.webkitForce Mozilla Touch.webkitForce documentation> 
 getWebkitForce :: (MonadIO m) => Touch -> m Float
-getWebkitForce self = liftIO (js_getWebkitForce (self))
+getWebkitForce self = liftIO (js_getWebkitForce self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TouchEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/TouchEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TouchEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TouchEvent.hs
@@ -4,19 +4,18 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.TouchEvent
-       (js_initTouchEvent, initTouchEvent, js_getTouches, getTouches,
-        getTouchesUnsafe, getTouchesUnchecked, js_getTargetTouches,
-        getTargetTouches, getTargetTouchesUnsafe,
-        getTargetTouchesUnchecked, js_getChangedTouches, getChangedTouches,
-        getChangedTouchesUnsafe, getChangedTouchesUnchecked, js_getCtrlKey,
-        getCtrlKey, js_getShiftKey, getShiftKey, js_getAltKey, getAltKey,
-        js_getMetaKey, getMetaKey, TouchEvent(..), gTypeTouchEvent)
+       (js_newTouchEvent, newTouchEvent, js_initTouchEvent,
+        initTouchEvent, js_getTouches, getTouches, js_getTargetTouches,
+        getTargetTouches, js_getChangedTouches, getChangedTouches,
+        js_getCtrlKey, getCtrlKey, js_getShiftKey, getShiftKey,
+        js_getAltKey, getAltKey, js_getMetaKey, getMetaKey, TouchEvent(..),
+        gTypeTouchEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,21 +24,38 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
+        "new window[\"TouchEvent\"]($1, $2)" js_newTouchEvent ::
+        JSString -> Optional TouchEventInit -> IO TouchEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent Mozilla TouchEvent documentation> 
+newTouchEvent ::
+              (MonadIO m, ToJSString type') =>
+                type' -> Maybe TouchEventInit -> m TouchEvent
+newTouchEvent type' eventInitDict
+  = liftIO
+      (js_newTouchEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe
         "$1[\"initTouchEvent\"]($2, $3, $4,\n$5, $6, $7, $8, $9, $10, $11,\n$12, $13, $14)"
         js_initTouchEvent ::
         TouchEvent ->
-          Nullable TouchList ->
-            Nullable TouchList ->
-              Nullable TouchList ->
-                JSString ->
-                  Nullable Window ->
-                    Int -> Int -> Int -> Int -> Bool -> Bool -> Bool -> Bool -> IO ()
+          Optional TouchList ->
+            Optional TouchList ->
+              Optional TouchList ->
+                Optional JSString ->
+                  Optional Window ->
+                    Optional Int ->
+                      Optional Int ->
+                        Optional Int ->
+                          Optional Int -> Bool -> Bool -> Bool -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.initTouchEvent Mozilla TouchEvent.initTouchEvent documentation> 
 initTouchEvent ::
@@ -48,119 +64,73 @@
                    Maybe TouchList ->
                      Maybe TouchList ->
                        Maybe TouchList ->
-                         type' ->
+                         Maybe type' ->
                            Maybe Window ->
-                             Int -> Int -> Int -> Int -> Bool -> Bool -> Bool -> Bool -> m ()
+                             Maybe Int ->
+                               Maybe Int ->
+                                 Maybe Int -> Maybe Int -> Bool -> Bool -> Bool -> Bool -> m ()
 initTouchEvent self touches targetTouches changedTouches type' view
   screenX screenY clientX clientY ctrlKey altKey shiftKey metaKey
   = liftIO
-      (js_initTouchEvent (self) (maybeToNullable touches)
-         (maybeToNullable targetTouches)
-         (maybeToNullable changedTouches)
-         (toJSString type')
-         (maybeToNullable view)
-         screenX
-         screenY
-         clientX
-         clientY
+      (js_initTouchEvent self (maybeToOptional touches)
+         (maybeToOptional targetTouches)
+         (maybeToOptional changedTouches)
+         (toOptionalJSString type')
+         (maybeToOptional view)
+         (maybeToOptional screenX)
+         (maybeToOptional screenY)
+         (maybeToOptional clientX)
+         (maybeToOptional clientY)
          ctrlKey
          altKey
          shiftKey
          metaKey)
  
 foreign import javascript unsafe "$1[\"touches\"]" js_getTouches ::
-        TouchEvent -> IO (Nullable TouchList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.touches Mozilla TouchEvent.touches documentation> 
-getTouches :: (MonadIO m) => TouchEvent -> m (Maybe TouchList)
-getTouches self
-  = liftIO (nullableToMaybe <$> (js_getTouches (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.touches Mozilla TouchEvent.touches documentation> 
-getTouchesUnsafe ::
-                 (MonadIO m, HasCallStack) => TouchEvent -> m TouchList
-getTouchesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTouches (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        TouchEvent -> IO TouchList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.touches Mozilla TouchEvent.touches documentation> 
-getTouchesUnchecked :: (MonadIO m) => TouchEvent -> m TouchList
-getTouchesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTouches (self)))
+getTouches :: (MonadIO m) => TouchEvent -> m TouchList
+getTouches self = liftIO (js_getTouches self)
  
 foreign import javascript unsafe "$1[\"targetTouches\"]"
-        js_getTargetTouches :: TouchEvent -> IO (Nullable TouchList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.targetTouches Mozilla TouchEvent.targetTouches documentation> 
-getTargetTouches ::
-                 (MonadIO m) => TouchEvent -> m (Maybe TouchList)
-getTargetTouches self
-  = liftIO (nullableToMaybe <$> (js_getTargetTouches (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.targetTouches Mozilla TouchEvent.targetTouches documentation> 
-getTargetTouchesUnsafe ::
-                       (MonadIO m, HasCallStack) => TouchEvent -> m TouchList
-getTargetTouchesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTargetTouches (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getTargetTouches :: TouchEvent -> IO TouchList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.targetTouches Mozilla TouchEvent.targetTouches documentation> 
-getTargetTouchesUnchecked ::
-                          (MonadIO m) => TouchEvent -> m TouchList
-getTargetTouchesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getTargetTouches (self)))
+getTargetTouches :: (MonadIO m) => TouchEvent -> m TouchList
+getTargetTouches self = liftIO (js_getTargetTouches self)
  
 foreign import javascript unsafe "$1[\"changedTouches\"]"
-        js_getChangedTouches :: TouchEvent -> IO (Nullable TouchList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.changedTouches Mozilla TouchEvent.changedTouches documentation> 
-getChangedTouches ::
-                  (MonadIO m) => TouchEvent -> m (Maybe TouchList)
-getChangedTouches self
-  = liftIO (nullableToMaybe <$> (js_getChangedTouches (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.changedTouches Mozilla TouchEvent.changedTouches documentation> 
-getChangedTouchesUnsafe ::
-                        (MonadIO m, HasCallStack) => TouchEvent -> m TouchList
-getChangedTouchesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getChangedTouches (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getChangedTouches :: TouchEvent -> IO TouchList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.changedTouches Mozilla TouchEvent.changedTouches documentation> 
-getChangedTouchesUnchecked ::
-                           (MonadIO m) => TouchEvent -> m TouchList
-getChangedTouchesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getChangedTouches (self)))
+getChangedTouches :: (MonadIO m) => TouchEvent -> m TouchList
+getChangedTouches self = liftIO (js_getChangedTouches self)
  
 foreign import javascript unsafe "($1[\"ctrlKey\"] ? 1 : 0)"
         js_getCtrlKey :: TouchEvent -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.ctrlKey Mozilla TouchEvent.ctrlKey documentation> 
 getCtrlKey :: (MonadIO m) => TouchEvent -> m Bool
-getCtrlKey self = liftIO (js_getCtrlKey (self))
+getCtrlKey self = liftIO (js_getCtrlKey self)
  
 foreign import javascript unsafe "($1[\"shiftKey\"] ? 1 : 0)"
         js_getShiftKey :: TouchEvent -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.shiftKey Mozilla TouchEvent.shiftKey documentation> 
 getShiftKey :: (MonadIO m) => TouchEvent -> m Bool
-getShiftKey self = liftIO (js_getShiftKey (self))
+getShiftKey self = liftIO (js_getShiftKey self)
  
 foreign import javascript unsafe "($1[\"altKey\"] ? 1 : 0)"
         js_getAltKey :: TouchEvent -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.altKey Mozilla TouchEvent.altKey documentation> 
 getAltKey :: (MonadIO m) => TouchEvent -> m Bool
-getAltKey self = liftIO (js_getAltKey (self))
+getAltKey self = liftIO (js_getAltKey self)
  
 foreign import javascript unsafe "($1[\"metaKey\"] ? 1 : 0)"
         js_getMetaKey :: TouchEvent -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.metaKey Mozilla TouchEvent.metaKey documentation> 
 getMetaKey :: (MonadIO m) => TouchEvent -> m Bool
-getMetaKey self = liftIO (js_getMetaKey (self))
+getMetaKey self = liftIO (js_getMetaKey self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TouchList.hs b/src/GHCJS/DOM/JSFFI/Generated/TouchList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TouchList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TouchList.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.TouchList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getLength,
-        getLength, TouchList(..), gTypeTouchList)
+       (js_item, item, item_, js_getLength, getLength, TouchList(..),
+        gTypeTouchList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,39 +20,26 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        TouchList -> Word -> IO (Nullable Touch)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        TouchList -> Word -> IO Touch
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchList.item Mozilla TouchList.item documentation> 
-item :: (MonadIO m) => TouchList -> Word -> m (Maybe Touch)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item :: (MonadIO m) => TouchList -> Word -> m Touch
+item self index = liftIO (js_item self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchList.item Mozilla TouchList.item documentation> 
 item_ :: (MonadIO m) => TouchList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchList.item Mozilla TouchList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, HasCallStack) => TouchList -> Word -> m Touch
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchList.item Mozilla TouchList.item documentation> 
-itemUnchecked :: (MonadIO m) => TouchList -> Word -> m Touch
-itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         TouchList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TouchList.length Mozilla TouchList.length documentation> 
 getLength :: (MonadIO m) => TouchList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TrackEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/TrackEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TrackEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TrackEvent.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.TrackEvent
-       (js_getTrack, getTrack, getTrackUnsafe, getTrackUnchecked,
-        TrackEvent(..), gTypeTrackEvent)
+       (js_newTrackEvent, newTrackEvent, js_getTrack, getTrack,
+        getTrackUnsafe, getTrackUnchecked, TrackEvent(..), gTypeTrackEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,27 +20,41 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"TrackEvent\"]($1, $2)" js_newTrackEvent ::
+        JSString -> Optional TrackEventInit -> IO TrackEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TrackEvent Mozilla TrackEvent documentation> 
+newTrackEvent ::
+              (MonadIO m, ToJSString type') =>
+                type' -> Maybe TrackEventInit -> m TrackEvent
+newTrackEvent type' eventInitDict
+  = liftIO
+      (js_newTrackEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"track\"]" js_getTrack ::
-        TrackEvent -> IO (Nullable GObject)
+        TrackEvent -> IO (Nullable Track)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TrackEvent.track Mozilla TrackEvent.track documentation> 
-getTrack :: (MonadIO m) => TrackEvent -> m (Maybe GObject)
-getTrack self = liftIO (nullableToMaybe <$> (js_getTrack (self)))
+getTrack :: (MonadIO m) => TrackEvent -> m (Maybe Track)
+getTrack self = liftIO (nullableToMaybe <$> (js_getTrack self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TrackEvent.track Mozilla TrackEvent.track documentation> 
 getTrackUnsafe ::
-               (MonadIO m, HasCallStack) => TrackEvent -> m GObject
+               (MonadIO m, HasCallStack) => TrackEvent -> m Track
 getTrackUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getTrack (self))) >>=
+      ((nullableToMaybe <$> (js_getTrack self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TrackEvent.track Mozilla TrackEvent.track documentation> 
-getTrackUnchecked :: (MonadIO m) => TrackEvent -> m GObject
+getTrackUnchecked :: (MonadIO m) => TrackEvent -> m Track
 getTrackUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTrack (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getTrack self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TransitionEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/TransitionEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TransitionEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TransitionEvent.hs
@@ -4,15 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.TransitionEvent
-       (js_getPropertyName, getPropertyName, js_getElapsedTime,
-        getElapsedTime, js_getPseudoElement, getPseudoElement,
-        TransitionEvent(..), gTypeTransitionEvent)
+       (js_newTransitionEvent, newTransitionEvent, js_getPropertyName,
+        getPropertyName, js_getElapsedTime, getElapsedTime,
+        js_getPseudoElement, getPseudoElement, TransitionEvent(..),
+        gTypeTransitionEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,11 +22,25 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"TransitionEvent\"]($1,\n$2)" js_newTransitionEvent ::
+        JSString -> Optional TransitionEventInit -> IO TransitionEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent Mozilla TransitionEvent documentation> 
+newTransitionEvent ::
+                   (MonadIO m, ToJSString type') =>
+                     type' -> Maybe TransitionEventInit -> m TransitionEvent
+newTransitionEvent type' transitionEventInitDict
+  = liftIO
+      (js_newTransitionEvent (toJSString type')
+         (maybeToOptional transitionEventInitDict))
+ 
 foreign import javascript unsafe "$1[\"propertyName\"]"
         js_getPropertyName :: TransitionEvent -> IO JSString
 
@@ -33,14 +48,14 @@
 getPropertyName ::
                 (MonadIO m, FromJSString result) => TransitionEvent -> m result
 getPropertyName self
-  = liftIO (fromJSString <$> (js_getPropertyName (self)))
+  = liftIO (fromJSString <$> (js_getPropertyName self))
  
 foreign import javascript unsafe "$1[\"elapsedTime\"]"
         js_getElapsedTime :: TransitionEvent -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent.elapsedTime Mozilla TransitionEvent.elapsedTime documentation> 
 getElapsedTime :: (MonadIO m) => TransitionEvent -> m Double
-getElapsedTime self = liftIO (js_getElapsedTime (self))
+getElapsedTime self = liftIO (js_getElapsedTime self)
  
 foreign import javascript unsafe "$1[\"pseudoElement\"]"
         js_getPseudoElement :: TransitionEvent -> IO JSString
@@ -49,4 +64,4 @@
 getPseudoElement ::
                  (MonadIO m, FromJSString result) => TransitionEvent -> m result
 getPseudoElement self
-  = liftIO (fromJSString <$> (js_getPseudoElement (self)))
+  = liftIO (fromJSString <$> (js_getPseudoElement self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TreeWalker.hs b/src/GHCJS/DOM/JSFFI/Generated/TreeWalker.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/TreeWalker.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/TreeWalker.hs
@@ -4,28 +4,20 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.TreeWalker
-       (js_parentNode, parentNode, parentNode_, parentNodeUnsafe,
-        parentNodeUnchecked, js_firstChild, firstChild, firstChild_,
-        firstChildUnsafe, firstChildUnchecked, js_lastChild, lastChild,
-        lastChild_, lastChildUnsafe, lastChildUnchecked,
+       (js_parentNode, parentNode, parentNode_, js_firstChild, firstChild,
+        firstChild_, js_lastChild, lastChild, lastChild_,
         js_previousSibling, previousSibling, previousSibling_,
-        previousSiblingUnsafe, previousSiblingUnchecked, js_nextSibling,
-        nextSibling, nextSibling_, nextSiblingUnsafe, nextSiblingUnchecked,
-        js_previousNode, previousNode, previousNode_, previousNodeUnsafe,
-        previousNodeUnchecked, js_nextNode, nextNode, nextNode_,
-        nextNodeUnsafe, nextNodeUnchecked, js_getRoot, getRoot,
-        getRootUnsafe, getRootUnchecked, js_getWhatToShow, getWhatToShow,
-        js_getFilter, getFilter, getFilterUnsafe, getFilterUnchecked,
-        js_getExpandEntityReferences, getExpandEntityReferences,
+        js_nextSibling, nextSibling, nextSibling_, js_previousNode,
+        previousNode, previousNode_, js_nextNode, nextNode, nextNode_,
+        js_getRoot, getRoot, js_getWhatToShow, getWhatToShow,
         js_setCurrentNode, setCurrentNode, js_getCurrentNode,
-        getCurrentNode, getCurrentNodeUnsafe, getCurrentNodeUnchecked,
-        TreeWalker(..), gTypeTreeWalker)
+        getCurrentNode, TreeWalker(..), gTypeTreeWalker)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -34,267 +26,115 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"parentNode\"]()"
-        js_parentNode :: TreeWalker -> IO (Nullable Node)
+        js_parentNode :: TreeWalker -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.parentNode Mozilla TreeWalker.parentNode documentation> 
-parentNode :: (MonadIO m) => TreeWalker -> m (Maybe Node)
-parentNode self
-  = liftIO (nullableToMaybe <$> (js_parentNode (self)))
+parentNode :: (MonadIO m) => TreeWalker -> m Node
+parentNode self = liftIO (js_parentNode self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.parentNode Mozilla TreeWalker.parentNode documentation> 
 parentNode_ :: (MonadIO m) => TreeWalker -> m ()
-parentNode_ self = liftIO (void (js_parentNode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.parentNode Mozilla TreeWalker.parentNode documentation> 
-parentNodeUnsafe ::
-                 (MonadIO m, HasCallStack) => TreeWalker -> m Node
-parentNodeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_parentNode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.parentNode Mozilla TreeWalker.parentNode documentation> 
-parentNodeUnchecked :: (MonadIO m) => TreeWalker -> m Node
-parentNodeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_parentNode (self)))
+parentNode_ self = liftIO (void (js_parentNode self))
  
 foreign import javascript unsafe "$1[\"firstChild\"]()"
-        js_firstChild :: TreeWalker -> IO (Nullable Node)
+        js_firstChild :: TreeWalker -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.firstChild Mozilla TreeWalker.firstChild documentation> 
-firstChild :: (MonadIO m) => TreeWalker -> m (Maybe Node)
-firstChild self
-  = liftIO (nullableToMaybe <$> (js_firstChild (self)))
+firstChild :: (MonadIO m) => TreeWalker -> m Node
+firstChild self = liftIO (js_firstChild self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.firstChild Mozilla TreeWalker.firstChild documentation> 
 firstChild_ :: (MonadIO m) => TreeWalker -> m ()
-firstChild_ self = liftIO (void (js_firstChild (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.firstChild Mozilla TreeWalker.firstChild documentation> 
-firstChildUnsafe ::
-                 (MonadIO m, HasCallStack) => TreeWalker -> m Node
-firstChildUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_firstChild (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.firstChild Mozilla TreeWalker.firstChild documentation> 
-firstChildUnchecked :: (MonadIO m) => TreeWalker -> m Node
-firstChildUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_firstChild (self)))
+firstChild_ self = liftIO (void (js_firstChild self))
  
 foreign import javascript unsafe "$1[\"lastChild\"]()" js_lastChild
-        :: TreeWalker -> IO (Nullable Node)
+        :: TreeWalker -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.lastChild Mozilla TreeWalker.lastChild documentation> 
-lastChild :: (MonadIO m) => TreeWalker -> m (Maybe Node)
-lastChild self = liftIO (nullableToMaybe <$> (js_lastChild (self)))
+lastChild :: (MonadIO m) => TreeWalker -> m Node
+lastChild self = liftIO (js_lastChild self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.lastChild Mozilla TreeWalker.lastChild documentation> 
 lastChild_ :: (MonadIO m) => TreeWalker -> m ()
-lastChild_ self = liftIO (void (js_lastChild (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.lastChild Mozilla TreeWalker.lastChild documentation> 
-lastChildUnsafe ::
-                (MonadIO m, HasCallStack) => TreeWalker -> m Node
-lastChildUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_lastChild (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.lastChild Mozilla TreeWalker.lastChild documentation> 
-lastChildUnchecked :: (MonadIO m) => TreeWalker -> m Node
-lastChildUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_lastChild (self)))
+lastChild_ self = liftIO (void (js_lastChild self))
  
 foreign import javascript unsafe "$1[\"previousSibling\"]()"
-        js_previousSibling :: TreeWalker -> IO (Nullable Node)
+        js_previousSibling :: TreeWalker -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.previousSibling Mozilla TreeWalker.previousSibling documentation> 
-previousSibling :: (MonadIO m) => TreeWalker -> m (Maybe Node)
-previousSibling self
-  = liftIO (nullableToMaybe <$> (js_previousSibling (self)))
+previousSibling :: (MonadIO m) => TreeWalker -> m Node
+previousSibling self = liftIO (js_previousSibling self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.previousSibling Mozilla TreeWalker.previousSibling documentation> 
 previousSibling_ :: (MonadIO m) => TreeWalker -> m ()
-previousSibling_ self = liftIO (void (js_previousSibling (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.previousSibling Mozilla TreeWalker.previousSibling documentation> 
-previousSiblingUnsafe ::
-                      (MonadIO m, HasCallStack) => TreeWalker -> m Node
-previousSiblingUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_previousSibling (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.previousSibling Mozilla TreeWalker.previousSibling documentation> 
-previousSiblingUnchecked :: (MonadIO m) => TreeWalker -> m Node
-previousSiblingUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_previousSibling (self)))
+previousSibling_ self = liftIO (void (js_previousSibling self))
  
 foreign import javascript unsafe "$1[\"nextSibling\"]()"
-        js_nextSibling :: TreeWalker -> IO (Nullable Node)
+        js_nextSibling :: TreeWalker -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.nextSibling Mozilla TreeWalker.nextSibling documentation> 
-nextSibling :: (MonadIO m) => TreeWalker -> m (Maybe Node)
-nextSibling self
-  = liftIO (nullableToMaybe <$> (js_nextSibling (self)))
+nextSibling :: (MonadIO m) => TreeWalker -> m Node
+nextSibling self = liftIO (js_nextSibling self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.nextSibling Mozilla TreeWalker.nextSibling documentation> 
 nextSibling_ :: (MonadIO m) => TreeWalker -> m ()
-nextSibling_ self = liftIO (void (js_nextSibling (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.nextSibling Mozilla TreeWalker.nextSibling documentation> 
-nextSiblingUnsafe ::
-                  (MonadIO m, HasCallStack) => TreeWalker -> m Node
-nextSiblingUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_nextSibling (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.nextSibling Mozilla TreeWalker.nextSibling documentation> 
-nextSiblingUnchecked :: (MonadIO m) => TreeWalker -> m Node
-nextSiblingUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_nextSibling (self)))
+nextSibling_ self = liftIO (void (js_nextSibling self))
  
 foreign import javascript unsafe "$1[\"previousNode\"]()"
-        js_previousNode :: TreeWalker -> IO (Nullable Node)
+        js_previousNode :: TreeWalker -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.previousNode Mozilla TreeWalker.previousNode documentation> 
-previousNode :: (MonadIO m) => TreeWalker -> m (Maybe Node)
-previousNode self
-  = liftIO (nullableToMaybe <$> (js_previousNode (self)))
+previousNode :: (MonadIO m) => TreeWalker -> m Node
+previousNode self = liftIO (js_previousNode self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.previousNode Mozilla TreeWalker.previousNode documentation> 
 previousNode_ :: (MonadIO m) => TreeWalker -> m ()
-previousNode_ self = liftIO (void (js_previousNode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.previousNode Mozilla TreeWalker.previousNode documentation> 
-previousNodeUnsafe ::
-                   (MonadIO m, HasCallStack) => TreeWalker -> m Node
-previousNodeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_previousNode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.previousNode Mozilla TreeWalker.previousNode documentation> 
-previousNodeUnchecked :: (MonadIO m) => TreeWalker -> m Node
-previousNodeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_previousNode (self)))
+previousNode_ self = liftIO (void (js_previousNode self))
  
 foreign import javascript unsafe "$1[\"nextNode\"]()" js_nextNode
-        :: TreeWalker -> IO (Nullable Node)
+        :: TreeWalker -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.nextNode Mozilla TreeWalker.nextNode documentation> 
-nextNode :: (MonadIO m) => TreeWalker -> m (Maybe Node)
-nextNode self = liftIO (nullableToMaybe <$> (js_nextNode (self)))
+nextNode :: (MonadIO m) => TreeWalker -> m Node
+nextNode self = liftIO (js_nextNode self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.nextNode Mozilla TreeWalker.nextNode documentation> 
 nextNode_ :: (MonadIO m) => TreeWalker -> m ()
-nextNode_ self = liftIO (void (js_nextNode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.nextNode Mozilla TreeWalker.nextNode documentation> 
-nextNodeUnsafe :: (MonadIO m, HasCallStack) => TreeWalker -> m Node
-nextNodeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_nextNode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.nextNode Mozilla TreeWalker.nextNode documentation> 
-nextNodeUnchecked :: (MonadIO m) => TreeWalker -> m Node
-nextNodeUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_nextNode (self)))
+nextNode_ self = liftIO (void (js_nextNode self))
  
 foreign import javascript unsafe "$1[\"root\"]" js_getRoot ::
-        TreeWalker -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.root Mozilla TreeWalker.root documentation> 
-getRoot :: (MonadIO m) => TreeWalker -> m (Maybe Node)
-getRoot self = liftIO (nullableToMaybe <$> (js_getRoot (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.root Mozilla TreeWalker.root documentation> 
-getRootUnsafe :: (MonadIO m, HasCallStack) => TreeWalker -> m Node
-getRootUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRoot (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        TreeWalker -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.root Mozilla TreeWalker.root documentation> 
-getRootUnchecked :: (MonadIO m) => TreeWalker -> m Node
-getRootUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRoot (self)))
+getRoot :: (MonadIO m) => TreeWalker -> m Node
+getRoot self = liftIO (js_getRoot self)
  
 foreign import javascript unsafe "$1[\"whatToShow\"]"
         js_getWhatToShow :: TreeWalker -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.whatToShow Mozilla TreeWalker.whatToShow documentation> 
 getWhatToShow :: (MonadIO m) => TreeWalker -> m Word
-getWhatToShow self = liftIO (js_getWhatToShow (self))
- 
-foreign import javascript unsafe "$1[\"filter\"]" js_getFilter ::
-        TreeWalker -> IO (Nullable NodeFilter)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.filter Mozilla TreeWalker.filter documentation> 
-getFilter :: (MonadIO m) => TreeWalker -> m (Maybe NodeFilter)
-getFilter self = liftIO (nullableToMaybe <$> (js_getFilter (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.filter Mozilla TreeWalker.filter documentation> 
-getFilterUnsafe ::
-                (MonadIO m, HasCallStack) => TreeWalker -> m NodeFilter
-getFilterUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFilter (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.filter Mozilla TreeWalker.filter documentation> 
-getFilterUnchecked :: (MonadIO m) => TreeWalker -> m NodeFilter
-getFilterUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFilter (self)))
- 
-foreign import javascript unsafe
-        "($1[\"expandEntityReferences\"] ? 1 : 0)"
-        js_getExpandEntityReferences :: TreeWalker -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.expandEntityReferences Mozilla TreeWalker.expandEntityReferences documentation> 
-getExpandEntityReferences :: (MonadIO m) => TreeWalker -> m Bool
-getExpandEntityReferences self
-  = liftIO (js_getExpandEntityReferences (self))
+getWhatToShow self = liftIO (js_getWhatToShow self)
  
 foreign import javascript unsafe "$1[\"currentNode\"] = $2;"
-        js_setCurrentNode :: TreeWalker -> Nullable Node -> IO ()
+        js_setCurrentNode :: TreeWalker -> Node -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.currentNode Mozilla TreeWalker.currentNode documentation> 
 setCurrentNode ::
-               (MonadIO m, IsNode val) => TreeWalker -> Maybe val -> m ()
+               (MonadIO m, IsNode val) => TreeWalker -> val -> m ()
 setCurrentNode self val
-  = liftIO
-      (js_setCurrentNode (self) (maybeToNullable (fmap toNode val)))
+  = liftIO (js_setCurrentNode self (toNode val))
  
 foreign import javascript unsafe "$1[\"currentNode\"]"
-        js_getCurrentNode :: TreeWalker -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.currentNode Mozilla TreeWalker.currentNode documentation> 
-getCurrentNode :: (MonadIO m) => TreeWalker -> m (Maybe Node)
-getCurrentNode self
-  = liftIO (nullableToMaybe <$> (js_getCurrentNode (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.currentNode Mozilla TreeWalker.currentNode documentation> 
-getCurrentNodeUnsafe ::
-                     (MonadIO m, HasCallStack) => TreeWalker -> m Node
-getCurrentNodeUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCurrentNode (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getCurrentNode :: TreeWalker -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker.currentNode Mozilla TreeWalker.currentNode documentation> 
-getCurrentNodeUnchecked :: (MonadIO m) => TreeWalker -> m Node
-getCurrentNodeUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getCurrentNode (self)))
+getCurrentNode :: (MonadIO m) => TreeWalker -> m Node
+getCurrentNode self = liftIO (js_getCurrentNode self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/TypeConversions.hs b/src/GHCJS/DOM/JSFFI/Generated/TypeConversions.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/TypeConversions.hs
+++ /dev/null
@@ -1,339 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.TypeConversions
-       (js_setTestLong, setTestLong, js_getTestLong, getTestLong,
-        js_setTestEnforceRangeLong, setTestEnforceRangeLong,
-        js_getTestEnforceRangeLong, getTestEnforceRangeLong,
-        js_setTestUnsignedLong, setTestUnsignedLong,
-        js_getTestUnsignedLong, getTestUnsignedLong,
-        js_setTestEnforceRangeUnsignedLong,
-        setTestEnforceRangeUnsignedLong,
-        js_getTestEnforceRangeUnsignedLong,
-        getTestEnforceRangeUnsignedLong, js_setTestLongLong,
-        setTestLongLong, js_getTestLongLong, getTestLongLong,
-        js_setTestEnforceRangeLongLong, setTestEnforceRangeLongLong,
-        js_getTestEnforceRangeLongLong, getTestEnforceRangeLongLong,
-        js_setTestUnsignedLongLong, setTestUnsignedLongLong,
-        js_getTestUnsignedLongLong, getTestUnsignedLongLong,
-        js_setTestEnforceRangeUnsignedLongLong,
-        setTestEnforceRangeUnsignedLongLong,
-        js_getTestEnforceRangeUnsignedLongLong,
-        getTestEnforceRangeUnsignedLongLong, js_setTestByte, setTestByte,
-        js_getTestByte, getTestByte, js_setTestEnforceRangeByte,
-        setTestEnforceRangeByte, js_getTestEnforceRangeByte,
-        getTestEnforceRangeByte, js_setTestOctet, setTestOctet,
-        js_getTestOctet, getTestOctet, js_setTestEnforceRangeOctet,
-        setTestEnforceRangeOctet, js_getTestEnforceRangeOctet,
-        getTestEnforceRangeOctet, js_setTestShort, setTestShort,
-        js_getTestShort, getTestShort, js_setTestEnforceRangeShort,
-        setTestEnforceRangeShort, js_getTestEnforceRangeShort,
-        getTestEnforceRangeShort, js_setTestUnsignedShort,
-        setTestUnsignedShort, js_getTestUnsignedShort,
-        getTestUnsignedShort, js_setTestEnforceRangeUnsignedShort,
-        setTestEnforceRangeUnsignedShort,
-        js_getTestEnforceRangeUnsignedShort,
-        getTestEnforceRangeUnsignedShort, TypeConversions(..),
-        gTypeTypeConversions)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"testLong\"] = $2;"
-        js_setTestLong :: TypeConversions -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testLong Mozilla TypeConversions.testLong documentation> 
-setTestLong :: (MonadIO m) => TypeConversions -> Int -> m ()
-setTestLong self val = liftIO (js_setTestLong (self) val)
- 
-foreign import javascript unsafe "$1[\"testLong\"]" js_getTestLong
-        :: TypeConversions -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testLong Mozilla TypeConversions.testLong documentation> 
-getTestLong :: (MonadIO m) => TypeConversions -> m Int
-getTestLong self = liftIO (js_getTestLong (self))
- 
-foreign import javascript unsafe
-        "$1[\"testEnforceRangeLong\"] = $2;" js_setTestEnforceRangeLong ::
-        TypeConversions -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeLong Mozilla TypeConversions.testEnforceRangeLong documentation> 
-setTestEnforceRangeLong ::
-                        (MonadIO m) => TypeConversions -> Int -> m ()
-setTestEnforceRangeLong self val
-  = liftIO (js_setTestEnforceRangeLong (self) val)
- 
-foreign import javascript unsafe "$1[\"testEnforceRangeLong\"]"
-        js_getTestEnforceRangeLong :: TypeConversions -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeLong Mozilla TypeConversions.testEnforceRangeLong documentation> 
-getTestEnforceRangeLong :: (MonadIO m) => TypeConversions -> m Int
-getTestEnforceRangeLong self
-  = liftIO (js_getTestEnforceRangeLong (self))
- 
-foreign import javascript unsafe "$1[\"testUnsignedLong\"] = $2;"
-        js_setTestUnsignedLong :: TypeConversions -> Word -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testUnsignedLong Mozilla TypeConversions.testUnsignedLong documentation> 
-setTestUnsignedLong ::
-                    (MonadIO m) => TypeConversions -> Word -> m ()
-setTestUnsignedLong self val
-  = liftIO (js_setTestUnsignedLong (self) val)
- 
-foreign import javascript unsafe "$1[\"testUnsignedLong\"]"
-        js_getTestUnsignedLong :: TypeConversions -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testUnsignedLong Mozilla TypeConversions.testUnsignedLong documentation> 
-getTestUnsignedLong :: (MonadIO m) => TypeConversions -> m Word
-getTestUnsignedLong self = liftIO (js_getTestUnsignedLong (self))
- 
-foreign import javascript unsafe
-        "$1[\"testEnforceRangeUnsignedLong\"] = $2;"
-        js_setTestEnforceRangeUnsignedLong ::
-        TypeConversions -> Word -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeUnsignedLong Mozilla TypeConversions.testEnforceRangeUnsignedLong documentation> 
-setTestEnforceRangeUnsignedLong ::
-                                (MonadIO m) => TypeConversions -> Word -> m ()
-setTestEnforceRangeUnsignedLong self val
-  = liftIO (js_setTestEnforceRangeUnsignedLong (self) val)
- 
-foreign import javascript unsafe
-        "$1[\"testEnforceRangeUnsignedLong\"]"
-        js_getTestEnforceRangeUnsignedLong :: TypeConversions -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeUnsignedLong Mozilla TypeConversions.testEnforceRangeUnsignedLong documentation> 
-getTestEnforceRangeUnsignedLong ::
-                                (MonadIO m) => TypeConversions -> m Word
-getTestEnforceRangeUnsignedLong self
-  = liftIO (js_getTestEnforceRangeUnsignedLong (self))
- 
-foreign import javascript unsafe "$1[\"testLongLong\"] = $2;"
-        js_setTestLongLong :: TypeConversions -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testLongLong Mozilla TypeConversions.testLongLong documentation> 
-setTestLongLong :: (MonadIO m) => TypeConversions -> Int64 -> m ()
-setTestLongLong self val
-  = liftIO (js_setTestLongLong (self) (fromIntegral val))
- 
-foreign import javascript unsafe "$1[\"testLongLong\"]"
-        js_getTestLongLong :: TypeConversions -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testLongLong Mozilla TypeConversions.testLongLong documentation> 
-getTestLongLong :: (MonadIO m) => TypeConversions -> m Int64
-getTestLongLong self
-  = liftIO (round <$> (js_getTestLongLong (self)))
- 
-foreign import javascript unsafe
-        "$1[\"testEnforceRangeLongLong\"] = $2;"
-        js_setTestEnforceRangeLongLong ::
-        TypeConversions -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeLongLong Mozilla TypeConversions.testEnforceRangeLongLong documentation> 
-setTestEnforceRangeLongLong ::
-                            (MonadIO m) => TypeConversions -> Int64 -> m ()
-setTestEnforceRangeLongLong self val
-  = liftIO (js_setTestEnforceRangeLongLong (self) (fromIntegral val))
- 
-foreign import javascript unsafe "$1[\"testEnforceRangeLongLong\"]"
-        js_getTestEnforceRangeLongLong :: TypeConversions -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeLongLong Mozilla TypeConversions.testEnforceRangeLongLong documentation> 
-getTestEnforceRangeLongLong ::
-                            (MonadIO m) => TypeConversions -> m Int64
-getTestEnforceRangeLongLong self
-  = liftIO (round <$> (js_getTestEnforceRangeLongLong (self)))
- 
-foreign import javascript unsafe
-        "$1[\"testUnsignedLongLong\"] = $2;" js_setTestUnsignedLongLong ::
-        TypeConversions -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testUnsignedLongLong Mozilla TypeConversions.testUnsignedLongLong documentation> 
-setTestUnsignedLongLong ::
-                        (MonadIO m) => TypeConversions -> Word64 -> m ()
-setTestUnsignedLongLong self val
-  = liftIO (js_setTestUnsignedLongLong (self) (fromIntegral val))
- 
-foreign import javascript unsafe "$1[\"testUnsignedLongLong\"]"
-        js_getTestUnsignedLongLong :: TypeConversions -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testUnsignedLongLong Mozilla TypeConversions.testUnsignedLongLong documentation> 
-getTestUnsignedLongLong ::
-                        (MonadIO m) => TypeConversions -> m Word64
-getTestUnsignedLongLong self
-  = liftIO (round <$> (js_getTestUnsignedLongLong (self)))
- 
-foreign import javascript unsafe
-        "$1[\"testEnforceRangeUnsignedLongLong\"] = $2;"
-        js_setTestEnforceRangeUnsignedLongLong ::
-        TypeConversions -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeUnsignedLongLong Mozilla TypeConversions.testEnforceRangeUnsignedLongLong documentation> 
-setTestEnforceRangeUnsignedLongLong ::
-                                    (MonadIO m) => TypeConversions -> Word64 -> m ()
-setTestEnforceRangeUnsignedLongLong self val
-  = liftIO
-      (js_setTestEnforceRangeUnsignedLongLong (self) (fromIntegral val))
- 
-foreign import javascript unsafe
-        "$1[\"testEnforceRangeUnsignedLongLong\"]"
-        js_getTestEnforceRangeUnsignedLongLong ::
-        TypeConversions -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeUnsignedLongLong Mozilla TypeConversions.testEnforceRangeUnsignedLongLong documentation> 
-getTestEnforceRangeUnsignedLongLong ::
-                                    (MonadIO m) => TypeConversions -> m Word64
-getTestEnforceRangeUnsignedLongLong self
-  = liftIO
-      (round <$> (js_getTestEnforceRangeUnsignedLongLong (self)))
- 
-foreign import javascript unsafe "$1[\"testByte\"] = $2;"
-        js_setTestByte :: TypeConversions -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testByte Mozilla TypeConversions.testByte documentation> 
-setTestByte :: (MonadIO m) => TypeConversions -> Int -> m ()
-setTestByte self val = liftIO (js_setTestByte (self) val)
- 
-foreign import javascript unsafe "$1[\"testByte\"]" js_getTestByte
-        :: TypeConversions -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testByte Mozilla TypeConversions.testByte documentation> 
-getTestByte :: (MonadIO m) => TypeConversions -> m Int
-getTestByte self = liftIO (js_getTestByte (self))
- 
-foreign import javascript unsafe
-        "$1[\"testEnforceRangeByte\"] = $2;" js_setTestEnforceRangeByte ::
-        TypeConversions -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeByte Mozilla TypeConversions.testEnforceRangeByte documentation> 
-setTestEnforceRangeByte ::
-                        (MonadIO m) => TypeConversions -> Int -> m ()
-setTestEnforceRangeByte self val
-  = liftIO (js_setTestEnforceRangeByte (self) val)
- 
-foreign import javascript unsafe "$1[\"testEnforceRangeByte\"]"
-        js_getTestEnforceRangeByte :: TypeConversions -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeByte Mozilla TypeConversions.testEnforceRangeByte documentation> 
-getTestEnforceRangeByte :: (MonadIO m) => TypeConversions -> m Int
-getTestEnforceRangeByte self
-  = liftIO (js_getTestEnforceRangeByte (self))
- 
-foreign import javascript unsafe "$1[\"testOctet\"] = $2;"
-        js_setTestOctet :: TypeConversions -> Word -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testOctet Mozilla TypeConversions.testOctet documentation> 
-setTestOctet :: (MonadIO m) => TypeConversions -> Word -> m ()
-setTestOctet self val = liftIO (js_setTestOctet (self) val)
- 
-foreign import javascript unsafe "$1[\"testOctet\"]"
-        js_getTestOctet :: TypeConversions -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testOctet Mozilla TypeConversions.testOctet documentation> 
-getTestOctet :: (MonadIO m) => TypeConversions -> m Word
-getTestOctet self = liftIO (js_getTestOctet (self))
- 
-foreign import javascript unsafe
-        "$1[\"testEnforceRangeOctet\"] = $2;" js_setTestEnforceRangeOctet
-        :: TypeConversions -> Word -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeOctet Mozilla TypeConversions.testEnforceRangeOctet documentation> 
-setTestEnforceRangeOctet ::
-                         (MonadIO m) => TypeConversions -> Word -> m ()
-setTestEnforceRangeOctet self val
-  = liftIO (js_setTestEnforceRangeOctet (self) val)
- 
-foreign import javascript unsafe "$1[\"testEnforceRangeOctet\"]"
-        js_getTestEnforceRangeOctet :: TypeConversions -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeOctet Mozilla TypeConversions.testEnforceRangeOctet documentation> 
-getTestEnforceRangeOctet ::
-                         (MonadIO m) => TypeConversions -> m Word
-getTestEnforceRangeOctet self
-  = liftIO (js_getTestEnforceRangeOctet (self))
- 
-foreign import javascript unsafe "$1[\"testShort\"] = $2;"
-        js_setTestShort :: TypeConversions -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testShort Mozilla TypeConversions.testShort documentation> 
-setTestShort :: (MonadIO m) => TypeConversions -> Int -> m ()
-setTestShort self val = liftIO (js_setTestShort (self) val)
- 
-foreign import javascript unsafe "$1[\"testShort\"]"
-        js_getTestShort :: TypeConversions -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testShort Mozilla TypeConversions.testShort documentation> 
-getTestShort :: (MonadIO m) => TypeConversions -> m Int
-getTestShort self = liftIO (js_getTestShort (self))
- 
-foreign import javascript unsafe
-        "$1[\"testEnforceRangeShort\"] = $2;" js_setTestEnforceRangeShort
-        :: TypeConversions -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeShort Mozilla TypeConversions.testEnforceRangeShort documentation> 
-setTestEnforceRangeShort ::
-                         (MonadIO m) => TypeConversions -> Int -> m ()
-setTestEnforceRangeShort self val
-  = liftIO (js_setTestEnforceRangeShort (self) val)
- 
-foreign import javascript unsafe "$1[\"testEnforceRangeShort\"]"
-        js_getTestEnforceRangeShort :: TypeConversions -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeShort Mozilla TypeConversions.testEnforceRangeShort documentation> 
-getTestEnforceRangeShort :: (MonadIO m) => TypeConversions -> m Int
-getTestEnforceRangeShort self
-  = liftIO (js_getTestEnforceRangeShort (self))
- 
-foreign import javascript unsafe "$1[\"testUnsignedShort\"] = $2;"
-        js_setTestUnsignedShort :: TypeConversions -> Word -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testUnsignedShort Mozilla TypeConversions.testUnsignedShort documentation> 
-setTestUnsignedShort ::
-                     (MonadIO m) => TypeConversions -> Word -> m ()
-setTestUnsignedShort self val
-  = liftIO (js_setTestUnsignedShort (self) val)
- 
-foreign import javascript unsafe "$1[\"testUnsignedShort\"]"
-        js_getTestUnsignedShort :: TypeConversions -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testUnsignedShort Mozilla TypeConversions.testUnsignedShort documentation> 
-getTestUnsignedShort :: (MonadIO m) => TypeConversions -> m Word
-getTestUnsignedShort self = liftIO (js_getTestUnsignedShort (self))
- 
-foreign import javascript unsafe
-        "$1[\"testEnforceRangeUnsignedShort\"] = $2;"
-        js_setTestEnforceRangeUnsignedShort ::
-        TypeConversions -> Word -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeUnsignedShort Mozilla TypeConversions.testEnforceRangeUnsignedShort documentation> 
-setTestEnforceRangeUnsignedShort ::
-                                 (MonadIO m) => TypeConversions -> Word -> m ()
-setTestEnforceRangeUnsignedShort self val
-  = liftIO (js_setTestEnforceRangeUnsignedShort (self) val)
- 
-foreign import javascript unsafe
-        "$1[\"testEnforceRangeUnsignedShort\"]"
-        js_getTestEnforceRangeUnsignedShort :: TypeConversions -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions.testEnforceRangeUnsignedShort Mozilla TypeConversions.testEnforceRangeUnsignedShort documentation> 
-getTestEnforceRangeUnsignedShort ::
-                                 (MonadIO m) => TypeConversions -> m Word
-getTestEnforceRangeUnsignedShort self
-  = liftIO (js_getTestEnforceRangeUnsignedShort (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/UIEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/UIEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/UIEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/UIEvent.hs
@@ -4,18 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.UIEvent
-       (js_initUIEvent, initUIEvent, js_getView, getView, getViewUnsafe,
-        getViewUnchecked, js_getDetail, getDetail, js_getKeyCode,
-        getKeyCode, js_getCharCode, getCharCode, js_getLayerX, getLayerX,
-        js_getLayerY, getLayerY, js_getPageX, getPageX, js_getPageY,
-        getPageY, js_getWhich, getWhich, UIEvent(..), gTypeUIEvent,
-        IsUIEvent, toUIEvent)
+       (js_newUIEvent, newUIEvent, js_initUIEvent, initUIEvent,
+        js_getView, getView, js_getDetail, getDetail, js_getLayerX,
+        getLayerX, js_getLayerY, getLayerY, js_getPageX, getPageX,
+        js_getPageY, getPageY, js_getWhich, getWhich, UIEvent(..),
+        gTypeUIEvent, IsUIEvent, toUIEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,47 +23,48 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe "new window[\"UIEvent\"]($1, $2)"
+        js_newUIEvent :: JSString -> Optional UIEventInit -> IO UIEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent Mozilla UIEvent documentation> 
+newUIEvent ::
+           (MonadIO m, ToJSString type', IsUIEventInit eventInitDict) =>
+             type' -> Maybe eventInitDict -> m UIEvent
+newUIEvent type' eventInitDict
+  = liftIO
+      (js_newUIEvent (toJSString type')
+         (maybeToOptional (fmap toUIEventInit eventInitDict)))
+ 
 foreign import javascript unsafe
         "$1[\"initUIEvent\"]($2, $3, $4,\n$5, $6)" js_initUIEvent ::
         UIEvent ->
-          JSString -> Bool -> Bool -> Nullable Window -> Int -> IO ()
+          Optional JSString ->
+            Bool -> Bool -> Optional Window -> Optional Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent.initUIEvent Mozilla UIEvent.initUIEvent documentation> 
 initUIEvent ::
             (MonadIO m, IsUIEvent self, ToJSString type') =>
-              self -> type' -> Bool -> Bool -> Maybe Window -> Int -> m ()
+              self ->
+                Maybe type' -> Bool -> Bool -> Maybe Window -> Maybe Int -> m ()
 initUIEvent self type' canBubble cancelable view detail
   = liftIO
-      (js_initUIEvent (toUIEvent self) (toJSString type') canBubble
+      (js_initUIEvent (toUIEvent self) (toOptionalJSString type')
+         canBubble
          cancelable
-         (maybeToNullable view)
-         detail)
+         (maybeToOptional view)
+         (maybeToOptional detail))
  
 foreign import javascript unsafe "$1[\"view\"]" js_getView ::
-        UIEvent -> IO (Nullable Window)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent.view Mozilla UIEvent.view documentation> 
-getView :: (MonadIO m, IsUIEvent self) => self -> m (Maybe Window)
-getView self
-  = liftIO (nullableToMaybe <$> (js_getView (toUIEvent self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent.view Mozilla UIEvent.view documentation> 
-getViewUnsafe ::
-              (MonadIO m, IsUIEvent self, HasCallStack) => self -> m Window
-getViewUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getView (toUIEvent self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        UIEvent -> IO Window
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent.view Mozilla UIEvent.view documentation> 
-getViewUnchecked :: (MonadIO m, IsUIEvent self) => self -> m Window
-getViewUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getView (toUIEvent self)))
+getView :: (MonadIO m, IsUIEvent self) => self -> m Window
+getView self = liftIO (js_getView (toUIEvent self))
  
 foreign import javascript unsafe "$1[\"detail\"]" js_getDetail ::
         UIEvent -> IO Int
@@ -72,20 +72,6 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent.detail Mozilla UIEvent.detail documentation> 
 getDetail :: (MonadIO m, IsUIEvent self) => self -> m Int
 getDetail self = liftIO (js_getDetail (toUIEvent self))
- 
-foreign import javascript unsafe "$1[\"keyCode\"]" js_getKeyCode ::
-        UIEvent -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent.keyCode Mozilla UIEvent.keyCode documentation> 
-getKeyCode :: (MonadIO m, IsUIEvent self) => self -> m Int
-getKeyCode self = liftIO (js_getKeyCode (toUIEvent self))
- 
-foreign import javascript unsafe "$1[\"charCode\"]" js_getCharCode
-        :: UIEvent -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent.charCode Mozilla UIEvent.charCode documentation> 
-getCharCode :: (MonadIO m, IsUIEvent self) => self -> m Int
-getCharCode self = liftIO (js_getCharCode (toUIEvent self))
  
 foreign import javascript unsafe "$1[\"layerX\"]" js_getLayerX ::
         UIEvent -> IO Int
diff --git a/src/GHCJS/DOM/JSFFI/Generated/UIRequestEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/UIRequestEvent.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/UIRequestEvent.hs
+++ /dev/null
@@ -1,49 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.UIRequestEvent
-       (js_getReceiver, getReceiver, getReceiverUnsafe,
-        getReceiverUnchecked, UIRequestEvent(..), gTypeUIRequestEvent)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"receiver\"]" js_getReceiver
-        :: UIRequestEvent -> IO (Nullable EventTarget)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/UIRequestEvent.receiver Mozilla UIRequestEvent.receiver documentation> 
-getReceiver ::
-            (MonadIO m) => UIRequestEvent -> m (Maybe EventTarget)
-getReceiver self
-  = liftIO (nullableToMaybe <$> (js_getReceiver (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/UIRequestEvent.receiver Mozilla UIRequestEvent.receiver documentation> 
-getReceiverUnsafe ::
-                  (MonadIO m, HasCallStack) => UIRequestEvent -> m EventTarget
-getReceiverUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getReceiver (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/UIRequestEvent.receiver Mozilla UIRequestEvent.receiver documentation> 
-getReceiverUnchecked ::
-                     (MonadIO m) => UIRequestEvent -> m EventTarget
-getReceiverUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getReceiver (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/URL.hs b/src/GHCJS/DOM/JSFFI/Generated/URL.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/URL.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/URL.hs
@@ -5,20 +5,27 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.URL
        (js_newURL, newURL, js_newURL', newURL', js_newURL'', newURL'',
-        js_createObjectURL, createObjectURL, createObjectURL_,
-        createObjectURLUnsafe, createObjectURLUnchecked,
-        js_revokeObjectURL, revokeObjectURL, js_createObjectURLSource,
-        createObjectURLSource, createObjectURLSource_,
-        createObjectURLSourceUnsafe, createObjectURLSourceUnchecked,
-        js_createObjectURLStream, createObjectURLStream,
-        createObjectURLStream_, createObjectURLStreamUnsafe,
-        createObjectURLStreamUnchecked, URL(..), gTypeURL)
+        js_toJSON, toJSON, toJSON_, js_createObjectURL, createObjectURL,
+        createObjectURL_, js_revokeObjectURL, revokeObjectURL,
+        js_createObjectURLSource, createObjectURLSource,
+        createObjectURLSource_, js_createObjectURLStream,
+        createObjectURLStream, createObjectURLStream_, js_setHref, setHref,
+        js_getHref, getHref, js_getOrigin, getOrigin, js_setProtocol,
+        setProtocol, js_getProtocol, getProtocol, js_setUsername,
+        setUsername, js_getUsername, getUsername, js_setPassword,
+        setPassword, js_getPassword, getPassword, js_setHost, setHost,
+        js_getHost, getHost, js_setHostname, setHostname, js_getHostname,
+        getHostname, js_setPort, setPort, js_getPort, getPort,
+        js_setPathname, setPathname, js_getPathname, getPathname,
+        js_setHash, setHash, js_getHash, getHash, js_setSearch, setSearch,
+        js_getSearch, getSearch, js_getSearchParams, getSearchParams,
+        URL(..), gTypeURL)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,6 +34,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -50,53 +58,37 @@
   = liftIO (js_newURL' (toJSString url) (toJSString base))
  
 foreign import javascript unsafe "new window[\"URL\"]($1, $2)"
-        js_newURL'' :: JSString -> Nullable URL -> IO URL
+        js_newURL'' :: JSString -> URL -> IO URL
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/URL Mozilla URL documentation> 
-newURL'' ::
-         (MonadIO m, ToJSString url) => url -> Maybe URL -> m URL
-newURL'' url base
-  = liftIO (js_newURL'' (toJSString url) (maybeToNullable base))
+newURL'' :: (MonadIO m, ToJSString url) => url -> URL -> m URL
+newURL'' url base = liftIO (js_newURL'' (toJSString url) base)
  
+foreign import javascript unsafe "$1[\"toJSON\"]()" js_toJSON ::
+        URL -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.toJSON Mozilla URL.toJSON documentation> 
+toJSON :: (MonadIO m, FromJSString result) => URL -> m result
+toJSON self = liftIO (fromJSString <$> (js_toJSON self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.toJSON Mozilla URL.toJSON documentation> 
+toJSON_ :: (MonadIO m) => URL -> m ()
+toJSON_ self = liftIO (void (js_toJSON self))
+ 
 foreign import javascript unsafe "$1[\"createObjectURL\"]($2)"
-        js_createObjectURL ::
-        URL -> Nullable Blob -> IO (Nullable JSString)
+        js_createObjectURL :: URL -> Blob -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
 createObjectURL ::
                 (MonadIO m, IsBlob blob, FromJSString result) =>
-                  URL -> Maybe blob -> m (Maybe result)
+                  URL -> blob -> m result
 createObjectURL self blob
-  = liftIO
-      (fromMaybeJSString <$>
-         (js_createObjectURL (self) (maybeToNullable (fmap toBlob blob))))
+  = liftIO (fromJSString <$> (js_createObjectURL self (toBlob blob)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
-createObjectURL_ ::
-                 (MonadIO m, IsBlob blob) => URL -> Maybe blob -> m ()
+createObjectURL_ :: (MonadIO m, IsBlob blob) => URL -> blob -> m ()
 createObjectURL_ self blob
-  = liftIO
-      (void
-         (js_createObjectURL (self) (maybeToNullable (fmap toBlob blob))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
-createObjectURLUnsafe ::
-                      (MonadIO m, IsBlob blob, HasCallStack, FromJSString result) =>
-                        URL -> Maybe blob -> m result
-createObjectURLUnsafe self blob
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_createObjectURL (self) (maybeToNullable (fmap toBlob blob))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
-createObjectURLUnchecked ::
-                         (MonadIO m, IsBlob blob, FromJSString result) =>
-                           URL -> Maybe blob -> m result
-createObjectURLUnchecked self blob
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_createObjectURL (self) (maybeToNullable (fmap toBlob blob))))
+  = liftIO (void (js_createObjectURL self (toBlob blob)))
  
 foreign import javascript unsafe "$1[\"revokeObjectURL\"]($2)"
         js_revokeObjectURL :: URL -> JSString -> IO ()
@@ -105,82 +97,191 @@
 revokeObjectURL ::
                 (MonadIO m, ToJSString url) => URL -> url -> m ()
 revokeObjectURL self url
-  = liftIO (js_revokeObjectURL (self) (toJSString url))
+  = liftIO (js_revokeObjectURL self (toJSString url))
  
 foreign import javascript unsafe "$1[\"createObjectURL\"]($2)"
-        js_createObjectURLSource ::
-        URL -> Nullable MediaSource -> IO (Nullable JSString)
+        js_createObjectURLSource :: URL -> MediaSource -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
 createObjectURLSource ::
-                      (MonadIO m, FromJSString result) =>
-                        URL -> Maybe MediaSource -> m (Maybe result)
+                      (MonadIO m, FromJSString result) => URL -> MediaSource -> m result
 createObjectURLSource self source
-  = liftIO
-      (fromMaybeJSString <$>
-         (js_createObjectURLSource (self) (maybeToNullable source)))
+  = liftIO (fromJSString <$> (js_createObjectURLSource self source))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
-createObjectURLSource_ ::
-                       (MonadIO m) => URL -> Maybe MediaSource -> m ()
+createObjectURLSource_ :: (MonadIO m) => URL -> MediaSource -> m ()
 createObjectURLSource_ self source
-  = liftIO
-      (void (js_createObjectURLSource (self) (maybeToNullable source)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
-createObjectURLSourceUnsafe ::
-                            (MonadIO m, HasCallStack, FromJSString result) =>
-                              URL -> Maybe MediaSource -> m result
-createObjectURLSourceUnsafe self source
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_createObjectURLSource (self) (maybeToNullable source)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
-createObjectURLSourceUnchecked ::
-                               (MonadIO m, FromJSString result) =>
-                                 URL -> Maybe MediaSource -> m result
-createObjectURLSourceUnchecked self source
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_createObjectURLSource (self) (maybeToNullable source)))
+  = liftIO (void (js_createObjectURLSource self source))
  
 foreign import javascript unsafe "$1[\"createObjectURL\"]($2)"
-        js_createObjectURLStream ::
-        URL -> Nullable MediaStream -> IO (Nullable JSString)
+        js_createObjectURLStream :: URL -> MediaStream -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
 createObjectURLStream ::
-                      (MonadIO m, FromJSString result) =>
-                        URL -> Maybe MediaStream -> m (Maybe result)
+                      (MonadIO m, FromJSString result) => URL -> MediaStream -> m result
 createObjectURLStream self stream
-  = liftIO
-      (fromMaybeJSString <$>
-         (js_createObjectURLStream (self) (maybeToNullable stream)))
+  = liftIO (fromJSString <$> (js_createObjectURLStream self stream))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
-createObjectURLStream_ ::
-                       (MonadIO m) => URL -> Maybe MediaStream -> m ()
+createObjectURLStream_ :: (MonadIO m) => URL -> MediaStream -> m ()
 createObjectURLStream_ self stream
-  = liftIO
-      (void (js_createObjectURLStream (self) (maybeToNullable stream)))
+  = liftIO (void (js_createObjectURLStream self stream))
+ 
+foreign import javascript unsafe "$1[\"href\"] = $2;" js_setHref ::
+        URL -> JSString -> IO ()
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
-createObjectURLStreamUnsafe ::
-                            (MonadIO m, HasCallStack, FromJSString result) =>
-                              URL -> Maybe MediaStream -> m result
-createObjectURLStreamUnsafe self stream
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_createObjectURLStream (self) (maybeToNullable stream)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.href Mozilla URL.href documentation> 
+setHref :: (MonadIO m, ToJSString val) => URL -> val -> m ()
+setHref self val = liftIO (js_setHref self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"href\"]" js_getHref ::
+        URL -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL Mozilla URL.createObjectURL documentation> 
-createObjectURLStreamUnchecked ::
-                               (MonadIO m, FromJSString result) =>
-                                 URL -> Maybe MediaStream -> m result
-createObjectURLStreamUnchecked self stream
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_createObjectURLStream (self) (maybeToNullable stream)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.href Mozilla URL.href documentation> 
+getHref :: (MonadIO m, FromJSString result) => URL -> m result
+getHref self = liftIO (fromJSString <$> (js_getHref self))
+ 
+foreign import javascript unsafe "$1[\"origin\"]" js_getOrigin ::
+        URL -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.origin Mozilla URL.origin documentation> 
+getOrigin :: (MonadIO m, FromJSString result) => URL -> m result
+getOrigin self = liftIO (fromJSString <$> (js_getOrigin self))
+ 
+foreign import javascript unsafe "$1[\"protocol\"] = $2;"
+        js_setProtocol :: URL -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.protocol Mozilla URL.protocol documentation> 
+setProtocol :: (MonadIO m, ToJSString val) => URL -> val -> m ()
+setProtocol self val
+  = liftIO (js_setProtocol self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"protocol\"]" js_getProtocol
+        :: URL -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.protocol Mozilla URL.protocol documentation> 
+getProtocol :: (MonadIO m, FromJSString result) => URL -> m result
+getProtocol self = liftIO (fromJSString <$> (js_getProtocol self))
+ 
+foreign import javascript unsafe "$1[\"username\"] = $2;"
+        js_setUsername :: URL -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.username Mozilla URL.username documentation> 
+setUsername :: (MonadIO m, ToJSString val) => URL -> val -> m ()
+setUsername self val
+  = liftIO (js_setUsername self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"username\"]" js_getUsername
+        :: URL -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.username Mozilla URL.username documentation> 
+getUsername :: (MonadIO m, FromJSString result) => URL -> m result
+getUsername self = liftIO (fromJSString <$> (js_getUsername self))
+ 
+foreign import javascript unsafe "$1[\"password\"] = $2;"
+        js_setPassword :: URL -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.password Mozilla URL.password documentation> 
+setPassword :: (MonadIO m, ToJSString val) => URL -> val -> m ()
+setPassword self val
+  = liftIO (js_setPassword self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"password\"]" js_getPassword
+        :: URL -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.password Mozilla URL.password documentation> 
+getPassword :: (MonadIO m, FromJSString result) => URL -> m result
+getPassword self = liftIO (fromJSString <$> (js_getPassword self))
+ 
+foreign import javascript unsafe "$1[\"host\"] = $2;" js_setHost ::
+        URL -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.host Mozilla URL.host documentation> 
+setHost :: (MonadIO m, ToJSString val) => URL -> val -> m ()
+setHost self val = liftIO (js_setHost self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"host\"]" js_getHost ::
+        URL -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.host Mozilla URL.host documentation> 
+getHost :: (MonadIO m, FromJSString result) => URL -> m result
+getHost self = liftIO (fromJSString <$> (js_getHost self))
+ 
+foreign import javascript unsafe "$1[\"hostname\"] = $2;"
+        js_setHostname :: URL -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.hostname Mozilla URL.hostname documentation> 
+setHostname :: (MonadIO m, ToJSString val) => URL -> val -> m ()
+setHostname self val
+  = liftIO (js_setHostname self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"hostname\"]" js_getHostname
+        :: URL -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.hostname Mozilla URL.hostname documentation> 
+getHostname :: (MonadIO m, FromJSString result) => URL -> m result
+getHostname self = liftIO (fromJSString <$> (js_getHostname self))
+ 
+foreign import javascript unsafe "$1[\"port\"] = $2;" js_setPort ::
+        URL -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.port Mozilla URL.port documentation> 
+setPort :: (MonadIO m, ToJSString val) => URL -> val -> m ()
+setPort self val = liftIO (js_setPort self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"port\"]" js_getPort ::
+        URL -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.port Mozilla URL.port documentation> 
+getPort :: (MonadIO m, FromJSString result) => URL -> m result
+getPort self = liftIO (fromJSString <$> (js_getPort self))
+ 
+foreign import javascript unsafe "$1[\"pathname\"] = $2;"
+        js_setPathname :: URL -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.pathname Mozilla URL.pathname documentation> 
+setPathname :: (MonadIO m, ToJSString val) => URL -> val -> m ()
+setPathname self val
+  = liftIO (js_setPathname self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"pathname\"]" js_getPathname
+        :: URL -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.pathname Mozilla URL.pathname documentation> 
+getPathname :: (MonadIO m, FromJSString result) => URL -> m result
+getPathname self = liftIO (fromJSString <$> (js_getPathname self))
+ 
+foreign import javascript unsafe "$1[\"hash\"] = $2;" js_setHash ::
+        URL -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.hash Mozilla URL.hash documentation> 
+setHash :: (MonadIO m, ToJSString val) => URL -> val -> m ()
+setHash self val = liftIO (js_setHash self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"hash\"]" js_getHash ::
+        URL -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.hash Mozilla URL.hash documentation> 
+getHash :: (MonadIO m, FromJSString result) => URL -> m result
+getHash self = liftIO (fromJSString <$> (js_getHash self))
+ 
+foreign import javascript unsafe "$1[\"search\"] = $2;"
+        js_setSearch :: URL -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.search Mozilla URL.search documentation> 
+setSearch :: (MonadIO m, ToJSString val) => URL -> val -> m ()
+setSearch self val = liftIO (js_setSearch self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"search\"]" js_getSearch ::
+        URL -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.search Mozilla URL.search documentation> 
+getSearch :: (MonadIO m, FromJSString result) => URL -> m result
+getSearch self = liftIO (fromJSString <$> (js_getSearch self))
+ 
+foreign import javascript unsafe "$1[\"searchParams\"]"
+        js_getSearchParams :: URL -> IO URLSearchParams
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URL.searchParams Mozilla URL.searchParams documentation> 
+getSearchParams :: (MonadIO m) => URL -> m URLSearchParams
+getSearchParams self = liftIO (js_getSearchParams self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/URLSearchParams.hs b/src/GHCJS/DOM/JSFFI/Generated/URLSearchParams.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/URLSearchParams.hs
@@ -0,0 +1,152 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.URLSearchParams
+       (js_newURLSearchParams, newURLSearchParams, js_append, append,
+        js_delete, delete, js_get, get, get_, getUnsafe, getUnchecked,
+        js_getAll, getAll, getAll_, js_has, has, has_, js_set, set,
+        js_sort, sort, js_toString, toString, toString_,
+        URLSearchParams(..), gTypeURLSearchParams)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"URLSearchParams\"]($1)" js_newURLSearchParams ::
+        URLSearchParamsInit -> IO URLSearchParams
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams Mozilla URLSearchParams documentation> 
+newURLSearchParams ::
+                   (MonadIO m, IsURLSearchParamsInit init) =>
+                     init -> m URLSearchParams
+newURLSearchParams init
+  = liftIO
+      (toJSVal init >>=
+         \ init' -> js_newURLSearchParams (URLSearchParamsInit init'))
+ 
+foreign import javascript unsafe "$1[\"append\"]($2, $3)" js_append
+        :: URLSearchParams -> JSString -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.append Mozilla URLSearchParams.append documentation> 
+append ::
+       (MonadIO m, ToJSString name, ToJSString value) =>
+         URLSearchParams -> name -> value -> m ()
+append self name value
+  = liftIO (js_append self (toJSString name) (toJSString value))
+ 
+foreign import javascript unsafe "$1[\"delete\"]($2)" js_delete ::
+        URLSearchParams -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.delete Mozilla URLSearchParams.delete documentation> 
+delete ::
+       (MonadIO m, ToJSString name) => URLSearchParams -> name -> m ()
+delete self name = liftIO (js_delete self (toJSString name))
+ 
+foreign import javascript unsafe "$1[\"get\"]($2)" js_get ::
+        URLSearchParams -> JSString -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.get Mozilla URLSearchParams.get documentation> 
+get ::
+    (MonadIO m, ToJSString name, FromJSString result) =>
+      URLSearchParams -> name -> m (Maybe result)
+get self name
+  = liftIO (fromMaybeJSString <$> (js_get self (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.get Mozilla URLSearchParams.get documentation> 
+get_ ::
+     (MonadIO m, ToJSString name) => URLSearchParams -> name -> m ()
+get_ self name = liftIO (void (js_get self (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.get Mozilla URLSearchParams.get documentation> 
+getUnsafe ::
+          (MonadIO m, ToJSString name, HasCallStack, FromJSString result) =>
+            URLSearchParams -> name -> m result
+getUnsafe self name
+  = liftIO
+      ((fromMaybeJSString <$> (js_get self (toJSString name))) >>=
+         maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.get Mozilla URLSearchParams.get documentation> 
+getUnchecked ::
+             (MonadIO m, ToJSString name, FromJSString result) =>
+               URLSearchParams -> name -> m result
+getUnchecked self name
+  = liftIO
+      (fromJust . fromMaybeJSString <$> (js_get self (toJSString name)))
+ 
+foreign import javascript unsafe "$1[\"getAll\"]($2)" js_getAll ::
+        URLSearchParams -> JSString -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.getAll Mozilla URLSearchParams.getAll documentation> 
+getAll ::
+       (MonadIO m, ToJSString name, FromJSString result) =>
+         URLSearchParams -> name -> m [result]
+getAll self name
+  = liftIO
+      ((js_getAll self (toJSString name)) >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.getAll Mozilla URLSearchParams.getAll documentation> 
+getAll_ ::
+        (MonadIO m, ToJSString name) => URLSearchParams -> name -> m ()
+getAll_ self name
+  = liftIO (void (js_getAll self (toJSString name)))
+ 
+foreign import javascript unsafe "($1[\"has\"]($2) ? 1 : 0)" js_has
+        :: URLSearchParams -> JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.has Mozilla URLSearchParams.has documentation> 
+has ::
+    (MonadIO m, ToJSString name) => URLSearchParams -> name -> m Bool
+has self name = liftIO (js_has self (toJSString name))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.has Mozilla URLSearchParams.has documentation> 
+has_ ::
+     (MonadIO m, ToJSString name) => URLSearchParams -> name -> m ()
+has_ self name = liftIO (void (js_has self (toJSString name)))
+ 
+foreign import javascript unsafe "$1[\"set\"]($2, $3)" js_set ::
+        URLSearchParams -> JSString -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.set Mozilla URLSearchParams.set documentation> 
+set ::
+    (MonadIO m, ToJSString name, ToJSString value) =>
+      URLSearchParams -> name -> value -> m ()
+set self name value
+  = liftIO (js_set self (toJSString name) (toJSString value))
+ 
+foreign import javascript unsafe "$1[\"sort\"]()" js_sort ::
+        URLSearchParams -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.sort Mozilla URLSearchParams.sort documentation> 
+sort :: (MonadIO m) => URLSearchParams -> m ()
+sort self = liftIO (js_sort self)
+ 
+foreign import javascript unsafe "$1[\"toString\"]()" js_toString
+        :: URLSearchParams -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.toString Mozilla URLSearchParams.toString documentation> 
+toString ::
+         (MonadIO m, FromJSString result) => URLSearchParams -> m result
+toString self = liftIO (fromJSString <$> (js_toString self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams.toString Mozilla URLSearchParams.toString documentation> 
+toString_ :: (MonadIO m) => URLSearchParams -> m ()
+toString_ self = liftIO (void (js_toString self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/URLUtils.hs b/src/GHCJS/DOM/JSFFI/Generated/URLUtils.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/URLUtils.hs
+++ /dev/null
@@ -1,365 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.URLUtils
-       (js_toString, toString, toString_, js_setHref, setHref, js_getHref,
-        getHref, js_getOrigin, getOrigin, js_setProtocol, setProtocol,
-        js_getProtocol, getProtocol, getProtocolUnsafe,
-        getProtocolUnchecked, js_setUsername, setUsername, js_getUsername,
-        getUsername, getUsernameUnsafe, getUsernameUnchecked,
-        js_setPassword, setPassword, js_getPassword, getPassword,
-        getPasswordUnsafe, getPasswordUnchecked, js_setHost, setHost,
-        js_getHost, getHost, getHostUnsafe, getHostUnchecked,
-        js_setHostname, setHostname, js_getHostname, getHostname,
-        getHostnameUnsafe, getHostnameUnchecked, js_setPort, setPort,
-        js_getPort, getPort, getPortUnsafe, getPortUnchecked,
-        js_setPathname, setPathname, js_getPathname, getPathname,
-        getPathnameUnsafe, getPathnameUnchecked, js_setSearch, setSearch,
-        js_getSearch, getSearch, getSearchUnsafe, getSearchUnchecked,
-        js_setHash, setHash, js_getHash, getHash, getHashUnsafe,
-        getHashUnchecked, URLUtils(..), gTypeURLUtils)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"toString\"]()" js_toString
-        :: URLUtils -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.toString Mozilla URLUtils.toString documentation> 
-toString ::
-         (MonadIO m, FromJSString result) => URLUtils -> m result
-toString self = liftIO (fromJSString <$> (js_toString (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.toString Mozilla URLUtils.toString documentation> 
-toString_ :: (MonadIO m) => URLUtils -> m ()
-toString_ self = liftIO (void (js_toString (self)))
- 
-foreign import javascript unsafe "$1[\"href\"] = $2;" js_setHref ::
-        URLUtils -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.href Mozilla URLUtils.href documentation> 
-setHref :: (MonadIO m, ToJSString val) => URLUtils -> val -> m ()
-setHref self val = liftIO (js_setHref (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"href\"]" js_getHref ::
-        URLUtils -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.href Mozilla URLUtils.href documentation> 
-getHref :: (MonadIO m, FromJSString result) => URLUtils -> m result
-getHref self = liftIO (fromJSString <$> (js_getHref (self)))
- 
-foreign import javascript unsafe "$1[\"origin\"]" js_getOrigin ::
-        URLUtils -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.origin Mozilla URLUtils.origin documentation> 
-getOrigin ::
-          (MonadIO m, FromJSString result) => URLUtils -> m result
-getOrigin self = liftIO (fromJSString <$> (js_getOrigin (self)))
- 
-foreign import javascript unsafe "$1[\"protocol\"] = $2;"
-        js_setProtocol :: URLUtils -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.protocol Mozilla URLUtils.protocol documentation> 
-setProtocol ::
-            (MonadIO m, ToJSString val) => URLUtils -> Maybe val -> m ()
-setProtocol self val
-  = liftIO (js_setProtocol (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"protocol\"]" js_getProtocol
-        :: URLUtils -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.protocol Mozilla URLUtils.protocol documentation> 
-getProtocol ::
-            (MonadIO m, FromJSString result) => URLUtils -> m (Maybe result)
-getProtocol self
-  = liftIO (fromMaybeJSString <$> (js_getProtocol (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.protocol Mozilla URLUtils.protocol documentation> 
-getProtocolUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    URLUtils -> m result
-getProtocolUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getProtocol (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.protocol Mozilla URLUtils.protocol documentation> 
-getProtocolUnchecked ::
-                     (MonadIO m, FromJSString result) => URLUtils -> m result
-getProtocolUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getProtocol (self)))
- 
-foreign import javascript unsafe "$1[\"username\"] = $2;"
-        js_setUsername :: URLUtils -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.username Mozilla URLUtils.username documentation> 
-setUsername ::
-            (MonadIO m, ToJSString val) => URLUtils -> Maybe val -> m ()
-setUsername self val
-  = liftIO (js_setUsername (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"username\"]" js_getUsername
-        :: URLUtils -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.username Mozilla URLUtils.username documentation> 
-getUsername ::
-            (MonadIO m, FromJSString result) => URLUtils -> m (Maybe result)
-getUsername self
-  = liftIO (fromMaybeJSString <$> (js_getUsername (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.username Mozilla URLUtils.username documentation> 
-getUsernameUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    URLUtils -> m result
-getUsernameUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getUsername (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.username Mozilla URLUtils.username documentation> 
-getUsernameUnchecked ::
-                     (MonadIO m, FromJSString result) => URLUtils -> m result
-getUsernameUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getUsername (self)))
- 
-foreign import javascript unsafe "$1[\"password\"] = $2;"
-        js_setPassword :: URLUtils -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.password Mozilla URLUtils.password documentation> 
-setPassword ::
-            (MonadIO m, ToJSString val) => URLUtils -> Maybe val -> m ()
-setPassword self val
-  = liftIO (js_setPassword (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"password\"]" js_getPassword
-        :: URLUtils -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.password Mozilla URLUtils.password documentation> 
-getPassword ::
-            (MonadIO m, FromJSString result) => URLUtils -> m (Maybe result)
-getPassword self
-  = liftIO (fromMaybeJSString <$> (js_getPassword (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.password Mozilla URLUtils.password documentation> 
-getPasswordUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    URLUtils -> m result
-getPasswordUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getPassword (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.password Mozilla URLUtils.password documentation> 
-getPasswordUnchecked ::
-                     (MonadIO m, FromJSString result) => URLUtils -> m result
-getPasswordUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getPassword (self)))
- 
-foreign import javascript unsafe "$1[\"host\"] = $2;" js_setHost ::
-        URLUtils -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.host Mozilla URLUtils.host documentation> 
-setHost ::
-        (MonadIO m, ToJSString val) => URLUtils -> Maybe val -> m ()
-setHost self val = liftIO (js_setHost (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"host\"]" js_getHost ::
-        URLUtils -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.host Mozilla URLUtils.host documentation> 
-getHost ::
-        (MonadIO m, FromJSString result) => URLUtils -> m (Maybe result)
-getHost self = liftIO (fromMaybeJSString <$> (js_getHost (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.host Mozilla URLUtils.host documentation> 
-getHostUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                URLUtils -> m result
-getHostUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getHost (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.host Mozilla URLUtils.host documentation> 
-getHostUnchecked ::
-                 (MonadIO m, FromJSString result) => URLUtils -> m result
-getHostUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getHost (self)))
- 
-foreign import javascript unsafe "$1[\"hostname\"] = $2;"
-        js_setHostname :: URLUtils -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.hostname Mozilla URLUtils.hostname documentation> 
-setHostname ::
-            (MonadIO m, ToJSString val) => URLUtils -> Maybe val -> m ()
-setHostname self val
-  = liftIO (js_setHostname (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"hostname\"]" js_getHostname
-        :: URLUtils -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.hostname Mozilla URLUtils.hostname documentation> 
-getHostname ::
-            (MonadIO m, FromJSString result) => URLUtils -> m (Maybe result)
-getHostname self
-  = liftIO (fromMaybeJSString <$> (js_getHostname (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.hostname Mozilla URLUtils.hostname documentation> 
-getHostnameUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    URLUtils -> m result
-getHostnameUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getHostname (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.hostname Mozilla URLUtils.hostname documentation> 
-getHostnameUnchecked ::
-                     (MonadIO m, FromJSString result) => URLUtils -> m result
-getHostnameUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getHostname (self)))
- 
-foreign import javascript unsafe "$1[\"port\"] = $2;" js_setPort ::
-        URLUtils -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.port Mozilla URLUtils.port documentation> 
-setPort ::
-        (MonadIO m, ToJSString val) => URLUtils -> Maybe val -> m ()
-setPort self val = liftIO (js_setPort (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"port\"]" js_getPort ::
-        URLUtils -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.port Mozilla URLUtils.port documentation> 
-getPort ::
-        (MonadIO m, FromJSString result) => URLUtils -> m (Maybe result)
-getPort self = liftIO (fromMaybeJSString <$> (js_getPort (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.port Mozilla URLUtils.port documentation> 
-getPortUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                URLUtils -> m result
-getPortUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getPort (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.port Mozilla URLUtils.port documentation> 
-getPortUnchecked ::
-                 (MonadIO m, FromJSString result) => URLUtils -> m result
-getPortUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getPort (self)))
- 
-foreign import javascript unsafe "$1[\"pathname\"] = $2;"
-        js_setPathname :: URLUtils -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.pathname Mozilla URLUtils.pathname documentation> 
-setPathname ::
-            (MonadIO m, ToJSString val) => URLUtils -> Maybe val -> m ()
-setPathname self val
-  = liftIO (js_setPathname (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"pathname\"]" js_getPathname
-        :: URLUtils -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.pathname Mozilla URLUtils.pathname documentation> 
-getPathname ::
-            (MonadIO m, FromJSString result) => URLUtils -> m (Maybe result)
-getPathname self
-  = liftIO (fromMaybeJSString <$> (js_getPathname (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.pathname Mozilla URLUtils.pathname documentation> 
-getPathnameUnsafe ::
-                  (MonadIO m, HasCallStack, FromJSString result) =>
-                    URLUtils -> m result
-getPathnameUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getPathname (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.pathname Mozilla URLUtils.pathname documentation> 
-getPathnameUnchecked ::
-                     (MonadIO m, FromJSString result) => URLUtils -> m result
-getPathnameUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getPathname (self)))
- 
-foreign import javascript unsafe "$1[\"search\"] = $2;"
-        js_setSearch :: URLUtils -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.search Mozilla URLUtils.search documentation> 
-setSearch ::
-          (MonadIO m, ToJSString val) => URLUtils -> Maybe val -> m ()
-setSearch self val
-  = liftIO (js_setSearch (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"search\"]" js_getSearch ::
-        URLUtils -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.search Mozilla URLUtils.search documentation> 
-getSearch ::
-          (MonadIO m, FromJSString result) => URLUtils -> m (Maybe result)
-getSearch self
-  = liftIO (fromMaybeJSString <$> (js_getSearch (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.search Mozilla URLUtils.search documentation> 
-getSearchUnsafe ::
-                (MonadIO m, HasCallStack, FromJSString result) =>
-                  URLUtils -> m result
-getSearchUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getSearch (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.search Mozilla URLUtils.search documentation> 
-getSearchUnchecked ::
-                   (MonadIO m, FromJSString result) => URLUtils -> m result
-getSearchUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getSearch (self)))
- 
-foreign import javascript unsafe "$1[\"hash\"] = $2;" js_setHash ::
-        URLUtils -> Nullable JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.hash Mozilla URLUtils.hash documentation> 
-setHash ::
-        (MonadIO m, ToJSString val) => URLUtils -> Maybe val -> m ()
-setHash self val = liftIO (js_setHash (self) (toMaybeJSString val))
- 
-foreign import javascript unsafe "$1[\"hash\"]" js_getHash ::
-        URLUtils -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.hash Mozilla URLUtils.hash documentation> 
-getHash ::
-        (MonadIO m, FromJSString result) => URLUtils -> m (Maybe result)
-getHash self = liftIO (fromMaybeJSString <$> (js_getHash (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.hash Mozilla URLUtils.hash documentation> 
-getHashUnsafe ::
-              (MonadIO m, HasCallStack, FromJSString result) =>
-                URLUtils -> m result
-getHashUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getHash (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils.hash Mozilla URLUtils.hash documentation> 
-getHashUnchecked ::
-                 (MonadIO m, FromJSString result) => URLUtils -> m result
-getHashUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getHash (self)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/UserMessageHandler.hs b/src/GHCJS/DOM/JSFFI/Generated/UserMessageHandler.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/UserMessageHandler.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/UserMessageHandler.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -27,13 +28,11 @@
  
 foreign import javascript unsafe "$1[\"postMessage\"]($2)"
         js_postMessage ::
-        UserMessageHandler -> Nullable SerializedScriptValue -> IO ()
+        UserMessageHandler -> SerializedScriptValue -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/UserMessageHandler.postMessage Mozilla UserMessageHandler.postMessage documentation> 
 postMessage ::
             (MonadIO m, IsSerializedScriptValue message) =>
-              UserMessageHandler -> Maybe message -> m ()
+              UserMessageHandler -> message -> m ()
 postMessage self message
-  = liftIO
-      (js_postMessage (self)
-         (maybeToNullable (fmap toSerializedScriptValue message)))
+  = liftIO (js_postMessage self (toSerializedScriptValue message))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/VTTCue.hs b/src/GHCJS/DOM/JSFFI/Generated/VTTCue.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/VTTCue.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/VTTCue.hs
@@ -5,9 +5,8 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.VTTCue
        (js_newVTTCue, newVTTCue, js_getCueAsHTML, getCueAsHTML,
-        getCueAsHTML_, getCueAsHTMLUnsafe, getCueAsHTMLUnchecked,
-        js_setVertical, setVertical, js_getVertical, getVertical,
-        js_setSnapToLines, setSnapToLines, js_getSnapToLines,
+        getCueAsHTML_, js_setVertical, setVertical, js_getVertical,
+        getVertical, js_setSnapToLines, setSnapToLines, js_getSnapToLines,
         getSnapToLines, js_setLine, setLine, js_getLine, getLine,
         js_setPosition, setPosition, js_getPosition, getPosition,
         js_setSize, setSize, js_getSize, getSize, js_setAlign, setAlign,
@@ -19,7 +18,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -28,6 +27,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -45,30 +45,15 @@
   = liftIO (js_newVTTCue startTime endTime (toJSString text))
  
 foreign import javascript unsafe "$1[\"getCueAsHTML\"]()"
-        js_getCueAsHTML :: VTTCue -> IO (Nullable DocumentFragment)
+        js_getCueAsHTML :: VTTCue -> IO DocumentFragment
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.getCueAsHTML Mozilla VTTCue.getCueAsHTML documentation> 
-getCueAsHTML :: (MonadIO m) => VTTCue -> m (Maybe DocumentFragment)
-getCueAsHTML self
-  = liftIO (nullableToMaybe <$> (js_getCueAsHTML (self)))
+getCueAsHTML :: (MonadIO m) => VTTCue -> m DocumentFragment
+getCueAsHTML self = liftIO (js_getCueAsHTML self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.getCueAsHTML Mozilla VTTCue.getCueAsHTML documentation> 
 getCueAsHTML_ :: (MonadIO m) => VTTCue -> m ()
-getCueAsHTML_ self = liftIO (void (js_getCueAsHTML (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.getCueAsHTML Mozilla VTTCue.getCueAsHTML documentation> 
-getCueAsHTMLUnsafe ::
-                   (MonadIO m, HasCallStack) => VTTCue -> m DocumentFragment
-getCueAsHTMLUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCueAsHTML (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.getCueAsHTML Mozilla VTTCue.getCueAsHTML documentation> 
-getCueAsHTMLUnchecked ::
-                      (MonadIO m) => VTTCue -> m DocumentFragment
-getCueAsHTMLUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCueAsHTML (self)))
+getCueAsHTML_ self = liftIO (void (js_getCueAsHTML self))
  
 foreign import javascript unsafe "$1[\"vertical\"] = $2;"
         js_setVertical :: VTTCue -> JSString -> IO ()
@@ -76,7 +61,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.vertical Mozilla VTTCue.vertical documentation> 
 setVertical :: (MonadIO m, ToJSString val) => VTTCue -> val -> m ()
 setVertical self val
-  = liftIO (js_setVertical (self) (toJSString val))
+  = liftIO (js_setVertical self (toJSString val))
  
 foreign import javascript unsafe "$1[\"vertical\"]" js_getVertical
         :: VTTCue -> IO JSString
@@ -84,92 +69,91 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.vertical Mozilla VTTCue.vertical documentation> 
 getVertical ::
             (MonadIO m, FromJSString result) => VTTCue -> m result
-getVertical self
-  = liftIO (fromJSString <$> (js_getVertical (self)))
+getVertical self = liftIO (fromJSString <$> (js_getVertical self))
  
 foreign import javascript unsafe "$1[\"snapToLines\"] = $2;"
         js_setSnapToLines :: VTTCue -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.snapToLines Mozilla VTTCue.snapToLines documentation> 
 setSnapToLines :: (MonadIO m) => VTTCue -> Bool -> m ()
-setSnapToLines self val = liftIO (js_setSnapToLines (self) val)
+setSnapToLines self val = liftIO (js_setSnapToLines self val)
  
 foreign import javascript unsafe "($1[\"snapToLines\"] ? 1 : 0)"
         js_getSnapToLines :: VTTCue -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.snapToLines Mozilla VTTCue.snapToLines documentation> 
 getSnapToLines :: (MonadIO m) => VTTCue -> m Bool
-getSnapToLines self = liftIO (js_getSnapToLines (self))
+getSnapToLines self = liftIO (js_getSnapToLines self)
  
 foreign import javascript unsafe "$1[\"line\"] = $2;" js_setLine ::
         VTTCue -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.line Mozilla VTTCue.line documentation> 
 setLine :: (MonadIO m) => VTTCue -> Double -> m ()
-setLine self val = liftIO (js_setLine (self) val)
+setLine self val = liftIO (js_setLine self val)
  
 foreign import javascript unsafe "$1[\"line\"]" js_getLine ::
         VTTCue -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.line Mozilla VTTCue.line documentation> 
 getLine :: (MonadIO m) => VTTCue -> m Double
-getLine self = liftIO (js_getLine (self))
+getLine self = liftIO (js_getLine self)
  
 foreign import javascript unsafe "$1[\"position\"] = $2;"
         js_setPosition :: VTTCue -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.position Mozilla VTTCue.position documentation> 
 setPosition :: (MonadIO m) => VTTCue -> Double -> m ()
-setPosition self val = liftIO (js_setPosition (self) val)
+setPosition self val = liftIO (js_setPosition self val)
  
 foreign import javascript unsafe "$1[\"position\"]" js_getPosition
         :: VTTCue -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.position Mozilla VTTCue.position documentation> 
 getPosition :: (MonadIO m) => VTTCue -> m Double
-getPosition self = liftIO (js_getPosition (self))
+getPosition self = liftIO (js_getPosition self)
  
 foreign import javascript unsafe "$1[\"size\"] = $2;" js_setSize ::
         VTTCue -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.size Mozilla VTTCue.size documentation> 
 setSize :: (MonadIO m) => VTTCue -> Double -> m ()
-setSize self val = liftIO (js_setSize (self) val)
+setSize self val = liftIO (js_setSize self val)
  
 foreign import javascript unsafe "$1[\"size\"]" js_getSize ::
         VTTCue -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.size Mozilla VTTCue.size documentation> 
 getSize :: (MonadIO m) => VTTCue -> m Double
-getSize self = liftIO (js_getSize (self))
+getSize self = liftIO (js_getSize self)
  
 foreign import javascript unsafe "$1[\"align\"] = $2;" js_setAlign
         :: VTTCue -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.align Mozilla VTTCue.align documentation> 
 setAlign :: (MonadIO m, ToJSString val) => VTTCue -> val -> m ()
-setAlign self val = liftIO (js_setAlign (self) (toJSString val))
+setAlign self val = liftIO (js_setAlign self (toJSString val))
  
 foreign import javascript unsafe "$1[\"align\"]" js_getAlign ::
         VTTCue -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.align Mozilla VTTCue.align documentation> 
 getAlign :: (MonadIO m, FromJSString result) => VTTCue -> m result
-getAlign self = liftIO (fromJSString <$> (js_getAlign (self)))
+getAlign self = liftIO (fromJSString <$> (js_getAlign self))
  
 foreign import javascript unsafe "$1[\"text\"] = $2;" js_setText ::
         VTTCue -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.text Mozilla VTTCue.text documentation> 
 setText :: (MonadIO m, ToJSString val) => VTTCue -> val -> m ()
-setText self val = liftIO (js_setText (self) (toJSString val))
+setText self val = liftIO (js_setText self (toJSString val))
  
 foreign import javascript unsafe "$1[\"text\"]" js_getText ::
         VTTCue -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.text Mozilla VTTCue.text documentation> 
 getText :: (MonadIO m, FromJSString result) => VTTCue -> m result
-getText self = liftIO (fromJSString <$> (js_getText (self)))
+getText self = liftIO (fromJSString <$> (js_getText self))
  
 foreign import javascript unsafe "$1[\"regionId\"] = $2;"
         js_setRegionId :: VTTCue -> JSString -> IO ()
@@ -177,7 +161,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.regionId Mozilla VTTCue.regionId documentation> 
 setRegionId :: (MonadIO m, ToJSString val) => VTTCue -> val -> m ()
 setRegionId self val
-  = liftIO (js_setRegionId (self) (toJSString val))
+  = liftIO (js_setRegionId self (toJSString val))
  
 foreign import javascript unsafe "$1[\"regionId\"]" js_getRegionId
         :: VTTCue -> IO JSString
@@ -185,5 +169,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue.regionId Mozilla VTTCue.regionId documentation> 
 getRegionId ::
             (MonadIO m, FromJSString result) => VTTCue -> m result
-getRegionId self
-  = liftIO (fromJSString <$> (js_getRegionId (self)))
+getRegionId self = liftIO (fromJSString <$> (js_getRegionId self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/VTTRegion.hs b/src/GHCJS/DOM/JSFFI/Generated/VTTRegion.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/VTTRegion.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/VTTRegion.hs
@@ -4,23 +4,22 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.VTTRegion
-       (js_newVTTRegion, newVTTRegion, js_getTrack, getTrack,
-        getTrackUnsafe, getTrackUnchecked, js_setId, setId, js_getId,
-        getId, js_setWidth, setWidth, js_getWidth, getWidth, js_setHeight,
-        setHeight, js_getHeight, getHeight, js_setRegionAnchorX,
-        setRegionAnchorX, js_getRegionAnchorX, getRegionAnchorX,
-        js_setRegionAnchorY, setRegionAnchorY, js_getRegionAnchorY,
-        getRegionAnchorY, js_setViewportAnchorX, setViewportAnchorX,
-        js_getViewportAnchorX, getViewportAnchorX, js_setViewportAnchorY,
-        setViewportAnchorY, js_getViewportAnchorY, getViewportAnchorY,
-        js_setScroll, setScroll, js_getScroll, getScroll, VTTRegion(..),
-        gTypeVTTRegion)
+       (js_newVTTRegion, newVTTRegion, js_getTrack, getTrack, js_setId,
+        setId, js_getId, getId, js_setWidth, setWidth, js_getWidth,
+        getWidth, js_setHeight, setHeight, js_getHeight, getHeight,
+        js_setRegionAnchorX, setRegionAnchorX, js_getRegionAnchorX,
+        getRegionAnchorX, js_setRegionAnchorY, setRegionAnchorY,
+        js_getRegionAnchorY, getRegionAnchorY, js_setViewportAnchorX,
+        setViewportAnchorX, js_getViewportAnchorX, getViewportAnchorX,
+        js_setViewportAnchorY, setViewportAnchorY, js_getViewportAnchorY,
+        getViewportAnchorY, js_setScroll, setScroll, js_getScroll,
+        getScroll, VTTRegion(..), gTypeVTTRegion)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -29,6 +28,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -42,94 +42,81 @@
 newVTTRegion = liftIO (js_newVTTRegion)
  
 foreign import javascript unsafe "$1[\"track\"]" js_getTrack ::
-        VTTRegion -> IO (Nullable TextTrack)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.track Mozilla VTTRegion.track documentation> 
-getTrack :: (MonadIO m) => VTTRegion -> m (Maybe TextTrack)
-getTrack self = liftIO (nullableToMaybe <$> (js_getTrack (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.track Mozilla VTTRegion.track documentation> 
-getTrackUnsafe ::
-               (MonadIO m, HasCallStack) => VTTRegion -> m TextTrack
-getTrackUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTrack (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        VTTRegion -> IO TextTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.track Mozilla VTTRegion.track documentation> 
-getTrackUnchecked :: (MonadIO m) => VTTRegion -> m TextTrack
-getTrackUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTrack (self)))
+getTrack :: (MonadIO m) => VTTRegion -> m TextTrack
+getTrack self = liftIO (js_getTrack self)
  
 foreign import javascript unsafe "$1[\"id\"] = $2;" js_setId ::
         VTTRegion -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.id Mozilla VTTRegion.id documentation> 
 setId :: (MonadIO m, ToJSString val) => VTTRegion -> val -> m ()
-setId self val = liftIO (js_setId (self) (toJSString val))
+setId self val = liftIO (js_setId self (toJSString val))
  
 foreign import javascript unsafe "$1[\"id\"]" js_getId ::
         VTTRegion -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.id Mozilla VTTRegion.id documentation> 
 getId :: (MonadIO m, FromJSString result) => VTTRegion -> m result
-getId self = liftIO (fromJSString <$> (js_getId (self)))
+getId self = liftIO (fromJSString <$> (js_getId self))
  
 foreign import javascript unsafe "$1[\"width\"] = $2;" js_setWidth
         :: VTTRegion -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.width Mozilla VTTRegion.width documentation> 
 setWidth :: (MonadIO m) => VTTRegion -> Double -> m ()
-setWidth self val = liftIO (js_setWidth (self) val)
+setWidth self val = liftIO (js_setWidth self val)
  
 foreign import javascript unsafe "$1[\"width\"]" js_getWidth ::
         VTTRegion -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.width Mozilla VTTRegion.width documentation> 
 getWidth :: (MonadIO m) => VTTRegion -> m Double
-getWidth self = liftIO (js_getWidth (self))
+getWidth self = liftIO (js_getWidth self)
  
 foreign import javascript unsafe "$1[\"height\"] = $2;"
         js_setHeight :: VTTRegion -> Int -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.height Mozilla VTTRegion.height documentation> 
 setHeight :: (MonadIO m) => VTTRegion -> Int -> m ()
-setHeight self val = liftIO (js_setHeight (self) val)
+setHeight self val = liftIO (js_setHeight self val)
  
 foreign import javascript unsafe "$1[\"height\"]" js_getHeight ::
         VTTRegion -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.height Mozilla VTTRegion.height documentation> 
 getHeight :: (MonadIO m) => VTTRegion -> m Int
-getHeight self = liftIO (js_getHeight (self))
+getHeight self = liftIO (js_getHeight self)
  
 foreign import javascript unsafe "$1[\"regionAnchorX\"] = $2;"
         js_setRegionAnchorX :: VTTRegion -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.regionAnchorX Mozilla VTTRegion.regionAnchorX documentation> 
 setRegionAnchorX :: (MonadIO m) => VTTRegion -> Double -> m ()
-setRegionAnchorX self val = liftIO (js_setRegionAnchorX (self) val)
+setRegionAnchorX self val = liftIO (js_setRegionAnchorX self val)
  
 foreign import javascript unsafe "$1[\"regionAnchorX\"]"
         js_getRegionAnchorX :: VTTRegion -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.regionAnchorX Mozilla VTTRegion.regionAnchorX documentation> 
 getRegionAnchorX :: (MonadIO m) => VTTRegion -> m Double
-getRegionAnchorX self = liftIO (js_getRegionAnchorX (self))
+getRegionAnchorX self = liftIO (js_getRegionAnchorX self)
  
 foreign import javascript unsafe "$1[\"regionAnchorY\"] = $2;"
         js_setRegionAnchorY :: VTTRegion -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.regionAnchorY Mozilla VTTRegion.regionAnchorY documentation> 
 setRegionAnchorY :: (MonadIO m) => VTTRegion -> Double -> m ()
-setRegionAnchorY self val = liftIO (js_setRegionAnchorY (self) val)
+setRegionAnchorY self val = liftIO (js_setRegionAnchorY self val)
  
 foreign import javascript unsafe "$1[\"regionAnchorY\"]"
         js_getRegionAnchorY :: VTTRegion -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.regionAnchorY Mozilla VTTRegion.regionAnchorY documentation> 
 getRegionAnchorY :: (MonadIO m) => VTTRegion -> m Double
-getRegionAnchorY self = liftIO (js_getRegionAnchorY (self))
+getRegionAnchorY self = liftIO (js_getRegionAnchorY self)
  
 foreign import javascript unsafe "$1[\"viewportAnchorX\"] = $2;"
         js_setViewportAnchorX :: VTTRegion -> Double -> IO ()
@@ -137,14 +124,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.viewportAnchorX Mozilla VTTRegion.viewportAnchorX documentation> 
 setViewportAnchorX :: (MonadIO m) => VTTRegion -> Double -> m ()
 setViewportAnchorX self val
-  = liftIO (js_setViewportAnchorX (self) val)
+  = liftIO (js_setViewportAnchorX self val)
  
 foreign import javascript unsafe "$1[\"viewportAnchorX\"]"
         js_getViewportAnchorX :: VTTRegion -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.viewportAnchorX Mozilla VTTRegion.viewportAnchorX documentation> 
 getViewportAnchorX :: (MonadIO m) => VTTRegion -> m Double
-getViewportAnchorX self = liftIO (js_getViewportAnchorX (self))
+getViewportAnchorX self = liftIO (js_getViewportAnchorX self)
  
 foreign import javascript unsafe "$1[\"viewportAnchorY\"] = $2;"
         js_setViewportAnchorY :: VTTRegion -> Double -> IO ()
@@ -152,14 +139,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.viewportAnchorY Mozilla VTTRegion.viewportAnchorY documentation> 
 setViewportAnchorY :: (MonadIO m) => VTTRegion -> Double -> m ()
 setViewportAnchorY self val
-  = liftIO (js_setViewportAnchorY (self) val)
+  = liftIO (js_setViewportAnchorY self val)
  
 foreign import javascript unsafe "$1[\"viewportAnchorY\"]"
         js_getViewportAnchorY :: VTTRegion -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.viewportAnchorY Mozilla VTTRegion.viewportAnchorY documentation> 
 getViewportAnchorY :: (MonadIO m) => VTTRegion -> m Double
-getViewportAnchorY self = liftIO (js_getViewportAnchorY (self))
+getViewportAnchorY self = liftIO (js_getViewportAnchorY self)
  
 foreign import javascript unsafe "$1[\"scroll\"] = $2;"
         js_setScroll :: VTTRegion -> JSString -> IO ()
@@ -167,7 +154,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.scroll Mozilla VTTRegion.scroll documentation> 
 setScroll ::
           (MonadIO m, ToJSString val) => VTTRegion -> val -> m ()
-setScroll self val = liftIO (js_setScroll (self) (toJSString val))
+setScroll self val = liftIO (js_setScroll self (toJSString val))
  
 foreign import javascript unsafe "$1[\"scroll\"]" js_getScroll ::
         VTTRegion -> IO JSString
@@ -175,4 +162,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.scroll Mozilla VTTRegion.scroll documentation> 
 getScroll ::
           (MonadIO m, FromJSString result) => VTTRegion -> m result
-getScroll self = liftIO (fromJSString <$> (js_getScroll (self)))
+getScroll self = liftIO (fromJSString <$> (js_getScroll self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/VTTRegionList.hs b/src/GHCJS/DOM/JSFFI/Generated/VTTRegionList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/VTTRegionList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/VTTRegionList.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,36 +22,36 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
+foreign import javascript unsafe "$1[$2]" js_item ::
         VTTRegionList -> Word -> IO (Nullable VTTRegion)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList.item Mozilla VTTRegionList.item documentation> 
 item :: (MonadIO m) => VTTRegionList -> Word -> m (Maybe VTTRegion)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item self index = liftIO (nullableToMaybe <$> (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList.item Mozilla VTTRegionList.item documentation> 
 item_ :: (MonadIO m) => VTTRegionList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList.item Mozilla VTTRegionList.item documentation> 
 itemUnsafe ::
            (MonadIO m, HasCallStack) => VTTRegionList -> Word -> m VTTRegion
 itemUnsafe self index
   = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
+      ((nullableToMaybe <$> (js_item self index)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList.item Mozilla VTTRegionList.item documentation> 
 itemUnchecked ::
               (MonadIO m) => VTTRegionList -> Word -> m VTTRegion
 itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+  = liftIO (fromJust . nullableToMaybe <$> (js_item self index))
  
 foreign import javascript unsafe "$1[\"getRegionById\"]($2)"
         js_getRegionById ::
@@ -63,13 +63,13 @@
                 VTTRegionList -> id -> m (Maybe VTTRegion)
 getRegionById self id
   = liftIO
-      (nullableToMaybe <$> (js_getRegionById (self) (toJSString id)))
+      (nullableToMaybe <$> (js_getRegionById self (toJSString id)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList.getRegionById Mozilla VTTRegionList.getRegionById documentation> 
 getRegionById_ ::
                (MonadIO m, ToJSString id) => VTTRegionList -> id -> m ()
 getRegionById_ self id
-  = liftIO (void (js_getRegionById (self) (toJSString id)))
+  = liftIO (void (js_getRegionById self (toJSString id)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList.getRegionById Mozilla VTTRegionList.getRegionById documentation> 
 getRegionByIdUnsafe ::
@@ -77,8 +77,8 @@
                       VTTRegionList -> id -> m VTTRegion
 getRegionByIdUnsafe self id
   = liftIO
-      ((nullableToMaybe <$> (js_getRegionById (self) (toJSString id)))
-         >>= maybe (Prelude.error "Nothing to return") return)
+      ((nullableToMaybe <$> (js_getRegionById self (toJSString id))) >>=
+         maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList.getRegionById Mozilla VTTRegionList.getRegionById documentation> 
 getRegionByIdUnchecked ::
@@ -86,11 +86,11 @@
 getRegionByIdUnchecked self id
   = liftIO
       (fromJust . nullableToMaybe <$>
-         (js_getRegionById (self) (toJSString id)))
+         (js_getRegionById self (toJSString id)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         VTTRegionList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList.length Mozilla VTTRegionList.length documentation> 
 getLength :: (MonadIO m) => VTTRegionList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/ValidityState.hs b/src/GHCJS/DOM/JSFFI/Generated/ValidityState.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/ValidityState.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/ValidityState.hs
@@ -6,17 +6,17 @@
 module GHCJS.DOM.JSFFI.Generated.ValidityState
        (js_getValueMissing, getValueMissing, js_getTypeMismatch,
         getTypeMismatch, js_getPatternMismatch, getPatternMismatch,
-        js_getTooLong, getTooLong, js_getRangeUnderflow, getRangeUnderflow,
-        js_getRangeOverflow, getRangeOverflow, js_getStepMismatch,
-        getStepMismatch, js_getBadInput, getBadInput, js_getCustomError,
-        getCustomError, js_getValid, getValid, ValidityState(..),
-        gTypeValidityState)
+        js_getTooShort, getTooShort, js_getTooLong, getTooLong,
+        js_getRangeUnderflow, getRangeUnderflow, js_getRangeOverflow,
+        getRangeOverflow, js_getStepMismatch, getStepMismatch,
+        js_getBadInput, getBadInput, js_getCustomError, getCustomError,
+        js_getValid, getValid, ValidityState(..), gTypeValidityState)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,6 +25,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -35,14 +36,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.valueMissing Mozilla ValidityState.valueMissing documentation> 
 getValueMissing :: (MonadIO m) => ValidityState -> m Bool
-getValueMissing self = liftIO (js_getValueMissing (self))
+getValueMissing self = liftIO (js_getValueMissing self)
  
 foreign import javascript unsafe "($1[\"typeMismatch\"] ? 1 : 0)"
         js_getTypeMismatch :: ValidityState -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.typeMismatch Mozilla ValidityState.typeMismatch documentation> 
 getTypeMismatch :: (MonadIO m) => ValidityState -> m Bool
-getTypeMismatch self = liftIO (js_getTypeMismatch (self))
+getTypeMismatch self = liftIO (js_getTypeMismatch self)
  
 foreign import javascript unsafe
         "($1[\"patternMismatch\"] ? 1 : 0)" js_getPatternMismatch ::
@@ -50,53 +51,60 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.patternMismatch Mozilla ValidityState.patternMismatch documentation> 
 getPatternMismatch :: (MonadIO m) => ValidityState -> m Bool
-getPatternMismatch self = liftIO (js_getPatternMismatch (self))
+getPatternMismatch self = liftIO (js_getPatternMismatch self)
  
+foreign import javascript unsafe "($1[\"tooShort\"] ? 1 : 0)"
+        js_getTooShort :: ValidityState -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.tooShort Mozilla ValidityState.tooShort documentation> 
+getTooShort :: (MonadIO m) => ValidityState -> m Bool
+getTooShort self = liftIO (js_getTooShort self)
+ 
 foreign import javascript unsafe "($1[\"tooLong\"] ? 1 : 0)"
         js_getTooLong :: ValidityState -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.tooLong Mozilla ValidityState.tooLong documentation> 
 getTooLong :: (MonadIO m) => ValidityState -> m Bool
-getTooLong self = liftIO (js_getTooLong (self))
+getTooLong self = liftIO (js_getTooLong self)
  
 foreign import javascript unsafe "($1[\"rangeUnderflow\"] ? 1 : 0)"
         js_getRangeUnderflow :: ValidityState -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.rangeUnderflow Mozilla ValidityState.rangeUnderflow documentation> 
 getRangeUnderflow :: (MonadIO m) => ValidityState -> m Bool
-getRangeUnderflow self = liftIO (js_getRangeUnderflow (self))
+getRangeUnderflow self = liftIO (js_getRangeUnderflow self)
  
 foreign import javascript unsafe "($1[\"rangeOverflow\"] ? 1 : 0)"
         js_getRangeOverflow :: ValidityState -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.rangeOverflow Mozilla ValidityState.rangeOverflow documentation> 
 getRangeOverflow :: (MonadIO m) => ValidityState -> m Bool
-getRangeOverflow self = liftIO (js_getRangeOverflow (self))
+getRangeOverflow self = liftIO (js_getRangeOverflow self)
  
 foreign import javascript unsafe "($1[\"stepMismatch\"] ? 1 : 0)"
         js_getStepMismatch :: ValidityState -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.stepMismatch Mozilla ValidityState.stepMismatch documentation> 
 getStepMismatch :: (MonadIO m) => ValidityState -> m Bool
-getStepMismatch self = liftIO (js_getStepMismatch (self))
+getStepMismatch self = liftIO (js_getStepMismatch self)
  
 foreign import javascript unsafe "($1[\"badInput\"] ? 1 : 0)"
         js_getBadInput :: ValidityState -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.badInput Mozilla ValidityState.badInput documentation> 
 getBadInput :: (MonadIO m) => ValidityState -> m Bool
-getBadInput self = liftIO (js_getBadInput (self))
+getBadInput self = liftIO (js_getBadInput self)
  
 foreign import javascript unsafe "($1[\"customError\"] ? 1 : 0)"
         js_getCustomError :: ValidityState -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.customError Mozilla ValidityState.customError documentation> 
 getCustomError :: (MonadIO m) => ValidityState -> m Bool
-getCustomError self = liftIO (js_getCustomError (self))
+getCustomError self = liftIO (js_getCustomError self)
  
 foreign import javascript unsafe "($1[\"valid\"] ? 1 : 0)"
         js_getValid :: ValidityState -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.valid Mozilla ValidityState.valid documentation> 
 getValid :: (MonadIO m) => ValidityState -> m Bool
-getValid self = liftIO (js_getValid (self))
+getValid self = liftIO (js_getValid self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/VideoPlaybackQuality.hs b/src/GHCJS/DOM/JSFFI/Generated/VideoPlaybackQuality.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/VideoPlaybackQuality.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/VideoPlaybackQuality.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,7 +34,7 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoPlaybackQuality.creationTime Mozilla VideoPlaybackQuality.creationTime documentation> 
 getCreationTime :: (MonadIO m) => VideoPlaybackQuality -> m Double
-getCreationTime self = liftIO (js_getCreationTime (self))
+getCreationTime self = liftIO (js_getCreationTime self)
  
 foreign import javascript unsafe "$1[\"totalVideoFrames\"]"
         js_getTotalVideoFrames :: VideoPlaybackQuality -> IO Word
@@ -41,7 +42,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoPlaybackQuality.totalVideoFrames Mozilla VideoPlaybackQuality.totalVideoFrames documentation> 
 getTotalVideoFrames ::
                     (MonadIO m) => VideoPlaybackQuality -> m Word
-getTotalVideoFrames self = liftIO (js_getTotalVideoFrames (self))
+getTotalVideoFrames self = liftIO (js_getTotalVideoFrames self)
  
 foreign import javascript unsafe "$1[\"droppedVideoFrames\"]"
         js_getDroppedVideoFrames :: VideoPlaybackQuality -> IO Word
@@ -49,8 +50,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoPlaybackQuality.droppedVideoFrames Mozilla VideoPlaybackQuality.droppedVideoFrames documentation> 
 getDroppedVideoFrames ::
                       (MonadIO m) => VideoPlaybackQuality -> m Word
-getDroppedVideoFrames self
-  = liftIO (js_getDroppedVideoFrames (self))
+getDroppedVideoFrames self = liftIO (js_getDroppedVideoFrames self)
  
 foreign import javascript unsafe "$1[\"corruptedVideoFrames\"]"
         js_getCorruptedVideoFrames :: VideoPlaybackQuality -> IO Word
@@ -59,7 +59,7 @@
 getCorruptedVideoFrames ::
                         (MonadIO m) => VideoPlaybackQuality -> m Word
 getCorruptedVideoFrames self
-  = liftIO (js_getCorruptedVideoFrames (self))
+  = liftIO (js_getCorruptedVideoFrames self)
  
 foreign import javascript unsafe "$1[\"totalFrameDelay\"]"
         js_getTotalFrameDelay :: VideoPlaybackQuality -> IO Double
@@ -67,4 +67,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoPlaybackQuality.totalFrameDelay Mozilla VideoPlaybackQuality.totalFrameDelay documentation> 
 getTotalFrameDelay ::
                    (MonadIO m) => VideoPlaybackQuality -> m Double
-getTotalFrameDelay self = liftIO (js_getTotalFrameDelay (self))
+getTotalFrameDelay self = liftIO (js_getTotalFrameDelay self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/VideoStreamTrack.hs b/src/GHCJS/DOM/JSFFI/Generated/VideoStreamTrack.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/VideoStreamTrack.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.VideoStreamTrack
-       (js_newVideoStreamTrack, newVideoStreamTrack, VideoStreamTrack(..),
-        gTypeVideoStreamTrack)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe
-        "new window[\"VideoStreamTrack\"]($1)" js_newVideoStreamTrack ::
-        Nullable Dictionary -> IO VideoStreamTrack
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoStreamTrack Mozilla VideoStreamTrack documentation> 
-newVideoStreamTrack ::
-                    (MonadIO m, IsDictionary videoConstraints) =>
-                      Maybe videoConstraints -> m VideoStreamTrack
-newVideoStreamTrack videoConstraints
-  = liftIO
-      (js_newVideoStreamTrack
-         (maybeToNullable (fmap toDictionary videoConstraints)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/VideoTrack.hs b/src/GHCJS/DOM/JSFFI/Generated/VideoTrack.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/VideoTrack.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/VideoTrack.hs
@@ -7,15 +7,14 @@
        (js_getId, getId, js_setKind, setKind, js_getKind, getKind,
         js_getLabel, getLabel, js_setLanguage, setLanguage, js_getLanguage,
         getLanguage, js_setSelected, setSelected, js_getSelected,
-        getSelected, js_getSourceBuffer, getSourceBuffer,
-        getSourceBufferUnsafe, getSourceBufferUnchecked, VideoTrack(..),
+        getSelected, js_getSourceBuffer, getSourceBuffer, VideoTrack(..),
         gTypeVideoTrack)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,14 +34,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack.id Mozilla VideoTrack.id documentation> 
 getId :: (MonadIO m, FromJSString result) => VideoTrack -> m result
-getId self = liftIO (fromJSString <$> (js_getId (self)))
+getId self = liftIO (fromJSString <$> (js_getId self))
  
 foreign import javascript unsafe "$1[\"kind\"] = $2;" js_setKind ::
         VideoTrack -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack.kind Mozilla VideoTrack.kind documentation> 
 setKind :: (MonadIO m, ToJSString val) => VideoTrack -> val -> m ()
-setKind self val = liftIO (js_setKind (self) (toJSString val))
+setKind self val = liftIO (js_setKind self (toJSString val))
  
 foreign import javascript unsafe "$1[\"kind\"]" js_getKind ::
         VideoTrack -> IO JSString
@@ -49,7 +49,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack.kind Mozilla VideoTrack.kind documentation> 
 getKind ::
         (MonadIO m, FromJSString result) => VideoTrack -> m result
-getKind self = liftIO (fromJSString <$> (js_getKind (self)))
+getKind self = liftIO (fromJSString <$> (js_getKind self))
  
 foreign import javascript unsafe "$1[\"label\"]" js_getLabel ::
         VideoTrack -> IO JSString
@@ -57,7 +57,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack.label Mozilla VideoTrack.label documentation> 
 getLabel ::
          (MonadIO m, FromJSString result) => VideoTrack -> m result
-getLabel self = liftIO (fromJSString <$> (js_getLabel (self)))
+getLabel self = liftIO (fromJSString <$> (js_getLabel self))
  
 foreign import javascript unsafe "$1[\"language\"] = $2;"
         js_setLanguage :: VideoTrack -> JSString -> IO ()
@@ -66,7 +66,7 @@
 setLanguage ::
             (MonadIO m, ToJSString val) => VideoTrack -> val -> m ()
 setLanguage self val
-  = liftIO (js_setLanguage (self) (toJSString val))
+  = liftIO (js_setLanguage self (toJSString val))
  
 foreign import javascript unsafe "$1[\"language\"]" js_getLanguage
         :: VideoTrack -> IO JSString
@@ -74,43 +74,25 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack.language Mozilla VideoTrack.language documentation> 
 getLanguage ::
             (MonadIO m, FromJSString result) => VideoTrack -> m result
-getLanguage self
-  = liftIO (fromJSString <$> (js_getLanguage (self)))
+getLanguage self = liftIO (fromJSString <$> (js_getLanguage self))
  
 foreign import javascript unsafe "$1[\"selected\"] = $2;"
         js_setSelected :: VideoTrack -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack.selected Mozilla VideoTrack.selected documentation> 
 setSelected :: (MonadIO m) => VideoTrack -> Bool -> m ()
-setSelected self val = liftIO (js_setSelected (self) val)
+setSelected self val = liftIO (js_setSelected self val)
  
 foreign import javascript unsafe "($1[\"selected\"] ? 1 : 0)"
         js_getSelected :: VideoTrack -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack.selected Mozilla VideoTrack.selected documentation> 
 getSelected :: (MonadIO m) => VideoTrack -> m Bool
-getSelected self = liftIO (js_getSelected (self))
+getSelected self = liftIO (js_getSelected self)
  
 foreign import javascript unsafe "$1[\"sourceBuffer\"]"
-        js_getSourceBuffer :: VideoTrack -> IO (Nullable SourceBuffer)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack.sourceBuffer Mozilla VideoTrack.sourceBuffer documentation> 
-getSourceBuffer ::
-                (MonadIO m) => VideoTrack -> m (Maybe SourceBuffer)
-getSourceBuffer self
-  = liftIO (nullableToMaybe <$> (js_getSourceBuffer (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack.sourceBuffer Mozilla VideoTrack.sourceBuffer documentation> 
-getSourceBufferUnsafe ::
-                      (MonadIO m, HasCallStack) => VideoTrack -> m SourceBuffer
-getSourceBufferUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSourceBuffer (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getSourceBuffer :: VideoTrack -> IO SourceBuffer
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack.sourceBuffer Mozilla VideoTrack.sourceBuffer documentation> 
-getSourceBufferUnchecked ::
-                         (MonadIO m) => VideoTrack -> m SourceBuffer
-getSourceBufferUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSourceBuffer (self)))
+getSourceBuffer :: (MonadIO m) => VideoTrack -> m SourceBuffer
+getSourceBuffer self = liftIO (js_getSourceBuffer self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/VideoTrackList.hs b/src/GHCJS/DOM/JSFFI/Generated/VideoTrackList.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/VideoTrackList.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/VideoTrackList.hs
@@ -4,17 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.VideoTrackList
-       (js_item, item, item_, itemUnsafe, itemUnchecked, js_getTrackById,
-        getTrackById, getTrackById_, getTrackByIdUnsafe,
-        getTrackByIdUnchecked, js_getLength, getLength,
-        js_getSelectedIndex, getSelectedIndex, change, addTrack,
-        removeTrack, VideoTrackList(..), gTypeVideoTrackList)
+       (js_item, item, item_, js_getTrackById, getTrackById,
+        getTrackById_, js_getLength, getLength, js_getSelectedIndex,
+        getSelectedIndex, change, addTrack, removeTrack,
+        VideoTrackList(..), gTypeVideoTrackList)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,86 +22,51 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"item\"]($2)" js_item ::
-        VideoTrackList -> Word -> IO (Nullable VideoTrack)
+foreign import javascript unsafe "$1[$2]" js_item ::
+        VideoTrackList -> Word -> IO VideoTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList.item Mozilla VideoTrackList.item documentation> 
-item ::
-     (MonadIO m) => VideoTrackList -> Word -> m (Maybe VideoTrack)
-item self index
-  = liftIO (nullableToMaybe <$> (js_item (self) index))
+item :: (MonadIO m) => VideoTrackList -> Word -> m VideoTrack
+item self index = liftIO (js_item self index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList.item Mozilla VideoTrackList.item documentation> 
 item_ :: (MonadIO m) => VideoTrackList -> Word -> m ()
-item_ self index = liftIO (void (js_item (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList.item Mozilla VideoTrackList.item documentation> 
-itemUnsafe ::
-           (MonadIO m, HasCallStack) => VideoTrackList -> Word -> m VideoTrack
-itemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_item (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList.item Mozilla VideoTrackList.item documentation> 
-itemUnchecked ::
-              (MonadIO m) => VideoTrackList -> Word -> m VideoTrack
-itemUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js_item (self) index))
+item_ self index = liftIO (void (js_item self index))
  
 foreign import javascript unsafe "$1[\"getTrackById\"]($2)"
-        js_getTrackById ::
-        VideoTrackList -> JSString -> IO (Nullable VideoTrack)
+        js_getTrackById :: VideoTrackList -> JSString -> IO VideoTrack
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList.getTrackById Mozilla VideoTrackList.getTrackById documentation> 
 getTrackById ::
-             (MonadIO m, ToJSString id) =>
-               VideoTrackList -> id -> m (Maybe VideoTrack)
+             (MonadIO m, ToJSString id) => VideoTrackList -> id -> m VideoTrack
 getTrackById self id
-  = liftIO
-      (nullableToMaybe <$> (js_getTrackById (self) (toJSString id)))
+  = liftIO (js_getTrackById self (toJSString id))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList.getTrackById Mozilla VideoTrackList.getTrackById documentation> 
 getTrackById_ ::
               (MonadIO m, ToJSString id) => VideoTrackList -> id -> m ()
 getTrackById_ self id
-  = liftIO (void (js_getTrackById (self) (toJSString id)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList.getTrackById Mozilla VideoTrackList.getTrackById documentation> 
-getTrackByIdUnsafe ::
-                   (MonadIO m, ToJSString id, HasCallStack) =>
-                     VideoTrackList -> id -> m VideoTrack
-getTrackByIdUnsafe self id
-  = liftIO
-      ((nullableToMaybe <$> (js_getTrackById (self) (toJSString id))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList.getTrackById Mozilla VideoTrackList.getTrackById documentation> 
-getTrackByIdUnchecked ::
-                      (MonadIO m, ToJSString id) => VideoTrackList -> id -> m VideoTrack
-getTrackByIdUnchecked self id
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTrackById (self) (toJSString id)))
+  = liftIO (void (js_getTrackById self (toJSString id)))
  
 foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
         VideoTrackList -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList.length Mozilla VideoTrackList.length documentation> 
 getLength :: (MonadIO m) => VideoTrackList -> m Word
-getLength self = liftIO (js_getLength (self))
+getLength self = liftIO (js_getLength self)
  
 foreign import javascript unsafe "$1[\"selectedIndex\"]"
         js_getSelectedIndex :: VideoTrackList -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList.selectedIndex Mozilla VideoTrackList.selectedIndex documentation> 
 getSelectedIndex :: (MonadIO m) => VideoTrackList -> m Int
-getSelectedIndex self = liftIO (js_getSelectedIndex (self))
+getSelectedIndex self = liftIO (js_getSelectedIndex self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList.onchange Mozilla VideoTrackList.onchange documentation> 
 change :: EventName VideoTrackList Event
diff --git a/src/GHCJS/DOM/JSFFI/Generated/VoidCallback.hs b/src/GHCJS/DOM/JSFFI/Generated/VoidCallback.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/VoidCallback.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/VoidCallback.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WaveShaperNode.hs b/src/GHCJS/DOM/JSFFI/Generated/WaveShaperNode.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WaveShaperNode.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WaveShaperNode.hs
@@ -4,16 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WaveShaperNode
-       (js_setCurve, setCurve, js_getCurve, getCurve, getCurveUnsafe,
-        getCurveUnchecked, js_setOversample, setOversample,
-        js_getOversample, getOversample, WaveShaperNode(..),
+       (js_setCurve, setCurve, js_getCurve, getCurve, js_setOversample,
+        setOversample, js_getOversample, getOversample, WaveShaperNode(..),
         gTypeWaveShaperNode)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,42 +21,26 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"curve\"] = $2;" js_setCurve
-        :: WaveShaperNode -> Nullable Float32Array -> IO ()
+        :: WaveShaperNode -> Float32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WaveShaperNode.curve Mozilla WaveShaperNode.curve documentation> 
 setCurve ::
-         (MonadIO m, IsFloat32Array val) =>
-           WaveShaperNode -> Maybe val -> m ()
-setCurve self val
-  = liftIO
-      (js_setCurve (self) (maybeToNullable (fmap toFloat32Array val)))
+         (MonadIO m, IsFloat32Array val) => WaveShaperNode -> val -> m ()
+setCurve self val = liftIO (js_setCurve self (toFloat32Array val))
  
 foreign import javascript unsafe "$1[\"curve\"]" js_getCurve ::
-        WaveShaperNode -> IO (Nullable Float32Array)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WaveShaperNode.curve Mozilla WaveShaperNode.curve documentation> 
-getCurve :: (MonadIO m) => WaveShaperNode -> m (Maybe Float32Array)
-getCurve self = liftIO (nullableToMaybe <$> (js_getCurve (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WaveShaperNode.curve Mozilla WaveShaperNode.curve documentation> 
-getCurveUnsafe ::
-               (MonadIO m, HasCallStack) => WaveShaperNode -> m Float32Array
-getCurveUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCurve (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        WaveShaperNode -> IO Float32Array
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WaveShaperNode.curve Mozilla WaveShaperNode.curve documentation> 
-getCurveUnchecked ::
-                  (MonadIO m) => WaveShaperNode -> m Float32Array
-getCurveUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCurve (self)))
+getCurve :: (MonadIO m) => WaveShaperNode -> m Float32Array
+getCurve self = liftIO (js_getCurve self)
  
 foreign import javascript unsafe "$1[\"oversample\"] = $2;"
         js_setOversample :: WaveShaperNode -> JSVal -> IO ()
@@ -66,7 +49,7 @@
 setOversample ::
               (MonadIO m) => WaveShaperNode -> OverSampleType -> m ()
 setOversample self val
-  = liftIO (js_setOversample (self) (pToJSVal val))
+  = liftIO (js_setOversample self (pToJSVal val))
  
 foreign import javascript unsafe "$1[\"oversample\"]"
         js_getOversample :: WaveShaperNode -> IO JSVal
@@ -74,4 +57,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WaveShaperNode.oversample Mozilla WaveShaperNode.oversample documentation> 
 getOversample :: (MonadIO m) => WaveShaperNode -> m OverSampleType
 getOversample self
-  = liftIO ((js_getOversample (self)) >>= fromJSValUnchecked)
+  = liftIO ((js_getOversample self) >>= fromJSValUnchecked)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGL2RenderingContext.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGL2RenderingContext.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGL2RenderingContext.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGL2RenderingContext.hs
@@ -4,12 +4,11 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WebGL2RenderingContext
-       (js_copyBufferSubData, copyBufferSubData, js_getBufferSubDataView,
-        getBufferSubDataView, js_getBufferSubData, getBufferSubData,
-        js_getFramebufferAttachmentParameter,
-        getFramebufferAttachmentParameter,
-        getFramebufferAttachmentParameter_, js_blitFramebuffer,
-        blitFramebuffer, js_framebufferTextureLayer,
+       (js_bufferDataPtr, bufferDataPtr, js_bufferData, bufferData,
+        js_bufferSubData, bufferSubData, js_bufferDataView, bufferDataView,
+        js_bufferSubDataView, bufferSubDataView, js_copyBufferSubData,
+        copyBufferSubData, js_getBufferSubData, getBufferSubData,
+        js_blitFramebuffer, blitFramebuffer, js_framebufferTextureLayer,
         framebufferTextureLayer, js_getInternalformatParameter,
         getInternalformatParameter, getInternalformatParameter_,
         js_invalidateFramebuffer, invalidateFramebuffer,
@@ -17,10 +16,8 @@
         js_readBuffer, readBuffer, js_renderbufferStorageMultisample,
         renderbufferStorageMultisample, js_texStorage2D, texStorage2D,
         js_texStorage3D, texStorage3D, js_texImage3D, texImage3D,
-        js_texSubImage3DView, texSubImage3DView, js_texSubImage3DData,
-        texSubImage3DData, js_texSubImage3D, texSubImage3D,
-        js_texSubImage3DCanvas, texSubImage3DCanvas, js_texSubImage3DVideo,
-        texSubImage3DVideo, js_copyTexSubImage3D, copyTexSubImage3D,
+        js_texSubImage3DView, texSubImage3DView, js_texSubImage3D,
+        texSubImage3D, js_copyTexSubImage3D, copyTexSubImage3D,
         js_compressedTexImage3D, compressedTexImage3D,
         js_compressedTexSubImage3D, compressedTexSubImage3D,
         js_getFragDataLocation, getFragDataLocation, getFragDataLocation_,
@@ -42,47 +39,40 @@
         drawBuffers, js_clearBufferiv, clearBufferiv, js_clearBufferuiv,
         clearBufferuiv, js_clearBufferfv, clearBufferfv, js_clearBufferfi,
         clearBufferfi, js_createQuery, createQuery, createQuery_,
-        createQueryUnsafe, createQueryUnchecked, js_deleteQuery,
-        deleteQuery, js_isQuery, isQuery, isQuery_, js_beginQuery,
-        beginQuery, js_endQuery, endQuery, js_getQuery, getQuery,
-        getQuery_, getQueryUnsafe, getQueryUnchecked, js_getQueryParameter,
-        getQueryParameter, getQueryParameter_, js_createSampler,
-        createSampler, createSampler_, createSamplerUnsafe,
-        createSamplerUnchecked, js_deleteSampler, deleteSampler,
-        js_isSampler, isSampler, isSampler_, js_bindSampler, bindSampler,
+        js_deleteQuery, deleteQuery, js_isQuery, isQuery, isQuery_,
+        js_beginQuery, beginQuery, js_endQuery, endQuery, js_getQuery,
+        getQuery, getQuery_, js_getQueryParameter, getQueryParameter,
+        getQueryParameter_, js_createSampler, createSampler,
+        createSampler_, js_deleteSampler, deleteSampler, js_isSampler,
+        isSampler, isSampler_, js_bindSampler, bindSampler,
         js_samplerParameteri, samplerParameteri, js_samplerParameterf,
         samplerParameterf, js_getSamplerParameter, getSamplerParameter,
         getSamplerParameter_, js_fenceSync, fenceSync, fenceSync_,
-        fenceSyncUnsafe, fenceSyncUnchecked, js_isSync, isSync, isSync_,
-        js_deleteSync, deleteSync, js_clientWaitSync, clientWaitSync,
-        clientWaitSync_, js_waitSync, waitSync, js_getSyncParameter,
-        getSyncParameter, getSyncParameter_, js_createTransformFeedback,
-        createTransformFeedback, createTransformFeedback_,
-        createTransformFeedbackUnsafe, createTransformFeedbackUnchecked,
-        js_deleteTransformFeedback, deleteTransformFeedback,
-        js_isTransformFeedback, isTransformFeedback, isTransformFeedback_,
+        js_isSync, isSync, isSync_, js_deleteSync, deleteSync,
+        js_clientWaitSync, clientWaitSync, clientWaitSync_, js_waitSync,
+        waitSync, js_getSyncParameter, getSyncParameter, getSyncParameter_,
+        js_createTransformFeedback, createTransformFeedback,
+        createTransformFeedback_, js_deleteTransformFeedback,
+        deleteTransformFeedback, js_isTransformFeedback,
+        isTransformFeedback, isTransformFeedback_,
         js_bindTransformFeedback, bindTransformFeedback,
         js_beginTransformFeedback, beginTransformFeedback,
         js_endTransformFeedback, endTransformFeedback,
         js_transformFeedbackVaryings, transformFeedbackVaryings,
         js_getTransformFeedbackVarying, getTransformFeedbackVarying,
-        getTransformFeedbackVarying_, getTransformFeedbackVaryingUnsafe,
-        getTransformFeedbackVaryingUnchecked, js_pauseTransformFeedback,
+        getTransformFeedbackVarying_, js_pauseTransformFeedback,
         pauseTransformFeedback, js_resumeTransformFeedback,
         resumeTransformFeedback, js_bindBufferBase, bindBufferBase,
         js_bindBufferRange, bindBufferRange, js_getIndexedParameter,
         getIndexedParameter, getIndexedParameter_, js_getUniformIndices,
-        getUniformIndices, getUniformIndices_, getUniformIndicesUnsafe,
-        getUniformIndicesUnchecked, js_getActiveUniforms,
-        getActiveUniforms, getActiveUniforms_, getActiveUniformsUnsafe,
-        getActiveUniformsUnchecked, js_getUniformBlockIndex,
+        getUniformIndices, getUniformIndices_, js_getActiveUniforms,
+        getActiveUniforms, getActiveUniforms_, js_getUniformBlockIndex,
         getUniformBlockIndex, getUniformBlockIndex_,
         js_getActiveUniformBlockParameter, getActiveUniformBlockParameter,
         getActiveUniformBlockParameter_, js_getActiveUniformBlockName,
         getActiveUniformBlockName, getActiveUniformBlockName_,
         js_uniformBlockBinding, uniformBlockBinding, js_createVertexArray,
-        createVertexArray, createVertexArray_, createVertexArrayUnsafe,
-        createVertexArrayUnchecked, js_deleteVertexArray,
+        createVertexArray, createVertexArray_, js_deleteVertexArray,
         deleteVertexArray, js_isVertexArray, isVertexArray, isVertexArray_,
         js_bindVertexArray, bindVertexArray, pattern READ_BUFFER,
         pattern UNPACK_ROW_LENGTH, pattern UNPACK_SKIP_ROWS,
@@ -230,14 +220,14 @@
         pattern COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
         pattern TEXTURE_IMMUTABLE_FORMAT, pattern MAX_ELEMENT_INDEX,
         pattern NUM_SAMPLE_COUNTS, pattern TEXTURE_IMMUTABLE_LEVELS,
-        pattern TIMEOUT_IGNORED, WebGL2RenderingContext(..),
-        gTypeWebGL2RenderingContext)
+        pattern VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE, pattern TIMEOUT_IGNORED,
+        WebGL2RenderingContext(..), gTypeWebGL2RenderingContext)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -246,12 +236,91 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe "$1[\"bufferData\"]($2, $3, $4)"
+        js_bufferDataPtr ::
+        WebGL2RenderingContext -> GLenum -> Double -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.bufferData Mozilla WebGL2RenderingContext.bufferData documentation> 
+bufferDataPtr ::
+              (MonadIO m) =>
+                WebGL2RenderingContext -> GLenum -> GLsizeiptr -> GLenum -> m ()
+bufferDataPtr self target size usage
+  = liftIO (js_bufferDataPtr self target (fromIntegral size) usage)
+ 
+foreign import javascript unsafe "$1[\"bufferData\"]($2, $3, $4)"
+        js_bufferData ::
+        WebGL2RenderingContext ->
+          GLenum -> Optional BufferDataSource -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.bufferData Mozilla WebGL2RenderingContext.bufferData documentation> 
+bufferData ::
+           (MonadIO m, IsBufferDataSource srcData) =>
+             WebGL2RenderingContext -> GLenum -> Maybe srcData -> GLenum -> m ()
+bufferData self target srcData usage
+  = liftIO
+      (js_bufferData self target
+         (maybeToOptional (fmap toBufferDataSource srcData))
+         usage)
+ 
 foreign import javascript unsafe
+        "$1[\"bufferSubData\"]($2, $3, $4)" js_bufferSubData ::
+        WebGL2RenderingContext ->
+          GLenum -> Double -> Optional BufferDataSource -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.bufferSubData Mozilla WebGL2RenderingContext.bufferSubData documentation> 
+bufferSubData ::
+              (MonadIO m, IsBufferDataSource srcData) =>
+                WebGL2RenderingContext ->
+                  GLenum -> GLintptr -> Maybe srcData -> m ()
+bufferSubData self target dstByteOffset srcData
+  = liftIO
+      (js_bufferSubData self target (fromIntegral dstByteOffset)
+         (maybeToOptional (fmap toBufferDataSource srcData)))
+ 
+foreign import javascript unsafe
+        "$1[\"bufferData\"]($2, $3, $4, $5,\n$6)" js_bufferDataView ::
+        WebGL2RenderingContext ->
+          GLenum ->
+            ArrayBufferView -> GLenum -> GLuint -> Optional GLuint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.bufferData Mozilla WebGL2RenderingContext.bufferData documentation> 
+bufferDataView ::
+               (MonadIO m, IsArrayBufferView data') =>
+                 WebGL2RenderingContext ->
+                   GLenum -> data' -> GLenum -> GLuint -> Maybe GLuint -> m ()
+bufferDataView self target data' usage srcOffset length
+  = liftIO
+      (js_bufferDataView self target (toArrayBufferView data') usage
+         srcOffset
+         (maybeToOptional length))
+ 
+foreign import javascript unsafe
+        "$1[\"bufferSubData\"]($2, $3, $4,\n$5, $6)" js_bufferSubDataView
+        ::
+        WebGL2RenderingContext ->
+          GLenum ->
+            Double -> ArrayBufferView -> GLuint -> Optional GLuint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.bufferSubData Mozilla WebGL2RenderingContext.bufferSubData documentation> 
+bufferSubDataView ::
+                  (MonadIO m, IsArrayBufferView srcData) =>
+                    WebGL2RenderingContext ->
+                      GLenum -> GLintptr -> srcData -> GLuint -> Maybe GLuint -> m ()
+bufferSubDataView self target dstByteOffset srcData srcOffset
+  length
+  = liftIO
+      (js_bufferSubDataView self target (fromIntegral dstByteOffset)
+         (toArrayBufferView srcData)
+         srcOffset
+         (maybeToOptional length))
+ 
+foreign import javascript unsafe
         "$1[\"copyBufferSubData\"]($2, $3,\n$4, $5, $6)"
         js_copyBufferSubData ::
         WebGL2RenderingContext ->
@@ -265,64 +334,31 @@
 copyBufferSubData self readTarget writeTarget readOffset
   writeOffset size
   = liftIO
-      (js_copyBufferSubData (self) readTarget writeTarget
+      (js_copyBufferSubData self readTarget writeTarget
          (fromIntegral readOffset)
          (fromIntegral writeOffset)
          (fromIntegral size))
  
 foreign import javascript unsafe
-        "$1[\"getBufferSubData\"]($2, $3,\n$4)" js_getBufferSubDataView ::
-        WebGL2RenderingContext ->
-          GLenum -> Double -> Nullable ArrayBufferView -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getBufferSubData Mozilla WebGL2RenderingContext.getBufferSubData documentation> 
-getBufferSubDataView ::
-                     (MonadIO m, IsArrayBufferView returnedData) =>
-                       WebGL2RenderingContext ->
-                         GLenum -> GLintptr -> Maybe returnedData -> m ()
-getBufferSubDataView self target offset returnedData
-  = liftIO
-      (js_getBufferSubDataView (self) target (fromIntegral offset)
-         (maybeToNullable (fmap toArrayBufferView returnedData)))
- 
-foreign import javascript unsafe
-        "$1[\"getBufferSubData\"]($2, $3,\n$4)" js_getBufferSubData ::
+        "$1[\"getBufferSubData\"]($2, $3,\n$4, $5, $6)" js_getBufferSubData
+        ::
         WebGL2RenderingContext ->
-          GLenum -> Double -> Nullable ArrayBuffer -> IO ()
+          GLenum ->
+            Double ->
+              ArrayBufferView -> Optional GLuint -> Optional GLuint -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getBufferSubData Mozilla WebGL2RenderingContext.getBufferSubData documentation> 
 getBufferSubData ::
-                 (MonadIO m, IsArrayBuffer returnedData) =>
+                 (MonadIO m, IsArrayBufferView dstData) =>
                    WebGL2RenderingContext ->
-                     GLenum -> GLintptr -> Maybe returnedData -> m ()
-getBufferSubData self target offset returnedData
-  = liftIO
-      (js_getBufferSubData (self) target (fromIntegral offset)
-         (maybeToNullable (fmap toArrayBuffer returnedData)))
- 
-foreign import javascript unsafe
-        "$1[\"getFramebufferAttachmentParameter\"]($2,\n$3, $4)"
-        js_getFramebufferAttachmentParameter ::
-        WebGL2RenderingContext -> GLenum -> GLenum -> GLenum -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getFramebufferAttachmentParameter Mozilla WebGL2RenderingContext.getFramebufferAttachmentParameter documentation> 
-getFramebufferAttachmentParameter ::
-                                  (MonadIO m) =>
-                                    WebGL2RenderingContext -> GLenum -> GLenum -> GLenum -> m JSVal
-getFramebufferAttachmentParameter self target attachment pname
-  = liftIO
-      (js_getFramebufferAttachmentParameter (self) target attachment
-         pname)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getFramebufferAttachmentParameter Mozilla WebGL2RenderingContext.getFramebufferAttachmentParameter documentation> 
-getFramebufferAttachmentParameter_ ::
-                                   (MonadIO m) =>
-                                     WebGL2RenderingContext -> GLenum -> GLenum -> GLenum -> m ()
-getFramebufferAttachmentParameter_ self target attachment pname
+                     GLenum ->
+                       GLintptr -> dstData -> Maybe GLuint -> Maybe GLuint -> m ()
+getBufferSubData self target srcByteOffset dstData dstOffset length
   = liftIO
-      (void
-         (js_getFramebufferAttachmentParameter (self) target attachment
-            pname))
+      (js_getBufferSubData self target (fromIntegral srcByteOffset)
+         (toArrayBufferView dstData)
+         (maybeToOptional dstOffset)
+         (maybeToOptional length))
  
 foreign import javascript unsafe
         "$1[\"blitFramebuffer\"]($2, $3,\n$4, $5, $6, $7, $8, $9, $10,\n$11)"
@@ -346,8 +382,7 @@
 blitFramebuffer self srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1
   dstY1 mask filter
   = liftIO
-      (js_blitFramebuffer (self) srcX0 srcY0 srcX1 srcY1 dstX0 dstY0
-         dstX1
+      (js_blitFramebuffer self srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1
          dstY1
          mask
          filter)
@@ -365,7 +400,7 @@
                             GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
 framebufferTextureLayer self target attachment texture level layer
   = liftIO
-      (js_framebufferTextureLayer (self) target attachment texture level
+      (js_framebufferTextureLayer self target attachment texture level
          layer)
  
 foreign import javascript unsafe
@@ -379,7 +414,7 @@
                              WebGL2RenderingContext -> GLenum -> GLenum -> GLenum -> m JSVal
 getInternalformatParameter self target internalformat pname
   = liftIO
-      (js_getInternalformatParameter (self) target internalformat pname)
+      (js_getInternalformatParameter self target internalformat pname)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getInternalformatParameter Mozilla WebGL2RenderingContext.getInternalformatParameter documentation> 
 getInternalformatParameter_ ::
@@ -388,7 +423,7 @@
 getInternalformatParameter_ self target internalformat pname
   = liftIO
       (void
-         (js_getInternalformatParameter (self) target internalformat pname))
+         (js_getInternalformatParameter self target internalformat pname))
  
 foreign import javascript unsafe
         "$1[\"invalidateFramebuffer\"]($2,\n$3)" js_invalidateFramebuffer
@@ -401,7 +436,7 @@
   = liftIO
       (toJSVal attachments >>=
          \ attachments' ->
-           js_invalidateFramebuffer (self) target attachments')
+           js_invalidateFramebuffer self target attachments')
  
 foreign import javascript unsafe
         "$1[\"invalidateSubFramebuffer\"]($2,\n$3, $4, $5, $6, $7)"
@@ -418,7 +453,7 @@
   = liftIO
       (toJSVal attachments >>=
          \ attachments' ->
-           js_invalidateSubFramebuffer (self) target attachments'
+           js_invalidateSubFramebuffer self target attachments'
          x
          y
          width
@@ -430,7 +465,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.readBuffer Mozilla WebGL2RenderingContext.readBuffer documentation> 
 readBuffer ::
            (MonadIO m) => WebGL2RenderingContext -> GLenum -> m ()
-readBuffer self src = liftIO (js_readBuffer (self) src)
+readBuffer self src = liftIO (js_readBuffer self src)
  
 foreign import javascript unsafe
         "$1[\"renderbufferStorageMultisample\"]($2,\n$3, $4, $5, $6)"
@@ -446,7 +481,7 @@
 renderbufferStorageMultisample self target samples internalformat
   width height
   = liftIO
-      (js_renderbufferStorageMultisample (self) target samples
+      (js_renderbufferStorageMultisample self target samples
          internalformat
          width
          height)
@@ -463,7 +498,7 @@
                  GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
 texStorage2D self target levels internalformat width height
   = liftIO
-      (js_texStorage2D (self) target levels internalformat width height)
+      (js_texStorage2D self target levels internalformat width height)
  
 foreign import javascript unsafe
         "$1[\"texStorage3D\"]($2, $3, $4,\n$5, $6, $7)" js_texStorage3D ::
@@ -479,7 +514,7 @@
                    GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
 texStorage3D self target levels internalformat width height depth
   = liftIO
-      (js_texStorage3D (self) target levels internalformat width height
+      (js_texStorage3D self target levels internalformat width height
          depth)
  
 foreign import javascript unsafe
@@ -492,7 +527,7 @@
                 GLsizei ->
                   GLsizei ->
                     GLsizei ->
-                      GLint -> GLenum -> GLenum -> Nullable ArrayBufferView -> IO ()
+                      GLint -> GLenum -> GLenum -> Optional ArrayBufferView -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.texImage3D Mozilla WebGL2RenderingContext.texImage3D documentation> 
 texImage3D ::
@@ -507,12 +542,11 @@
 texImage3D self target level internalformat width height depth
   border format type' pixels
   = liftIO
-      (js_texImage3D (self) target level internalformat width height
-         depth
+      (js_texImage3D self target level internalformat width height depth
          border
          format
          type'
-         (maybeToNullable (fmap toArrayBufferView pixels)))
+         (maybeToOptional (fmap toArrayBufferView pixels)))
  
 foreign import javascript unsafe
         "$1[\"texSubImage3D\"]($2, $3, $4,\n$5, $6, $7, $8, $9, $10, $11,\n$12)"
@@ -525,7 +559,7 @@
                   GLint ->
                     GLsizei ->
                       GLsizei ->
-                        GLsizei -> GLenum -> GLenum -> Nullable ArrayBufferView -> IO ()
+                        GLsizei -> GLenum -> GLenum -> Optional ArrayBufferView -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.texSubImage3D Mozilla WebGL2RenderingContext.texSubImage3D documentation> 
 texSubImage3DView ::
@@ -541,38 +575,13 @@
 texSubImage3DView self target level xoffset yoffset zoffset width
   height depth format type' pixels
   = liftIO
-      (js_texSubImage3DView (self) target level xoffset yoffset zoffset
+      (js_texSubImage3DView self target level xoffset yoffset zoffset
          width
          height
          depth
          format
          type'
-         (maybeToNullable (fmap toArrayBufferView pixels)))
- 
-foreign import javascript unsafe
-        "$1[\"texSubImage3D\"]($2, $3, $4,\n$5, $6, $7, $8, $9)"
-        js_texSubImage3DData ::
-        WebGL2RenderingContext ->
-          GLenum ->
-            GLint ->
-              GLint ->
-                GLint -> GLint -> GLenum -> GLenum -> Nullable ImageData -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.texSubImage3D Mozilla WebGL2RenderingContext.texSubImage3D documentation> 
-texSubImage3DData ::
-                  (MonadIO m) =>
-                    WebGL2RenderingContext ->
-                      GLenum ->
-                        GLint ->
-                          GLint ->
-                            GLint -> GLint -> GLenum -> GLenum -> Maybe ImageData -> m ()
-texSubImage3DData self target level xoffset yoffset zoffset format
-  type' source
-  = liftIO
-      (js_texSubImage3DData (self) target level xoffset yoffset zoffset
-         format
-         type'
-         (maybeToNullable source))
+         (maybeToOptional (fmap toArrayBufferView pixels)))
  
 foreign import javascript unsafe
         "$1[\"texSubImage3D\"]($2, $3, $4,\n$5, $6, $7, $8, $9)"
@@ -581,79 +590,21 @@
           GLenum ->
             GLint ->
               GLint ->
-                GLint ->
-                  GLint -> GLenum -> GLenum -> Nullable HTMLImageElement -> IO ()
+                GLint -> GLint -> GLenum -> GLenum -> TexImageSource -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.texSubImage3D Mozilla WebGL2RenderingContext.texSubImage3D documentation> 
 texSubImage3D ::
-              (MonadIO m) =>
+              (MonadIO m, IsTexImageSource source) =>
                 WebGL2RenderingContext ->
                   GLenum ->
                     GLint ->
-                      GLint ->
-                        GLint ->
-                          GLint -> GLenum -> GLenum -> Maybe HTMLImageElement -> m ()
+                      GLint -> GLint -> GLint -> GLenum -> GLenum -> source -> m ()
 texSubImage3D self target level xoffset yoffset zoffset format
   type' source
   = liftIO
-      (js_texSubImage3D (self) target level xoffset yoffset zoffset
-         format
-         type'
-         (maybeToNullable source))
- 
-foreign import javascript unsafe
-        "$1[\"texSubImage3D\"]($2, $3, $4,\n$5, $6, $7, $8, $9)"
-        js_texSubImage3DCanvas ::
-        WebGL2RenderingContext ->
-          GLenum ->
-            GLint ->
-              GLint ->
-                GLint ->
-                  GLint -> GLenum -> GLenum -> Nullable HTMLCanvasElement -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.texSubImage3D Mozilla WebGL2RenderingContext.texSubImage3D documentation> 
-texSubImage3DCanvas ::
-                    (MonadIO m) =>
-                      WebGL2RenderingContext ->
-                        GLenum ->
-                          GLint ->
-                            GLint ->
-                              GLint ->
-                                GLint -> GLenum -> GLenum -> Maybe HTMLCanvasElement -> m ()
-texSubImage3DCanvas self target level xoffset yoffset zoffset
-  format type' source
-  = liftIO
-      (js_texSubImage3DCanvas (self) target level xoffset yoffset zoffset
-         format
-         type'
-         (maybeToNullable source))
- 
-foreign import javascript unsafe
-        "$1[\"texSubImage3D\"]($2, $3, $4,\n$5, $6, $7, $8, $9)"
-        js_texSubImage3DVideo ::
-        WebGL2RenderingContext ->
-          GLenum ->
-            GLint ->
-              GLint ->
-                GLint ->
-                  GLint -> GLenum -> GLenum -> Nullable HTMLVideoElement -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.texSubImage3D Mozilla WebGL2RenderingContext.texSubImage3D documentation> 
-texSubImage3DVideo ::
-                   (MonadIO m) =>
-                     WebGL2RenderingContext ->
-                       GLenum ->
-                         GLint ->
-                           GLint ->
-                             GLint ->
-                               GLint -> GLenum -> GLenum -> Maybe HTMLVideoElement -> m ()
-texSubImage3DVideo self target level xoffset yoffset zoffset format
-  type' source
-  = liftIO
-      (js_texSubImage3DVideo (self) target level xoffset yoffset zoffset
-         format
+      (js_texSubImage3D self target level xoffset yoffset zoffset format
          type'
-         (maybeToNullable source))
+         (toTexImageSource source))
  
 foreign import javascript unsafe
         "$1[\"copyTexSubImage3D\"]($2, $3,\n$4, $5, $6, $7, $8, $9, $10)"
@@ -675,8 +626,7 @@
 copyTexSubImage3D self target level xoffset yoffset zoffset x y
   width height
   = liftIO
-      (js_copyTexSubImage3D (self) target level xoffset yoffset zoffset x
-         y
+      (js_copyTexSubImage3D self target level xoffset yoffset zoffset x y
          width
          height)
  
@@ -689,7 +639,7 @@
               GLenum ->
                 GLsizei ->
                   GLsizei ->
-                    GLsizei -> GLint -> GLsizei -> Nullable ArrayBufferView -> IO ()
+                    GLsizei -> GLint -> GLsizei -> Optional ArrayBufferView -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.compressedTexImage3D Mozilla WebGL2RenderingContext.compressedTexImage3D documentation> 
 compressedTexImage3D ::
@@ -703,12 +653,12 @@
 compressedTexImage3D self target level internalformat width height
   depth border imageSize data'
   = liftIO
-      (js_compressedTexImage3D (self) target level internalformat width
+      (js_compressedTexImage3D self target level internalformat width
          height
          depth
          border
          imageSize
-         (maybeToNullable (fmap toArrayBufferView data')))
+         (maybeToOptional (fmap toArrayBufferView data')))
  
 foreign import javascript unsafe
         "$1[\"compressedTexSubImage3D\"]($2,\n$3, $4, $5, $6, $7, $8, $9, $10,\n$11, $12)"
@@ -721,7 +671,7 @@
                   GLint ->
                     GLsizei ->
                       GLsizei ->
-                        GLsizei -> GLenum -> GLsizei -> Nullable ArrayBufferView -> IO ()
+                        GLsizei -> GLenum -> GLsizei -> Optional ArrayBufferView -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.compressedTexSubImage3D Mozilla WebGL2RenderingContext.compressedTexSubImage3D documentation> 
 compressedTexSubImage3D ::
@@ -738,19 +688,19 @@
 compressedTexSubImage3D self target level xoffset yoffset zoffset
   width height depth format imageSize data'
   = liftIO
-      (js_compressedTexSubImage3D (self) target level xoffset yoffset
+      (js_compressedTexSubImage3D self target level xoffset yoffset
          zoffset
          width
          height
          depth
          format
          imageSize
-         (maybeToNullable (fmap toArrayBufferView data')))
+         (maybeToOptional (fmap toArrayBufferView data')))
  
 foreign import javascript unsafe
         "$1[\"getFragDataLocation\"]($2,\n$3)" js_getFragDataLocation ::
         WebGL2RenderingContext ->
-          Nullable WebGLProgram -> JSString -> IO GLint
+          Optional WebGLProgram -> JSString -> IO GLint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getFragDataLocation Mozilla WebGL2RenderingContext.getFragDataLocation documentation> 
 getFragDataLocation ::
@@ -758,7 +708,7 @@
                       WebGL2RenderingContext -> Maybe WebGLProgram -> name -> m GLint
 getFragDataLocation self program name
   = liftIO
-      (js_getFragDataLocation (self) (maybeToNullable program)
+      (js_getFragDataLocation self (maybeToOptional program)
          (toJSString name))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getFragDataLocation Mozilla WebGL2RenderingContext.getFragDataLocation documentation> 
@@ -768,13 +718,13 @@
 getFragDataLocation_ self program name
   = liftIO
       (void
-         (js_getFragDataLocation (self) (maybeToNullable program)
+         (js_getFragDataLocation self (maybeToOptional program)
             (toJSString name)))
  
 foreign import javascript unsafe "$1[\"uniform1ui\"]($2, $3)"
         js_uniform1ui ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation -> GLuint -> IO ()
+          Optional WebGLUniformLocation -> GLuint -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniform1ui Mozilla WebGL2RenderingContext.uniform1ui documentation> 
 uniform1ui ::
@@ -782,12 +732,12 @@
              WebGL2RenderingContext ->
                Maybe WebGLUniformLocation -> GLuint -> m ()
 uniform1ui self location v0
-  = liftIO (js_uniform1ui (self) (maybeToNullable location) v0)
+  = liftIO (js_uniform1ui self (maybeToOptional location) v0)
  
 foreign import javascript unsafe "$1[\"uniform2ui\"]($2, $3, $4)"
         js_uniform2ui ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation -> GLuint -> GLuint -> IO ()
+          Optional WebGLUniformLocation -> GLuint -> GLuint -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniform2ui Mozilla WebGL2RenderingContext.uniform2ui documentation> 
 uniform2ui ::
@@ -795,12 +745,12 @@
              WebGL2RenderingContext ->
                Maybe WebGLUniformLocation -> GLuint -> GLuint -> m ()
 uniform2ui self location v0 v1
-  = liftIO (js_uniform2ui (self) (maybeToNullable location) v0 v1)
+  = liftIO (js_uniform2ui self (maybeToOptional location) v0 v1)
  
 foreign import javascript unsafe
         "$1[\"uniform3ui\"]($2, $3, $4, $5)" js_uniform3ui ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation ->
+          Optional WebGLUniformLocation ->
             GLuint -> GLuint -> GLuint -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniform3ui Mozilla WebGL2RenderingContext.uniform3ui documentation> 
@@ -809,12 +759,12 @@
              WebGL2RenderingContext ->
                Maybe WebGLUniformLocation -> GLuint -> GLuint -> GLuint -> m ()
 uniform3ui self location v0 v1 v2
-  = liftIO (js_uniform3ui (self) (maybeToNullable location) v0 v1 v2)
+  = liftIO (js_uniform3ui self (maybeToOptional location) v0 v1 v2)
  
 foreign import javascript unsafe
         "$1[\"uniform4ui\"]($2, $3, $4, $5,\n$6)" js_uniform4ui ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation ->
+          Optional WebGLUniformLocation ->
             GLuint -> GLuint -> GLuint -> GLuint -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniform4ui Mozilla WebGL2RenderingContext.uniform4ui documentation> 
@@ -825,12 +775,12 @@
                  GLuint -> GLuint -> GLuint -> GLuint -> m ()
 uniform4ui self location v0 v1 v2 v3
   = liftIO
-      (js_uniform4ui (self) (maybeToNullable location) v0 v1 v2 v3)
+      (js_uniform4ui self (maybeToOptional location) v0 v1 v2 v3)
  
 foreign import javascript unsafe "$1[\"uniform1uiv\"]($2, $3)"
         js_uniform1uiv ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation -> Nullable Uint32Array -> IO ()
+          Optional WebGLUniformLocation -> Optional Uint32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniform1uiv Mozilla WebGL2RenderingContext.uniform1uiv documentation> 
 uniform1uiv ::
@@ -839,13 +789,13 @@
                 Maybe WebGLUniformLocation -> Maybe value -> m ()
 uniform1uiv self location value
   = liftIO
-      (js_uniform1uiv (self) (maybeToNullable location)
-         (maybeToNullable (fmap toUint32Array value)))
+      (js_uniform1uiv self (maybeToOptional location)
+         (maybeToOptional (fmap toUint32Array value)))
  
 foreign import javascript unsafe "$1[\"uniform2uiv\"]($2, $3)"
         js_uniform2uiv ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation -> Nullable Uint32Array -> IO ()
+          Optional WebGLUniformLocation -> Optional Uint32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniform2uiv Mozilla WebGL2RenderingContext.uniform2uiv documentation> 
 uniform2uiv ::
@@ -854,13 +804,13 @@
                 Maybe WebGLUniformLocation -> Maybe value -> m ()
 uniform2uiv self location value
   = liftIO
-      (js_uniform2uiv (self) (maybeToNullable location)
-         (maybeToNullable (fmap toUint32Array value)))
+      (js_uniform2uiv self (maybeToOptional location)
+         (maybeToOptional (fmap toUint32Array value)))
  
 foreign import javascript unsafe "$1[\"uniform3uiv\"]($2, $3)"
         js_uniform3uiv ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation -> Nullable Uint32Array -> IO ()
+          Optional WebGLUniformLocation -> Optional Uint32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniform3uiv Mozilla WebGL2RenderingContext.uniform3uiv documentation> 
 uniform3uiv ::
@@ -869,13 +819,13 @@
                 Maybe WebGLUniformLocation -> Maybe value -> m ()
 uniform3uiv self location value
   = liftIO
-      (js_uniform3uiv (self) (maybeToNullable location)
-         (maybeToNullable (fmap toUint32Array value)))
+      (js_uniform3uiv self (maybeToOptional location)
+         (maybeToOptional (fmap toUint32Array value)))
  
 foreign import javascript unsafe "$1[\"uniform4uiv\"]($2, $3)"
         js_uniform4uiv ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation -> Nullable Uint32Array -> IO ()
+          Optional WebGLUniformLocation -> Optional Uint32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniform4uiv Mozilla WebGL2RenderingContext.uniform4uiv documentation> 
 uniform4uiv ::
@@ -884,14 +834,14 @@
                 Maybe WebGLUniformLocation -> Maybe value -> m ()
 uniform4uiv self location value
   = liftIO
-      (js_uniform4uiv (self) (maybeToNullable location)
-         (maybeToNullable (fmap toUint32Array value)))
+      (js_uniform4uiv self (maybeToOptional location)
+         (maybeToOptional (fmap toUint32Array value)))
  
 foreign import javascript unsafe
         "$1[\"uniformMatrix2x3fv\"]($2, $3,\n$4)" js_uniformMatrix2x3fv ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation ->
-            GLboolean -> Nullable Float32Array -> IO ()
+          Optional WebGLUniformLocation ->
+            GLboolean -> Optional Float32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniformMatrix2x3fv Mozilla WebGL2RenderingContext.uniformMatrix2x3fv documentation> 
 uniformMatrix2x3fv ::
@@ -900,14 +850,14 @@
                        Maybe WebGLUniformLocation -> GLboolean -> Maybe value -> m ()
 uniformMatrix2x3fv self location transpose value
   = liftIO
-      (js_uniformMatrix2x3fv (self) (maybeToNullable location) transpose
-         (maybeToNullable (fmap toFloat32Array value)))
+      (js_uniformMatrix2x3fv self (maybeToOptional location) transpose
+         (maybeToOptional (fmap toFloat32Array value)))
  
 foreign import javascript unsafe
         "$1[\"uniformMatrix3x2fv\"]($2, $3,\n$4)" js_uniformMatrix3x2fv ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation ->
-            GLboolean -> Nullable Float32Array -> IO ()
+          Optional WebGLUniformLocation ->
+            GLboolean -> Optional Float32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniformMatrix3x2fv Mozilla WebGL2RenderingContext.uniformMatrix3x2fv documentation> 
 uniformMatrix3x2fv ::
@@ -916,14 +866,14 @@
                        Maybe WebGLUniformLocation -> GLboolean -> Maybe value -> m ()
 uniformMatrix3x2fv self location transpose value
   = liftIO
-      (js_uniformMatrix3x2fv (self) (maybeToNullable location) transpose
-         (maybeToNullable (fmap toFloat32Array value)))
+      (js_uniformMatrix3x2fv self (maybeToOptional location) transpose
+         (maybeToOptional (fmap toFloat32Array value)))
  
 foreign import javascript unsafe
         "$1[\"uniformMatrix2x4fv\"]($2, $3,\n$4)" js_uniformMatrix2x4fv ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation ->
-            GLboolean -> Nullable Float32Array -> IO ()
+          Optional WebGLUniformLocation ->
+            GLboolean -> Optional Float32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniformMatrix2x4fv Mozilla WebGL2RenderingContext.uniformMatrix2x4fv documentation> 
 uniformMatrix2x4fv ::
@@ -932,14 +882,14 @@
                        Maybe WebGLUniformLocation -> GLboolean -> Maybe value -> m ()
 uniformMatrix2x4fv self location transpose value
   = liftIO
-      (js_uniformMatrix2x4fv (self) (maybeToNullable location) transpose
-         (maybeToNullable (fmap toFloat32Array value)))
+      (js_uniformMatrix2x4fv self (maybeToOptional location) transpose
+         (maybeToOptional (fmap toFloat32Array value)))
  
 foreign import javascript unsafe
         "$1[\"uniformMatrix4x2fv\"]($2, $3,\n$4)" js_uniformMatrix4x2fv ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation ->
-            GLboolean -> Nullable Float32Array -> IO ()
+          Optional WebGLUniformLocation ->
+            GLboolean -> Optional Float32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniformMatrix4x2fv Mozilla WebGL2RenderingContext.uniformMatrix4x2fv documentation> 
 uniformMatrix4x2fv ::
@@ -948,14 +898,14 @@
                        Maybe WebGLUniformLocation -> GLboolean -> Maybe value -> m ()
 uniformMatrix4x2fv self location transpose value
   = liftIO
-      (js_uniformMatrix4x2fv (self) (maybeToNullable location) transpose
-         (maybeToNullable (fmap toFloat32Array value)))
+      (js_uniformMatrix4x2fv self (maybeToOptional location) transpose
+         (maybeToOptional (fmap toFloat32Array value)))
  
 foreign import javascript unsafe
         "$1[\"uniformMatrix3x4fv\"]($2, $3,\n$4)" js_uniformMatrix3x4fv ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation ->
-            GLboolean -> Nullable Float32Array -> IO ()
+          Optional WebGLUniformLocation ->
+            GLboolean -> Optional Float32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniformMatrix3x4fv Mozilla WebGL2RenderingContext.uniformMatrix3x4fv documentation> 
 uniformMatrix3x4fv ::
@@ -964,14 +914,14 @@
                        Maybe WebGLUniformLocation -> GLboolean -> Maybe value -> m ()
 uniformMatrix3x4fv self location transpose value
   = liftIO
-      (js_uniformMatrix3x4fv (self) (maybeToNullable location) transpose
-         (maybeToNullable (fmap toFloat32Array value)))
+      (js_uniformMatrix3x4fv self (maybeToOptional location) transpose
+         (maybeToOptional (fmap toFloat32Array value)))
  
 foreign import javascript unsafe
         "$1[\"uniformMatrix4x3fv\"]($2, $3,\n$4)" js_uniformMatrix4x3fv ::
         WebGL2RenderingContext ->
-          Nullable WebGLUniformLocation ->
-            GLboolean -> Nullable Float32Array -> IO ()
+          Optional WebGLUniformLocation ->
+            GLboolean -> Optional Float32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniformMatrix4x3fv Mozilla WebGL2RenderingContext.uniformMatrix4x3fv documentation> 
 uniformMatrix4x3fv ::
@@ -980,8 +930,8 @@
                        Maybe WebGLUniformLocation -> GLboolean -> Maybe value -> m ()
 uniformMatrix4x3fv self location transpose value
   = liftIO
-      (js_uniformMatrix4x3fv (self) (maybeToNullable location) transpose
-         (maybeToNullable (fmap toFloat32Array value)))
+      (js_uniformMatrix4x3fv self (maybeToOptional location) transpose
+         (maybeToOptional (fmap toFloat32Array value)))
  
 foreign import javascript unsafe
         "$1[\"vertexAttribI4i\"]($2, $3,\n$4, $5, $6)" js_vertexAttribI4i
@@ -995,11 +945,11 @@
                   WebGL2RenderingContext ->
                     GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
 vertexAttribI4i self index x y z w
-  = liftIO (js_vertexAttribI4i (self) index x y z w)
+  = liftIO (js_vertexAttribI4i self index x y z w)
  
 foreign import javascript unsafe "$1[\"vertexAttribI4iv\"]($2, $3)"
         js_vertexAttribI4iv ::
-        WebGL2RenderingContext -> GLuint -> Nullable Int32Array -> IO ()
+        WebGL2RenderingContext -> GLuint -> Optional Int32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.vertexAttribI4iv Mozilla WebGL2RenderingContext.vertexAttribI4iv documentation> 
 vertexAttribI4iv ::
@@ -1007,8 +957,8 @@
                    WebGL2RenderingContext -> GLuint -> Maybe v -> m ()
 vertexAttribI4iv self index v
   = liftIO
-      (js_vertexAttribI4iv (self) index
-         (maybeToNullable (fmap toInt32Array v)))
+      (js_vertexAttribI4iv self index
+         (maybeToOptional (fmap toInt32Array v)))
  
 foreign import javascript unsafe
         "$1[\"vertexAttribI4ui\"]($2, $3,\n$4, $5, $6)" js_vertexAttribI4ui
@@ -1022,11 +972,11 @@
                    WebGL2RenderingContext ->
                      GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
 vertexAttribI4ui self index x y z w
-  = liftIO (js_vertexAttribI4ui (self) index x y z w)
+  = liftIO (js_vertexAttribI4ui self index x y z w)
  
 foreign import javascript unsafe
         "$1[\"vertexAttribI4uiv\"]($2, $3)" js_vertexAttribI4uiv ::
-        WebGL2RenderingContext -> GLuint -> Nullable Uint32Array -> IO ()
+        WebGL2RenderingContext -> GLuint -> Optional Uint32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.vertexAttribI4uiv Mozilla WebGL2RenderingContext.vertexAttribI4uiv documentation> 
 vertexAttribI4uiv ::
@@ -1034,8 +984,8 @@
                     WebGL2RenderingContext -> GLuint -> Maybe v -> m ()
 vertexAttribI4uiv self index v
   = liftIO
-      (js_vertexAttribI4uiv (self) index
-         (maybeToNullable (fmap toUint32Array v)))
+      (js_vertexAttribI4uiv self index
+         (maybeToOptional (fmap toUint32Array v)))
  
 foreign import javascript unsafe
         "$1[\"vertexAttribIPointer\"]($2,\n$3, $4, $5, $6)"
@@ -1050,7 +1000,7 @@
                          GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
 vertexAttribIPointer self index size type' stride offset
   = liftIO
-      (js_vertexAttribIPointer (self) index size type' stride
+      (js_vertexAttribIPointer self index size type' stride
          (fromIntegral offset))
  
 foreign import javascript unsafe
@@ -1061,7 +1011,7 @@
 vertexAttribDivisor ::
                     (MonadIO m) => WebGL2RenderingContext -> GLuint -> GLuint -> m ()
 vertexAttribDivisor self index divisor
-  = liftIO (js_vertexAttribDivisor (self) index divisor)
+  = liftIO (js_vertexAttribDivisor self index divisor)
  
 foreign import javascript unsafe
         "$1[\"drawArraysInstanced\"]($2,\n$3, $4, $5)"
@@ -1076,7 +1026,7 @@
                         GLenum -> GLint -> GLsizei -> GLsizei -> m ()
 drawArraysInstanced self mode first count instanceCount
   = liftIO
-      (js_drawArraysInstanced (self) mode first count instanceCount)
+      (js_drawArraysInstanced self mode first count instanceCount)
  
 foreign import javascript unsafe
         "$1[\"drawElementsInstanced\"]($2,\n$3, $4, $5, $6)"
@@ -1091,7 +1041,7 @@
                           GLenum -> GLsizei -> GLenum -> GLintptr -> GLsizei -> m ()
 drawElementsInstanced self mode count type' offset instanceCount
   = liftIO
-      (js_drawElementsInstanced (self) mode count type'
+      (js_drawElementsInstanced self mode count type'
          (fromIntegral offset)
          instanceCount)
  
@@ -1108,7 +1058,7 @@
                       GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> GLintptr -> m ()
 drawRangeElements self mode start end count type' offset
   = liftIO
-      (js_drawRangeElements (self) mode start end count type'
+      (js_drawRangeElements self mode start end count type'
          (fromIntegral offset))
  
 foreign import javascript unsafe "$1[\"drawBuffers\"]($2)"
@@ -1119,12 +1069,12 @@
             (MonadIO m) => WebGL2RenderingContext -> [GLenum] -> m ()
 drawBuffers self buffers
   = liftIO
-      (toJSVal buffers >>= \ buffers' -> js_drawBuffers (self) buffers')
+      (toJSVal buffers >>= \ buffers' -> js_drawBuffers self buffers')
  
 foreign import javascript unsafe
         "$1[\"clearBufferiv\"]($2, $3, $4)" js_clearBufferiv ::
         WebGL2RenderingContext ->
-          GLenum -> GLint -> Nullable Int32Array -> IO ()
+          GLenum -> GLint -> Optional Int32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.clearBufferiv Mozilla WebGL2RenderingContext.clearBufferiv documentation> 
 clearBufferiv ::
@@ -1132,13 +1082,13 @@
                 WebGL2RenderingContext -> GLenum -> GLint -> Maybe value -> m ()
 clearBufferiv self buffer drawbuffer value
   = liftIO
-      (js_clearBufferiv (self) buffer drawbuffer
-         (maybeToNullable (fmap toInt32Array value)))
+      (js_clearBufferiv self buffer drawbuffer
+         (maybeToOptional (fmap toInt32Array value)))
  
 foreign import javascript unsafe
         "$1[\"clearBufferuiv\"]($2, $3, $4)" js_clearBufferuiv ::
         WebGL2RenderingContext ->
-          GLenum -> GLint -> Nullable Uint32Array -> IO ()
+          GLenum -> GLint -> Optional Uint32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.clearBufferuiv Mozilla WebGL2RenderingContext.clearBufferuiv documentation> 
 clearBufferuiv ::
@@ -1146,13 +1096,13 @@
                  WebGL2RenderingContext -> GLenum -> GLint -> Maybe value -> m ()
 clearBufferuiv self buffer drawbuffer value
   = liftIO
-      (js_clearBufferuiv (self) buffer drawbuffer
-         (maybeToNullable (fmap toUint32Array value)))
+      (js_clearBufferuiv self buffer drawbuffer
+         (maybeToOptional (fmap toUint32Array value)))
  
 foreign import javascript unsafe
         "$1[\"clearBufferfv\"]($2, $3, $4)" js_clearBufferfv ::
         WebGL2RenderingContext ->
-          GLenum -> GLint -> Nullable Float32Array -> IO ()
+          GLenum -> GLint -> Optional Float32Array -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.clearBufferfv Mozilla WebGL2RenderingContext.clearBufferfv documentation> 
 clearBufferfv ::
@@ -1160,8 +1110,8 @@
                 WebGL2RenderingContext -> GLenum -> GLint -> Maybe value -> m ()
 clearBufferfv self buffer drawbuffer value
   = liftIO
-      (js_clearBufferfv (self) buffer drawbuffer
-         (maybeToNullable (fmap toFloat32Array value)))
+      (js_clearBufferfv self buffer drawbuffer
+         (maybeToOptional (fmap toFloat32Array value)))
  
 foreign import javascript unsafe
         "$1[\"clearBufferfi\"]($2, $3, $4,\n$5)" js_clearBufferfi ::
@@ -1174,126 +1124,90 @@
                 WebGL2RenderingContext ->
                   GLenum -> GLint -> GLfloat -> GLint -> m ()
 clearBufferfi self buffer drawbuffer depth stencil
-  = liftIO (js_clearBufferfi (self) buffer drawbuffer depth stencil)
+  = liftIO (js_clearBufferfi self buffer drawbuffer depth stencil)
  
 foreign import javascript unsafe "$1[\"createQuery\"]()"
-        js_createQuery ::
-        WebGL2RenderingContext -> IO (Nullable WebGLQuery)
+        js_createQuery :: WebGL2RenderingContext -> IO WebGLQuery
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createQuery Mozilla WebGL2RenderingContext.createQuery documentation> 
 createQuery ::
-            (MonadIO m) => WebGL2RenderingContext -> m (Maybe WebGLQuery)
-createQuery self
-  = liftIO (nullableToMaybe <$> (js_createQuery (self)))
+            (MonadIO m) => WebGL2RenderingContext -> m WebGLQuery
+createQuery self = liftIO (js_createQuery self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createQuery Mozilla WebGL2RenderingContext.createQuery documentation> 
 createQuery_ :: (MonadIO m) => WebGL2RenderingContext -> m ()
-createQuery_ self = liftIO (void (js_createQuery (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createQuery Mozilla WebGL2RenderingContext.createQuery documentation> 
-createQueryUnsafe ::
-                  (MonadIO m, HasCallStack) => WebGL2RenderingContext -> m WebGLQuery
-createQueryUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createQuery (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createQuery Mozilla WebGL2RenderingContext.createQuery documentation> 
-createQueryUnchecked ::
-                     (MonadIO m) => WebGL2RenderingContext -> m WebGLQuery
-createQueryUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_createQuery (self)))
+createQuery_ self = liftIO (void (js_createQuery self))
  
 foreign import javascript unsafe "$1[\"deleteQuery\"]($2)"
         js_deleteQuery ::
-        WebGL2RenderingContext -> Nullable WebGLQuery -> IO ()
+        WebGL2RenderingContext -> Optional WebGLQuery -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.deleteQuery Mozilla WebGL2RenderingContext.deleteQuery documentation> 
 deleteQuery ::
             (MonadIO m) => WebGL2RenderingContext -> Maybe WebGLQuery -> m ()
 deleteQuery self query
-  = liftIO (js_deleteQuery (self) (maybeToNullable query))
+  = liftIO (js_deleteQuery self (maybeToOptional query))
  
 foreign import javascript unsafe "$1[\"isQuery\"]($2)" js_isQuery
-        :: WebGL2RenderingContext -> Nullable WebGLQuery -> IO GLboolean
+        :: WebGL2RenderingContext -> Optional WebGLQuery -> IO GLboolean
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.isQuery Mozilla WebGL2RenderingContext.isQuery documentation> 
 isQuery ::
         (MonadIO m) =>
           WebGL2RenderingContext -> Maybe WebGLQuery -> m GLboolean
 isQuery self query
-  = liftIO (js_isQuery (self) (maybeToNullable query))
+  = liftIO (js_isQuery self (maybeToOptional query))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.isQuery Mozilla WebGL2RenderingContext.isQuery documentation> 
 isQuery_ ::
          (MonadIO m) => WebGL2RenderingContext -> Maybe WebGLQuery -> m ()
 isQuery_ self query
-  = liftIO (void (js_isQuery (self) (maybeToNullable query)))
+  = liftIO (void (js_isQuery self (maybeToOptional query)))
  
 foreign import javascript unsafe "$1[\"beginQuery\"]($2, $3)"
         js_beginQuery ::
-        WebGL2RenderingContext -> GLenum -> Nullable WebGLQuery -> IO ()
+        WebGL2RenderingContext -> GLenum -> Optional WebGLQuery -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.beginQuery Mozilla WebGL2RenderingContext.beginQuery documentation> 
 beginQuery ::
            (MonadIO m) =>
              WebGL2RenderingContext -> GLenum -> Maybe WebGLQuery -> m ()
 beginQuery self target query
-  = liftIO (js_beginQuery (self) target (maybeToNullable query))
+  = liftIO (js_beginQuery self target (maybeToOptional query))
  
 foreign import javascript unsafe "$1[\"endQuery\"]($2)" js_endQuery
         :: WebGL2RenderingContext -> GLenum -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.endQuery Mozilla WebGL2RenderingContext.endQuery documentation> 
 endQuery :: (MonadIO m) => WebGL2RenderingContext -> GLenum -> m ()
-endQuery self target = liftIO (js_endQuery (self) target)
+endQuery self target = liftIO (js_endQuery self target)
  
 foreign import javascript unsafe "$1[\"getQuery\"]($2, $3)"
         js_getQuery ::
-        WebGL2RenderingContext ->
-          GLenum -> GLenum -> IO (Nullable WebGLQuery)
+        WebGL2RenderingContext -> GLenum -> GLenum -> IO WebGLQuery
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getQuery Mozilla WebGL2RenderingContext.getQuery documentation> 
 getQuery ::
          (MonadIO m) =>
-           WebGL2RenderingContext -> GLenum -> GLenum -> m (Maybe WebGLQuery)
-getQuery self target pname
-  = liftIO (nullableToMaybe <$> (js_getQuery (self) target pname))
+           WebGL2RenderingContext -> GLenum -> GLenum -> m WebGLQuery
+getQuery self target pname = liftIO (js_getQuery self target pname)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getQuery Mozilla WebGL2RenderingContext.getQuery documentation> 
 getQuery_ ::
           (MonadIO m) => WebGL2RenderingContext -> GLenum -> GLenum -> m ()
 getQuery_ self target pname
-  = liftIO (void (js_getQuery (self) target pname))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getQuery Mozilla WebGL2RenderingContext.getQuery documentation> 
-getQueryUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 WebGL2RenderingContext -> GLenum -> GLenum -> m WebGLQuery
-getQueryUnsafe self target pname
-  = liftIO
-      ((nullableToMaybe <$> (js_getQuery (self) target pname)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getQuery Mozilla WebGL2RenderingContext.getQuery documentation> 
-getQueryUnchecked ::
-                  (MonadIO m) =>
-                    WebGL2RenderingContext -> GLenum -> GLenum -> m WebGLQuery
-getQueryUnchecked self target pname
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getQuery (self) target pname))
+  = liftIO (void (js_getQuery self target pname))
  
 foreign import javascript unsafe
         "$1[\"getQueryParameter\"]($2, $3)" js_getQueryParameter ::
-        WebGL2RenderingContext -> Nullable WebGLQuery -> GLenum -> IO JSVal
+        WebGL2RenderingContext -> Optional WebGLQuery -> GLenum -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getQueryParameter Mozilla WebGL2RenderingContext.getQueryParameter documentation> 
 getQueryParameter ::
                   (MonadIO m) =>
                     WebGL2RenderingContext -> Maybe WebGLQuery -> GLenum -> m JSVal
 getQueryParameter self query pname
-  = liftIO
-      (js_getQueryParameter (self) (maybeToNullable query) pname)
+  = liftIO (js_getQueryParameter self (maybeToOptional query) pname)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getQueryParameter Mozilla WebGL2RenderingContext.getQueryParameter documentation> 
 getQueryParameter_ ::
@@ -1301,79 +1215,62 @@
                      WebGL2RenderingContext -> Maybe WebGLQuery -> GLenum -> m ()
 getQueryParameter_ self query pname
   = liftIO
-      (void (js_getQueryParameter (self) (maybeToNullable query) pname))
+      (void (js_getQueryParameter self (maybeToOptional query) pname))
  
 foreign import javascript unsafe "$1[\"createSampler\"]()"
-        js_createSampler ::
-        WebGL2RenderingContext -> IO (Nullable WebGLSampler)
+        js_createSampler :: WebGL2RenderingContext -> IO WebGLSampler
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createSampler Mozilla WebGL2RenderingContext.createSampler documentation> 
 createSampler ::
-              (MonadIO m) => WebGL2RenderingContext -> m (Maybe WebGLSampler)
-createSampler self
-  = liftIO (nullableToMaybe <$> (js_createSampler (self)))
+              (MonadIO m) => WebGL2RenderingContext -> m WebGLSampler
+createSampler self = liftIO (js_createSampler self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createSampler Mozilla WebGL2RenderingContext.createSampler documentation> 
 createSampler_ :: (MonadIO m) => WebGL2RenderingContext -> m ()
-createSampler_ self = liftIO (void (js_createSampler (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createSampler Mozilla WebGL2RenderingContext.createSampler documentation> 
-createSamplerUnsafe ::
-                    (MonadIO m, HasCallStack) =>
-                      WebGL2RenderingContext -> m WebGLSampler
-createSamplerUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createSampler (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createSampler Mozilla WebGL2RenderingContext.createSampler documentation> 
-createSamplerUnchecked ::
-                       (MonadIO m) => WebGL2RenderingContext -> m WebGLSampler
-createSamplerUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_createSampler (self)))
+createSampler_ self = liftIO (void (js_createSampler self))
  
 foreign import javascript unsafe "$1[\"deleteSampler\"]($2)"
         js_deleteSampler ::
-        WebGL2RenderingContext -> Nullable WebGLSampler -> IO ()
+        WebGL2RenderingContext -> Optional WebGLSampler -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.deleteSampler Mozilla WebGL2RenderingContext.deleteSampler documentation> 
 deleteSampler ::
               (MonadIO m) => WebGL2RenderingContext -> Maybe WebGLSampler -> m ()
 deleteSampler self sampler
-  = liftIO (js_deleteSampler (self) (maybeToNullable sampler))
+  = liftIO (js_deleteSampler self (maybeToOptional sampler))
  
 foreign import javascript unsafe "$1[\"isSampler\"]($2)"
         js_isSampler ::
-        WebGL2RenderingContext -> Nullable WebGLSampler -> IO GLboolean
+        WebGL2RenderingContext -> Optional WebGLSampler -> IO GLboolean
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.isSampler Mozilla WebGL2RenderingContext.isSampler documentation> 
 isSampler ::
           (MonadIO m) =>
             WebGL2RenderingContext -> Maybe WebGLSampler -> m GLboolean
 isSampler self sampler
-  = liftIO (js_isSampler (self) (maybeToNullable sampler))
+  = liftIO (js_isSampler self (maybeToOptional sampler))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.isSampler Mozilla WebGL2RenderingContext.isSampler documentation> 
 isSampler_ ::
            (MonadIO m) => WebGL2RenderingContext -> Maybe WebGLSampler -> m ()
 isSampler_ self sampler
-  = liftIO (void (js_isSampler (self) (maybeToNullable sampler)))
+  = liftIO (void (js_isSampler self (maybeToOptional sampler)))
  
 foreign import javascript unsafe "$1[\"bindSampler\"]($2, $3)"
         js_bindSampler ::
-        WebGL2RenderingContext -> GLuint -> Nullable WebGLSampler -> IO ()
+        WebGL2RenderingContext -> GLuint -> Optional WebGLSampler -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.bindSampler Mozilla WebGL2RenderingContext.bindSampler documentation> 
 bindSampler ::
             (MonadIO m) =>
               WebGL2RenderingContext -> GLuint -> Maybe WebGLSampler -> m ()
 bindSampler self unit sampler
-  = liftIO (js_bindSampler (self) unit (maybeToNullable sampler))
+  = liftIO (js_bindSampler self unit (maybeToOptional sampler))
  
 foreign import javascript unsafe
         "$1[\"samplerParameteri\"]($2, $3,\n$4)" js_samplerParameteri ::
         WebGL2RenderingContext ->
-          Nullable WebGLSampler -> GLenum -> GLint -> IO ()
+          Optional WebGLSampler -> GLenum -> GLint -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.samplerParameteri Mozilla WebGL2RenderingContext.samplerParameteri documentation> 
 samplerParameteri ::
@@ -1382,12 +1279,12 @@
                       Maybe WebGLSampler -> GLenum -> GLint -> m ()
 samplerParameteri self sampler pname param
   = liftIO
-      (js_samplerParameteri (self) (maybeToNullable sampler) pname param)
+      (js_samplerParameteri self (maybeToOptional sampler) pname param)
  
 foreign import javascript unsafe
         "$1[\"samplerParameterf\"]($2, $3,\n$4)" js_samplerParameterf ::
         WebGL2RenderingContext ->
-          Nullable WebGLSampler -> GLenum -> GLfloat -> IO ()
+          Optional WebGLSampler -> GLenum -> GLfloat -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.samplerParameterf Mozilla WebGL2RenderingContext.samplerParameterf documentation> 
 samplerParameterf ::
@@ -1396,12 +1293,12 @@
                       Maybe WebGLSampler -> GLenum -> GLfloat -> m ()
 samplerParameterf self sampler pname param
   = liftIO
-      (js_samplerParameterf (self) (maybeToNullable sampler) pname param)
+      (js_samplerParameterf self (maybeToOptional sampler) pname param)
  
 foreign import javascript unsafe
         "$1[\"getSamplerParameter\"]($2,\n$3)" js_getSamplerParameter ::
         WebGL2RenderingContext ->
-          Nullable WebGLSampler -> GLenum -> IO JSVal
+          Optional WebGLSampler -> GLenum -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getSamplerParameter Mozilla WebGL2RenderingContext.getSamplerParameter documentation> 
 getSamplerParameter ::
@@ -1409,7 +1306,7 @@
                       WebGL2RenderingContext -> Maybe WebGLSampler -> GLenum -> m JSVal
 getSamplerParameter self sampler pname
   = liftIO
-      (js_getSamplerParameter (self) (maybeToNullable sampler) pname)
+      (js_getSamplerParameter self (maybeToOptional sampler) pname)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getSamplerParameter Mozilla WebGL2RenderingContext.getSamplerParameter documentation> 
 getSamplerParameter_ ::
@@ -1418,76 +1315,55 @@
 getSamplerParameter_ self sampler pname
   = liftIO
       (void
-         (js_getSamplerParameter (self) (maybeToNullable sampler) pname))
+         (js_getSamplerParameter self (maybeToOptional sampler) pname))
  
 foreign import javascript unsafe "$1[\"fenceSync\"]($2, $3)"
         js_fenceSync ::
-        WebGL2RenderingContext ->
-          GLenum -> GLbitfield -> IO (Nullable WebGLSync)
+        WebGL2RenderingContext -> GLenum -> GLbitfield -> IO WebGLSync
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.fenceSync Mozilla WebGL2RenderingContext.fenceSync documentation> 
 fenceSync ::
           (MonadIO m) =>
-            WebGL2RenderingContext ->
-              GLenum -> GLbitfield -> m (Maybe WebGLSync)
+            WebGL2RenderingContext -> GLenum -> GLbitfield -> m WebGLSync
 fenceSync self condition flags
-  = liftIO
-      (nullableToMaybe <$> (js_fenceSync (self) condition flags))
+  = liftIO (js_fenceSync self condition flags)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.fenceSync Mozilla WebGL2RenderingContext.fenceSync documentation> 
 fenceSync_ ::
            (MonadIO m) =>
              WebGL2RenderingContext -> GLenum -> GLbitfield -> m ()
 fenceSync_ self condition flags
-  = liftIO (void (js_fenceSync (self) condition flags))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.fenceSync Mozilla WebGL2RenderingContext.fenceSync documentation> 
-fenceSyncUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  WebGL2RenderingContext -> GLenum -> GLbitfield -> m WebGLSync
-fenceSyncUnsafe self condition flags
-  = liftIO
-      ((nullableToMaybe <$> (js_fenceSync (self) condition flags)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.fenceSync Mozilla WebGL2RenderingContext.fenceSync documentation> 
-fenceSyncUnchecked ::
-                   (MonadIO m) =>
-                     WebGL2RenderingContext -> GLenum -> GLbitfield -> m WebGLSync
-fenceSyncUnchecked self condition flags
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_fenceSync (self) condition flags))
+  = liftIO (void (js_fenceSync self condition flags))
  
 foreign import javascript unsafe "$1[\"isSync\"]($2)" js_isSync ::
-        WebGL2RenderingContext -> Nullable WebGLSync -> IO GLboolean
+        WebGL2RenderingContext -> Optional WebGLSync -> IO GLboolean
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.isSync Mozilla WebGL2RenderingContext.isSync documentation> 
 isSync ::
        (MonadIO m) =>
          WebGL2RenderingContext -> Maybe WebGLSync -> m GLboolean
-isSync self sync = liftIO (js_isSync (self) (maybeToNullable sync))
+isSync self sync = liftIO (js_isSync self (maybeToOptional sync))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.isSync Mozilla WebGL2RenderingContext.isSync documentation> 
 isSync_ ::
         (MonadIO m) => WebGL2RenderingContext -> Maybe WebGLSync -> m ()
 isSync_ self sync
-  = liftIO (void (js_isSync (self) (maybeToNullable sync)))
+  = liftIO (void (js_isSync self (maybeToOptional sync)))
  
 foreign import javascript unsafe "$1[\"deleteSync\"]($2)"
         js_deleteSync ::
-        WebGL2RenderingContext -> Nullable WebGLSync -> IO ()
+        WebGL2RenderingContext -> Optional WebGLSync -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.deleteSync Mozilla WebGL2RenderingContext.deleteSync documentation> 
 deleteSync ::
            (MonadIO m) => WebGL2RenderingContext -> Maybe WebGLSync -> m ()
 deleteSync self sync
-  = liftIO (js_deleteSync (self) (maybeToNullable sync))
+  = liftIO (js_deleteSync self (maybeToOptional sync))
  
 foreign import javascript unsafe
         "$1[\"clientWaitSync\"]($2, $3, $4)" js_clientWaitSync ::
         WebGL2RenderingContext ->
-          Nullable WebGLSync -> GLbitfield -> Double -> IO GLenum
+          Optional WebGLSync -> GLbitfield -> Double -> IO GLenum
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.clientWaitSync Mozilla WebGL2RenderingContext.clientWaitSync documentation> 
 clientWaitSync ::
@@ -1496,7 +1372,7 @@
                    Maybe WebGLSync -> GLbitfield -> GLuint64 -> m GLenum
 clientWaitSync self sync flags timeout
   = liftIO
-      (js_clientWaitSync (self) (maybeToNullable sync) flags
+      (js_clientWaitSync self (maybeToOptional sync) flags
          (fromIntegral timeout))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.clientWaitSync Mozilla WebGL2RenderingContext.clientWaitSync documentation> 
@@ -1507,13 +1383,13 @@
 clientWaitSync_ self sync flags timeout
   = liftIO
       (void
-         (js_clientWaitSync (self) (maybeToNullable sync) flags
+         (js_clientWaitSync self (maybeToOptional sync) flags
             (fromIntegral timeout)))
  
 foreign import javascript unsafe "$1[\"waitSync\"]($2, $3, $4)"
         js_waitSync ::
         WebGL2RenderingContext ->
-          Nullable WebGLSync -> GLbitfield -> Double -> IO ()
+          Optional WebGLSync -> GLbitfield -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.waitSync Mozilla WebGL2RenderingContext.waitSync documentation> 
 waitSync ::
@@ -1522,19 +1398,19 @@
              Maybe WebGLSync -> GLbitfield -> GLuint64 -> m ()
 waitSync self sync flags timeout
   = liftIO
-      (js_waitSync (self) (maybeToNullable sync) flags
+      (js_waitSync self (maybeToOptional sync) flags
          (fromIntegral timeout))
  
 foreign import javascript unsafe "$1[\"getSyncParameter\"]($2, $3)"
         js_getSyncParameter ::
-        WebGL2RenderingContext -> Nullable WebGLSync -> GLenum -> IO JSVal
+        WebGL2RenderingContext -> Optional WebGLSync -> GLenum -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getSyncParameter Mozilla WebGL2RenderingContext.getSyncParameter documentation> 
 getSyncParameter ::
                  (MonadIO m) =>
                    WebGL2RenderingContext -> Maybe WebGLSync -> GLenum -> m JSVal
 getSyncParameter self sync pname
-  = liftIO (js_getSyncParameter (self) (maybeToNullable sync) pname)
+  = liftIO (js_getSyncParameter self (maybeToOptional sync) pname)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getSyncParameter Mozilla WebGL2RenderingContext.getSyncParameter documentation> 
 getSyncParameter_ ::
@@ -1542,57 +1418,39 @@
                     WebGL2RenderingContext -> Maybe WebGLSync -> GLenum -> m ()
 getSyncParameter_ self sync pname
   = liftIO
-      (void (js_getSyncParameter (self) (maybeToNullable sync) pname))
+      (void (js_getSyncParameter self (maybeToOptional sync) pname))
  
 foreign import javascript unsafe
         "$1[\"createTransformFeedback\"]()" js_createTransformFeedback ::
-        WebGL2RenderingContext -> IO (Nullable WebGLTransformFeedback)
+        WebGL2RenderingContext -> IO WebGLTransformFeedback
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createTransformFeedback Mozilla WebGL2RenderingContext.createTransformFeedback documentation> 
 createTransformFeedback ::
-                        (MonadIO m) =>
-                          WebGL2RenderingContext -> m (Maybe WebGLTransformFeedback)
+                        (MonadIO m) => WebGL2RenderingContext -> m WebGLTransformFeedback
 createTransformFeedback self
-  = liftIO (nullableToMaybe <$> (js_createTransformFeedback (self)))
+  = liftIO (js_createTransformFeedback self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createTransformFeedback Mozilla WebGL2RenderingContext.createTransformFeedback documentation> 
 createTransformFeedback_ ::
                          (MonadIO m) => WebGL2RenderingContext -> m ()
 createTransformFeedback_ self
-  = liftIO (void (js_createTransformFeedback (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createTransformFeedback Mozilla WebGL2RenderingContext.createTransformFeedback documentation> 
-createTransformFeedbackUnsafe ::
-                              (MonadIO m, HasCallStack) =>
-                                WebGL2RenderingContext -> m WebGLTransformFeedback
-createTransformFeedbackUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createTransformFeedback (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createTransformFeedback Mozilla WebGL2RenderingContext.createTransformFeedback documentation> 
-createTransformFeedbackUnchecked ::
-                                 (MonadIO m) => WebGL2RenderingContext -> m WebGLTransformFeedback
-createTransformFeedbackUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createTransformFeedback (self)))
+  = liftIO (void (js_createTransformFeedback self))
  
 foreign import javascript unsafe
         "$1[\"deleteTransformFeedback\"]($2)" js_deleteTransformFeedback ::
-        WebGL2RenderingContext -> Nullable WebGLTransformFeedback -> IO ()
+        WebGL2RenderingContext -> Optional WebGLTransformFeedback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.deleteTransformFeedback Mozilla WebGL2RenderingContext.deleteTransformFeedback documentation> 
 deleteTransformFeedback ::
                         (MonadIO m) =>
                           WebGL2RenderingContext -> Maybe WebGLTransformFeedback -> m ()
 deleteTransformFeedback self id
-  = liftIO (js_deleteTransformFeedback (self) (maybeToNullable id))
+  = liftIO (js_deleteTransformFeedback self (maybeToOptional id))
  
 foreign import javascript unsafe "$1[\"isTransformFeedback\"]($2)"
         js_isTransformFeedback ::
         WebGL2RenderingContext ->
-          Nullable WebGLTransformFeedback -> IO GLboolean
+          Optional WebGLTransformFeedback -> IO GLboolean
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.isTransformFeedback Mozilla WebGL2RenderingContext.isTransformFeedback documentation> 
 isTransformFeedback ::
@@ -1600,21 +1458,20 @@
                       WebGL2RenderingContext ->
                         Maybe WebGLTransformFeedback -> m GLboolean
 isTransformFeedback self id
-  = liftIO (js_isTransformFeedback (self) (maybeToNullable id))
+  = liftIO (js_isTransformFeedback self (maybeToOptional id))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.isTransformFeedback Mozilla WebGL2RenderingContext.isTransformFeedback documentation> 
 isTransformFeedback_ ::
                      (MonadIO m) =>
                        WebGL2RenderingContext -> Maybe WebGLTransformFeedback -> m ()
 isTransformFeedback_ self id
-  = liftIO
-      (void (js_isTransformFeedback (self) (maybeToNullable id)))
+  = liftIO (void (js_isTransformFeedback self (maybeToOptional id)))
  
 foreign import javascript unsafe
         "$1[\"bindTransformFeedback\"]($2,\n$3)" js_bindTransformFeedback
         ::
         WebGL2RenderingContext ->
-          GLenum -> Nullable WebGLTransformFeedback -> IO ()
+          GLenum -> Optional WebGLTransformFeedback -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.bindTransformFeedback Mozilla WebGL2RenderingContext.bindTransformFeedback documentation> 
 bindTransformFeedback ::
@@ -1623,7 +1480,7 @@
                           GLenum -> Maybe WebGLTransformFeedback -> m ()
 bindTransformFeedback self target id
   = liftIO
-      (js_bindTransformFeedback (self) target (maybeToNullable id))
+      (js_bindTransformFeedback self target (maybeToOptional id))
  
 foreign import javascript unsafe
         "$1[\"beginTransformFeedback\"]($2)" js_beginTransformFeedback ::
@@ -1633,7 +1490,7 @@
 beginTransformFeedback ::
                        (MonadIO m) => WebGL2RenderingContext -> GLenum -> m ()
 beginTransformFeedback self primitiveMode
-  = liftIO (js_beginTransformFeedback (self) primitiveMode)
+  = liftIO (js_beginTransformFeedback self primitiveMode)
  
 foreign import javascript unsafe "$1[\"endTransformFeedback\"]()"
         js_endTransformFeedback :: WebGL2RenderingContext -> IO ()
@@ -1641,13 +1498,13 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.endTransformFeedback Mozilla WebGL2RenderingContext.endTransformFeedback documentation> 
 endTransformFeedback ::
                      (MonadIO m) => WebGL2RenderingContext -> m ()
-endTransformFeedback self = liftIO (js_endTransformFeedback (self))
+endTransformFeedback self = liftIO (js_endTransformFeedback self)
  
 foreign import javascript unsafe
         "$1[\"transformFeedbackVaryings\"]($2,\n$3, $4)"
         js_transformFeedbackVaryings ::
         WebGL2RenderingContext ->
-          Nullable WebGLProgram -> JSVal -> GLenum -> IO ()
+          Optional WebGLProgram -> JSVal -> GLenum -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.transformFeedbackVaryings Mozilla WebGL2RenderingContext.transformFeedbackVaryings documentation> 
 transformFeedbackVaryings ::
@@ -1658,7 +1515,7 @@
   = liftIO
       (toJSVal varyings >>=
          \ varyings' ->
-           js_transformFeedbackVaryings (self) (maybeToNullable program)
+           js_transformFeedbackVaryings self (maybeToOptional program)
              varyings'
          bufferMode)
  
@@ -1666,18 +1523,17 @@
         "$1[\"getTransformFeedbackVarying\"]($2,\n$3)"
         js_getTransformFeedbackVarying ::
         WebGL2RenderingContext ->
-          Nullable WebGLProgram -> GLuint -> IO (Nullable WebGLActiveInfo)
+          Optional WebGLProgram -> GLuint -> IO WebGLActiveInfo
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getTransformFeedbackVarying Mozilla WebGL2RenderingContext.getTransformFeedbackVarying documentation> 
 getTransformFeedbackVarying ::
                             (MonadIO m) =>
                               WebGL2RenderingContext ->
-                                Maybe WebGLProgram -> GLuint -> m (Maybe WebGLActiveInfo)
+                                Maybe WebGLProgram -> GLuint -> m WebGLActiveInfo
 getTransformFeedbackVarying self program index
   = liftIO
-      (nullableToMaybe <$>
-         (js_getTransformFeedbackVarying (self) (maybeToNullable program)
-            index))
+      (js_getTransformFeedbackVarying self (maybeToOptional program)
+         index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getTransformFeedbackVarying Mozilla WebGL2RenderingContext.getTransformFeedbackVarying documentation> 
 getTransformFeedbackVarying_ ::
@@ -1686,30 +1542,7 @@
 getTransformFeedbackVarying_ self program index
   = liftIO
       (void
-         (js_getTransformFeedbackVarying (self) (maybeToNullable program)
-            index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getTransformFeedbackVarying Mozilla WebGL2RenderingContext.getTransformFeedbackVarying documentation> 
-getTransformFeedbackVaryingUnsafe ::
-                                  (MonadIO m, HasCallStack) =>
-                                    WebGL2RenderingContext ->
-                                      Maybe WebGLProgram -> GLuint -> m WebGLActiveInfo
-getTransformFeedbackVaryingUnsafe self program index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getTransformFeedbackVarying (self) (maybeToNullable program)
-             index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getTransformFeedbackVarying Mozilla WebGL2RenderingContext.getTransformFeedbackVarying documentation> 
-getTransformFeedbackVaryingUnchecked ::
-                                     (MonadIO m) =>
-                                       WebGL2RenderingContext ->
-                                         Maybe WebGLProgram -> GLuint -> m WebGLActiveInfo
-getTransformFeedbackVaryingUnchecked self program index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getTransformFeedbackVarying (self) (maybeToNullable program)
+         (js_getTransformFeedbackVarying self (maybeToOptional program)
             index))
  
 foreign import javascript unsafe "$1[\"pauseTransformFeedback\"]()"
@@ -1719,7 +1552,7 @@
 pauseTransformFeedback ::
                        (MonadIO m) => WebGL2RenderingContext -> m ()
 pauseTransformFeedback self
-  = liftIO (js_pauseTransformFeedback (self))
+  = liftIO (js_pauseTransformFeedback self)
  
 foreign import javascript unsafe
         "$1[\"resumeTransformFeedback\"]()" js_resumeTransformFeedback ::
@@ -1729,12 +1562,12 @@
 resumeTransformFeedback ::
                         (MonadIO m) => WebGL2RenderingContext -> m ()
 resumeTransformFeedback self
-  = liftIO (js_resumeTransformFeedback (self))
+  = liftIO (js_resumeTransformFeedback self)
  
 foreign import javascript unsafe
         "$1[\"bindBufferBase\"]($2, $3, $4)" js_bindBufferBase ::
         WebGL2RenderingContext ->
-          GLenum -> GLuint -> Nullable WebGLBuffer -> IO ()
+          GLenum -> GLuint -> Optional WebGLBuffer -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.bindBufferBase Mozilla WebGL2RenderingContext.bindBufferBase documentation> 
 bindBufferBase ::
@@ -1743,14 +1576,14 @@
                    GLenum -> GLuint -> Maybe WebGLBuffer -> m ()
 bindBufferBase self target index buffer
   = liftIO
-      (js_bindBufferBase (self) target index (maybeToNullable buffer))
+      (js_bindBufferBase self target index (maybeToOptional buffer))
  
 foreign import javascript unsafe
         "$1[\"bindBufferRange\"]($2, $3,\n$4, $5, $6)" js_bindBufferRange
         ::
         WebGL2RenderingContext ->
           GLenum ->
-            GLuint -> Nullable WebGLBuffer -> Double -> Double -> IO ()
+            GLuint -> Optional WebGLBuffer -> Double -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.bindBufferRange Mozilla WebGL2RenderingContext.bindBufferRange documentation> 
 bindBufferRange ::
@@ -1760,7 +1593,7 @@
                       GLuint -> Maybe WebGLBuffer -> GLintptr -> GLsizeiptr -> m ()
 bindBufferRange self target index buffer offset size
   = liftIO
-      (js_bindBufferRange (self) target index (maybeToNullable buffer)
+      (js_bindBufferRange self target index (maybeToOptional buffer)
          (fromIntegral offset)
          (fromIntegral size))
  
@@ -1773,31 +1606,29 @@
                     (MonadIO m) =>
                       WebGL2RenderingContext -> GLenum -> GLuint -> m JSVal
 getIndexedParameter self target index
-  = liftIO (js_getIndexedParameter (self) target index)
+  = liftIO (js_getIndexedParameter self target index)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getIndexedParameter Mozilla WebGL2RenderingContext.getIndexedParameter documentation> 
 getIndexedParameter_ ::
                      (MonadIO m) => WebGL2RenderingContext -> GLenum -> GLuint -> m ()
 getIndexedParameter_ self target index
-  = liftIO (void (js_getIndexedParameter (self) target index))
+  = liftIO (void (js_getIndexedParameter self target index))
  
 foreign import javascript unsafe
         "$1[\"getUniformIndices\"]($2, $3)" js_getUniformIndices ::
         WebGL2RenderingContext ->
-          Nullable WebGLProgram -> JSVal -> IO (Nullable Uint32Array)
+          Optional WebGLProgram -> JSVal -> IO Uint32Array
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getUniformIndices Mozilla WebGL2RenderingContext.getUniformIndices documentation> 
 getUniformIndices ::
                   (MonadIO m, ToJSString uniformNames) =>
                     WebGL2RenderingContext ->
-                      Maybe WebGLProgram -> [uniformNames] -> m (Maybe Uint32Array)
+                      Maybe WebGLProgram -> [uniformNames] -> m Uint32Array
 getUniformIndices self program uniformNames
   = liftIO
-      (nullableToMaybe <$>
-         (toJSVal uniformNames >>=
-            \ uniformNames' ->
-              js_getUniformIndices (self) (maybeToNullable program)
-                uniformNames'))
+      (toJSVal uniformNames >>=
+         \ uniformNames' ->
+           js_getUniformIndices self (maybeToOptional program) uniformNames')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getUniformIndices Mozilla WebGL2RenderingContext.getUniformIndices documentation> 
 getUniformIndices_ ::
@@ -1809,54 +1640,25 @@
       (void
          (toJSVal uniformNames >>=
             \ uniformNames' ->
-              js_getUniformIndices (self) (maybeToNullable program)
-                uniformNames'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getUniformIndices Mozilla WebGL2RenderingContext.getUniformIndices documentation> 
-getUniformIndicesUnsafe ::
-                        (MonadIO m, ToJSString uniformNames, HasCallStack) =>
-                          WebGL2RenderingContext ->
-                            Maybe WebGLProgram -> [uniformNames] -> m Uint32Array
-getUniformIndicesUnsafe self program uniformNames
-  = liftIO
-      ((nullableToMaybe <$>
-          (toJSVal uniformNames >>=
-             \ uniformNames' ->
-               js_getUniformIndices (self) (maybeToNullable program)
-                 uniformNames'))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getUniformIndices Mozilla WebGL2RenderingContext.getUniformIndices documentation> 
-getUniformIndicesUnchecked ::
-                           (MonadIO m, ToJSString uniformNames) =>
-                             WebGL2RenderingContext ->
-                               Maybe WebGLProgram -> [uniformNames] -> m Uint32Array
-getUniformIndicesUnchecked self program uniformNames
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (toJSVal uniformNames >>=
-            \ uniformNames' ->
-              js_getUniformIndices (self) (maybeToNullable program)
-                uniformNames'))
+              js_getUniformIndices self (maybeToOptional program) uniformNames'))
  
 foreign import javascript unsafe
         "$1[\"getActiveUniforms\"]($2, $3,\n$4)" js_getActiveUniforms ::
         WebGL2RenderingContext ->
-          Nullable WebGLProgram ->
-            Nullable Uint32Array -> GLenum -> IO (Nullable Int32Array)
+          Optional WebGLProgram ->
+            Optional Uint32Array -> GLenum -> IO Int32Array
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getActiveUniforms Mozilla WebGL2RenderingContext.getActiveUniforms documentation> 
 getActiveUniforms ::
                   (MonadIO m, IsUint32Array uniformIndices) =>
                     WebGL2RenderingContext ->
                       Maybe WebGLProgram ->
-                        Maybe uniformIndices -> GLenum -> m (Maybe Int32Array)
+                        Maybe uniformIndices -> GLenum -> m Int32Array
 getActiveUniforms self program uniformIndices pname
   = liftIO
-      (nullableToMaybe <$>
-         (js_getActiveUniforms (self) (maybeToNullable program)
-            (maybeToNullable (fmap toUint32Array uniformIndices))
-            pname))
+      (js_getActiveUniforms self (maybeToOptional program)
+         (maybeToOptional (fmap toUint32Array uniformIndices))
+         pname)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getActiveUniforms Mozilla WebGL2RenderingContext.getActiveUniforms documentation> 
 getActiveUniforms_ ::
@@ -1866,41 +1668,14 @@
 getActiveUniforms_ self program uniformIndices pname
   = liftIO
       (void
-         (js_getActiveUniforms (self) (maybeToNullable program)
-            (maybeToNullable (fmap toUint32Array uniformIndices))
-            pname))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getActiveUniforms Mozilla WebGL2RenderingContext.getActiveUniforms documentation> 
-getActiveUniformsUnsafe ::
-                        (MonadIO m, IsUint32Array uniformIndices, HasCallStack) =>
-                          WebGL2RenderingContext ->
-                            Maybe WebGLProgram ->
-                              Maybe uniformIndices -> GLenum -> m Int32Array
-getActiveUniformsUnsafe self program uniformIndices pname
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getActiveUniforms (self) (maybeToNullable program)
-             (maybeToNullable (fmap toUint32Array uniformIndices))
-             pname))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getActiveUniforms Mozilla WebGL2RenderingContext.getActiveUniforms documentation> 
-getActiveUniformsUnchecked ::
-                           (MonadIO m, IsUint32Array uniformIndices) =>
-                             WebGL2RenderingContext ->
-                               Maybe WebGLProgram ->
-                                 Maybe uniformIndices -> GLenum -> m Int32Array
-getActiveUniformsUnchecked self program uniformIndices pname
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getActiveUniforms (self) (maybeToNullable program)
-            (maybeToNullable (fmap toUint32Array uniformIndices))
+         (js_getActiveUniforms self (maybeToOptional program)
+            (maybeToOptional (fmap toUint32Array uniformIndices))
             pname))
  
 foreign import javascript unsafe
         "$1[\"getUniformBlockIndex\"]($2,\n$3)" js_getUniformBlockIndex ::
         WebGL2RenderingContext ->
-          Nullable WebGLProgram -> JSString -> IO GLuint
+          Optional WebGLProgram -> JSString -> IO GLuint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getUniformBlockIndex Mozilla WebGL2RenderingContext.getUniformBlockIndex documentation> 
 getUniformBlockIndex ::
@@ -1909,7 +1684,7 @@
                          Maybe WebGLProgram -> uniformBlockName -> m GLuint
 getUniformBlockIndex self program uniformBlockName
   = liftIO
-      (js_getUniformBlockIndex (self) (maybeToNullable program)
+      (js_getUniformBlockIndex self (maybeToOptional program)
          (toJSString uniformBlockName))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getUniformBlockIndex Mozilla WebGL2RenderingContext.getUniformBlockIndex documentation> 
@@ -1920,14 +1695,14 @@
 getUniformBlockIndex_ self program uniformBlockName
   = liftIO
       (void
-         (js_getUniformBlockIndex (self) (maybeToNullable program)
+         (js_getUniformBlockIndex self (maybeToOptional program)
             (toJSString uniformBlockName)))
  
 foreign import javascript unsafe
         "$1[\"getActiveUniformBlockParameter\"]($2,\n$3, $4)"
         js_getActiveUniformBlockParameter ::
         WebGL2RenderingContext ->
-          Nullable WebGLProgram -> GLuint -> GLenum -> IO JSVal
+          Optional WebGLProgram -> GLuint -> GLenum -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getActiveUniformBlockParameter Mozilla WebGL2RenderingContext.getActiveUniformBlockParameter documentation> 
 getActiveUniformBlockParameter ::
@@ -1936,7 +1711,7 @@
                                    Maybe WebGLProgram -> GLuint -> GLenum -> m JSVal
 getActiveUniformBlockParameter self program uniformBlockIndex pname
   = liftIO
-      (js_getActiveUniformBlockParameter (self) (maybeToNullable program)
+      (js_getActiveUniformBlockParameter self (maybeToOptional program)
          uniformBlockIndex
          pname)
 
@@ -1949,7 +1724,7 @@
   pname
   = liftIO
       (void
-         (js_getActiveUniformBlockParameter (self) (maybeToNullable program)
+         (js_getActiveUniformBlockParameter self (maybeToOptional program)
             uniformBlockIndex
             pname))
  
@@ -1957,7 +1732,7 @@
         "$1[\"getActiveUniformBlockName\"]($2,\n$3)"
         js_getActiveUniformBlockName ::
         WebGL2RenderingContext ->
-          Nullable WebGLProgram -> GLuint -> IO JSVal
+          Optional WebGLProgram -> GLuint -> IO JSVal
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getActiveUniformBlockName Mozilla WebGL2RenderingContext.getActiveUniformBlockName documentation> 
 getActiveUniformBlockName ::
@@ -1965,7 +1740,7 @@
                             WebGL2RenderingContext -> Maybe WebGLProgram -> GLuint -> m JSVal
 getActiveUniformBlockName self program uniformBlockIndex
   = liftIO
-      (js_getActiveUniformBlockName (self) (maybeToNullable program)
+      (js_getActiveUniformBlockName self (maybeToOptional program)
          uniformBlockIndex)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.getActiveUniformBlockName Mozilla WebGL2RenderingContext.getActiveUniformBlockName documentation> 
@@ -1975,14 +1750,14 @@
 getActiveUniformBlockName_ self program uniformBlockIndex
   = liftIO
       (void
-         (js_getActiveUniformBlockName (self) (maybeToNullable program)
+         (js_getActiveUniformBlockName self (maybeToOptional program)
             uniformBlockIndex))
  
 foreign import javascript unsafe
         "$1[\"uniformBlockBinding\"]($2,\n$3, $4)" js_uniformBlockBinding
         ::
         WebGL2RenderingContext ->
-          Nullable WebGLProgram -> GLuint -> GLuint -> IO ()
+          Optional WebGLProgram -> GLuint -> GLuint -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.uniformBlockBinding Mozilla WebGL2RenderingContext.uniformBlockBinding documentation> 
 uniformBlockBinding ::
@@ -1992,58 +1767,38 @@
 uniformBlockBinding self program uniformBlockIndex
   uniformBlockBinding
   = liftIO
-      (js_uniformBlockBinding (self) (maybeToNullable program)
+      (js_uniformBlockBinding self (maybeToOptional program)
          uniformBlockIndex
          uniformBlockBinding)
  
 foreign import javascript unsafe "$1[\"createVertexArray\"]()"
         js_createVertexArray ::
-        WebGL2RenderingContext -> IO (Nullable WebGLVertexArrayObject)
+        WebGL2RenderingContext -> IO WebGLVertexArrayObject
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createVertexArray Mozilla WebGL2RenderingContext.createVertexArray documentation> 
 createVertexArray ::
-                  (MonadIO m) =>
-                    WebGL2RenderingContext -> m (Maybe WebGLVertexArrayObject)
-createVertexArray self
-  = liftIO (nullableToMaybe <$> (js_createVertexArray (self)))
+                  (MonadIO m) => WebGL2RenderingContext -> m WebGLVertexArrayObject
+createVertexArray self = liftIO (js_createVertexArray self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createVertexArray Mozilla WebGL2RenderingContext.createVertexArray documentation> 
 createVertexArray_ :: (MonadIO m) => WebGL2RenderingContext -> m ()
-createVertexArray_ self
-  = liftIO (void (js_createVertexArray (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createVertexArray Mozilla WebGL2RenderingContext.createVertexArray documentation> 
-createVertexArrayUnsafe ::
-                        (MonadIO m, HasCallStack) =>
-                          WebGL2RenderingContext -> m WebGLVertexArrayObject
-createVertexArrayUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_createVertexArray (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.createVertexArray Mozilla WebGL2RenderingContext.createVertexArray documentation> 
-createVertexArrayUnchecked ::
-                           (MonadIO m) => WebGL2RenderingContext -> m WebGLVertexArrayObject
-createVertexArrayUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_createVertexArray (self)))
+createVertexArray_ self = liftIO (void (js_createVertexArray self))
  
 foreign import javascript unsafe "$1[\"deleteVertexArray\"]($2)"
         js_deleteVertexArray ::
-        WebGL2RenderingContext -> Nullable WebGLVertexArrayObject -> IO ()
+        WebGL2RenderingContext -> Optional WebGLVertexArrayObject -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.deleteVertexArray Mozilla WebGL2RenderingContext.deleteVertexArray documentation> 
 deleteVertexArray ::
                   (MonadIO m) =>
                     WebGL2RenderingContext -> Maybe WebGLVertexArrayObject -> m ()
 deleteVertexArray self vertexArray
-  = liftIO
-      (js_deleteVertexArray (self) (maybeToNullable vertexArray))
+  = liftIO (js_deleteVertexArray self (maybeToOptional vertexArray))
  
 foreign import javascript unsafe "$1[\"isVertexArray\"]($2)"
         js_isVertexArray ::
         WebGL2RenderingContext ->
-          Nullable WebGLVertexArrayObject -> IO GLboolean
+          Optional WebGLVertexArrayObject -> IO GLboolean
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.isVertexArray Mozilla WebGL2RenderingContext.isVertexArray documentation> 
 isVertexArray ::
@@ -2051,7 +1806,7 @@
                 WebGL2RenderingContext ->
                   Maybe WebGLVertexArrayObject -> m GLboolean
 isVertexArray self vertexArray
-  = liftIO (js_isVertexArray (self) (maybeToNullable vertexArray))
+  = liftIO (js_isVertexArray self (maybeToOptional vertexArray))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.isVertexArray Mozilla WebGL2RenderingContext.isVertexArray documentation> 
 isVertexArray_ ::
@@ -2059,18 +1814,18 @@
                  WebGL2RenderingContext -> Maybe WebGLVertexArrayObject -> m ()
 isVertexArray_ self vertexArray
   = liftIO
-      (void (js_isVertexArray (self) (maybeToNullable vertexArray)))
+      (void (js_isVertexArray self (maybeToOptional vertexArray)))
  
 foreign import javascript unsafe "$1[\"bindVertexArray\"]($2)"
         js_bindVertexArray ::
-        WebGL2RenderingContext -> Nullable WebGLVertexArrayObject -> IO ()
+        WebGL2RenderingContext -> Optional WebGLVertexArrayObject -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext.bindVertexArray Mozilla WebGL2RenderingContext.bindVertexArray documentation> 
 bindVertexArray ::
                 (MonadIO m) =>
                   WebGL2RenderingContext -> Maybe WebGLVertexArrayObject -> m ()
 bindVertexArray self vertexArray
-  = liftIO (js_bindVertexArray (self) (maybeToNullable vertexArray))
+  = liftIO (js_bindVertexArray self (maybeToOptional vertexArray))
 pattern READ_BUFFER = 3074
 pattern UNPACK_ROW_LENGTH = 3314
 pattern UNPACK_SKIP_ROWS = 3315
@@ -2352,4 +2107,5 @@
 pattern MAX_ELEMENT_INDEX = 36203
 pattern NUM_SAMPLE_COUNTS = 37760
 pattern TEXTURE_IMMUTABLE_LEVELS = 33503
+pattern VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 35070
 pattern TIMEOUT_IGNORED = 18446744073709551615
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLActiveInfo.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLActiveInfo.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLActiveInfo.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLActiveInfo.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,14 +31,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLActiveInfo.size Mozilla WebGLActiveInfo.size documentation> 
 getSize :: (MonadIO m) => WebGLActiveInfo -> m Int
-getSize self = liftIO (js_getSize (self))
+getSize self = liftIO (js_getSize self)
  
 foreign import javascript unsafe "$1[\"type\"]" js_getType ::
         WebGLActiveInfo -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLActiveInfo.type Mozilla WebGLActiveInfo.type documentation> 
 getType :: (MonadIO m) => WebGLActiveInfo -> m Word
-getType self = liftIO (js_getType (self))
+getType self = liftIO (js_getType self)
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         WebGLActiveInfo -> IO JSString
@@ -45,4 +46,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLActiveInfo.name Mozilla WebGLActiveInfo.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => WebGLActiveInfo -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTextureATC.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTextureATC.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTextureATC.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTextureATC.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTexturePVRTC.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTexturePVRTC.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTexturePVRTC.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTexturePVRTC.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTextureS3TC.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTextureS3TC.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTextureS3TC.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLCompressedTextureS3TC.hs
@@ -14,7 +14,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLContextAttributes.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLContextAttributes.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLContextAttributes.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.WebGLContextAttributes
-       (js_setAlpha, setAlpha, js_getAlpha, getAlpha, js_setDepth,
-        setDepth, js_getDepth, getDepth, js_setStencil, setStencil,
-        js_getStencil, getStencil, js_setAntialias, setAntialias,
-        js_getAntialias, getAntialias, js_setPremultipliedAlpha,
-        setPremultipliedAlpha, js_getPremultipliedAlpha,
-        getPremultipliedAlpha, js_setPreserveDrawingBuffer,
-        setPreserveDrawingBuffer, js_getPreserveDrawingBuffer,
-        getPreserveDrawingBuffer, WebGLContextAttributes(..),
-        gTypeWebGLContextAttributes)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"alpha\"] = $2;" js_setAlpha
-        :: WebGLContextAttributes -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.alpha Mozilla WebGLContextAttributes.alpha documentation> 
-setAlpha :: (MonadIO m) => WebGLContextAttributes -> Bool -> m ()
-setAlpha self val = liftIO (js_setAlpha (self) val)
- 
-foreign import javascript unsafe "($1[\"alpha\"] ? 1 : 0)"
-        js_getAlpha :: WebGLContextAttributes -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.alpha Mozilla WebGLContextAttributes.alpha documentation> 
-getAlpha :: (MonadIO m) => WebGLContextAttributes -> m Bool
-getAlpha self = liftIO (js_getAlpha (self))
- 
-foreign import javascript unsafe "$1[\"depth\"] = $2;" js_setDepth
-        :: WebGLContextAttributes -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.depth Mozilla WebGLContextAttributes.depth documentation> 
-setDepth :: (MonadIO m) => WebGLContextAttributes -> Bool -> m ()
-setDepth self val = liftIO (js_setDepth (self) val)
- 
-foreign import javascript unsafe "($1[\"depth\"] ? 1 : 0)"
-        js_getDepth :: WebGLContextAttributes -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.depth Mozilla WebGLContextAttributes.depth documentation> 
-getDepth :: (MonadIO m) => WebGLContextAttributes -> m Bool
-getDepth self = liftIO (js_getDepth (self))
- 
-foreign import javascript unsafe "$1[\"stencil\"] = $2;"
-        js_setStencil :: WebGLContextAttributes -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.stencil Mozilla WebGLContextAttributes.stencil documentation> 
-setStencil :: (MonadIO m) => WebGLContextAttributes -> Bool -> m ()
-setStencil self val = liftIO (js_setStencil (self) val)
- 
-foreign import javascript unsafe "($1[\"stencil\"] ? 1 : 0)"
-        js_getStencil :: WebGLContextAttributes -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.stencil Mozilla WebGLContextAttributes.stencil documentation> 
-getStencil :: (MonadIO m) => WebGLContextAttributes -> m Bool
-getStencil self = liftIO (js_getStencil (self))
- 
-foreign import javascript unsafe "$1[\"antialias\"] = $2;"
-        js_setAntialias :: WebGLContextAttributes -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.antialias Mozilla WebGLContextAttributes.antialias documentation> 
-setAntialias ::
-             (MonadIO m) => WebGLContextAttributes -> Bool -> m ()
-setAntialias self val = liftIO (js_setAntialias (self) val)
- 
-foreign import javascript unsafe "($1[\"antialias\"] ? 1 : 0)"
-        js_getAntialias :: WebGLContextAttributes -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.antialias Mozilla WebGLContextAttributes.antialias documentation> 
-getAntialias :: (MonadIO m) => WebGLContextAttributes -> m Bool
-getAntialias self = liftIO (js_getAntialias (self))
- 
-foreign import javascript unsafe "$1[\"premultipliedAlpha\"] = $2;"
-        js_setPremultipliedAlpha :: WebGLContextAttributes -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.premultipliedAlpha Mozilla WebGLContextAttributes.premultipliedAlpha documentation> 
-setPremultipliedAlpha ::
-                      (MonadIO m) => WebGLContextAttributes -> Bool -> m ()
-setPremultipliedAlpha self val
-  = liftIO (js_setPremultipliedAlpha (self) val)
- 
-foreign import javascript unsafe
-        "($1[\"premultipliedAlpha\"] ? 1 : 0)" js_getPremultipliedAlpha ::
-        WebGLContextAttributes -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.premultipliedAlpha Mozilla WebGLContextAttributes.premultipliedAlpha documentation> 
-getPremultipliedAlpha ::
-                      (MonadIO m) => WebGLContextAttributes -> m Bool
-getPremultipliedAlpha self
-  = liftIO (js_getPremultipliedAlpha (self))
- 
-foreign import javascript unsafe
-        "$1[\"preserveDrawingBuffer\"] = $2;" js_setPreserveDrawingBuffer
-        :: WebGLContextAttributes -> Bool -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.preserveDrawingBuffer Mozilla WebGLContextAttributes.preserveDrawingBuffer documentation> 
-setPreserveDrawingBuffer ::
-                         (MonadIO m) => WebGLContextAttributes -> Bool -> m ()
-setPreserveDrawingBuffer self val
-  = liftIO (js_setPreserveDrawingBuffer (self) val)
- 
-foreign import javascript unsafe
-        "($1[\"preserveDrawingBuffer\"] ? 1 : 0)"
-        js_getPreserveDrawingBuffer :: WebGLContextAttributes -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes.preserveDrawingBuffer Mozilla WebGLContextAttributes.preserveDrawingBuffer documentation> 
-getPreserveDrawingBuffer ::
-                         (MonadIO m) => WebGLContextAttributes -> m Bool
-getPreserveDrawingBuffer self
-  = liftIO (js_getPreserveDrawingBuffer (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLContextEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLContextEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLContextEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLContextEvent.hs
@@ -4,14 +4,15 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WebGLContextEvent
-       (js_getStatusMessage, getStatusMessage, WebGLContextEvent(..),
+       (js_newWebGLContextEvent, newWebGLContextEvent,
+        js_getStatusMessage, getStatusMessage, WebGLContextEvent(..),
         gTypeWebGLContextEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,11 +21,26 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"WebGLContextEvent\"]($1,\n$2)"
+        js_newWebGLContextEvent ::
+        JSString -> Optional WebGLContextEventInit -> IO WebGLContextEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextEvent Mozilla WebGLContextEvent documentation> 
+newWebGLContextEvent ::
+                     (MonadIO m, ToJSString type') =>
+                       type' -> Maybe WebGLContextEventInit -> m WebGLContextEvent
+newWebGLContextEvent type' eventInit
+  = liftIO
+      (js_newWebGLContextEvent (toJSString type')
+         (maybeToOptional eventInit))
+ 
 foreign import javascript unsafe "$1[\"statusMessage\"]"
         js_getStatusMessage :: WebGLContextEvent -> IO JSString
 
@@ -32,4 +48,4 @@
 getStatusMessage ::
                  (MonadIO m, FromJSString result) => WebGLContextEvent -> m result
 getStatusMessage self
-  = liftIO (fromJSString <$> (js_getStatusMessage (self)))
+  = liftIO (fromJSString <$> (js_getStatusMessage self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLDebugRendererInfo.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLDebugRendererInfo.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLDebugRendererInfo.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLDebugRendererInfo.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLDebugShaders.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLDebugShaders.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLDebugShaders.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLDebugShaders.hs
@@ -13,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -22,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,7 +31,7 @@
 foreign import javascript unsafe
         "$1[\"getTranslatedShaderSource\"]($2)"
         js_getTranslatedShaderSource ::
-        WebGLDebugShaders -> Nullable WebGLShader -> IO (Nullable JSString)
+        WebGLDebugShaders -> Optional WebGLShader -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugShaders.getTranslatedShaderSource Mozilla WebGLDebugShaders.getTranslatedShaderSource documentation> 
 getTranslatedShaderSource ::
@@ -39,15 +40,14 @@
 getTranslatedShaderSource self shader
   = liftIO
       (fromMaybeJSString <$>
-         (js_getTranslatedShaderSource (self) (maybeToNullable shader)))
+         (js_getTranslatedShaderSource self (maybeToOptional shader)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugShaders.getTranslatedShaderSource Mozilla WebGLDebugShaders.getTranslatedShaderSource documentation> 
 getTranslatedShaderSource_ ::
                            (MonadIO m) => WebGLDebugShaders -> Maybe WebGLShader -> m ()
 getTranslatedShaderSource_ self shader
   = liftIO
-      (void
-         (js_getTranslatedShaderSource (self) (maybeToNullable shader)))
+      (void (js_getTranslatedShaderSource self (maybeToOptional shader)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugShaders.getTranslatedShaderSource Mozilla WebGLDebugShaders.getTranslatedShaderSource documentation> 
 getTranslatedShaderSourceUnsafe ::
@@ -56,7 +56,7 @@
 getTranslatedShaderSourceUnsafe self shader
   = liftIO
       ((fromMaybeJSString <$>
-          (js_getTranslatedShaderSource (self) (maybeToNullable shader)))
+          (js_getTranslatedShaderSource self (maybeToOptional shader)))
          >>= maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugShaders.getTranslatedShaderSource Mozilla WebGLDebugShaders.getTranslatedShaderSource documentation> 
@@ -66,4 +66,4 @@
 getTranslatedShaderSourceUnchecked self shader
   = liftIO
       (fromJust . fromMaybeJSString <$>
-         (js_getTranslatedShaderSource (self) (maybeToNullable shader)))
+         (js_getTranslatedShaderSource self (maybeToOptional shader)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLDepthTexture.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLDepthTexture.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLDepthTexture.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLDepthTexture.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLDrawBuffers.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLDrawBuffers.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLDrawBuffers.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLDrawBuffers.hs
@@ -29,7 +29,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -38,6 +38,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -52,7 +53,7 @@
 drawBuffersWEBGL self buffers
   = liftIO
       (toJSVal buffers >>=
-         \ buffers' -> js_drawBuffersWEBGL (self) buffers')
+         \ buffers' -> js_drawBuffersWEBGL self buffers')
 pattern COLOR_ATTACHMENT0_WEBGL = 36064
 pattern COLOR_ATTACHMENT1_WEBGL = 36065
 pattern COLOR_ATTACHMENT2_WEBGL = 36066
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLLoseContext.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLLoseContext.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLLoseContext.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLLoseContext.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -30,11 +31,11 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLLoseContext.loseContext Mozilla WebGLLoseContext.loseContext documentation> 
 loseContext :: (MonadIO m) => WebGLLoseContext -> m ()
-loseContext self = liftIO (js_loseContext (self))
+loseContext self = liftIO (js_loseContext self)
  
 foreign import javascript unsafe "$1[\"restoreContext\"]()"
         js_restoreContext :: WebGLLoseContext -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLLoseContext.restoreContext Mozilla WebGLLoseContext.restoreContext documentation> 
 restoreContext :: (MonadIO m) => WebGLLoseContext -> m ()
-restoreContext self = liftIO (js_restoreContext (self))
+restoreContext self = liftIO (js_restoreContext self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLRenderingContextBase.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLRenderingContextBase.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLRenderingContextBase.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLRenderingContextBase.hs
@@ -11,3448 +11,3084 @@
         js_blendColor, blendColor, js_blendEquation, blendEquation,
         js_blendEquationSeparate, blendEquationSeparate, js_blendFunc,
         blendFunc, js_blendFuncSeparate, blendFuncSeparate, js_bufferData,
-        bufferData, js_bufferDataView, bufferDataView, js_bufferDataPtr,
-        bufferDataPtr, js_bufferSubData, bufferSubData,
-        js_bufferSubDataView, bufferSubDataView, js_checkFramebufferStatus,
-        checkFramebufferStatus, checkFramebufferStatus_, js_clear, clear,
-        js_clearColor, clearColor, js_clearDepth, clearDepth,
-        js_clearStencil, clearStencil, js_colorMask, colorMask,
-        js_compileShader, compileShader, js_compressedTexImage2D,
-        compressedTexImage2D, js_compressedTexSubImage2D,
-        compressedTexSubImage2D, js_copyTexImage2D, copyTexImage2D,
-        js_copyTexSubImage2D, copyTexSubImage2D, js_createBuffer,
-        createBuffer, createBuffer_, createBufferUnsafe,
-        createBufferUnchecked, js_createFramebuffer, createFramebuffer,
-        createFramebuffer_, createFramebufferUnsafe,
-        createFramebufferUnchecked, js_createProgram, createProgram,
-        createProgram_, createProgramUnsafe, createProgramUnchecked,
-        js_createRenderbuffer, createRenderbuffer, createRenderbuffer_,
-        createRenderbufferUnsafe, createRenderbufferUnchecked,
-        js_createShader, createShader, createShader_, createShaderUnsafe,
-        createShaderUnchecked, js_createTexture, createTexture,
-        createTexture_, createTextureUnsafe, createTextureUnchecked,
-        js_cullFace, cullFace, js_deleteBuffer, deleteBuffer,
-        js_deleteFramebuffer, deleteFramebuffer, js_deleteProgram,
-        deleteProgram, js_deleteRenderbuffer, deleteRenderbuffer,
-        js_deleteShader, deleteShader, js_deleteTexture, deleteTexture,
-        js_depthFunc, depthFunc, js_depthMask, depthMask, js_depthRange,
-        depthRange, js_detachShader, detachShader, js_disable, disable,
-        js_disableVertexAttribArray, disableVertexAttribArray,
-        js_drawArrays, drawArrays, js_drawElements, drawElements,
-        js_enable, enable, js_enableVertexAttribArray,
-        enableVertexAttribArray, js_finish, finish, js_flush, flush,
-        js_framebufferRenderbuffer, framebufferRenderbuffer,
-        js_framebufferTexture2D, framebufferTexture2D, js_frontFace,
-        frontFace, js_generateMipmap, generateMipmap, js_getActiveAttrib,
-        getActiveAttrib, getActiveAttrib_, getActiveAttribUnsafe,
-        getActiveAttribUnchecked, js_getActiveUniform, getActiveUniform,
-        getActiveUniform_, getActiveUniformUnsafe,
-        getActiveUniformUnchecked, js_getAttachedShaders,
-        getAttachedShaders, js_getAttribLocation, getAttribLocation,
-        getAttribLocation_, js_getBufferParameter, getBufferParameter,
-        getBufferParameter_, js_getContextAttributes, getContextAttributes,
-        getContextAttributes_, getContextAttributesUnsafe,
-        getContextAttributesUnchecked, js_getError, getError, getError_,
-        js_getExtension, getExtension, getExtension_,
-        js_getFramebufferAttachmentParameter,
-        getFramebufferAttachmentParameter,
-        getFramebufferAttachmentParameter_, js_getParameter, getParameter,
-        getParameter_, js_getProgramParameter, getProgramParameter,
-        getProgramParameter_, js_getProgramInfoLog, getProgramInfoLog,
-        getProgramInfoLog_, getProgramInfoLogUnsafe,
-        getProgramInfoLogUnchecked, js_getRenderbufferParameter,
-        getRenderbufferParameter, getRenderbufferParameter_,
-        js_getShaderParameter, getShaderParameter, getShaderParameter_,
-        js_getShaderInfoLog, getShaderInfoLog, getShaderInfoLog_,
-        getShaderInfoLogUnsafe, getShaderInfoLogUnchecked,
-        js_getShaderPrecisionFormat, getShaderPrecisionFormat,
-        getShaderPrecisionFormat_, getShaderPrecisionFormatUnsafe,
-        getShaderPrecisionFormatUnchecked, js_getShaderSource,
-        getShaderSource, getShaderSource_, getShaderSourceUnsafe,
-        getShaderSourceUnchecked, js_getSupportedExtensions,
-        getSupportedExtensions, getSupportedExtensions_,
-        js_getTexParameter, getTexParameter, getTexParameter_,
-        js_getUniform, getUniform, getUniform_, js_getUniformLocation,
-        getUniformLocation, getUniformLocation_, getUniformLocationUnsafe,
-        getUniformLocationUnchecked, js_getVertexAttrib, getVertexAttrib,
-        getVertexAttrib_, js_getVertexAttribOffset, getVertexAttribOffset,
-        getVertexAttribOffset_, js_hint, hint, js_isBuffer, isBuffer,
-        isBuffer_, js_isContextLost, isContextLost, isContextLost_,
-        js_isEnabled, isEnabled, isEnabled_, js_isFramebuffer,
-        isFramebuffer, isFramebuffer_, js_isProgram, isProgram, isProgram_,
-        js_isRenderbuffer, isRenderbuffer, isRenderbuffer_, js_isShader,
-        isShader, isShader_, js_isTexture, isTexture, isTexture_,
-        js_lineWidth, lineWidth, js_linkProgram, linkProgram,
-        js_pixelStorei, pixelStorei, js_polygonOffset, polygonOffset,
-        js_readPixels, readPixels, js_releaseShaderCompiler,
-        releaseShaderCompiler, js_renderbufferStorage, renderbufferStorage,
-        js_sampleCoverage, sampleCoverage, js_scissor, scissor,
-        js_shaderSource, shaderSource, js_stencilFunc, stencilFunc,
-        js_stencilFuncSeparate, stencilFuncSeparate, js_stencilMask,
-        stencilMask, js_stencilMaskSeparate, stencilMaskSeparate,
-        js_stencilOp, stencilOp, js_stencilOpSeparate, stencilOpSeparate,
-        js_texParameterf, texParameterf, js_texParameteri, texParameteri,
-        js_texImage2DView, texImage2DView, js_texImage2DData,
-        texImage2DData, js_texImage2D, texImage2D, js_texImage2DCanvas,
-        texImage2DCanvas, js_texImage2DVideo, texImage2DVideo,
-        js_texSubImage2DView, texSubImage2DView, js_texSubImage2DData,
-        texSubImage2DData, js_texSubImage2D, texSubImage2D,
-        js_texSubImage2DCanvas, texSubImage2DCanvas, js_texSubImage2DVideo,
-        texSubImage2DVideo, js_uniform1f, uniform1f, js_uniform1fv,
-        uniform1fv, js_uniform1i, uniform1i, js_uniform1iv, uniform1iv,
-        js_uniform2f, uniform2f, js_uniform2fv, uniform2fv, js_uniform2i,
-        uniform2i, js_uniform2iv, uniform2iv, js_uniform3f, uniform3f,
-        js_uniform3fv, uniform3fv, js_uniform3i, uniform3i, js_uniform3iv,
-        uniform3iv, js_uniform4f, uniform4f, js_uniform4fv, uniform4fv,
-        js_uniform4i, uniform4i, js_uniform4iv, uniform4iv,
-        js_uniformMatrix2fv, uniformMatrix2fv, js_uniformMatrix3fv,
-        uniformMatrix3fv, js_uniformMatrix4fv, uniformMatrix4fv,
-        js_useProgram, useProgram, js_validateProgram, validateProgram,
-        js_vertexAttrib1f, vertexAttrib1f, js_vertexAttrib1fv,
-        vertexAttrib1fv, js_vertexAttrib2f, vertexAttrib2f,
-        js_vertexAttrib2fv, vertexAttrib2fv, js_vertexAttrib3f,
-        vertexAttrib3f, js_vertexAttrib3fv, vertexAttrib3fv,
-        js_vertexAttrib4f, vertexAttrib4f, js_vertexAttrib4fv,
-        vertexAttrib4fv, js_vertexAttribPointer, vertexAttribPointer,
-        js_viewport, viewport, pattern DEPTH_BUFFER_BIT,
-        pattern STENCIL_BUFFER_BIT, pattern COLOR_BUFFER_BIT,
-        pattern POINTS, pattern LINES, pattern LINE_LOOP,
-        pattern LINE_STRIP, pattern TRIANGLES, pattern TRIANGLE_STRIP,
-        pattern TRIANGLE_FAN, pattern ZERO, pattern ONE, pattern SRC_COLOR,
-        pattern ONE_MINUS_SRC_COLOR, pattern SRC_ALPHA,
-        pattern ONE_MINUS_SRC_ALPHA, pattern DST_ALPHA,
-        pattern ONE_MINUS_DST_ALPHA, pattern DST_COLOR,
-        pattern ONE_MINUS_DST_COLOR, pattern SRC_ALPHA_SATURATE,
-        pattern FUNC_ADD, pattern BLEND_EQUATION,
-        pattern BLEND_EQUATION_RGB, pattern BLEND_EQUATION_ALPHA,
-        pattern FUNC_SUBTRACT, pattern FUNC_REVERSE_SUBTRACT,
-        pattern BLEND_DST_RGB, pattern BLEND_SRC_RGB,
-        pattern BLEND_DST_ALPHA, pattern BLEND_SRC_ALPHA,
-        pattern CONSTANT_COLOR, pattern ONE_MINUS_CONSTANT_COLOR,
-        pattern CONSTANT_ALPHA, pattern ONE_MINUS_CONSTANT_ALPHA,
-        pattern BLEND_COLOR, pattern ARRAY_BUFFER,
-        pattern ELEMENT_ARRAY_BUFFER, pattern ARRAY_BUFFER_BINDING,
-        pattern ELEMENT_ARRAY_BUFFER_BINDING, pattern STREAM_DRAW,
-        pattern STATIC_DRAW, pattern DYNAMIC_DRAW, pattern BUFFER_SIZE,
-        pattern BUFFER_USAGE, pattern CURRENT_VERTEX_ATTRIB, pattern FRONT,
-        pattern BACK, pattern FRONT_AND_BACK, pattern TEXTURE_2D,
-        pattern CULL_FACE, pattern BLEND, pattern DITHER,
-        pattern STENCIL_TEST, pattern DEPTH_TEST, pattern SCISSOR_TEST,
-        pattern POLYGON_OFFSET_FILL, pattern SAMPLE_ALPHA_TO_COVERAGE,
-        pattern SAMPLE_COVERAGE, pattern NO_ERROR, pattern INVALID_ENUM,
-        pattern INVALID_VALUE, pattern INVALID_OPERATION,
-        pattern OUT_OF_MEMORY, pattern CW, pattern CCW, pattern LINE_WIDTH,
-        pattern ALIASED_POINT_SIZE_RANGE, pattern ALIASED_LINE_WIDTH_RANGE,
-        pattern CULL_FACE_MODE, pattern FRONT_FACE, pattern DEPTH_RANGE,
-        pattern DEPTH_WRITEMASK, pattern DEPTH_CLEAR_VALUE,
-        pattern DEPTH_FUNC, pattern STENCIL_CLEAR_VALUE,
-        pattern STENCIL_FUNC, pattern STENCIL_FAIL,
-        pattern STENCIL_PASS_DEPTH_FAIL, pattern STENCIL_PASS_DEPTH_PASS,
-        pattern STENCIL_REF, pattern STENCIL_VALUE_MASK,
-        pattern STENCIL_WRITEMASK, pattern STENCIL_BACK_FUNC,
-        pattern STENCIL_BACK_FAIL, pattern STENCIL_BACK_PASS_DEPTH_FAIL,
-        pattern STENCIL_BACK_PASS_DEPTH_PASS, pattern STENCIL_BACK_REF,
-        pattern STENCIL_BACK_VALUE_MASK, pattern STENCIL_BACK_WRITEMASK,
-        pattern VIEWPORT, pattern SCISSOR_BOX, pattern COLOR_CLEAR_VALUE,
-        pattern COLOR_WRITEMASK, pattern UNPACK_ALIGNMENT,
-        pattern PACK_ALIGNMENT, pattern MAX_TEXTURE_SIZE,
-        pattern MAX_VIEWPORT_DIMS, pattern SUBPIXEL_BITS, pattern RED_BITS,
-        pattern GREEN_BITS, pattern BLUE_BITS, pattern ALPHA_BITS,
-        pattern DEPTH_BITS, pattern STENCIL_BITS,
-        pattern POLYGON_OFFSET_UNITS, pattern POLYGON_OFFSET_FACTOR,
-        pattern TEXTURE_BINDING_2D, pattern SAMPLE_BUFFERS,
-        pattern SAMPLES, pattern SAMPLE_COVERAGE_VALUE,
-        pattern SAMPLE_COVERAGE_INVERT, pattern COMPRESSED_TEXTURE_FORMATS,
-        pattern DONT_CARE, pattern FASTEST, pattern NICEST,
-        pattern GENERATE_MIPMAP_HINT, pattern BYTE, pattern UNSIGNED_BYTE,
-        pattern SHORT, pattern UNSIGNED_SHORT, pattern INT,
-        pattern UNSIGNED_INT, pattern FLOAT, pattern DEPTH_COMPONENT,
-        pattern ALPHA, pattern RGB, pattern RGBA, pattern LUMINANCE,
-        pattern LUMINANCE_ALPHA, pattern UNSIGNED_SHORT_4_4_4_4,
-        pattern UNSIGNED_SHORT_5_5_5_1, pattern UNSIGNED_SHORT_5_6_5,
-        pattern FRAGMENT_SHADER, pattern VERTEX_SHADER,
-        pattern MAX_VERTEX_ATTRIBS, pattern MAX_VERTEX_UNIFORM_VECTORS,
-        pattern MAX_VARYING_VECTORS,
-        pattern MAX_COMBINED_TEXTURE_IMAGE_UNITS,
-        pattern MAX_VERTEX_TEXTURE_IMAGE_UNITS,
-        pattern MAX_TEXTURE_IMAGE_UNITS,
-        pattern MAX_FRAGMENT_UNIFORM_VECTORS, pattern SHADER_TYPE,
-        pattern DELETE_STATUS, pattern LINK_STATUS,
-        pattern VALIDATE_STATUS, pattern ATTACHED_SHADERS,
-        pattern ACTIVE_UNIFORMS, pattern ACTIVE_ATTRIBUTES,
-        pattern SHADING_LANGUAGE_VERSION, pattern CURRENT_PROGRAM,
-        pattern NEVER, pattern LESS, pattern EQUAL, pattern LEQUAL,
-        pattern GREATER, pattern NOTEQUAL, pattern GEQUAL, pattern ALWAYS,
-        pattern KEEP, pattern REPLACE, pattern INCR, pattern DECR,
-        pattern INVERT, pattern INCR_WRAP, pattern DECR_WRAP,
-        pattern VENDOR, pattern RENDERER, pattern VERSION, pattern NEAREST,
-        pattern LINEAR, pattern NEAREST_MIPMAP_NEAREST,
-        pattern LINEAR_MIPMAP_NEAREST, pattern NEAREST_MIPMAP_LINEAR,
-        pattern LINEAR_MIPMAP_LINEAR, pattern TEXTURE_MAG_FILTER,
-        pattern TEXTURE_MIN_FILTER, pattern TEXTURE_WRAP_S,
-        pattern TEXTURE_WRAP_T, pattern TEXTURE, pattern TEXTURE_CUBE_MAP,
-        pattern TEXTURE_BINDING_CUBE_MAP,
-        pattern TEXTURE_CUBE_MAP_POSITIVE_X,
-        pattern TEXTURE_CUBE_MAP_NEGATIVE_X,
-        pattern TEXTURE_CUBE_MAP_POSITIVE_Y,
-        pattern TEXTURE_CUBE_MAP_NEGATIVE_Y,
-        pattern TEXTURE_CUBE_MAP_POSITIVE_Z,
-        pattern TEXTURE_CUBE_MAP_NEGATIVE_Z,
-        pattern MAX_CUBE_MAP_TEXTURE_SIZE, pattern TEXTURE0,
-        pattern TEXTURE1, pattern TEXTURE2, pattern TEXTURE3,
-        pattern TEXTURE4, pattern TEXTURE5, pattern TEXTURE6,
-        pattern TEXTURE7, pattern TEXTURE8, pattern TEXTURE9,
-        pattern TEXTURE10, pattern TEXTURE11, pattern TEXTURE12,
-        pattern TEXTURE13, pattern TEXTURE14, pattern TEXTURE15,
-        pattern TEXTURE16, pattern TEXTURE17, pattern TEXTURE18,
-        pattern TEXTURE19, pattern TEXTURE20, pattern TEXTURE21,
-        pattern TEXTURE22, pattern TEXTURE23, pattern TEXTURE24,
-        pattern TEXTURE25, pattern TEXTURE26, pattern TEXTURE27,
-        pattern TEXTURE28, pattern TEXTURE29, pattern TEXTURE30,
-        pattern TEXTURE31, pattern ACTIVE_TEXTURE, pattern REPEAT,
-        pattern CLAMP_TO_EDGE, pattern MIRRORED_REPEAT, pattern FLOAT_VEC2,
-        pattern FLOAT_VEC3, pattern FLOAT_VEC4, pattern INT_VEC2,
-        pattern INT_VEC3, pattern INT_VEC4, pattern BOOL,
-        pattern BOOL_VEC2, pattern BOOL_VEC3, pattern BOOL_VEC4,
-        pattern FLOAT_MAT2, pattern FLOAT_MAT3, pattern FLOAT_MAT4,
-        pattern SAMPLER_2D, pattern SAMPLER_CUBE,
-        pattern VERTEX_ATTRIB_ARRAY_ENABLED,
-        pattern VERTEX_ATTRIB_ARRAY_SIZE,
-        pattern VERTEX_ATTRIB_ARRAY_STRIDE,
-        pattern VERTEX_ATTRIB_ARRAY_TYPE,
-        pattern VERTEX_ATTRIB_ARRAY_NORMALIZED,
-        pattern VERTEX_ATTRIB_ARRAY_POINTER,
-        pattern VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
-        pattern IMPLEMENTATION_COLOR_READ_TYPE,
-        pattern IMPLEMENTATION_COLOR_READ_FORMAT, pattern COMPILE_STATUS,
-        pattern LOW_FLOAT, pattern MEDIUM_FLOAT, pattern HIGH_FLOAT,
-        pattern LOW_INT, pattern MEDIUM_INT, pattern HIGH_INT,
-        pattern FRAMEBUFFER, pattern RENDERBUFFER, pattern RGBA4,
-        pattern RGB5_A1, pattern RGB565, pattern DEPTH_COMPONENT16,
-        pattern STENCIL_INDEX, pattern STENCIL_INDEX8,
-        pattern DEPTH_STENCIL, pattern RENDERBUFFER_WIDTH,
-        pattern RENDERBUFFER_HEIGHT, pattern RENDERBUFFER_INTERNAL_FORMAT,
-        pattern RENDERBUFFER_RED_SIZE, pattern RENDERBUFFER_GREEN_SIZE,
-        pattern RENDERBUFFER_BLUE_SIZE, pattern RENDERBUFFER_ALPHA_SIZE,
-        pattern RENDERBUFFER_DEPTH_SIZE, pattern RENDERBUFFER_STENCIL_SIZE,
-        pattern FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
-        pattern FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
-        pattern FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
-        pattern FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
-        pattern COLOR_ATTACHMENT0, pattern DEPTH_ATTACHMENT,
-        pattern STENCIL_ATTACHMENT, pattern DEPTH_STENCIL_ATTACHMENT,
-        pattern NONE, pattern FRAMEBUFFER_COMPLETE,
-        pattern FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
-        pattern FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
-        pattern FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
-        pattern FRAMEBUFFER_UNSUPPORTED, pattern FRAMEBUFFER_BINDING,
-        pattern RENDERBUFFER_BINDING, pattern MAX_RENDERBUFFER_SIZE,
-        pattern INVALID_FRAMEBUFFER_OPERATION, pattern UNPACK_FLIP_Y_WEBGL,
-        pattern UNPACK_PREMULTIPLY_ALPHA_WEBGL, pattern CONTEXT_LOST_WEBGL,
-        pattern UNPACK_COLORSPACE_CONVERSION_WEBGL,
-        pattern BROWSER_DEFAULT_WEBGL, js_getDrawingBufferWidth,
-        getDrawingBufferWidth, js_getDrawingBufferHeight,
-        getDrawingBufferHeight, WebGLRenderingContextBase(..),
-        gTypeWebGLRenderingContextBase, IsWebGLRenderingContextBase,
-        toWebGLRenderingContextBase)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"activeTexture\"]($2)"
-        js_activeTexture :: WebGLRenderingContextBase -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.activeTexture Mozilla WebGLRenderingContextBase.activeTexture documentation> 
-activeTexture ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> GLenum -> m ()
-activeTexture self texture
-  = liftIO
-      (js_activeTexture (toWebGLRenderingContextBase self) texture)
- 
-foreign import javascript unsafe "$1[\"attachShader\"]($2, $3)"
-        js_attachShader ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLProgram -> Nullable WebGLShader -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.attachShader Mozilla WebGLRenderingContextBase.attachShader documentation> 
-attachShader ::
-             (MonadIO m, IsWebGLRenderingContextBase self) =>
-               self -> Maybe WebGLProgram -> Maybe WebGLShader -> m ()
-attachShader self program shader
-  = liftIO
-      (js_attachShader (toWebGLRenderingContextBase self)
-         (maybeToNullable program)
-         (maybeToNullable shader))
- 
-foreign import javascript unsafe
-        "$1[\"bindAttribLocation\"]($2, $3,\n$4)" js_bindAttribLocation ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLProgram -> GLuint -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bindAttribLocation Mozilla WebGLRenderingContextBase.bindAttribLocation documentation> 
-bindAttribLocation ::
-                   (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
-                     self -> Maybe WebGLProgram -> GLuint -> name -> m ()
-bindAttribLocation self program index name
-  = liftIO
-      (js_bindAttribLocation (toWebGLRenderingContextBase self)
-         (maybeToNullable program)
-         index
-         (toJSString name))
- 
-foreign import javascript unsafe "$1[\"bindBuffer\"]($2, $3)"
-        js_bindBuffer ::
-        WebGLRenderingContextBase ->
-          GLenum -> Nullable WebGLBuffer -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bindBuffer Mozilla WebGLRenderingContextBase.bindBuffer documentation> 
-bindBuffer ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self -> GLenum -> Maybe WebGLBuffer -> m ()
-bindBuffer self target buffer
-  = liftIO
-      (js_bindBuffer (toWebGLRenderingContextBase self) target
-         (maybeToNullable buffer))
- 
-foreign import javascript unsafe "$1[\"bindFramebuffer\"]($2, $3)"
-        js_bindFramebuffer ::
-        WebGLRenderingContextBase ->
-          GLenum -> Nullable WebGLFramebuffer -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bindFramebuffer Mozilla WebGLRenderingContextBase.bindFramebuffer documentation> 
-bindFramebuffer ::
-                (MonadIO m, IsWebGLRenderingContextBase self) =>
-                  self -> GLenum -> Maybe WebGLFramebuffer -> m ()
-bindFramebuffer self target framebuffer
-  = liftIO
-      (js_bindFramebuffer (toWebGLRenderingContextBase self) target
-         (maybeToNullable framebuffer))
- 
-foreign import javascript unsafe "$1[\"bindRenderbuffer\"]($2, $3)"
-        js_bindRenderbuffer ::
-        WebGLRenderingContextBase ->
-          GLenum -> Nullable WebGLRenderbuffer -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bindRenderbuffer Mozilla WebGLRenderingContextBase.bindRenderbuffer documentation> 
-bindRenderbuffer ::
-                 (MonadIO m, IsWebGLRenderingContextBase self) =>
-                   self -> GLenum -> Maybe WebGLRenderbuffer -> m ()
-bindRenderbuffer self target renderbuffer
-  = liftIO
-      (js_bindRenderbuffer (toWebGLRenderingContextBase self) target
-         (maybeToNullable renderbuffer))
- 
-foreign import javascript unsafe "$1[\"bindTexture\"]($2, $3)"
-        js_bindTexture ::
-        WebGLRenderingContextBase ->
-          GLenum -> Nullable WebGLTexture -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bindTexture Mozilla WebGLRenderingContextBase.bindTexture documentation> 
-bindTexture ::
-            (MonadIO m, IsWebGLRenderingContextBase self) =>
-              self -> GLenum -> Maybe WebGLTexture -> m ()
-bindTexture self target texture
-  = liftIO
-      (js_bindTexture (toWebGLRenderingContextBase self) target
-         (maybeToNullable texture))
- 
-foreign import javascript unsafe
-        "$1[\"blendColor\"]($2, $3, $4, $5)" js_blendColor ::
-        WebGLRenderingContextBase ->
-          GLclampf -> GLclampf -> GLclampf -> GLclampf -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.blendColor Mozilla WebGLRenderingContextBase.blendColor documentation> 
-blendColor ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self -> GLclampf -> GLclampf -> GLclampf -> GLclampf -> m ()
-blendColor self red green blue alpha
-  = liftIO
-      (js_blendColor (toWebGLRenderingContextBase self) red green blue
-         alpha)
- 
-foreign import javascript unsafe "$1[\"blendEquation\"]($2)"
-        js_blendEquation :: WebGLRenderingContextBase -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.blendEquation Mozilla WebGLRenderingContextBase.blendEquation documentation> 
-blendEquation ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> GLenum -> m ()
-blendEquation self mode
-  = liftIO (js_blendEquation (toWebGLRenderingContextBase self) mode)
- 
-foreign import javascript unsafe
-        "$1[\"blendEquationSeparate\"]($2,\n$3)" js_blendEquationSeparate
-        :: WebGLRenderingContextBase -> GLenum -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.blendEquationSeparate Mozilla WebGLRenderingContextBase.blendEquationSeparate documentation> 
-blendEquationSeparate ::
-                      (MonadIO m, IsWebGLRenderingContextBase self) =>
-                        self -> GLenum -> GLenum -> m ()
-blendEquationSeparate self modeRGB modeAlpha
-  = liftIO
-      (js_blendEquationSeparate (toWebGLRenderingContextBase self)
-         modeRGB
-         modeAlpha)
- 
-foreign import javascript unsafe "$1[\"blendFunc\"]($2, $3)"
-        js_blendFunc ::
-        WebGLRenderingContextBase -> GLenum -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.blendFunc Mozilla WebGLRenderingContextBase.blendFunc documentation> 
-blendFunc ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> GLenum -> GLenum -> m ()
-blendFunc self sfactor dfactor
-  = liftIO
-      (js_blendFunc (toWebGLRenderingContextBase self) sfactor dfactor)
- 
-foreign import javascript unsafe
-        "$1[\"blendFuncSeparate\"]($2, $3,\n$4, $5)" js_blendFuncSeparate
-        ::
-        WebGLRenderingContextBase ->
-          GLenum -> GLenum -> GLenum -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.blendFuncSeparate Mozilla WebGLRenderingContextBase.blendFuncSeparate documentation> 
-blendFuncSeparate ::
-                  (MonadIO m, IsWebGLRenderingContextBase self) =>
-                    self -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-blendFuncSeparate self srcRGB dstRGB srcAlpha dstAlpha
-  = liftIO
-      (js_blendFuncSeparate (toWebGLRenderingContextBase self) srcRGB
-         dstRGB
-         srcAlpha
-         dstAlpha)
- 
-foreign import javascript unsafe "$1[\"bufferData\"]($2, $3, $4)"
-        js_bufferData ::
-        WebGLRenderingContextBase ->
-          GLenum -> Nullable ArrayBuffer -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bufferData Mozilla WebGLRenderingContextBase.bufferData documentation> 
-bufferData ::
-           (MonadIO m, IsWebGLRenderingContextBase self,
-            IsArrayBuffer data') =>
-             self -> GLenum -> Maybe data' -> GLenum -> m ()
-bufferData self target data' usage
-  = liftIO
-      (js_bufferData (toWebGLRenderingContextBase self) target
-         (maybeToNullable (fmap toArrayBuffer data'))
-         usage)
- 
-foreign import javascript unsafe "$1[\"bufferData\"]($2, $3, $4)"
-        js_bufferDataView ::
-        WebGLRenderingContextBase ->
-          GLenum -> Nullable ArrayBufferView -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bufferData Mozilla WebGLRenderingContextBase.bufferData documentation> 
-bufferDataView ::
-               (MonadIO m, IsWebGLRenderingContextBase self,
-                IsArrayBufferView data') =>
-                 self -> GLenum -> Maybe data' -> GLenum -> m ()
-bufferDataView self target data' usage
-  = liftIO
-      (js_bufferDataView (toWebGLRenderingContextBase self) target
-         (maybeToNullable (fmap toArrayBufferView data'))
-         usage)
- 
-foreign import javascript unsafe "$1[\"bufferData\"]($2, $3, $4)"
-        js_bufferDataPtr ::
-        WebGLRenderingContextBase -> GLenum -> Double -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bufferData Mozilla WebGLRenderingContextBase.bufferData documentation> 
-bufferDataPtr ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> GLenum -> GLsizeiptr -> GLenum -> m ()
-bufferDataPtr self target size usage
-  = liftIO
-      (js_bufferDataPtr (toWebGLRenderingContextBase self) target
-         (fromIntegral size)
-         usage)
- 
-foreign import javascript unsafe
-        "$1[\"bufferSubData\"]($2, $3, $4)" js_bufferSubData ::
-        WebGLRenderingContextBase ->
-          GLenum -> Double -> Nullable ArrayBuffer -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bufferSubData Mozilla WebGLRenderingContextBase.bufferSubData documentation> 
-bufferSubData ::
-              (MonadIO m, IsWebGLRenderingContextBase self,
-               IsArrayBuffer data') =>
-                self -> GLenum -> GLintptr -> Maybe data' -> m ()
-bufferSubData self target offset data'
-  = liftIO
-      (js_bufferSubData (toWebGLRenderingContextBase self) target
-         (fromIntegral offset)
-         (maybeToNullable (fmap toArrayBuffer data')))
- 
-foreign import javascript unsafe
-        "$1[\"bufferSubData\"]($2, $3, $4)" js_bufferSubDataView ::
-        WebGLRenderingContextBase ->
-          GLenum -> Double -> Nullable ArrayBufferView -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bufferSubData Mozilla WebGLRenderingContextBase.bufferSubData documentation> 
-bufferSubDataView ::
-                  (MonadIO m, IsWebGLRenderingContextBase self,
-                   IsArrayBufferView data') =>
-                    self -> GLenum -> GLintptr -> Maybe data' -> m ()
-bufferSubDataView self target offset data'
-  = liftIO
-      (js_bufferSubDataView (toWebGLRenderingContextBase self) target
-         (fromIntegral offset)
-         (maybeToNullable (fmap toArrayBufferView data')))
- 
-foreign import javascript unsafe
-        "$1[\"checkFramebufferStatus\"]($2)" js_checkFramebufferStatus ::
-        WebGLRenderingContextBase -> GLenum -> IO GLenum
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.checkFramebufferStatus Mozilla WebGLRenderingContextBase.checkFramebufferStatus documentation> 
-checkFramebufferStatus ::
-                       (MonadIO m, IsWebGLRenderingContextBase self) =>
-                         self -> GLenum -> m GLenum
-checkFramebufferStatus self target
-  = liftIO
-      (js_checkFramebufferStatus (toWebGLRenderingContextBase self)
-         target)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.checkFramebufferStatus Mozilla WebGLRenderingContextBase.checkFramebufferStatus documentation> 
-checkFramebufferStatus_ ::
-                        (MonadIO m, IsWebGLRenderingContextBase self) =>
-                          self -> GLenum -> m ()
-checkFramebufferStatus_ self target
-  = liftIO
-      (void
-         (js_checkFramebufferStatus (toWebGLRenderingContextBase self)
-            target))
- 
-foreign import javascript unsafe "$1[\"clear\"]($2)" js_clear ::
-        WebGLRenderingContextBase -> GLbitfield -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.clear Mozilla WebGLRenderingContextBase.clear documentation> 
-clear ::
-      (MonadIO m, IsWebGLRenderingContextBase self) =>
-        self -> GLbitfield -> m ()
-clear self mask
-  = liftIO (js_clear (toWebGLRenderingContextBase self) mask)
- 
-foreign import javascript unsafe
-        "$1[\"clearColor\"]($2, $3, $4, $5)" js_clearColor ::
-        WebGLRenderingContextBase ->
-          GLclampf -> GLclampf -> GLclampf -> GLclampf -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.clearColor Mozilla WebGLRenderingContextBase.clearColor documentation> 
-clearColor ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self -> GLclampf -> GLclampf -> GLclampf -> GLclampf -> m ()
-clearColor self red green blue alpha
-  = liftIO
-      (js_clearColor (toWebGLRenderingContextBase self) red green blue
-         alpha)
- 
-foreign import javascript unsafe "$1[\"clearDepth\"]($2)"
-        js_clearDepth :: WebGLRenderingContextBase -> GLclampf -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.clearDepth Mozilla WebGLRenderingContextBase.clearDepth documentation> 
-clearDepth ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self -> GLclampf -> m ()
-clearDepth self depth
-  = liftIO (js_clearDepth (toWebGLRenderingContextBase self) depth)
- 
-foreign import javascript unsafe "$1[\"clearStencil\"]($2)"
-        js_clearStencil :: WebGLRenderingContextBase -> GLint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.clearStencil Mozilla WebGLRenderingContextBase.clearStencil documentation> 
-clearStencil ::
-             (MonadIO m, IsWebGLRenderingContextBase self) =>
-               self -> GLint -> m ()
-clearStencil self s
-  = liftIO (js_clearStencil (toWebGLRenderingContextBase self) s)
- 
-foreign import javascript unsafe
-        "$1[\"colorMask\"]($2, $3, $4, $5)" js_colorMask ::
-        WebGLRenderingContextBase ->
-          GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.colorMask Mozilla WebGLRenderingContextBase.colorMask documentation> 
-colorMask ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-colorMask self red green blue alpha
-  = liftIO
-      (js_colorMask (toWebGLRenderingContextBase self) red green blue
-         alpha)
- 
-foreign import javascript unsafe "$1[\"compileShader\"]($2)"
-        js_compileShader ::
-        WebGLRenderingContextBase -> Nullable WebGLShader -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.compileShader Mozilla WebGLRenderingContextBase.compileShader documentation> 
-compileShader ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> Maybe WebGLShader -> m ()
-compileShader self shader
-  = liftIO
-      (js_compileShader (toWebGLRenderingContextBase self)
-         (maybeToNullable shader))
- 
-foreign import javascript unsafe
-        "$1[\"compressedTexImage2D\"]($2,\n$3, $4, $5, $6, $7, $8)"
-        js_compressedTexImage2D ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLenum ->
-                GLsizei -> GLsizei -> GLint -> Nullable ArrayBufferView -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.compressedTexImage2D Mozilla WebGLRenderingContextBase.compressedTexImage2D documentation> 
-compressedTexImage2D ::
-                     (MonadIO m, IsWebGLRenderingContextBase self,
-                      IsArrayBufferView data') =>
-                       self ->
-                         GLenum ->
-                           GLint ->
-                             GLenum -> GLsizei -> GLsizei -> GLint -> Maybe data' -> m ()
-compressedTexImage2D self target level internalformat width height
-  border data'
-  = liftIO
-      (js_compressedTexImage2D (toWebGLRenderingContextBase self) target
-         level
-         internalformat
-         width
-         height
-         border
-         (maybeToNullable (fmap toArrayBufferView data')))
- 
-foreign import javascript unsafe
-        "$1[\"compressedTexSubImage2D\"]($2,\n$3, $4, $5, $6, $7, $8, $9)"
-        js_compressedTexSubImage2D ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLint ->
-                GLint ->
-                  GLsizei -> GLsizei -> GLenum -> Nullable ArrayBufferView -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.compressedTexSubImage2D Mozilla WebGLRenderingContextBase.compressedTexSubImage2D documentation> 
-compressedTexSubImage2D ::
-                        (MonadIO m, IsWebGLRenderingContextBase self,
-                         IsArrayBufferView data') =>
-                          self ->
-                            GLenum ->
-                              GLint ->
-                                GLint ->
-                                  GLint -> GLsizei -> GLsizei -> GLenum -> Maybe data' -> m ()
-compressedTexSubImage2D self target level xoffset yoffset width
-  height format data'
-  = liftIO
-      (js_compressedTexSubImage2D (toWebGLRenderingContextBase self)
-         target
-         level
-         xoffset
-         yoffset
-         width
-         height
-         format
-         (maybeToNullable (fmap toArrayBufferView data')))
- 
-foreign import javascript unsafe
-        "$1[\"copyTexImage2D\"]($2, $3, $4,\n$5, $6, $7, $8, $9)"
-        js_copyTexImage2D ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.copyTexImage2D Mozilla WebGLRenderingContextBase.copyTexImage2D documentation> 
-copyTexImage2D ::
-               (MonadIO m, IsWebGLRenderingContextBase self) =>
-                 self ->
-                   GLenum ->
-                     GLint ->
-                       GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-copyTexImage2D self target level internalformat x y width height
-  border
-  = liftIO
-      (js_copyTexImage2D (toWebGLRenderingContextBase self) target level
-         internalformat
-         x
-         y
-         width
-         height
-         border)
- 
-foreign import javascript unsafe
-        "$1[\"copyTexSubImage2D\"]($2, $3,\n$4, $5, $6, $7, $8, $9)"
-        js_copyTexSubImage2D ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.copyTexSubImage2D Mozilla WebGLRenderingContextBase.copyTexSubImage2D documentation> 
-copyTexSubImage2D ::
-                  (MonadIO m, IsWebGLRenderingContextBase self) =>
-                    self ->
-                      GLenum ->
-                        GLint ->
-                          GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-copyTexSubImage2D self target level xoffset yoffset x y width
-  height
-  = liftIO
-      (js_copyTexSubImage2D (toWebGLRenderingContextBase self) target
-         level
-         xoffset
-         yoffset
-         x
-         y
-         width
-         height)
- 
-foreign import javascript unsafe "$1[\"createBuffer\"]()"
-        js_createBuffer ::
-        WebGLRenderingContextBase -> IO (Nullable WebGLBuffer)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createBuffer Mozilla WebGLRenderingContextBase.createBuffer documentation> 
-createBuffer ::
-             (MonadIO m, IsWebGLRenderingContextBase self) =>
-               self -> m (Maybe WebGLBuffer)
-createBuffer self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createBuffer (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createBuffer Mozilla WebGLRenderingContextBase.createBuffer documentation> 
-createBuffer_ ::
-              (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-createBuffer_ self
-  = liftIO
-      (void (js_createBuffer (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createBuffer Mozilla WebGLRenderingContextBase.createBuffer documentation> 
-createBufferUnsafe ::
-                   (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack) =>
-                     self -> m WebGLBuffer
-createBufferUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createBuffer (toWebGLRenderingContextBase self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createBuffer Mozilla WebGLRenderingContextBase.createBuffer documentation> 
-createBufferUnchecked ::
-                      (MonadIO m, IsWebGLRenderingContextBase self) =>
-                        self -> m WebGLBuffer
-createBufferUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createBuffer (toWebGLRenderingContextBase self)))
- 
-foreign import javascript unsafe "$1[\"createFramebuffer\"]()"
-        js_createFramebuffer ::
-        WebGLRenderingContextBase -> IO (Nullable WebGLFramebuffer)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createFramebuffer Mozilla WebGLRenderingContextBase.createFramebuffer documentation> 
-createFramebuffer ::
-                  (MonadIO m, IsWebGLRenderingContextBase self) =>
-                    self -> m (Maybe WebGLFramebuffer)
-createFramebuffer self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createFramebuffer (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createFramebuffer Mozilla WebGLRenderingContextBase.createFramebuffer documentation> 
-createFramebuffer_ ::
-                   (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-createFramebuffer_ self
-  = liftIO
-      (void (js_createFramebuffer (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createFramebuffer Mozilla WebGLRenderingContextBase.createFramebuffer documentation> 
-createFramebufferUnsafe ::
-                        (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack) =>
-                          self -> m WebGLFramebuffer
-createFramebufferUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createFramebuffer (toWebGLRenderingContextBase self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createFramebuffer Mozilla WebGLRenderingContextBase.createFramebuffer documentation> 
-createFramebufferUnchecked ::
-                           (MonadIO m, IsWebGLRenderingContextBase self) =>
-                             self -> m WebGLFramebuffer
-createFramebufferUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createFramebuffer (toWebGLRenderingContextBase self)))
- 
-foreign import javascript unsafe "$1[\"createProgram\"]()"
-        js_createProgram ::
-        WebGLRenderingContextBase -> IO (Nullable WebGLProgram)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createProgram Mozilla WebGLRenderingContextBase.createProgram documentation> 
-createProgram ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> m (Maybe WebGLProgram)
-createProgram self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createProgram (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createProgram Mozilla WebGLRenderingContextBase.createProgram documentation> 
-createProgram_ ::
-               (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-createProgram_ self
-  = liftIO
-      (void (js_createProgram (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createProgram Mozilla WebGLRenderingContextBase.createProgram documentation> 
-createProgramUnsafe ::
-                    (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack) =>
-                      self -> m WebGLProgram
-createProgramUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createProgram (toWebGLRenderingContextBase self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createProgram Mozilla WebGLRenderingContextBase.createProgram documentation> 
-createProgramUnchecked ::
-                       (MonadIO m, IsWebGLRenderingContextBase self) =>
-                         self -> m WebGLProgram
-createProgramUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createProgram (toWebGLRenderingContextBase self)))
- 
-foreign import javascript unsafe "$1[\"createRenderbuffer\"]()"
-        js_createRenderbuffer ::
-        WebGLRenderingContextBase -> IO (Nullable WebGLRenderbuffer)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createRenderbuffer Mozilla WebGLRenderingContextBase.createRenderbuffer documentation> 
-createRenderbuffer ::
-                   (MonadIO m, IsWebGLRenderingContextBase self) =>
-                     self -> m (Maybe WebGLRenderbuffer)
-createRenderbuffer self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createRenderbuffer (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createRenderbuffer Mozilla WebGLRenderingContextBase.createRenderbuffer documentation> 
-createRenderbuffer_ ::
-                    (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-createRenderbuffer_ self
-  = liftIO
-      (void (js_createRenderbuffer (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createRenderbuffer Mozilla WebGLRenderingContextBase.createRenderbuffer documentation> 
-createRenderbufferUnsafe ::
-                         (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack) =>
-                           self -> m WebGLRenderbuffer
-createRenderbufferUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createRenderbuffer (toWebGLRenderingContextBase self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createRenderbuffer Mozilla WebGLRenderingContextBase.createRenderbuffer documentation> 
-createRenderbufferUnchecked ::
-                            (MonadIO m, IsWebGLRenderingContextBase self) =>
-                              self -> m WebGLRenderbuffer
-createRenderbufferUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createRenderbuffer (toWebGLRenderingContextBase self)))
- 
-foreign import javascript unsafe "$1[\"createShader\"]($2)"
-        js_createShader ::
-        WebGLRenderingContextBase -> GLenum -> IO (Nullable WebGLShader)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createShader Mozilla WebGLRenderingContextBase.createShader documentation> 
-createShader ::
-             (MonadIO m, IsWebGLRenderingContextBase self) =>
-               self -> GLenum -> m (Maybe WebGLShader)
-createShader self type'
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createShader (toWebGLRenderingContextBase self) type'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createShader Mozilla WebGLRenderingContextBase.createShader documentation> 
-createShader_ ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> GLenum -> m ()
-createShader_ self type'
-  = liftIO
-      (void (js_createShader (toWebGLRenderingContextBase self) type'))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createShader Mozilla WebGLRenderingContextBase.createShader documentation> 
-createShaderUnsafe ::
-                   (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack) =>
-                     self -> GLenum -> m WebGLShader
-createShaderUnsafe self type'
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createShader (toWebGLRenderingContextBase self) type'))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createShader Mozilla WebGLRenderingContextBase.createShader documentation> 
-createShaderUnchecked ::
-                      (MonadIO m, IsWebGLRenderingContextBase self) =>
-                        self -> GLenum -> m WebGLShader
-createShaderUnchecked self type'
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createShader (toWebGLRenderingContextBase self) type'))
- 
-foreign import javascript unsafe "$1[\"createTexture\"]()"
-        js_createTexture ::
-        WebGLRenderingContextBase -> IO (Nullable WebGLTexture)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createTexture Mozilla WebGLRenderingContextBase.createTexture documentation> 
-createTexture ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> m (Maybe WebGLTexture)
-createTexture self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_createTexture (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createTexture Mozilla WebGLRenderingContextBase.createTexture documentation> 
-createTexture_ ::
-               (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-createTexture_ self
-  = liftIO
-      (void (js_createTexture (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createTexture Mozilla WebGLRenderingContextBase.createTexture documentation> 
-createTextureUnsafe ::
-                    (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack) =>
-                      self -> m WebGLTexture
-createTextureUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createTexture (toWebGLRenderingContextBase self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createTexture Mozilla WebGLRenderingContextBase.createTexture documentation> 
-createTextureUnchecked ::
-                       (MonadIO m, IsWebGLRenderingContextBase self) =>
-                         self -> m WebGLTexture
-createTextureUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createTexture (toWebGLRenderingContextBase self)))
- 
-foreign import javascript unsafe "$1[\"cullFace\"]($2)" js_cullFace
-        :: WebGLRenderingContextBase -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.cullFace Mozilla WebGLRenderingContextBase.cullFace documentation> 
-cullFace ::
-         (MonadIO m, IsWebGLRenderingContextBase self) =>
-           self -> GLenum -> m ()
-cullFace self mode
-  = liftIO (js_cullFace (toWebGLRenderingContextBase self) mode)
- 
-foreign import javascript unsafe "$1[\"deleteBuffer\"]($2)"
-        js_deleteBuffer ::
-        WebGLRenderingContextBase -> Nullable WebGLBuffer -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteBuffer Mozilla WebGLRenderingContextBase.deleteBuffer documentation> 
-deleteBuffer ::
-             (MonadIO m, IsWebGLRenderingContextBase self) =>
-               self -> Maybe WebGLBuffer -> m ()
-deleteBuffer self buffer
-  = liftIO
-      (js_deleteBuffer (toWebGLRenderingContextBase self)
-         (maybeToNullable buffer))
- 
-foreign import javascript unsafe "$1[\"deleteFramebuffer\"]($2)"
-        js_deleteFramebuffer ::
-        WebGLRenderingContextBase -> Nullable WebGLFramebuffer -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteFramebuffer Mozilla WebGLRenderingContextBase.deleteFramebuffer documentation> 
-deleteFramebuffer ::
-                  (MonadIO m, IsWebGLRenderingContextBase self) =>
-                    self -> Maybe WebGLFramebuffer -> m ()
-deleteFramebuffer self framebuffer
-  = liftIO
-      (js_deleteFramebuffer (toWebGLRenderingContextBase self)
-         (maybeToNullable framebuffer))
- 
-foreign import javascript unsafe "$1[\"deleteProgram\"]($2)"
-        js_deleteProgram ::
-        WebGLRenderingContextBase -> Nullable WebGLProgram -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteProgram Mozilla WebGLRenderingContextBase.deleteProgram documentation> 
-deleteProgram ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> Maybe WebGLProgram -> m ()
-deleteProgram self program
-  = liftIO
-      (js_deleteProgram (toWebGLRenderingContextBase self)
-         (maybeToNullable program))
- 
-foreign import javascript unsafe "$1[\"deleteRenderbuffer\"]($2)"
-        js_deleteRenderbuffer ::
-        WebGLRenderingContextBase -> Nullable WebGLRenderbuffer -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteRenderbuffer Mozilla WebGLRenderingContextBase.deleteRenderbuffer documentation> 
-deleteRenderbuffer ::
-                   (MonadIO m, IsWebGLRenderingContextBase self) =>
-                     self -> Maybe WebGLRenderbuffer -> m ()
-deleteRenderbuffer self renderbuffer
-  = liftIO
-      (js_deleteRenderbuffer (toWebGLRenderingContextBase self)
-         (maybeToNullable renderbuffer))
- 
-foreign import javascript unsafe "$1[\"deleteShader\"]($2)"
-        js_deleteShader ::
-        WebGLRenderingContextBase -> Nullable WebGLShader -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteShader Mozilla WebGLRenderingContextBase.deleteShader documentation> 
-deleteShader ::
-             (MonadIO m, IsWebGLRenderingContextBase self) =>
-               self -> Maybe WebGLShader -> m ()
-deleteShader self shader
-  = liftIO
-      (js_deleteShader (toWebGLRenderingContextBase self)
-         (maybeToNullable shader))
- 
-foreign import javascript unsafe "$1[\"deleteTexture\"]($2)"
-        js_deleteTexture ::
-        WebGLRenderingContextBase -> Nullable WebGLTexture -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteTexture Mozilla WebGLRenderingContextBase.deleteTexture documentation> 
-deleteTexture ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> Maybe WebGLTexture -> m ()
-deleteTexture self texture
-  = liftIO
-      (js_deleteTexture (toWebGLRenderingContextBase self)
-         (maybeToNullable texture))
- 
-foreign import javascript unsafe "$1[\"depthFunc\"]($2)"
-        js_depthFunc :: WebGLRenderingContextBase -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.depthFunc Mozilla WebGLRenderingContextBase.depthFunc documentation> 
-depthFunc ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> GLenum -> m ()
-depthFunc self func
-  = liftIO (js_depthFunc (toWebGLRenderingContextBase self) func)
- 
-foreign import javascript unsafe "$1[\"depthMask\"]($2)"
-        js_depthMask :: WebGLRenderingContextBase -> GLboolean -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.depthMask Mozilla WebGLRenderingContextBase.depthMask documentation> 
-depthMask ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> GLboolean -> m ()
-depthMask self flag
-  = liftIO (js_depthMask (toWebGLRenderingContextBase self) flag)
- 
-foreign import javascript unsafe "$1[\"depthRange\"]($2, $3)"
-        js_depthRange ::
-        WebGLRenderingContextBase -> GLclampf -> GLclampf -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.depthRange Mozilla WebGLRenderingContextBase.depthRange documentation> 
-depthRange ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self -> GLclampf -> GLclampf -> m ()
-depthRange self zNear zFar
-  = liftIO
-      (js_depthRange (toWebGLRenderingContextBase self) zNear zFar)
- 
-foreign import javascript unsafe "$1[\"detachShader\"]($2, $3)"
-        js_detachShader ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLProgram -> Nullable WebGLShader -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.detachShader Mozilla WebGLRenderingContextBase.detachShader documentation> 
-detachShader ::
-             (MonadIO m, IsWebGLRenderingContextBase self) =>
-               self -> Maybe WebGLProgram -> Maybe WebGLShader -> m ()
-detachShader self program shader
-  = liftIO
-      (js_detachShader (toWebGLRenderingContextBase self)
-         (maybeToNullable program)
-         (maybeToNullable shader))
- 
-foreign import javascript unsafe "$1[\"disable\"]($2)" js_disable
-        :: WebGLRenderingContextBase -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.disable Mozilla WebGLRenderingContextBase.disable documentation> 
-disable ::
-        (MonadIO m, IsWebGLRenderingContextBase self) =>
-          self -> GLenum -> m ()
-disable self cap
-  = liftIO (js_disable (toWebGLRenderingContextBase self) cap)
- 
-foreign import javascript unsafe
-        "$1[\"disableVertexAttribArray\"]($2)" js_disableVertexAttribArray
-        :: WebGLRenderingContextBase -> GLuint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.disableVertexAttribArray Mozilla WebGLRenderingContextBase.disableVertexAttribArray documentation> 
-disableVertexAttribArray ::
-                         (MonadIO m, IsWebGLRenderingContextBase self) =>
-                           self -> GLuint -> m ()
-disableVertexAttribArray self index
-  = liftIO
-      (js_disableVertexAttribArray (toWebGLRenderingContextBase self)
-         index)
- 
-foreign import javascript unsafe "$1[\"drawArrays\"]($2, $3, $4)"
-        js_drawArrays ::
-        WebGLRenderingContextBase -> GLenum -> GLint -> GLsizei -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.drawArrays Mozilla WebGLRenderingContextBase.drawArrays documentation> 
-drawArrays ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self -> GLenum -> GLint -> GLsizei -> m ()
-drawArrays self mode first count
-  = liftIO
-      (js_drawArrays (toWebGLRenderingContextBase self) mode first count)
- 
-foreign import javascript unsafe
-        "$1[\"drawElements\"]($2, $3, $4,\n$5)" js_drawElements ::
-        WebGLRenderingContextBase ->
-          GLenum -> GLsizei -> GLenum -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.drawElements Mozilla WebGLRenderingContextBase.drawElements documentation> 
-drawElements ::
-             (MonadIO m, IsWebGLRenderingContextBase self) =>
-               self -> GLenum -> GLsizei -> GLenum -> GLintptr -> m ()
-drawElements self mode count type' offset
-  = liftIO
-      (js_drawElements (toWebGLRenderingContextBase self) mode count
-         type'
-         (fromIntegral offset))
- 
-foreign import javascript unsafe "$1[\"enable\"]($2)" js_enable ::
-        WebGLRenderingContextBase -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.enable Mozilla WebGLRenderingContextBase.enable documentation> 
-enable ::
-       (MonadIO m, IsWebGLRenderingContextBase self) =>
-         self -> GLenum -> m ()
-enable self cap
-  = liftIO (js_enable (toWebGLRenderingContextBase self) cap)
- 
-foreign import javascript unsafe
-        "$1[\"enableVertexAttribArray\"]($2)" js_enableVertexAttribArray ::
-        WebGLRenderingContextBase -> GLuint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.enableVertexAttribArray Mozilla WebGLRenderingContextBase.enableVertexAttribArray documentation> 
-enableVertexAttribArray ::
-                        (MonadIO m, IsWebGLRenderingContextBase self) =>
-                          self -> GLuint -> m ()
-enableVertexAttribArray self index
-  = liftIO
-      (js_enableVertexAttribArray (toWebGLRenderingContextBase self)
-         index)
- 
-foreign import javascript unsafe "$1[\"finish\"]()" js_finish ::
-        WebGLRenderingContextBase -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.finish Mozilla WebGLRenderingContextBase.finish documentation> 
-finish ::
-       (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-finish self = liftIO (js_finish (toWebGLRenderingContextBase self))
- 
-foreign import javascript unsafe "$1[\"flush\"]()" js_flush ::
-        WebGLRenderingContextBase -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.flush Mozilla WebGLRenderingContextBase.flush documentation> 
-flush ::
-      (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-flush self = liftIO (js_flush (toWebGLRenderingContextBase self))
- 
-foreign import javascript unsafe
-        "$1[\"framebufferRenderbuffer\"]($2,\n$3, $4, $5)"
-        js_framebufferRenderbuffer ::
-        WebGLRenderingContextBase ->
-          GLenum -> GLenum -> GLenum -> Nullable WebGLRenderbuffer -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.framebufferRenderbuffer Mozilla WebGLRenderingContextBase.framebufferRenderbuffer documentation> 
-framebufferRenderbuffer ::
-                        (MonadIO m, IsWebGLRenderingContextBase self) =>
-                          self ->
-                            GLenum -> GLenum -> GLenum -> Maybe WebGLRenderbuffer -> m ()
-framebufferRenderbuffer self target attachment renderbuffertarget
-  renderbuffer
-  = liftIO
-      (js_framebufferRenderbuffer (toWebGLRenderingContextBase self)
-         target
-         attachment
-         renderbuffertarget
-         (maybeToNullable renderbuffer))
- 
-foreign import javascript unsafe
-        "$1[\"framebufferTexture2D\"]($2,\n$3, $4, $5, $6)"
-        js_framebufferTexture2D ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLenum -> GLenum -> Nullable WebGLTexture -> GLint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.framebufferTexture2D Mozilla WebGLRenderingContextBase.framebufferTexture2D documentation> 
-framebufferTexture2D ::
-                     (MonadIO m, IsWebGLRenderingContextBase self) =>
-                       self ->
-                         GLenum -> GLenum -> GLenum -> Maybe WebGLTexture -> GLint -> m ()
-framebufferTexture2D self target attachment textarget texture level
-  = liftIO
-      (js_framebufferTexture2D (toWebGLRenderingContextBase self) target
-         attachment
-         textarget
-         (maybeToNullable texture)
-         level)
- 
-foreign import javascript unsafe "$1[\"frontFace\"]($2)"
-        js_frontFace :: WebGLRenderingContextBase -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.frontFace Mozilla WebGLRenderingContextBase.frontFace documentation> 
-frontFace ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> GLenum -> m ()
-frontFace self mode
-  = liftIO (js_frontFace (toWebGLRenderingContextBase self) mode)
- 
-foreign import javascript unsafe "$1[\"generateMipmap\"]($2)"
-        js_generateMipmap :: WebGLRenderingContextBase -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.generateMipmap Mozilla WebGLRenderingContextBase.generateMipmap documentation> 
-generateMipmap ::
-               (MonadIO m, IsWebGLRenderingContextBase self) =>
-                 self -> GLenum -> m ()
-generateMipmap self target
-  = liftIO
-      (js_generateMipmap (toWebGLRenderingContextBase self) target)
- 
-foreign import javascript unsafe "$1[\"getActiveAttrib\"]($2, $3)"
-        js_getActiveAttrib ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLProgram -> GLuint -> IO (Nullable WebGLActiveInfo)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveAttrib Mozilla WebGLRenderingContextBase.getActiveAttrib documentation> 
-getActiveAttrib ::
-                (MonadIO m, IsWebGLRenderingContextBase self) =>
-                  self -> Maybe WebGLProgram -> GLuint -> m (Maybe WebGLActiveInfo)
-getActiveAttrib self program index
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getActiveAttrib (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveAttrib Mozilla WebGLRenderingContextBase.getActiveAttrib documentation> 
-getActiveAttrib_ ::
-                 (MonadIO m, IsWebGLRenderingContextBase self) =>
-                   self -> Maybe WebGLProgram -> GLuint -> m ()
-getActiveAttrib_ self program index
-  = liftIO
-      (void
-         (js_getActiveAttrib (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveAttrib Mozilla WebGLRenderingContextBase.getActiveAttrib documentation> 
-getActiveAttribUnsafe ::
-                      (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack) =>
-                        self -> Maybe WebGLProgram -> GLuint -> m WebGLActiveInfo
-getActiveAttribUnsafe self program index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getActiveAttrib (toWebGLRenderingContextBase self)
-             (maybeToNullable program)
-             index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveAttrib Mozilla WebGLRenderingContextBase.getActiveAttrib documentation> 
-getActiveAttribUnchecked ::
-                         (MonadIO m, IsWebGLRenderingContextBase self) =>
-                           self -> Maybe WebGLProgram -> GLuint -> m WebGLActiveInfo
-getActiveAttribUnchecked self program index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getActiveAttrib (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            index))
- 
-foreign import javascript unsafe "$1[\"getActiveUniform\"]($2, $3)"
-        js_getActiveUniform ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLProgram -> GLuint -> IO (Nullable WebGLActiveInfo)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveUniform Mozilla WebGLRenderingContextBase.getActiveUniform documentation> 
-getActiveUniform ::
-                 (MonadIO m, IsWebGLRenderingContextBase self) =>
-                   self -> Maybe WebGLProgram -> GLuint -> m (Maybe WebGLActiveInfo)
-getActiveUniform self program index
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getActiveUniform (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveUniform Mozilla WebGLRenderingContextBase.getActiveUniform documentation> 
-getActiveUniform_ ::
-                  (MonadIO m, IsWebGLRenderingContextBase self) =>
-                    self -> Maybe WebGLProgram -> GLuint -> m ()
-getActiveUniform_ self program index
-  = liftIO
-      (void
-         (js_getActiveUniform (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveUniform Mozilla WebGLRenderingContextBase.getActiveUniform documentation> 
-getActiveUniformUnsafe ::
-                       (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack) =>
-                         self -> Maybe WebGLProgram -> GLuint -> m WebGLActiveInfo
-getActiveUniformUnsafe self program index
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getActiveUniform (toWebGLRenderingContextBase self)
-             (maybeToNullable program)
-             index))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveUniform Mozilla WebGLRenderingContextBase.getActiveUniform documentation> 
-getActiveUniformUnchecked ::
-                          (MonadIO m, IsWebGLRenderingContextBase self) =>
-                            self -> Maybe WebGLProgram -> GLuint -> m WebGLActiveInfo
-getActiveUniformUnchecked self program index
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getActiveUniform (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            index))
- 
-foreign import javascript unsafe "$1[\"getAttachedShaders\"]($2)"
-        js_getAttachedShaders ::
-        WebGLRenderingContextBase -> Nullable WebGLProgram -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getAttachedShaders Mozilla WebGLRenderingContextBase.getAttachedShaders documentation> 
-getAttachedShaders ::
-                   (MonadIO m, IsWebGLRenderingContextBase self) =>
-                     self -> Maybe WebGLProgram -> m ()
-getAttachedShaders self program
-  = liftIO
-      (js_getAttachedShaders (toWebGLRenderingContextBase self)
-         (maybeToNullable program))
- 
-foreign import javascript unsafe
-        "$1[\"getAttribLocation\"]($2, $3)" js_getAttribLocation ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLProgram -> JSString -> IO GLint
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getAttribLocation Mozilla WebGLRenderingContextBase.getAttribLocation documentation> 
-getAttribLocation ::
-                  (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
-                    self -> Maybe WebGLProgram -> name -> m GLint
-getAttribLocation self program name
-  = liftIO
-      (js_getAttribLocation (toWebGLRenderingContextBase self)
-         (maybeToNullable program)
-         (toJSString name))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getAttribLocation Mozilla WebGLRenderingContextBase.getAttribLocation documentation> 
-getAttribLocation_ ::
-                   (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
-                     self -> Maybe WebGLProgram -> name -> m ()
-getAttribLocation_ self program name
-  = liftIO
-      (void
-         (js_getAttribLocation (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            (toJSString name)))
- 
-foreign import javascript unsafe
-        "$1[\"getBufferParameter\"]($2, $3)" js_getBufferParameter ::
-        WebGLRenderingContextBase -> GLenum -> GLenum -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getBufferParameter Mozilla WebGLRenderingContextBase.getBufferParameter documentation> 
-getBufferParameter ::
-                   (MonadIO m, IsWebGLRenderingContextBase self) =>
-                     self -> GLenum -> GLenum -> m JSVal
-getBufferParameter self target pname
-  = liftIO
-      (js_getBufferParameter (toWebGLRenderingContextBase self) target
-         pname)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getBufferParameter Mozilla WebGLRenderingContextBase.getBufferParameter documentation> 
-getBufferParameter_ ::
-                    (MonadIO m, IsWebGLRenderingContextBase self) =>
-                      self -> GLenum -> GLenum -> m ()
-getBufferParameter_ self target pname
-  = liftIO
-      (void
-         (js_getBufferParameter (toWebGLRenderingContextBase self) target
-            pname))
- 
-foreign import javascript unsafe "$1[\"getContextAttributes\"]()"
-        js_getContextAttributes ::
-        WebGLRenderingContextBase -> IO (Nullable WebGLContextAttributes)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getContextAttributes Mozilla WebGLRenderingContextBase.getContextAttributes documentation> 
-getContextAttributes ::
-                     (MonadIO m, IsWebGLRenderingContextBase self) =>
-                       self -> m (Maybe WebGLContextAttributes)
-getContextAttributes self
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getContextAttributes (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getContextAttributes Mozilla WebGLRenderingContextBase.getContextAttributes documentation> 
-getContextAttributes_ ::
-                      (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-getContextAttributes_ self
-  = liftIO
-      (void (js_getContextAttributes (toWebGLRenderingContextBase self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getContextAttributes Mozilla WebGLRenderingContextBase.getContextAttributes documentation> 
-getContextAttributesUnsafe ::
-                           (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack) =>
-                             self -> m WebGLContextAttributes
-getContextAttributesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getContextAttributes (toWebGLRenderingContextBase self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getContextAttributes Mozilla WebGLRenderingContextBase.getContextAttributes documentation> 
-getContextAttributesUnchecked ::
-                              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                                self -> m WebGLContextAttributes
-getContextAttributesUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getContextAttributes (toWebGLRenderingContextBase self)))
- 
-foreign import javascript unsafe "$1[\"getError\"]()" js_getError
-        :: WebGLRenderingContextBase -> IO GLenum
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getError Mozilla WebGLRenderingContextBase.getError documentation> 
-getError ::
-         (MonadIO m, IsWebGLRenderingContextBase self) => self -> m GLenum
-getError self
-  = liftIO (js_getError (toWebGLRenderingContextBase self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getError Mozilla WebGLRenderingContextBase.getError documentation> 
-getError_ ::
-          (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-getError_ self
-  = liftIO (void (js_getError (toWebGLRenderingContextBase self)))
- 
-foreign import javascript unsafe "$1[\"getExtension\"]($2)"
-        js_getExtension ::
-        WebGLRenderingContextBase -> JSString -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getExtension Mozilla WebGLRenderingContextBase.getExtension documentation> 
-getExtension ::
-             (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
-               self -> name -> m JSVal
-getExtension self name
-  = liftIO
-      (js_getExtension (toWebGLRenderingContextBase self)
-         (toJSString name))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getExtension Mozilla WebGLRenderingContextBase.getExtension documentation> 
-getExtension_ ::
-              (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
-                self -> name -> m ()
-getExtension_ self name
-  = liftIO
-      (void
-         (js_getExtension (toWebGLRenderingContextBase self)
-            (toJSString name)))
- 
-foreign import javascript unsafe
-        "$1[\"getFramebufferAttachmentParameter\"]($2,\n$3, $4)"
-        js_getFramebufferAttachmentParameter ::
-        WebGLRenderingContextBase -> GLenum -> GLenum -> GLenum -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getFramebufferAttachmentParameter Mozilla WebGLRenderingContextBase.getFramebufferAttachmentParameter documentation> 
-getFramebufferAttachmentParameter ::
-                                  (MonadIO m, IsWebGLRenderingContextBase self) =>
-                                    self -> GLenum -> GLenum -> GLenum -> m JSVal
-getFramebufferAttachmentParameter self target attachment pname
-  = liftIO
-      (js_getFramebufferAttachmentParameter
-         (toWebGLRenderingContextBase self)
-         target
-         attachment
-         pname)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getFramebufferAttachmentParameter Mozilla WebGLRenderingContextBase.getFramebufferAttachmentParameter documentation> 
-getFramebufferAttachmentParameter_ ::
-                                   (MonadIO m, IsWebGLRenderingContextBase self) =>
-                                     self -> GLenum -> GLenum -> GLenum -> m ()
-getFramebufferAttachmentParameter_ self target attachment pname
-  = liftIO
-      (void
-         (js_getFramebufferAttachmentParameter
-            (toWebGLRenderingContextBase self)
-            target
-            attachment
-            pname))
- 
-foreign import javascript unsafe "$1[\"getParameter\"]($2)"
-        js_getParameter :: WebGLRenderingContextBase -> GLenum -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getParameter Mozilla WebGLRenderingContextBase.getParameter documentation> 
-getParameter ::
-             (MonadIO m, IsWebGLRenderingContextBase self) =>
-               self -> GLenum -> m JSVal
-getParameter self pname
-  = liftIO (js_getParameter (toWebGLRenderingContextBase self) pname)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getParameter Mozilla WebGLRenderingContextBase.getParameter documentation> 
-getParameter_ ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> GLenum -> m ()
-getParameter_ self pname
-  = liftIO
-      (void (js_getParameter (toWebGLRenderingContextBase self) pname))
- 
-foreign import javascript unsafe
-        "$1[\"getProgramParameter\"]($2,\n$3)" js_getProgramParameter ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLProgram -> GLenum -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramParameter Mozilla WebGLRenderingContextBase.getProgramParameter documentation> 
-getProgramParameter ::
-                    (MonadIO m, IsWebGLRenderingContextBase self) =>
-                      self -> Maybe WebGLProgram -> GLenum -> m JSVal
-getProgramParameter self program pname
-  = liftIO
-      (js_getProgramParameter (toWebGLRenderingContextBase self)
-         (maybeToNullable program)
-         pname)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramParameter Mozilla WebGLRenderingContextBase.getProgramParameter documentation> 
-getProgramParameter_ ::
-                     (MonadIO m, IsWebGLRenderingContextBase self) =>
-                       self -> Maybe WebGLProgram -> GLenum -> m ()
-getProgramParameter_ self program pname
-  = liftIO
-      (void
-         (js_getProgramParameter (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            pname))
- 
-foreign import javascript unsafe "$1[\"getProgramInfoLog\"]($2)"
-        js_getProgramInfoLog ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLProgram -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramInfoLog Mozilla WebGLRenderingContextBase.getProgramInfoLog documentation> 
-getProgramInfoLog ::
-                  (MonadIO m, IsWebGLRenderingContextBase self,
-                   FromJSString result) =>
-                    self -> Maybe WebGLProgram -> m (Maybe result)
-getProgramInfoLog self program
-  = liftIO
-      (fromMaybeJSString <$>
-         (js_getProgramInfoLog (toWebGLRenderingContextBase self)
-            (maybeToNullable program)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramInfoLog Mozilla WebGLRenderingContextBase.getProgramInfoLog documentation> 
-getProgramInfoLog_ ::
-                   (MonadIO m, IsWebGLRenderingContextBase self) =>
-                     self -> Maybe WebGLProgram -> m ()
-getProgramInfoLog_ self program
-  = liftIO
-      (void
-         (js_getProgramInfoLog (toWebGLRenderingContextBase self)
-            (maybeToNullable program)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramInfoLog Mozilla WebGLRenderingContextBase.getProgramInfoLog documentation> 
-getProgramInfoLogUnsafe ::
-                        (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack,
-                         FromJSString result) =>
-                          self -> Maybe WebGLProgram -> m result
-getProgramInfoLogUnsafe self program
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_getProgramInfoLog (toWebGLRenderingContextBase self)
-             (maybeToNullable program)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramInfoLog Mozilla WebGLRenderingContextBase.getProgramInfoLog documentation> 
-getProgramInfoLogUnchecked ::
-                           (MonadIO m, IsWebGLRenderingContextBase self,
-                            FromJSString result) =>
-                             self -> Maybe WebGLProgram -> m result
-getProgramInfoLogUnchecked self program
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getProgramInfoLog (toWebGLRenderingContextBase self)
-            (maybeToNullable program)))
- 
-foreign import javascript unsafe
-        "$1[\"getRenderbufferParameter\"]($2,\n$3)"
-        js_getRenderbufferParameter ::
-        WebGLRenderingContextBase -> GLenum -> GLenum -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getRenderbufferParameter Mozilla WebGLRenderingContextBase.getRenderbufferParameter documentation> 
-getRenderbufferParameter ::
-                         (MonadIO m, IsWebGLRenderingContextBase self) =>
-                           self -> GLenum -> GLenum -> m JSVal
-getRenderbufferParameter self target pname
-  = liftIO
-      (js_getRenderbufferParameter (toWebGLRenderingContextBase self)
-         target
-         pname)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getRenderbufferParameter Mozilla WebGLRenderingContextBase.getRenderbufferParameter documentation> 
-getRenderbufferParameter_ ::
-                          (MonadIO m, IsWebGLRenderingContextBase self) =>
-                            self -> GLenum -> GLenum -> m ()
-getRenderbufferParameter_ self target pname
-  = liftIO
-      (void
-         (js_getRenderbufferParameter (toWebGLRenderingContextBase self)
-            target
-            pname))
- 
-foreign import javascript unsafe
-        "$1[\"getShaderParameter\"]($2, $3)" js_getShaderParameter ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLShader -> GLenum -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderParameter Mozilla WebGLRenderingContextBase.getShaderParameter documentation> 
-getShaderParameter ::
-                   (MonadIO m, IsWebGLRenderingContextBase self) =>
-                     self -> Maybe WebGLShader -> GLenum -> m JSVal
-getShaderParameter self shader pname
-  = liftIO
-      (js_getShaderParameter (toWebGLRenderingContextBase self)
-         (maybeToNullable shader)
-         pname)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderParameter Mozilla WebGLRenderingContextBase.getShaderParameter documentation> 
-getShaderParameter_ ::
-                    (MonadIO m, IsWebGLRenderingContextBase self) =>
-                      self -> Maybe WebGLShader -> GLenum -> m ()
-getShaderParameter_ self shader pname
-  = liftIO
-      (void
-         (js_getShaderParameter (toWebGLRenderingContextBase self)
-            (maybeToNullable shader)
-            pname))
- 
-foreign import javascript unsafe "$1[\"getShaderInfoLog\"]($2)"
-        js_getShaderInfoLog ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLShader -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderInfoLog Mozilla WebGLRenderingContextBase.getShaderInfoLog documentation> 
-getShaderInfoLog ::
-                 (MonadIO m, IsWebGLRenderingContextBase self,
-                  FromJSString result) =>
-                   self -> Maybe WebGLShader -> m (Maybe result)
-getShaderInfoLog self shader
-  = liftIO
-      (fromMaybeJSString <$>
-         (js_getShaderInfoLog (toWebGLRenderingContextBase self)
-            (maybeToNullable shader)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderInfoLog Mozilla WebGLRenderingContextBase.getShaderInfoLog documentation> 
-getShaderInfoLog_ ::
-                  (MonadIO m, IsWebGLRenderingContextBase self) =>
-                    self -> Maybe WebGLShader -> m ()
-getShaderInfoLog_ self shader
-  = liftIO
-      (void
-         (js_getShaderInfoLog (toWebGLRenderingContextBase self)
-            (maybeToNullable shader)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderInfoLog Mozilla WebGLRenderingContextBase.getShaderInfoLog documentation> 
-getShaderInfoLogUnsafe ::
-                       (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack,
-                        FromJSString result) =>
-                         self -> Maybe WebGLShader -> m result
-getShaderInfoLogUnsafe self shader
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_getShaderInfoLog (toWebGLRenderingContextBase self)
-             (maybeToNullable shader)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderInfoLog Mozilla WebGLRenderingContextBase.getShaderInfoLog documentation> 
-getShaderInfoLogUnchecked ::
-                          (MonadIO m, IsWebGLRenderingContextBase self,
-                           FromJSString result) =>
-                            self -> Maybe WebGLShader -> m result
-getShaderInfoLogUnchecked self shader
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getShaderInfoLog (toWebGLRenderingContextBase self)
-            (maybeToNullable shader)))
- 
-foreign import javascript unsafe
-        "$1[\"getShaderPrecisionFormat\"]($2,\n$3)"
-        js_getShaderPrecisionFormat ::
-        WebGLRenderingContextBase ->
-          GLenum -> GLenum -> IO (Nullable WebGLShaderPrecisionFormat)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderPrecisionFormat Mozilla WebGLRenderingContextBase.getShaderPrecisionFormat documentation> 
-getShaderPrecisionFormat ::
-                         (MonadIO m, IsWebGLRenderingContextBase self) =>
-                           self -> GLenum -> GLenum -> m (Maybe WebGLShaderPrecisionFormat)
-getShaderPrecisionFormat self shadertype precisiontype
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getShaderPrecisionFormat (toWebGLRenderingContextBase self)
-            shadertype
-            precisiontype))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderPrecisionFormat Mozilla WebGLRenderingContextBase.getShaderPrecisionFormat documentation> 
-getShaderPrecisionFormat_ ::
-                          (MonadIO m, IsWebGLRenderingContextBase self) =>
-                            self -> GLenum -> GLenum -> m ()
-getShaderPrecisionFormat_ self shadertype precisiontype
-  = liftIO
-      (void
-         (js_getShaderPrecisionFormat (toWebGLRenderingContextBase self)
-            shadertype
-            precisiontype))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderPrecisionFormat Mozilla WebGLRenderingContextBase.getShaderPrecisionFormat documentation> 
-getShaderPrecisionFormatUnsafe ::
-                               (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack) =>
-                                 self -> GLenum -> GLenum -> m WebGLShaderPrecisionFormat
-getShaderPrecisionFormatUnsafe self shadertype precisiontype
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getShaderPrecisionFormat (toWebGLRenderingContextBase self)
-             shadertype
-             precisiontype))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderPrecisionFormat Mozilla WebGLRenderingContextBase.getShaderPrecisionFormat documentation> 
-getShaderPrecisionFormatUnchecked ::
-                                  (MonadIO m, IsWebGLRenderingContextBase self) =>
-                                    self -> GLenum -> GLenum -> m WebGLShaderPrecisionFormat
-getShaderPrecisionFormatUnchecked self shadertype precisiontype
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getShaderPrecisionFormat (toWebGLRenderingContextBase self)
-            shadertype
-            precisiontype))
- 
-foreign import javascript unsafe "$1[\"getShaderSource\"]($2)"
-        js_getShaderSource ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLShader -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderSource Mozilla WebGLRenderingContextBase.getShaderSource documentation> 
-getShaderSource ::
-                (MonadIO m, IsWebGLRenderingContextBase self,
-                 FromJSString result) =>
-                  self -> Maybe WebGLShader -> m (Maybe result)
-getShaderSource self shader
-  = liftIO
-      (fromMaybeJSString <$>
-         (js_getShaderSource (toWebGLRenderingContextBase self)
-            (maybeToNullable shader)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderSource Mozilla WebGLRenderingContextBase.getShaderSource documentation> 
-getShaderSource_ ::
-                 (MonadIO m, IsWebGLRenderingContextBase self) =>
-                   self -> Maybe WebGLShader -> m ()
-getShaderSource_ self shader
-  = liftIO
-      (void
-         (js_getShaderSource (toWebGLRenderingContextBase self)
-            (maybeToNullable shader)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderSource Mozilla WebGLRenderingContextBase.getShaderSource documentation> 
-getShaderSourceUnsafe ::
-                      (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack,
-                       FromJSString result) =>
-                        self -> Maybe WebGLShader -> m result
-getShaderSourceUnsafe self shader
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_getShaderSource (toWebGLRenderingContextBase self)
-             (maybeToNullable shader)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderSource Mozilla WebGLRenderingContextBase.getShaderSource documentation> 
-getShaderSourceUnchecked ::
-                         (MonadIO m, IsWebGLRenderingContextBase self,
-                          FromJSString result) =>
-                           self -> Maybe WebGLShader -> m result
-getShaderSourceUnchecked self shader
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getShaderSource (toWebGLRenderingContextBase self)
-            (maybeToNullable shader)))
- 
-foreign import javascript unsafe "$1[\"getSupportedExtensions\"]()"
-        js_getSupportedExtensions :: WebGLRenderingContextBase -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getSupportedExtensions Mozilla WebGLRenderingContextBase.getSupportedExtensions documentation> 
-getSupportedExtensions ::
-                       (MonadIO m, IsWebGLRenderingContextBase self,
-                        FromJSString result) =>
-                         self -> m [result]
-getSupportedExtensions self
-  = liftIO
-      ((js_getSupportedExtensions (toWebGLRenderingContextBase self)) >>=
-         fromJSValUnchecked)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getSupportedExtensions Mozilla WebGLRenderingContextBase.getSupportedExtensions documentation> 
-getSupportedExtensions_ ::
-                        (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-getSupportedExtensions_ self
-  = liftIO
-      (void
-         (js_getSupportedExtensions (toWebGLRenderingContextBase self)))
- 
-foreign import javascript unsafe "$1[\"getTexParameter\"]($2, $3)"
-        js_getTexParameter ::
-        WebGLRenderingContextBase -> GLenum -> GLenum -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getTexParameter Mozilla WebGLRenderingContextBase.getTexParameter documentation> 
-getTexParameter ::
-                (MonadIO m, IsWebGLRenderingContextBase self) =>
-                  self -> GLenum -> GLenum -> m JSVal
-getTexParameter self target pname
-  = liftIO
-      (js_getTexParameter (toWebGLRenderingContextBase self) target
-         pname)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getTexParameter Mozilla WebGLRenderingContextBase.getTexParameter documentation> 
-getTexParameter_ ::
-                 (MonadIO m, IsWebGLRenderingContextBase self) =>
-                   self -> GLenum -> GLenum -> m ()
-getTexParameter_ self target pname
-  = liftIO
-      (void
-         (js_getTexParameter (toWebGLRenderingContextBase self) target
-            pname))
- 
-foreign import javascript unsafe "$1[\"getUniform\"]($2, $3)"
-        js_getUniform ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLProgram -> Nullable WebGLUniformLocation -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getUniform Mozilla WebGLRenderingContextBase.getUniform documentation> 
-getUniform ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self -> Maybe WebGLProgram -> Maybe WebGLUniformLocation -> m JSVal
-getUniform self program location
-  = liftIO
-      (js_getUniform (toWebGLRenderingContextBase self)
-         (maybeToNullable program)
-         (maybeToNullable location))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getUniform Mozilla WebGLRenderingContextBase.getUniform documentation> 
-getUniform_ ::
-            (MonadIO m, IsWebGLRenderingContextBase self) =>
-              self -> Maybe WebGLProgram -> Maybe WebGLUniformLocation -> m ()
-getUniform_ self program location
-  = liftIO
-      (void
-         (js_getUniform (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            (maybeToNullable location)))
- 
-foreign import javascript unsafe
-        "$1[\"getUniformLocation\"]($2, $3)" js_getUniformLocation ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLProgram ->
-            JSString -> IO (Nullable WebGLUniformLocation)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getUniformLocation Mozilla WebGLRenderingContextBase.getUniformLocation documentation> 
-getUniformLocation ::
-                   (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
-                     self ->
-                       Maybe WebGLProgram -> name -> m (Maybe WebGLUniformLocation)
-getUniformLocation self program name
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getUniformLocation (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getUniformLocation Mozilla WebGLRenderingContextBase.getUniformLocation documentation> 
-getUniformLocation_ ::
-                    (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
-                      self -> Maybe WebGLProgram -> name -> m ()
-getUniformLocation_ self program name
-  = liftIO
-      (void
-         (js_getUniformLocation (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            (toJSString name)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getUniformLocation Mozilla WebGLRenderingContextBase.getUniformLocation documentation> 
-getUniformLocationUnsafe ::
-                         (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name,
-                          HasCallStack) =>
-                           self -> Maybe WebGLProgram -> name -> m WebGLUniformLocation
-getUniformLocationUnsafe self program name
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getUniformLocation (toWebGLRenderingContextBase self)
-             (maybeToNullable program)
-             (toJSString name)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getUniformLocation Mozilla WebGLRenderingContextBase.getUniformLocation documentation> 
-getUniformLocationUnchecked ::
-                            (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
-                              self -> Maybe WebGLProgram -> name -> m WebGLUniformLocation
-getUniformLocationUnchecked self program name
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getUniformLocation (toWebGLRenderingContextBase self)
-            (maybeToNullable program)
-            (toJSString name)))
- 
-foreign import javascript unsafe "$1[\"getVertexAttrib\"]($2, $3)"
-        js_getVertexAttrib ::
-        WebGLRenderingContextBase -> GLuint -> GLenum -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getVertexAttrib Mozilla WebGLRenderingContextBase.getVertexAttrib documentation> 
-getVertexAttrib ::
-                (MonadIO m, IsWebGLRenderingContextBase self) =>
-                  self -> GLuint -> GLenum -> m JSVal
-getVertexAttrib self index pname
-  = liftIO
-      (js_getVertexAttrib (toWebGLRenderingContextBase self) index pname)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getVertexAttrib Mozilla WebGLRenderingContextBase.getVertexAttrib documentation> 
-getVertexAttrib_ ::
-                 (MonadIO m, IsWebGLRenderingContextBase self) =>
-                   self -> GLuint -> GLenum -> m ()
-getVertexAttrib_ self index pname
-  = liftIO
-      (void
-         (js_getVertexAttrib (toWebGLRenderingContextBase self) index
-            pname))
- 
-foreign import javascript unsafe
-        "$1[\"getVertexAttribOffset\"]($2,\n$3)" js_getVertexAttribOffset
-        :: WebGLRenderingContextBase -> GLuint -> GLenum -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getVertexAttribOffset Mozilla WebGLRenderingContextBase.getVertexAttribOffset documentation> 
-getVertexAttribOffset ::
-                      (MonadIO m, IsWebGLRenderingContextBase self) =>
-                        self -> GLuint -> GLenum -> m GLsizeiptr
-getVertexAttribOffset self index pname
-  = liftIO
-      (round <$>
-         (js_getVertexAttribOffset (toWebGLRenderingContextBase self) index
-            pname))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getVertexAttribOffset Mozilla WebGLRenderingContextBase.getVertexAttribOffset documentation> 
-getVertexAttribOffset_ ::
-                       (MonadIO m, IsWebGLRenderingContextBase self) =>
-                         self -> GLuint -> GLenum -> m ()
-getVertexAttribOffset_ self index pname
-  = liftIO
-      (void
-         (js_getVertexAttribOffset (toWebGLRenderingContextBase self) index
-            pname))
- 
-foreign import javascript unsafe "$1[\"hint\"]($2, $3)" js_hint ::
-        WebGLRenderingContextBase -> GLenum -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.hint Mozilla WebGLRenderingContextBase.hint documentation> 
-hint ::
-     (MonadIO m, IsWebGLRenderingContextBase self) =>
-       self -> GLenum -> GLenum -> m ()
-hint self target mode
-  = liftIO (js_hint (toWebGLRenderingContextBase self) target mode)
- 
-foreign import javascript unsafe "$1[\"isBuffer\"]($2)" js_isBuffer
-        ::
-        WebGLRenderingContextBase -> Nullable WebGLBuffer -> IO GLboolean
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isBuffer Mozilla WebGLRenderingContextBase.isBuffer documentation> 
-isBuffer ::
-         (MonadIO m, IsWebGLRenderingContextBase self) =>
-           self -> Maybe WebGLBuffer -> m GLboolean
-isBuffer self buffer
-  = liftIO
-      (js_isBuffer (toWebGLRenderingContextBase self)
-         (maybeToNullable buffer))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isBuffer Mozilla WebGLRenderingContextBase.isBuffer documentation> 
-isBuffer_ ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> Maybe WebGLBuffer -> m ()
-isBuffer_ self buffer
-  = liftIO
-      (void
-         (js_isBuffer (toWebGLRenderingContextBase self)
-            (maybeToNullable buffer)))
- 
-foreign import javascript unsafe "$1[\"isContextLost\"]()"
-        js_isContextLost :: WebGLRenderingContextBase -> IO GLboolean
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isContextLost Mozilla WebGLRenderingContextBase.isContextLost documentation> 
-isContextLost ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> m GLboolean
-isContextLost self
-  = liftIO (js_isContextLost (toWebGLRenderingContextBase self))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isContextLost Mozilla WebGLRenderingContextBase.isContextLost documentation> 
-isContextLost_ ::
-               (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-isContextLost_ self
-  = liftIO
-      (void (js_isContextLost (toWebGLRenderingContextBase self)))
- 
-foreign import javascript unsafe "$1[\"isEnabled\"]($2)"
-        js_isEnabled :: WebGLRenderingContextBase -> GLenum -> IO GLboolean
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isEnabled Mozilla WebGLRenderingContextBase.isEnabled documentation> 
-isEnabled ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> GLenum -> m GLboolean
-isEnabled self cap
-  = liftIO (js_isEnabled (toWebGLRenderingContextBase self) cap)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isEnabled Mozilla WebGLRenderingContextBase.isEnabled documentation> 
-isEnabled_ ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self -> GLenum -> m ()
-isEnabled_ self cap
-  = liftIO
-      (void (js_isEnabled (toWebGLRenderingContextBase self) cap))
- 
-foreign import javascript unsafe "$1[\"isFramebuffer\"]($2)"
-        js_isFramebuffer ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLFramebuffer -> IO GLboolean
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isFramebuffer Mozilla WebGLRenderingContextBase.isFramebuffer documentation> 
-isFramebuffer ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> Maybe WebGLFramebuffer -> m GLboolean
-isFramebuffer self framebuffer
-  = liftIO
-      (js_isFramebuffer (toWebGLRenderingContextBase self)
-         (maybeToNullable framebuffer))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isFramebuffer Mozilla WebGLRenderingContextBase.isFramebuffer documentation> 
-isFramebuffer_ ::
-               (MonadIO m, IsWebGLRenderingContextBase self) =>
-                 self -> Maybe WebGLFramebuffer -> m ()
-isFramebuffer_ self framebuffer
-  = liftIO
-      (void
-         (js_isFramebuffer (toWebGLRenderingContextBase self)
-            (maybeToNullable framebuffer)))
- 
-foreign import javascript unsafe "$1[\"isProgram\"]($2)"
-        js_isProgram ::
-        WebGLRenderingContextBase -> Nullable WebGLProgram -> IO GLboolean
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isProgram Mozilla WebGLRenderingContextBase.isProgram documentation> 
-isProgram ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> Maybe WebGLProgram -> m GLboolean
-isProgram self program
-  = liftIO
-      (js_isProgram (toWebGLRenderingContextBase self)
-         (maybeToNullable program))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isProgram Mozilla WebGLRenderingContextBase.isProgram documentation> 
-isProgram_ ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self -> Maybe WebGLProgram -> m ()
-isProgram_ self program
-  = liftIO
-      (void
-         (js_isProgram (toWebGLRenderingContextBase self)
-            (maybeToNullable program)))
- 
-foreign import javascript unsafe "$1[\"isRenderbuffer\"]($2)"
-        js_isRenderbuffer ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLRenderbuffer -> IO GLboolean
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isRenderbuffer Mozilla WebGLRenderingContextBase.isRenderbuffer documentation> 
-isRenderbuffer ::
-               (MonadIO m, IsWebGLRenderingContextBase self) =>
-                 self -> Maybe WebGLRenderbuffer -> m GLboolean
-isRenderbuffer self renderbuffer
-  = liftIO
-      (js_isRenderbuffer (toWebGLRenderingContextBase self)
-         (maybeToNullable renderbuffer))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isRenderbuffer Mozilla WebGLRenderingContextBase.isRenderbuffer documentation> 
-isRenderbuffer_ ::
-                (MonadIO m, IsWebGLRenderingContextBase self) =>
-                  self -> Maybe WebGLRenderbuffer -> m ()
-isRenderbuffer_ self renderbuffer
-  = liftIO
-      (void
-         (js_isRenderbuffer (toWebGLRenderingContextBase self)
-            (maybeToNullable renderbuffer)))
- 
-foreign import javascript unsafe "$1[\"isShader\"]($2)" js_isShader
-        ::
-        WebGLRenderingContextBase -> Nullable WebGLShader -> IO GLboolean
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isShader Mozilla WebGLRenderingContextBase.isShader documentation> 
-isShader ::
-         (MonadIO m, IsWebGLRenderingContextBase self) =>
-           self -> Maybe WebGLShader -> m GLboolean
-isShader self shader
-  = liftIO
-      (js_isShader (toWebGLRenderingContextBase self)
-         (maybeToNullable shader))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isShader Mozilla WebGLRenderingContextBase.isShader documentation> 
-isShader_ ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> Maybe WebGLShader -> m ()
-isShader_ self shader
-  = liftIO
-      (void
-         (js_isShader (toWebGLRenderingContextBase self)
-            (maybeToNullable shader)))
- 
-foreign import javascript unsafe "$1[\"isTexture\"]($2)"
-        js_isTexture ::
-        WebGLRenderingContextBase -> Nullable WebGLTexture -> IO GLboolean
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isTexture Mozilla WebGLRenderingContextBase.isTexture documentation> 
-isTexture ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> Maybe WebGLTexture -> m GLboolean
-isTexture self texture
-  = liftIO
-      (js_isTexture (toWebGLRenderingContextBase self)
-         (maybeToNullable texture))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isTexture Mozilla WebGLRenderingContextBase.isTexture documentation> 
-isTexture_ ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self -> Maybe WebGLTexture -> m ()
-isTexture_ self texture
-  = liftIO
-      (void
-         (js_isTexture (toWebGLRenderingContextBase self)
-            (maybeToNullable texture)))
- 
-foreign import javascript unsafe "$1[\"lineWidth\"]($2)"
-        js_lineWidth :: WebGLRenderingContextBase -> GLfloat -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.lineWidth Mozilla WebGLRenderingContextBase.lineWidth documentation> 
-lineWidth ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> GLfloat -> m ()
-lineWidth self width
-  = liftIO (js_lineWidth (toWebGLRenderingContextBase self) width)
- 
-foreign import javascript unsafe "$1[\"linkProgram\"]($2)"
-        js_linkProgram ::
-        WebGLRenderingContextBase -> Nullable WebGLProgram -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.linkProgram Mozilla WebGLRenderingContextBase.linkProgram documentation> 
-linkProgram ::
-            (MonadIO m, IsWebGLRenderingContextBase self) =>
-              self -> Maybe WebGLProgram -> m ()
-linkProgram self program
-  = liftIO
-      (js_linkProgram (toWebGLRenderingContextBase self)
-         (maybeToNullable program))
- 
-foreign import javascript unsafe "$1[\"pixelStorei\"]($2, $3)"
-        js_pixelStorei ::
-        WebGLRenderingContextBase -> GLenum -> GLint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.pixelStorei Mozilla WebGLRenderingContextBase.pixelStorei documentation> 
-pixelStorei ::
-            (MonadIO m, IsWebGLRenderingContextBase self) =>
-              self -> GLenum -> GLint -> m ()
-pixelStorei self pname param
-  = liftIO
-      (js_pixelStorei (toWebGLRenderingContextBase self) pname param)
- 
-foreign import javascript unsafe "$1[\"polygonOffset\"]($2, $3)"
-        js_polygonOffset ::
-        WebGLRenderingContextBase -> GLfloat -> GLfloat -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.polygonOffset Mozilla WebGLRenderingContextBase.polygonOffset documentation> 
-polygonOffset ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> GLfloat -> GLfloat -> m ()
-polygonOffset self factor units
-  = liftIO
-      (js_polygonOffset (toWebGLRenderingContextBase self) factor units)
- 
-foreign import javascript unsafe
-        "$1[\"readPixels\"]($2, $3, $4, $5,\n$6, $7, $8)" js_readPixels ::
-        WebGLRenderingContextBase ->
-          GLint ->
-            GLint ->
-              GLsizei ->
-                GLsizei -> GLenum -> GLenum -> Nullable ArrayBufferView -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.readPixels Mozilla WebGLRenderingContextBase.readPixels documentation> 
-readPixels ::
-           (MonadIO m, IsWebGLRenderingContextBase self,
-            IsArrayBufferView pixels) =>
-             self ->
-               GLint ->
-                 GLint ->
-                   GLsizei -> GLsizei -> GLenum -> GLenum -> Maybe pixels -> m ()
-readPixels self x y width height format type' pixels
-  = liftIO
-      (js_readPixels (toWebGLRenderingContextBase self) x y width height
-         format
-         type'
-         (maybeToNullable (fmap toArrayBufferView pixels)))
- 
-foreign import javascript unsafe "$1[\"releaseShaderCompiler\"]()"
-        js_releaseShaderCompiler :: WebGLRenderingContextBase -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.releaseShaderCompiler Mozilla WebGLRenderingContextBase.releaseShaderCompiler documentation> 
-releaseShaderCompiler ::
-                      (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
-releaseShaderCompiler self
-  = liftIO
-      (js_releaseShaderCompiler (toWebGLRenderingContextBase self))
- 
-foreign import javascript unsafe
-        "$1[\"renderbufferStorage\"]($2,\n$3, $4, $5)"
-        js_renderbufferStorage ::
-        WebGLRenderingContextBase ->
-          GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.renderbufferStorage Mozilla WebGLRenderingContextBase.renderbufferStorage documentation> 
-renderbufferStorage ::
-                    (MonadIO m, IsWebGLRenderingContextBase self) =>
-                      self -> GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
-renderbufferStorage self target internalformat width height
-  = liftIO
-      (js_renderbufferStorage (toWebGLRenderingContextBase self) target
-         internalformat
-         width
-         height)
- 
-foreign import javascript unsafe "$1[\"sampleCoverage\"]($2, $3)"
-        js_sampleCoverage ::
-        WebGLRenderingContextBase -> GLclampf -> GLboolean -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.sampleCoverage Mozilla WebGLRenderingContextBase.sampleCoverage documentation> 
-sampleCoverage ::
-               (MonadIO m, IsWebGLRenderingContextBase self) =>
-                 self -> GLclampf -> GLboolean -> m ()
-sampleCoverage self value invert
-  = liftIO
-      (js_sampleCoverage (toWebGLRenderingContextBase self) value invert)
- 
-foreign import javascript unsafe "$1[\"scissor\"]($2, $3, $4, $5)"
-        js_scissor ::
-        WebGLRenderingContextBase ->
-          GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.scissor Mozilla WebGLRenderingContextBase.scissor documentation> 
-scissor ::
-        (MonadIO m, IsWebGLRenderingContextBase self) =>
-          self -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-scissor self x y width height
-  = liftIO
-      (js_scissor (toWebGLRenderingContextBase self) x y width height)
- 
-foreign import javascript unsafe "$1[\"shaderSource\"]($2, $3)"
-        js_shaderSource ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLShader -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.shaderSource Mozilla WebGLRenderingContextBase.shaderSource documentation> 
-shaderSource ::
-             (MonadIO m, IsWebGLRenderingContextBase self, ToJSString string) =>
-               self -> Maybe WebGLShader -> string -> m ()
-shaderSource self shader string
-  = liftIO
-      (js_shaderSource (toWebGLRenderingContextBase self)
-         (maybeToNullable shader)
-         (toJSString string))
- 
-foreign import javascript unsafe "$1[\"stencilFunc\"]($2, $3, $4)"
-        js_stencilFunc ::
-        WebGLRenderingContextBase -> GLenum -> GLint -> GLuint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilFunc Mozilla WebGLRenderingContextBase.stencilFunc documentation> 
-stencilFunc ::
-            (MonadIO m, IsWebGLRenderingContextBase self) =>
-              self -> GLenum -> GLint -> GLuint -> m ()
-stencilFunc self func ref mask
-  = liftIO
-      (js_stencilFunc (toWebGLRenderingContextBase self) func ref mask)
- 
-foreign import javascript unsafe
-        "$1[\"stencilFuncSeparate\"]($2,\n$3, $4, $5)"
-        js_stencilFuncSeparate ::
-        WebGLRenderingContextBase ->
-          GLenum -> GLenum -> GLint -> GLuint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilFuncSeparate Mozilla WebGLRenderingContextBase.stencilFuncSeparate documentation> 
-stencilFuncSeparate ::
-                    (MonadIO m, IsWebGLRenderingContextBase self) =>
-                      self -> GLenum -> GLenum -> GLint -> GLuint -> m ()
-stencilFuncSeparate self face func ref mask
-  = liftIO
-      (js_stencilFuncSeparate (toWebGLRenderingContextBase self) face
-         func
-         ref
-         mask)
- 
-foreign import javascript unsafe "$1[\"stencilMask\"]($2)"
-        js_stencilMask :: WebGLRenderingContextBase -> GLuint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilMask Mozilla WebGLRenderingContextBase.stencilMask documentation> 
-stencilMask ::
-            (MonadIO m, IsWebGLRenderingContextBase self) =>
-              self -> GLuint -> m ()
-stencilMask self mask
-  = liftIO (js_stencilMask (toWebGLRenderingContextBase self) mask)
- 
-foreign import javascript unsafe
-        "$1[\"stencilMaskSeparate\"]($2,\n$3)" js_stencilMaskSeparate ::
-        WebGLRenderingContextBase -> GLenum -> GLuint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilMaskSeparate Mozilla WebGLRenderingContextBase.stencilMaskSeparate documentation> 
-stencilMaskSeparate ::
-                    (MonadIO m, IsWebGLRenderingContextBase self) =>
-                      self -> GLenum -> GLuint -> m ()
-stencilMaskSeparate self face mask
-  = liftIO
-      (js_stencilMaskSeparate (toWebGLRenderingContextBase self) face
-         mask)
- 
-foreign import javascript unsafe "$1[\"stencilOp\"]($2, $3, $4)"
-        js_stencilOp ::
-        WebGLRenderingContextBase -> GLenum -> GLenum -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilOp Mozilla WebGLRenderingContextBase.stencilOp documentation> 
-stencilOp ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> GLenum -> GLenum -> GLenum -> m ()
-stencilOp self fail zfail zpass
-  = liftIO
-      (js_stencilOp (toWebGLRenderingContextBase self) fail zfail zpass)
- 
-foreign import javascript unsafe
-        "$1[\"stencilOpSeparate\"]($2, $3,\n$4, $5)" js_stencilOpSeparate
-        ::
-        WebGLRenderingContextBase ->
-          GLenum -> GLenum -> GLenum -> GLenum -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilOpSeparate Mozilla WebGLRenderingContextBase.stencilOpSeparate documentation> 
-stencilOpSeparate ::
-                  (MonadIO m, IsWebGLRenderingContextBase self) =>
-                    self -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-stencilOpSeparate self face fail zfail zpass
-  = liftIO
-      (js_stencilOpSeparate (toWebGLRenderingContextBase self) face fail
-         zfail
-         zpass)
- 
-foreign import javascript unsafe
-        "$1[\"texParameterf\"]($2, $3, $4)" js_texParameterf ::
-        WebGLRenderingContextBase -> GLenum -> GLenum -> GLfloat -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texParameterf Mozilla WebGLRenderingContextBase.texParameterf documentation> 
-texParameterf ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> GLenum -> GLenum -> GLfloat -> m ()
-texParameterf self target pname param
-  = liftIO
-      (js_texParameterf (toWebGLRenderingContextBase self) target pname
-         param)
- 
-foreign import javascript unsafe
-        "$1[\"texParameteri\"]($2, $3, $4)" js_texParameteri ::
-        WebGLRenderingContextBase -> GLenum -> GLenum -> GLint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texParameteri Mozilla WebGLRenderingContextBase.texParameteri documentation> 
-texParameteri ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self -> GLenum -> GLenum -> GLint -> m ()
-texParameteri self target pname param
-  = liftIO
-      (js_texParameteri (toWebGLRenderingContextBase self) target pname
-         param)
- 
-foreign import javascript unsafe
-        "$1[\"texImage2D\"]($2, $3, $4, $5,\n$6, $7, $8, $9, $10)"
-        js_texImage2DView ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLenum ->
-                GLsizei ->
-                  GLsizei ->
-                    GLint -> GLenum -> GLenum -> Nullable ArrayBufferView -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texImage2D Mozilla WebGLRenderingContextBase.texImage2D documentation> 
-texImage2DView ::
-               (MonadIO m, IsWebGLRenderingContextBase self,
-                IsArrayBufferView pixels) =>
-                 self ->
-                   GLenum ->
-                     GLint ->
-                       GLenum ->
-                         GLsizei ->
-                           GLsizei -> GLint -> GLenum -> GLenum -> Maybe pixels -> m ()
-texImage2DView self target level internalformat width height border
-  format type' pixels
-  = liftIO
-      (js_texImage2DView (toWebGLRenderingContextBase self) target level
-         internalformat
-         width
-         height
-         border
-         format
-         type'
-         (maybeToNullable (fmap toArrayBufferView pixels)))
- 
-foreign import javascript unsafe
-        "$1[\"texImage2D\"]($2, $3, $4, $5,\n$6, $7)" js_texImage2DData ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint -> GLenum -> GLenum -> GLenum -> Nullable ImageData -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texImage2D Mozilla WebGLRenderingContextBase.texImage2D documentation> 
-texImage2DData ::
-               (MonadIO m, IsWebGLRenderingContextBase self) =>
-                 self ->
-                   GLenum ->
-                     GLint -> GLenum -> GLenum -> GLenum -> Maybe ImageData -> m ()
-texImage2DData self target level internalformat format type' pixels
-  = liftIO
-      (js_texImage2DData (toWebGLRenderingContextBase self) target level
-         internalformat
-         format
-         type'
-         (maybeToNullable pixels))
- 
-foreign import javascript unsafe
-        "$1[\"texImage2D\"]($2, $3, $4, $5,\n$6, $7)" js_texImage2D ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLenum -> GLenum -> GLenum -> Nullable HTMLImageElement -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texImage2D Mozilla WebGLRenderingContextBase.texImage2D documentation> 
-texImage2D ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self ->
-               GLenum ->
-                 GLint ->
-                   GLenum -> GLenum -> GLenum -> Maybe HTMLImageElement -> m ()
-texImage2D self target level internalformat format type' image
-  = liftIO
-      (js_texImage2D (toWebGLRenderingContextBase self) target level
-         internalformat
-         format
-         type'
-         (maybeToNullable image))
- 
-foreign import javascript unsafe
-        "$1[\"texImage2D\"]($2, $3, $4, $5,\n$6, $7)" js_texImage2DCanvas
-        ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLenum -> GLenum -> GLenum -> Nullable HTMLCanvasElement -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texImage2D Mozilla WebGLRenderingContextBase.texImage2D documentation> 
-texImage2DCanvas ::
-                 (MonadIO m, IsWebGLRenderingContextBase self) =>
-                   self ->
-                     GLenum ->
-                       GLint ->
-                         GLenum -> GLenum -> GLenum -> Maybe HTMLCanvasElement -> m ()
-texImage2DCanvas self target level internalformat format type'
-  canvas
-  = liftIO
-      (js_texImage2DCanvas (toWebGLRenderingContextBase self) target
-         level
-         internalformat
-         format
-         type'
-         (maybeToNullable canvas))
- 
-foreign import javascript unsafe
-        "$1[\"texImage2D\"]($2, $3, $4, $5,\n$6, $7)" js_texImage2DVideo ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLenum -> GLenum -> GLenum -> Nullable HTMLVideoElement -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texImage2D Mozilla WebGLRenderingContextBase.texImage2D documentation> 
-texImage2DVideo ::
-                (MonadIO m, IsWebGLRenderingContextBase self) =>
-                  self ->
-                    GLenum ->
-                      GLint ->
-                        GLenum -> GLenum -> GLenum -> Maybe HTMLVideoElement -> m ()
-texImage2DVideo self target level internalformat format type' video
-  = liftIO
-      (js_texImage2DVideo (toWebGLRenderingContextBase self) target level
-         internalformat
-         format
-         type'
-         (maybeToNullable video))
- 
-foreign import javascript unsafe
-        "$1[\"texSubImage2D\"]($2, $3, $4,\n$5, $6, $7, $8, $9, $10)"
-        js_texSubImage2DView ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLint ->
-                GLint ->
-                  GLsizei ->
-                    GLsizei -> GLenum -> GLenum -> Nullable ArrayBufferView -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texSubImage2D Mozilla WebGLRenderingContextBase.texSubImage2D documentation> 
-texSubImage2DView ::
-                  (MonadIO m, IsWebGLRenderingContextBase self,
-                   IsArrayBufferView pixels) =>
-                    self ->
-                      GLenum ->
-                        GLint ->
-                          GLint ->
-                            GLint ->
-                              GLsizei -> GLsizei -> GLenum -> GLenum -> Maybe pixels -> m ()
-texSubImage2DView self target level xoffset yoffset width height
-  format type' pixels
-  = liftIO
-      (js_texSubImage2DView (toWebGLRenderingContextBase self) target
-         level
-         xoffset
-         yoffset
-         width
-         height
-         format
-         type'
-         (maybeToNullable (fmap toArrayBufferView pixels)))
- 
-foreign import javascript unsafe
-        "$1[\"texSubImage2D\"]($2, $3, $4,\n$5, $6, $7, $8)"
-        js_texSubImage2DData ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLint -> GLint -> GLenum -> GLenum -> Nullable ImageData -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texSubImage2D Mozilla WebGLRenderingContextBase.texSubImage2D documentation> 
-texSubImage2DData ::
-                  (MonadIO m, IsWebGLRenderingContextBase self) =>
-                    self ->
-                      GLenum ->
-                        GLint ->
-                          GLint -> GLint -> GLenum -> GLenum -> Maybe ImageData -> m ()
-texSubImage2DData self target level xoffset yoffset format type'
-  pixels
-  = liftIO
-      (js_texSubImage2DData (toWebGLRenderingContextBase self) target
-         level
-         xoffset
-         yoffset
-         format
-         type'
-         (maybeToNullable pixels))
- 
-foreign import javascript unsafe
-        "$1[\"texSubImage2D\"]($2, $3, $4,\n$5, $6, $7, $8)"
-        js_texSubImage2D ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLint ->
-                GLint -> GLenum -> GLenum -> Nullable HTMLImageElement -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texSubImage2D Mozilla WebGLRenderingContextBase.texSubImage2D documentation> 
-texSubImage2D ::
-              (MonadIO m, IsWebGLRenderingContextBase self) =>
-                self ->
-                  GLenum ->
-                    GLint ->
-                      GLint ->
-                        GLint -> GLenum -> GLenum -> Maybe HTMLImageElement -> m ()
-texSubImage2D self target level xoffset yoffset format type' image
-  = liftIO
-      (js_texSubImage2D (toWebGLRenderingContextBase self) target level
-         xoffset
-         yoffset
-         format
-         type'
-         (maybeToNullable image))
- 
-foreign import javascript unsafe
-        "$1[\"texSubImage2D\"]($2, $3, $4,\n$5, $6, $7, $8)"
-        js_texSubImage2DCanvas ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLint ->
-                GLint -> GLenum -> GLenum -> Nullable HTMLCanvasElement -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texSubImage2D Mozilla WebGLRenderingContextBase.texSubImage2D documentation> 
-texSubImage2DCanvas ::
-                    (MonadIO m, IsWebGLRenderingContextBase self) =>
-                      self ->
-                        GLenum ->
-                          GLint ->
-                            GLint ->
-                              GLint -> GLenum -> GLenum -> Maybe HTMLCanvasElement -> m ()
-texSubImage2DCanvas self target level xoffset yoffset format type'
-  canvas
-  = liftIO
-      (js_texSubImage2DCanvas (toWebGLRenderingContextBase self) target
-         level
-         xoffset
-         yoffset
-         format
-         type'
-         (maybeToNullable canvas))
- 
-foreign import javascript unsafe
-        "$1[\"texSubImage2D\"]($2, $3, $4,\n$5, $6, $7, $8)"
-        js_texSubImage2DVideo ::
-        WebGLRenderingContextBase ->
-          GLenum ->
-            GLint ->
-              GLint ->
-                GLint -> GLenum -> GLenum -> Nullable HTMLVideoElement -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texSubImage2D Mozilla WebGLRenderingContextBase.texSubImage2D documentation> 
-texSubImage2DVideo ::
-                   (MonadIO m, IsWebGLRenderingContextBase self) =>
-                     self ->
-                       GLenum ->
-                         GLint ->
-                           GLint ->
-                             GLint -> GLenum -> GLenum -> Maybe HTMLVideoElement -> m ()
-texSubImage2DVideo self target level xoffset yoffset format type'
-  video
-  = liftIO
-      (js_texSubImage2DVideo (toWebGLRenderingContextBase self) target
-         level
-         xoffset
-         yoffset
-         format
-         type'
-         (maybeToNullable video))
- 
-foreign import javascript unsafe "$1[\"uniform1f\"]($2, $3)"
-        js_uniform1f ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> GLfloat -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform1f Mozilla WebGLRenderingContextBase.uniform1f documentation> 
-uniform1f ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> Maybe WebGLUniformLocation -> GLfloat -> m ()
-uniform1f self location x
-  = liftIO
-      (js_uniform1f (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         x)
- 
-foreign import javascript unsafe "$1[\"uniform1fv\"]($2, $3)"
-        js_uniform1fv ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> Nullable Float32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform1fv Mozilla WebGLRenderingContextBase.uniform1fv documentation> 
-uniform1fv ::
-           (MonadIO m, IsWebGLRenderingContextBase self, IsFloat32Array v) =>
-             self -> Maybe WebGLUniformLocation -> Maybe v -> m ()
-uniform1fv self location v
-  = liftIO
-      (js_uniform1fv (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         (maybeToNullable (fmap toFloat32Array v)))
- 
-foreign import javascript unsafe "$1[\"uniform1i\"]($2, $3)"
-        js_uniform1i ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> GLint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform1i Mozilla WebGLRenderingContextBase.uniform1i documentation> 
-uniform1i ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> Maybe WebGLUniformLocation -> GLint -> m ()
-uniform1i self location x
-  = liftIO
-      (js_uniform1i (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         x)
- 
-foreign import javascript unsafe "$1[\"uniform1iv\"]($2, $3)"
-        js_uniform1iv ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> Nullable Int32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform1iv Mozilla WebGLRenderingContextBase.uniform1iv documentation> 
-uniform1iv ::
-           (MonadIO m, IsWebGLRenderingContextBase self, IsInt32Array v) =>
-             self -> Maybe WebGLUniformLocation -> Maybe v -> m ()
-uniform1iv self location v
-  = liftIO
-      (js_uniform1iv (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         (maybeToNullable (fmap toInt32Array v)))
- 
-foreign import javascript unsafe "$1[\"uniform2f\"]($2, $3, $4)"
-        js_uniform2f ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> GLfloat -> GLfloat -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform2f Mozilla WebGLRenderingContextBase.uniform2f documentation> 
-uniform2f ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> Maybe WebGLUniformLocation -> GLfloat -> GLfloat -> m ()
-uniform2f self location x y
-  = liftIO
-      (js_uniform2f (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         x
-         y)
- 
-foreign import javascript unsafe "$1[\"uniform2fv\"]($2, $3)"
-        js_uniform2fv ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> Nullable Float32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform2fv Mozilla WebGLRenderingContextBase.uniform2fv documentation> 
-uniform2fv ::
-           (MonadIO m, IsWebGLRenderingContextBase self, IsFloat32Array v) =>
-             self -> Maybe WebGLUniformLocation -> Maybe v -> m ()
-uniform2fv self location v
-  = liftIO
-      (js_uniform2fv (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         (maybeToNullable (fmap toFloat32Array v)))
- 
-foreign import javascript unsafe "$1[\"uniform2i\"]($2, $3, $4)"
-        js_uniform2i ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> GLint -> GLint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform2i Mozilla WebGLRenderingContextBase.uniform2i documentation> 
-uniform2i ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self -> Maybe WebGLUniformLocation -> GLint -> GLint -> m ()
-uniform2i self location x y
-  = liftIO
-      (js_uniform2i (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         x
-         y)
- 
-foreign import javascript unsafe "$1[\"uniform2iv\"]($2, $3)"
-        js_uniform2iv ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> Nullable Int32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform2iv Mozilla WebGLRenderingContextBase.uniform2iv documentation> 
-uniform2iv ::
-           (MonadIO m, IsWebGLRenderingContextBase self, IsInt32Array v) =>
-             self -> Maybe WebGLUniformLocation -> Maybe v -> m ()
-uniform2iv self location v
-  = liftIO
-      (js_uniform2iv (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         (maybeToNullable (fmap toInt32Array v)))
- 
-foreign import javascript unsafe
-        "$1[\"uniform3f\"]($2, $3, $4, $5)" js_uniform3f ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation ->
-            GLfloat -> GLfloat -> GLfloat -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform3f Mozilla WebGLRenderingContextBase.uniform3f documentation> 
-uniform3f ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self ->
-              Maybe WebGLUniformLocation -> GLfloat -> GLfloat -> GLfloat -> m ()
-uniform3f self location x y z
-  = liftIO
-      (js_uniform3f (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         x
-         y
-         z)
- 
-foreign import javascript unsafe "$1[\"uniform3fv\"]($2, $3)"
-        js_uniform3fv ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> Nullable Float32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform3fv Mozilla WebGLRenderingContextBase.uniform3fv documentation> 
-uniform3fv ::
-           (MonadIO m, IsWebGLRenderingContextBase self, IsFloat32Array v) =>
-             self -> Maybe WebGLUniformLocation -> Maybe v -> m ()
-uniform3fv self location v
-  = liftIO
-      (js_uniform3fv (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         (maybeToNullable (fmap toFloat32Array v)))
- 
-foreign import javascript unsafe
-        "$1[\"uniform3i\"]($2, $3, $4, $5)" js_uniform3i ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> GLint -> GLint -> GLint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform3i Mozilla WebGLRenderingContextBase.uniform3i documentation> 
-uniform3i ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self ->
-              Maybe WebGLUniformLocation -> GLint -> GLint -> GLint -> m ()
-uniform3i self location x y z
-  = liftIO
-      (js_uniform3i (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         x
-         y
-         z)
- 
-foreign import javascript unsafe "$1[\"uniform3iv\"]($2, $3)"
-        js_uniform3iv ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> Nullable Int32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform3iv Mozilla WebGLRenderingContextBase.uniform3iv documentation> 
-uniform3iv ::
-           (MonadIO m, IsWebGLRenderingContextBase self, IsInt32Array v) =>
-             self -> Maybe WebGLUniformLocation -> Maybe v -> m ()
-uniform3iv self location v
-  = liftIO
-      (js_uniform3iv (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         (maybeToNullable (fmap toInt32Array v)))
- 
-foreign import javascript unsafe
-        "$1[\"uniform4f\"]($2, $3, $4, $5,\n$6)" js_uniform4f ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation ->
-            GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform4f Mozilla WebGLRenderingContextBase.uniform4f documentation> 
-uniform4f ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self ->
-              Maybe WebGLUniformLocation ->
-                GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-uniform4f self location x y z w
-  = liftIO
-      (js_uniform4f (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         x
-         y
-         z
-         w)
- 
-foreign import javascript unsafe "$1[\"uniform4fv\"]($2, $3)"
-        js_uniform4fv ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> Nullable Float32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform4fv Mozilla WebGLRenderingContextBase.uniform4fv documentation> 
-uniform4fv ::
-           (MonadIO m, IsWebGLRenderingContextBase self, IsFloat32Array v) =>
-             self -> Maybe WebGLUniformLocation -> Maybe v -> m ()
-uniform4fv self location v
-  = liftIO
-      (js_uniform4fv (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         (maybeToNullable (fmap toFloat32Array v)))
- 
-foreign import javascript unsafe
-        "$1[\"uniform4i\"]($2, $3, $4, $5,\n$6)" js_uniform4i ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation ->
-            GLint -> GLint -> GLint -> GLint -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform4i Mozilla WebGLRenderingContextBase.uniform4i documentation> 
-uniform4i ::
-          (MonadIO m, IsWebGLRenderingContextBase self) =>
-            self ->
-              Maybe WebGLUniformLocation ->
-                GLint -> GLint -> GLint -> GLint -> m ()
-uniform4i self location x y z w
-  = liftIO
-      (js_uniform4i (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         x
-         y
-         z
-         w)
- 
-foreign import javascript unsafe "$1[\"uniform4iv\"]($2, $3)"
-        js_uniform4iv ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation -> Nullable Int32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform4iv Mozilla WebGLRenderingContextBase.uniform4iv documentation> 
-uniform4iv ::
-           (MonadIO m, IsWebGLRenderingContextBase self, IsInt32Array v) =>
-             self -> Maybe WebGLUniformLocation -> Maybe v -> m ()
-uniform4iv self location v
-  = liftIO
-      (js_uniform4iv (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         (maybeToNullable (fmap toInt32Array v)))
- 
-foreign import javascript unsafe
-        "$1[\"uniformMatrix2fv\"]($2, $3,\n$4)" js_uniformMatrix2fv ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation ->
-            GLboolean -> Nullable Float32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniformMatrix2fv Mozilla WebGLRenderingContextBase.uniformMatrix2fv documentation> 
-uniformMatrix2fv ::
-                 (MonadIO m, IsWebGLRenderingContextBase self,
-                  IsFloat32Array array) =>
-                   self ->
-                     Maybe WebGLUniformLocation -> GLboolean -> Maybe array -> m ()
-uniformMatrix2fv self location transpose array
-  = liftIO
-      (js_uniformMatrix2fv (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         transpose
-         (maybeToNullable (fmap toFloat32Array array)))
- 
-foreign import javascript unsafe
-        "$1[\"uniformMatrix3fv\"]($2, $3,\n$4)" js_uniformMatrix3fv ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation ->
-            GLboolean -> Nullable Float32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniformMatrix3fv Mozilla WebGLRenderingContextBase.uniformMatrix3fv documentation> 
-uniformMatrix3fv ::
-                 (MonadIO m, IsWebGLRenderingContextBase self,
-                  IsFloat32Array array) =>
-                   self ->
-                     Maybe WebGLUniformLocation -> GLboolean -> Maybe array -> m ()
-uniformMatrix3fv self location transpose array
-  = liftIO
-      (js_uniformMatrix3fv (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         transpose
-         (maybeToNullable (fmap toFloat32Array array)))
- 
-foreign import javascript unsafe
-        "$1[\"uniformMatrix4fv\"]($2, $3,\n$4)" js_uniformMatrix4fv ::
-        WebGLRenderingContextBase ->
-          Nullable WebGLUniformLocation ->
-            GLboolean -> Nullable Float32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniformMatrix4fv Mozilla WebGLRenderingContextBase.uniformMatrix4fv documentation> 
-uniformMatrix4fv ::
-                 (MonadIO m, IsWebGLRenderingContextBase self,
-                  IsFloat32Array array) =>
-                   self ->
-                     Maybe WebGLUniformLocation -> GLboolean -> Maybe array -> m ()
-uniformMatrix4fv self location transpose array
-  = liftIO
-      (js_uniformMatrix4fv (toWebGLRenderingContextBase self)
-         (maybeToNullable location)
-         transpose
-         (maybeToNullable (fmap toFloat32Array array)))
- 
-foreign import javascript unsafe "$1[\"useProgram\"]($2)"
-        js_useProgram ::
-        WebGLRenderingContextBase -> Nullable WebGLProgram -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.useProgram Mozilla WebGLRenderingContextBase.useProgram documentation> 
-useProgram ::
-           (MonadIO m, IsWebGLRenderingContextBase self) =>
-             self -> Maybe WebGLProgram -> m ()
-useProgram self program
-  = liftIO
-      (js_useProgram (toWebGLRenderingContextBase self)
-         (maybeToNullable program))
- 
-foreign import javascript unsafe "$1[\"validateProgram\"]($2)"
-        js_validateProgram ::
-        WebGLRenderingContextBase -> Nullable WebGLProgram -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.validateProgram Mozilla WebGLRenderingContextBase.validateProgram documentation> 
-validateProgram ::
-                (MonadIO m, IsWebGLRenderingContextBase self) =>
-                  self -> Maybe WebGLProgram -> m ()
-validateProgram self program
-  = liftIO
-      (js_validateProgram (toWebGLRenderingContextBase self)
-         (maybeToNullable program))
- 
-foreign import javascript unsafe "$1[\"vertexAttrib1f\"]($2, $3)"
-        js_vertexAttrib1f ::
-        WebGLRenderingContextBase -> GLuint -> GLfloat -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib1f Mozilla WebGLRenderingContextBase.vertexAttrib1f documentation> 
-vertexAttrib1f ::
-               (MonadIO m, IsWebGLRenderingContextBase self) =>
-                 self -> GLuint -> GLfloat -> m ()
-vertexAttrib1f self indx x
-  = liftIO
-      (js_vertexAttrib1f (toWebGLRenderingContextBase self) indx x)
- 
-foreign import javascript unsafe "$1[\"vertexAttrib1fv\"]($2, $3)"
-        js_vertexAttrib1fv ::
-        WebGLRenderingContextBase ->
-          GLuint -> Nullable Float32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib1fv Mozilla WebGLRenderingContextBase.vertexAttrib1fv documentation> 
-vertexAttrib1fv ::
-                (MonadIO m, IsWebGLRenderingContextBase self,
-                 IsFloat32Array values) =>
-                  self -> GLuint -> Maybe values -> m ()
-vertexAttrib1fv self indx values
-  = liftIO
-      (js_vertexAttrib1fv (toWebGLRenderingContextBase self) indx
-         (maybeToNullable (fmap toFloat32Array values)))
- 
-foreign import javascript unsafe
-        "$1[\"vertexAttrib2f\"]($2, $3, $4)" js_vertexAttrib2f ::
-        WebGLRenderingContextBase -> GLuint -> GLfloat -> GLfloat -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib2f Mozilla WebGLRenderingContextBase.vertexAttrib2f documentation> 
-vertexAttrib2f ::
-               (MonadIO m, IsWebGLRenderingContextBase self) =>
-                 self -> GLuint -> GLfloat -> GLfloat -> m ()
-vertexAttrib2f self indx x y
-  = liftIO
-      (js_vertexAttrib2f (toWebGLRenderingContextBase self) indx x y)
- 
-foreign import javascript unsafe "$1[\"vertexAttrib2fv\"]($2, $3)"
-        js_vertexAttrib2fv ::
-        WebGLRenderingContextBase ->
-          GLuint -> Nullable Float32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib2fv Mozilla WebGLRenderingContextBase.vertexAttrib2fv documentation> 
-vertexAttrib2fv ::
-                (MonadIO m, IsWebGLRenderingContextBase self,
-                 IsFloat32Array values) =>
-                  self -> GLuint -> Maybe values -> m ()
-vertexAttrib2fv self indx values
-  = liftIO
-      (js_vertexAttrib2fv (toWebGLRenderingContextBase self) indx
-         (maybeToNullable (fmap toFloat32Array values)))
- 
-foreign import javascript unsafe
-        "$1[\"vertexAttrib3f\"]($2, $3, $4,\n$5)" js_vertexAttrib3f ::
-        WebGLRenderingContextBase ->
-          GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib3f Mozilla WebGLRenderingContextBase.vertexAttrib3f documentation> 
-vertexAttrib3f ::
-               (MonadIO m, IsWebGLRenderingContextBase self) =>
-                 self -> GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
-vertexAttrib3f self indx x y z
-  = liftIO
-      (js_vertexAttrib3f (toWebGLRenderingContextBase self) indx x y z)
- 
-foreign import javascript unsafe "$1[\"vertexAttrib3fv\"]($2, $3)"
-        js_vertexAttrib3fv ::
-        WebGLRenderingContextBase ->
-          GLuint -> Nullable Float32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib3fv Mozilla WebGLRenderingContextBase.vertexAttrib3fv documentation> 
-vertexAttrib3fv ::
-                (MonadIO m, IsWebGLRenderingContextBase self,
-                 IsFloat32Array values) =>
-                  self -> GLuint -> Maybe values -> m ()
-vertexAttrib3fv self indx values
-  = liftIO
-      (js_vertexAttrib3fv (toWebGLRenderingContextBase self) indx
-         (maybeToNullable (fmap toFloat32Array values)))
- 
-foreign import javascript unsafe
-        "$1[\"vertexAttrib4f\"]($2, $3, $4,\n$5, $6)" js_vertexAttrib4f ::
-        WebGLRenderingContextBase ->
-          GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib4f Mozilla WebGLRenderingContextBase.vertexAttrib4f documentation> 
-vertexAttrib4f ::
-               (MonadIO m, IsWebGLRenderingContextBase self) =>
-                 self -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-vertexAttrib4f self indx x y z w
-  = liftIO
-      (js_vertexAttrib4f (toWebGLRenderingContextBase self) indx x y z w)
- 
-foreign import javascript unsafe "$1[\"vertexAttrib4fv\"]($2, $3)"
-        js_vertexAttrib4fv ::
-        WebGLRenderingContextBase ->
-          GLuint -> Nullable Float32Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib4fv Mozilla WebGLRenderingContextBase.vertexAttrib4fv documentation> 
-vertexAttrib4fv ::
-                (MonadIO m, IsWebGLRenderingContextBase self,
-                 IsFloat32Array values) =>
-                  self -> GLuint -> Maybe values -> m ()
-vertexAttrib4fv self indx values
-  = liftIO
-      (js_vertexAttrib4fv (toWebGLRenderingContextBase self) indx
-         (maybeToNullable (fmap toFloat32Array values)))
- 
-foreign import javascript unsafe
-        "$1[\"vertexAttribPointer\"]($2,\n$3, $4, $5, $6, $7)"
-        js_vertexAttribPointer ::
-        WebGLRenderingContextBase ->
-          GLuint ->
-            GLint -> GLenum -> GLboolean -> GLsizei -> Double -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttribPointer Mozilla WebGLRenderingContextBase.vertexAttribPointer documentation> 
-vertexAttribPointer ::
-                    (MonadIO m, IsWebGLRenderingContextBase self) =>
-                      self ->
-                        GLuint ->
-                          GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()
-vertexAttribPointer self indx size type' normalized stride offset
-  = liftIO
-      (js_vertexAttribPointer (toWebGLRenderingContextBase self) indx
-         size
-         type'
-         normalized
-         stride
-         (fromIntegral offset))
- 
-foreign import javascript unsafe "$1[\"viewport\"]($2, $3, $4, $5)"
-        js_viewport ::
-        WebGLRenderingContextBase ->
-          GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.viewport Mozilla WebGLRenderingContextBase.viewport documentation> 
-viewport ::
-         (MonadIO m, IsWebGLRenderingContextBase self) =>
-           self -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-viewport self x y width height
-  = liftIO
-      (js_viewport (toWebGLRenderingContextBase self) x y width height)
-pattern DEPTH_BUFFER_BIT = 256
-pattern STENCIL_BUFFER_BIT = 1024
-pattern COLOR_BUFFER_BIT = 16384
-pattern POINTS = 0
-pattern LINES = 1
-pattern LINE_LOOP = 2
-pattern LINE_STRIP = 3
-pattern TRIANGLES = 4
-pattern TRIANGLE_STRIP = 5
-pattern TRIANGLE_FAN = 6
-pattern ZERO = 0
-pattern ONE = 1
-pattern SRC_COLOR = 768
-pattern ONE_MINUS_SRC_COLOR = 769
-pattern SRC_ALPHA = 770
-pattern ONE_MINUS_SRC_ALPHA = 771
-pattern DST_ALPHA = 772
-pattern ONE_MINUS_DST_ALPHA = 773
-pattern DST_COLOR = 774
-pattern ONE_MINUS_DST_COLOR = 775
-pattern SRC_ALPHA_SATURATE = 776
-pattern FUNC_ADD = 32774
-pattern BLEND_EQUATION = 32777
-pattern BLEND_EQUATION_RGB = 32777
-pattern BLEND_EQUATION_ALPHA = 34877
-pattern FUNC_SUBTRACT = 32778
-pattern FUNC_REVERSE_SUBTRACT = 32779
-pattern BLEND_DST_RGB = 32968
-pattern BLEND_SRC_RGB = 32969
-pattern BLEND_DST_ALPHA = 32970
-pattern BLEND_SRC_ALPHA = 32971
-pattern CONSTANT_COLOR = 32769
-pattern ONE_MINUS_CONSTANT_COLOR = 32770
-pattern CONSTANT_ALPHA = 32771
-pattern ONE_MINUS_CONSTANT_ALPHA = 32772
-pattern BLEND_COLOR = 32773
-pattern ARRAY_BUFFER = 34962
-pattern ELEMENT_ARRAY_BUFFER = 34963
-pattern ARRAY_BUFFER_BINDING = 34964
-pattern ELEMENT_ARRAY_BUFFER_BINDING = 34965
-pattern STREAM_DRAW = 35040
-pattern STATIC_DRAW = 35044
-pattern DYNAMIC_DRAW = 35048
-pattern BUFFER_SIZE = 34660
-pattern BUFFER_USAGE = 34661
-pattern CURRENT_VERTEX_ATTRIB = 34342
-pattern FRONT = 1028
-pattern BACK = 1029
-pattern FRONT_AND_BACK = 1032
-pattern TEXTURE_2D = 3553
-pattern CULL_FACE = 2884
-pattern BLEND = 3042
-pattern DITHER = 3024
-pattern STENCIL_TEST = 2960
-pattern DEPTH_TEST = 2929
-pattern SCISSOR_TEST = 3089
-pattern POLYGON_OFFSET_FILL = 32823
-pattern SAMPLE_ALPHA_TO_COVERAGE = 32926
-pattern SAMPLE_COVERAGE = 32928
-pattern NO_ERROR = 0
-pattern INVALID_ENUM = 1280
-pattern INVALID_VALUE = 1281
-pattern INVALID_OPERATION = 1282
-pattern OUT_OF_MEMORY = 1285
-pattern CW = 2304
-pattern CCW = 2305
-pattern LINE_WIDTH = 2849
-pattern ALIASED_POINT_SIZE_RANGE = 33901
-pattern ALIASED_LINE_WIDTH_RANGE = 33902
-pattern CULL_FACE_MODE = 2885
-pattern FRONT_FACE = 2886
-pattern DEPTH_RANGE = 2928
-pattern DEPTH_WRITEMASK = 2930
-pattern DEPTH_CLEAR_VALUE = 2931
-pattern DEPTH_FUNC = 2932
-pattern STENCIL_CLEAR_VALUE = 2961
-pattern STENCIL_FUNC = 2962
-pattern STENCIL_FAIL = 2964
-pattern STENCIL_PASS_DEPTH_FAIL = 2965
-pattern STENCIL_PASS_DEPTH_PASS = 2966
-pattern STENCIL_REF = 2967
-pattern STENCIL_VALUE_MASK = 2963
-pattern STENCIL_WRITEMASK = 2968
-pattern STENCIL_BACK_FUNC = 34816
-pattern STENCIL_BACK_FAIL = 34817
-pattern STENCIL_BACK_PASS_DEPTH_FAIL = 34818
-pattern STENCIL_BACK_PASS_DEPTH_PASS = 34819
-pattern STENCIL_BACK_REF = 36003
-pattern STENCIL_BACK_VALUE_MASK = 36004
-pattern STENCIL_BACK_WRITEMASK = 36005
-pattern VIEWPORT = 2978
-pattern SCISSOR_BOX = 3088
-pattern COLOR_CLEAR_VALUE = 3106
-pattern COLOR_WRITEMASK = 3107
-pattern UNPACK_ALIGNMENT = 3317
-pattern PACK_ALIGNMENT = 3333
-pattern MAX_TEXTURE_SIZE = 3379
-pattern MAX_VIEWPORT_DIMS = 3386
-pattern SUBPIXEL_BITS = 3408
-pattern RED_BITS = 3410
-pattern GREEN_BITS = 3411
-pattern BLUE_BITS = 3412
-pattern ALPHA_BITS = 3413
-pattern DEPTH_BITS = 3414
-pattern STENCIL_BITS = 3415
-pattern POLYGON_OFFSET_UNITS = 10752
-pattern POLYGON_OFFSET_FACTOR = 32824
-pattern TEXTURE_BINDING_2D = 32873
-pattern SAMPLE_BUFFERS = 32936
-pattern SAMPLES = 32937
-pattern SAMPLE_COVERAGE_VALUE = 32938
-pattern SAMPLE_COVERAGE_INVERT = 32939
-pattern COMPRESSED_TEXTURE_FORMATS = 34467
-pattern DONT_CARE = 4352
-pattern FASTEST = 4353
-pattern NICEST = 4354
-pattern GENERATE_MIPMAP_HINT = 33170
-pattern BYTE = 5120
-pattern UNSIGNED_BYTE = 5121
-pattern SHORT = 5122
-pattern UNSIGNED_SHORT = 5123
-pattern INT = 5124
-pattern UNSIGNED_INT = 5125
-pattern FLOAT = 5126
-pattern DEPTH_COMPONENT = 6402
-pattern ALPHA = 6406
-pattern RGB = 6407
-pattern RGBA = 6408
-pattern LUMINANCE = 6409
-pattern LUMINANCE_ALPHA = 6410
-pattern UNSIGNED_SHORT_4_4_4_4 = 32819
-pattern UNSIGNED_SHORT_5_5_5_1 = 32820
-pattern UNSIGNED_SHORT_5_6_5 = 33635
-pattern FRAGMENT_SHADER = 35632
-pattern VERTEX_SHADER = 35633
-pattern MAX_VERTEX_ATTRIBS = 34921
-pattern MAX_VERTEX_UNIFORM_VECTORS = 36347
-pattern MAX_VARYING_VECTORS = 36348
-pattern MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661
-pattern MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660
-pattern MAX_TEXTURE_IMAGE_UNITS = 34930
-pattern MAX_FRAGMENT_UNIFORM_VECTORS = 36349
-pattern SHADER_TYPE = 35663
-pattern DELETE_STATUS = 35712
-pattern LINK_STATUS = 35714
-pattern VALIDATE_STATUS = 35715
-pattern ATTACHED_SHADERS = 35717
-pattern ACTIVE_UNIFORMS = 35718
-pattern ACTIVE_ATTRIBUTES = 35721
-pattern SHADING_LANGUAGE_VERSION = 35724
-pattern CURRENT_PROGRAM = 35725
-pattern NEVER = 512
-pattern LESS = 513
-pattern EQUAL = 514
-pattern LEQUAL = 515
-pattern GREATER = 516
-pattern NOTEQUAL = 517
-pattern GEQUAL = 518
-pattern ALWAYS = 519
-pattern KEEP = 7680
-pattern REPLACE = 7681
-pattern INCR = 7682
-pattern DECR = 7683
-pattern INVERT = 5386
-pattern INCR_WRAP = 34055
-pattern DECR_WRAP = 34056
-pattern VENDOR = 7936
-pattern RENDERER = 7937
-pattern VERSION = 7938
-pattern NEAREST = 9728
-pattern LINEAR = 9729
-pattern NEAREST_MIPMAP_NEAREST = 9984
-pattern LINEAR_MIPMAP_NEAREST = 9985
-pattern NEAREST_MIPMAP_LINEAR = 9986
-pattern LINEAR_MIPMAP_LINEAR = 9987
-pattern TEXTURE_MAG_FILTER = 10240
-pattern TEXTURE_MIN_FILTER = 10241
-pattern TEXTURE_WRAP_S = 10242
-pattern TEXTURE_WRAP_T = 10243
-pattern TEXTURE = 5890
-pattern TEXTURE_CUBE_MAP = 34067
-pattern TEXTURE_BINDING_CUBE_MAP = 34068
-pattern TEXTURE_CUBE_MAP_POSITIVE_X = 34069
-pattern TEXTURE_CUBE_MAP_NEGATIVE_X = 34070
-pattern TEXTURE_CUBE_MAP_POSITIVE_Y = 34071
-pattern TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072
-pattern TEXTURE_CUBE_MAP_POSITIVE_Z = 34073
-pattern TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074
-pattern MAX_CUBE_MAP_TEXTURE_SIZE = 34076
-pattern TEXTURE0 = 33984
-pattern TEXTURE1 = 33985
-pattern TEXTURE2 = 33986
-pattern TEXTURE3 = 33987
-pattern TEXTURE4 = 33988
-pattern TEXTURE5 = 33989
-pattern TEXTURE6 = 33990
-pattern TEXTURE7 = 33991
-pattern TEXTURE8 = 33992
-pattern TEXTURE9 = 33993
-pattern TEXTURE10 = 33994
-pattern TEXTURE11 = 33995
-pattern TEXTURE12 = 33996
-pattern TEXTURE13 = 33997
-pattern TEXTURE14 = 33998
-pattern TEXTURE15 = 33999
-pattern TEXTURE16 = 34000
-pattern TEXTURE17 = 34001
-pattern TEXTURE18 = 34002
-pattern TEXTURE19 = 34003
-pattern TEXTURE20 = 34004
-pattern TEXTURE21 = 34005
-pattern TEXTURE22 = 34006
-pattern TEXTURE23 = 34007
-pattern TEXTURE24 = 34008
-pattern TEXTURE25 = 34009
-pattern TEXTURE26 = 34010
-pattern TEXTURE27 = 34011
-pattern TEXTURE28 = 34012
-pattern TEXTURE29 = 34013
-pattern TEXTURE30 = 34014
-pattern TEXTURE31 = 34015
-pattern ACTIVE_TEXTURE = 34016
-pattern REPEAT = 10497
-pattern CLAMP_TO_EDGE = 33071
-pattern MIRRORED_REPEAT = 33648
-pattern FLOAT_VEC2 = 35664
-pattern FLOAT_VEC3 = 35665
-pattern FLOAT_VEC4 = 35666
-pattern INT_VEC2 = 35667
-pattern INT_VEC3 = 35668
-pattern INT_VEC4 = 35669
-pattern BOOL = 35670
-pattern BOOL_VEC2 = 35671
-pattern BOOL_VEC3 = 35672
-pattern BOOL_VEC4 = 35673
-pattern FLOAT_MAT2 = 35674
-pattern FLOAT_MAT3 = 35675
-pattern FLOAT_MAT4 = 35676
-pattern SAMPLER_2D = 35678
-pattern SAMPLER_CUBE = 35680
-pattern VERTEX_ATTRIB_ARRAY_ENABLED = 34338
-pattern VERTEX_ATTRIB_ARRAY_SIZE = 34339
-pattern VERTEX_ATTRIB_ARRAY_STRIDE = 34340
-pattern VERTEX_ATTRIB_ARRAY_TYPE = 34341
-pattern VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922
-pattern VERTEX_ATTRIB_ARRAY_POINTER = 34373
-pattern VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975
-pattern IMPLEMENTATION_COLOR_READ_TYPE = 35738
-pattern IMPLEMENTATION_COLOR_READ_FORMAT = 35739
-pattern COMPILE_STATUS = 35713
-pattern LOW_FLOAT = 36336
-pattern MEDIUM_FLOAT = 36337
-pattern HIGH_FLOAT = 36338
-pattern LOW_INT = 36339
-pattern MEDIUM_INT = 36340
-pattern HIGH_INT = 36341
-pattern FRAMEBUFFER = 36160
-pattern RENDERBUFFER = 36161
-pattern RGBA4 = 32854
-pattern RGB5_A1 = 32855
-pattern RGB565 = 36194
-pattern DEPTH_COMPONENT16 = 33189
-pattern STENCIL_INDEX = 6401
-pattern STENCIL_INDEX8 = 36168
-pattern DEPTH_STENCIL = 34041
-pattern RENDERBUFFER_WIDTH = 36162
-pattern RENDERBUFFER_HEIGHT = 36163
-pattern RENDERBUFFER_INTERNAL_FORMAT = 36164
-pattern RENDERBUFFER_RED_SIZE = 36176
-pattern RENDERBUFFER_GREEN_SIZE = 36177
-pattern RENDERBUFFER_BLUE_SIZE = 36178
-pattern RENDERBUFFER_ALPHA_SIZE = 36179
-pattern RENDERBUFFER_DEPTH_SIZE = 36180
-pattern RENDERBUFFER_STENCIL_SIZE = 36181
-pattern FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048
-pattern FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049
-pattern FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050
-pattern FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051
-pattern COLOR_ATTACHMENT0 = 36064
-pattern DEPTH_ATTACHMENT = 36096
-pattern STENCIL_ATTACHMENT = 36128
-pattern DEPTH_STENCIL_ATTACHMENT = 33306
-pattern NONE = 0
-pattern FRAMEBUFFER_COMPLETE = 36053
-pattern FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054
-pattern FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055
-pattern FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057
-pattern FRAMEBUFFER_UNSUPPORTED = 36061
-pattern FRAMEBUFFER_BINDING = 36006
-pattern RENDERBUFFER_BINDING = 36007
-pattern MAX_RENDERBUFFER_SIZE = 34024
-pattern INVALID_FRAMEBUFFER_OPERATION = 1286
-pattern UNPACK_FLIP_Y_WEBGL = 37440
-pattern UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441
-pattern CONTEXT_LOST_WEBGL = 37442
-pattern UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443
-pattern BROWSER_DEFAULT_WEBGL = 37444
+        bufferData, js_bufferDataPtr, bufferDataPtr, js_bufferSubData,
+        bufferSubData, js_checkFramebufferStatus, checkFramebufferStatus,
+        checkFramebufferStatus_, js_clear, clear, js_clearColor,
+        clearColor, js_clearDepth, clearDepth, js_clearStencil,
+        clearStencil, js_colorMask, colorMask, js_compileShader,
+        compileShader, js_compressedTexImage2D, compressedTexImage2D,
+        js_compressedTexSubImage2D, compressedTexSubImage2D,
+        js_copyTexImage2D, copyTexImage2D, js_copyTexSubImage2D,
+        copyTexSubImage2D, js_createBuffer, createBuffer, createBuffer_,
+        js_createFramebuffer, createFramebuffer, createFramebuffer_,
+        js_createProgram, createProgram, createProgram_,
+        js_createRenderbuffer, createRenderbuffer, createRenderbuffer_,
+        js_createShader, createShader, createShader_, js_createTexture,
+        createTexture, createTexture_, js_cullFace, cullFace,
+        js_deleteBuffer, deleteBuffer, js_deleteFramebuffer,
+        deleteFramebuffer, js_deleteProgram, deleteProgram,
+        js_deleteRenderbuffer, deleteRenderbuffer, js_deleteShader,
+        deleteShader, js_deleteTexture, deleteTexture, js_depthFunc,
+        depthFunc, js_depthMask, depthMask, js_depthRange, depthRange,
+        js_detachShader, detachShader, js_disable, disable,
+        js_disableVertexAttribArray, disableVertexAttribArray,
+        js_drawArrays, drawArrays, js_drawElements, drawElements,
+        js_enable, enable, js_enableVertexAttribArray,
+        enableVertexAttribArray, js_finish, finish, js_flush, flush,
+        js_framebufferRenderbuffer, framebufferRenderbuffer,
+        js_framebufferTexture2D, framebufferTexture2D, js_frontFace,
+        frontFace, js_generateMipmap, generateMipmap, js_getActiveAttrib,
+        getActiveAttrib, getActiveAttrib_, js_getActiveUniform,
+        getActiveUniform, getActiveUniform_, js_getAttachedShaders,
+        getAttachedShaders, getAttachedShaders_, js_getAttribLocation,
+        getAttribLocation, getAttribLocation_, js_getBufferParameter,
+        getBufferParameter, getBufferParameter_, js_getContextAttributes,
+        getContextAttributes, getContextAttributes_,
+        getContextAttributesUnsafe, getContextAttributesUnchecked,
+        js_getError, getError, getError_, js_getSupportedExtensions,
+        getSupportedExtensions, getSupportedExtensions_, js_getExtension,
+        getExtension, getExtension_, getExtensionUnsafe,
+        getExtensionUnchecked, js_getFramebufferAttachmentParameter,
+        getFramebufferAttachmentParameter,
+        getFramebufferAttachmentParameter_, js_getParameter, getParameter,
+        getParameter_, js_getProgramParameter, getProgramParameter,
+        getProgramParameter_, js_getProgramInfoLog, getProgramInfoLog,
+        getProgramInfoLog_, getProgramInfoLogUnsafe,
+        getProgramInfoLogUnchecked, js_getRenderbufferParameter,
+        getRenderbufferParameter, getRenderbufferParameter_,
+        js_getShaderParameter, getShaderParameter, getShaderParameter_,
+        js_getShaderInfoLog, getShaderInfoLog, getShaderInfoLog_,
+        getShaderInfoLogUnsafe, getShaderInfoLogUnchecked,
+        js_getShaderPrecisionFormat, getShaderPrecisionFormat,
+        getShaderPrecisionFormat_, js_getShaderSource, getShaderSource,
+        getShaderSource_, getShaderSourceUnsafe, getShaderSourceUnchecked,
+        js_getTexParameter, getTexParameter, getTexParameter_,
+        js_getUniform, getUniform, getUniform_, js_getUniformLocation,
+        getUniformLocation, getUniformLocation_, js_getVertexAttrib,
+        getVertexAttrib, getVertexAttrib_, js_getVertexAttribOffset,
+        getVertexAttribOffset, getVertexAttribOffset_, js_hint, hint,
+        js_isBuffer, isBuffer, isBuffer_, js_isContextLost, isContextLost,
+        isContextLost_, js_isEnabled, isEnabled, isEnabled_,
+        js_isFramebuffer, isFramebuffer, isFramebuffer_, js_isProgram,
+        isProgram, isProgram_, js_isRenderbuffer, isRenderbuffer,
+        isRenderbuffer_, js_isShader, isShader, isShader_, js_isTexture,
+        isTexture, isTexture_, js_lineWidth, lineWidth, js_linkProgram,
+        linkProgram, js_pixelStorei, pixelStorei, js_polygonOffset,
+        polygonOffset, js_readPixels, readPixels, js_releaseShaderCompiler,
+        releaseShaderCompiler, js_renderbufferStorage, renderbufferStorage,
+        js_sampleCoverage, sampleCoverage, js_scissor, scissor,
+        js_shaderSource, shaderSource, js_stencilFunc, stencilFunc,
+        js_stencilFuncSeparate, stencilFuncSeparate, js_stencilMask,
+        stencilMask, js_stencilMaskSeparate, stencilMaskSeparate,
+        js_stencilOp, stencilOp, js_stencilOpSeparate, stencilOpSeparate,
+        js_texParameterf, texParameterf, js_texParameteri, texParameteri,
+        js_texImage2DView, texImage2DView, js_texImage2D, texImage2D,
+        js_texSubImage2DView, texSubImage2DView, js_texSubImage2D,
+        texSubImage2D, js_uniform1f, uniform1f, js_uniform2f, uniform2f,
+        js_uniform3f, uniform3f, js_uniform4f, uniform4f, js_uniform1i,
+        uniform1i, js_uniform2i, uniform2i, js_uniform3i, uniform3i,
+        js_uniform4i, uniform4i, js_uniform1fv, uniform1fv, js_uniform2fv,
+        uniform2fv, js_uniform3fv, uniform3fv, js_uniform4fv, uniform4fv,
+        js_uniform1iv, uniform1iv, js_uniform2iv, uniform2iv,
+        js_uniform3iv, uniform3iv, js_uniform4iv, uniform4iv,
+        js_uniformMatrix2fv, uniformMatrix2fv, js_uniformMatrix3fv,
+        uniformMatrix3fv, js_uniformMatrix4fv, uniformMatrix4fv,
+        js_useProgram, useProgram, js_validateProgram, validateProgram,
+        js_vertexAttrib1f, vertexAttrib1f, js_vertexAttrib2f,
+        vertexAttrib2f, js_vertexAttrib3f, vertexAttrib3f,
+        js_vertexAttrib4f, vertexAttrib4f, js_vertexAttrib1fv,
+        vertexAttrib1fv, js_vertexAttrib2fv, vertexAttrib2fv,
+        js_vertexAttrib3fv, vertexAttrib3fv, js_vertexAttrib4fv,
+        vertexAttrib4fv, js_vertexAttribPointer, vertexAttribPointer,
+        js_viewport, viewport, pattern DEPTH_BUFFER_BIT,
+        pattern STENCIL_BUFFER_BIT, pattern COLOR_BUFFER_BIT,
+        pattern POINTS, pattern LINES, pattern LINE_LOOP,
+        pattern LINE_STRIP, pattern TRIANGLES, pattern TRIANGLE_STRIP,
+        pattern TRIANGLE_FAN, pattern ZERO, pattern ONE, pattern SRC_COLOR,
+        pattern ONE_MINUS_SRC_COLOR, pattern SRC_ALPHA,
+        pattern ONE_MINUS_SRC_ALPHA, pattern DST_ALPHA,
+        pattern ONE_MINUS_DST_ALPHA, pattern DST_COLOR,
+        pattern ONE_MINUS_DST_COLOR, pattern SRC_ALPHA_SATURATE,
+        pattern FUNC_ADD, pattern BLEND_EQUATION,
+        pattern BLEND_EQUATION_RGB, pattern BLEND_EQUATION_ALPHA,
+        pattern FUNC_SUBTRACT, pattern FUNC_REVERSE_SUBTRACT,
+        pattern BLEND_DST_RGB, pattern BLEND_SRC_RGB,
+        pattern BLEND_DST_ALPHA, pattern BLEND_SRC_ALPHA,
+        pattern CONSTANT_COLOR, pattern ONE_MINUS_CONSTANT_COLOR,
+        pattern CONSTANT_ALPHA, pattern ONE_MINUS_CONSTANT_ALPHA,
+        pattern BLEND_COLOR, pattern ARRAY_BUFFER,
+        pattern ELEMENT_ARRAY_BUFFER, pattern ARRAY_BUFFER_BINDING,
+        pattern ELEMENT_ARRAY_BUFFER_BINDING, pattern STREAM_DRAW,
+        pattern STATIC_DRAW, pattern DYNAMIC_DRAW, pattern BUFFER_SIZE,
+        pattern BUFFER_USAGE, pattern CURRENT_VERTEX_ATTRIB, pattern FRONT,
+        pattern BACK, pattern FRONT_AND_BACK, pattern TEXTURE_2D,
+        pattern CULL_FACE, pattern BLEND, pattern DITHER,
+        pattern STENCIL_TEST, pattern DEPTH_TEST, pattern SCISSOR_TEST,
+        pattern POLYGON_OFFSET_FILL, pattern SAMPLE_ALPHA_TO_COVERAGE,
+        pattern SAMPLE_COVERAGE, pattern NO_ERROR, pattern INVALID_ENUM,
+        pattern INVALID_VALUE, pattern INVALID_OPERATION,
+        pattern OUT_OF_MEMORY, pattern CW, pattern CCW, pattern LINE_WIDTH,
+        pattern ALIASED_POINT_SIZE_RANGE, pattern ALIASED_LINE_WIDTH_RANGE,
+        pattern CULL_FACE_MODE, pattern FRONT_FACE, pattern DEPTH_RANGE,
+        pattern DEPTH_WRITEMASK, pattern DEPTH_CLEAR_VALUE,
+        pattern DEPTH_FUNC, pattern STENCIL_CLEAR_VALUE,
+        pattern STENCIL_FUNC, pattern STENCIL_FAIL,
+        pattern STENCIL_PASS_DEPTH_FAIL, pattern STENCIL_PASS_DEPTH_PASS,
+        pattern STENCIL_REF, pattern STENCIL_VALUE_MASK,
+        pattern STENCIL_WRITEMASK, pattern STENCIL_BACK_FUNC,
+        pattern STENCIL_BACK_FAIL, pattern STENCIL_BACK_PASS_DEPTH_FAIL,
+        pattern STENCIL_BACK_PASS_DEPTH_PASS, pattern STENCIL_BACK_REF,
+        pattern STENCIL_BACK_VALUE_MASK, pattern STENCIL_BACK_WRITEMASK,
+        pattern VIEWPORT, pattern SCISSOR_BOX, pattern COLOR_CLEAR_VALUE,
+        pattern COLOR_WRITEMASK, pattern UNPACK_ALIGNMENT,
+        pattern PACK_ALIGNMENT, pattern MAX_TEXTURE_SIZE,
+        pattern MAX_VIEWPORT_DIMS, pattern SUBPIXEL_BITS, pattern RED_BITS,
+        pattern GREEN_BITS, pattern BLUE_BITS, pattern ALPHA_BITS,
+        pattern DEPTH_BITS, pattern STENCIL_BITS,
+        pattern POLYGON_OFFSET_UNITS, pattern POLYGON_OFFSET_FACTOR,
+        pattern TEXTURE_BINDING_2D, pattern SAMPLE_BUFFERS,
+        pattern SAMPLES, pattern SAMPLE_COVERAGE_VALUE,
+        pattern SAMPLE_COVERAGE_INVERT, pattern COMPRESSED_TEXTURE_FORMATS,
+        pattern DONT_CARE, pattern FASTEST, pattern NICEST,
+        pattern GENERATE_MIPMAP_HINT, pattern BYTE, pattern UNSIGNED_BYTE,
+        pattern SHORT, pattern UNSIGNED_SHORT, pattern INT,
+        pattern UNSIGNED_INT, pattern FLOAT, pattern DEPTH_COMPONENT,
+        pattern ALPHA, pattern RGB, pattern RGBA, pattern LUMINANCE,
+        pattern LUMINANCE_ALPHA, pattern UNSIGNED_SHORT_4_4_4_4,
+        pattern UNSIGNED_SHORT_5_5_5_1, pattern UNSIGNED_SHORT_5_6_5,
+        pattern FRAGMENT_SHADER, pattern VERTEX_SHADER,
+        pattern MAX_VERTEX_ATTRIBS, pattern MAX_VERTEX_UNIFORM_VECTORS,
+        pattern MAX_VARYING_VECTORS,
+        pattern MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+        pattern MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+        pattern MAX_TEXTURE_IMAGE_UNITS,
+        pattern MAX_FRAGMENT_UNIFORM_VECTORS, pattern SHADER_TYPE,
+        pattern DELETE_STATUS, pattern LINK_STATUS,
+        pattern VALIDATE_STATUS, pattern ATTACHED_SHADERS,
+        pattern ACTIVE_UNIFORMS, pattern ACTIVE_ATTRIBUTES,
+        pattern SHADING_LANGUAGE_VERSION, pattern CURRENT_PROGRAM,
+        pattern NEVER, pattern LESS, pattern EQUAL, pattern LEQUAL,
+        pattern GREATER, pattern NOTEQUAL, pattern GEQUAL, pattern ALWAYS,
+        pattern KEEP, pattern REPLACE, pattern INCR, pattern DECR,
+        pattern INVERT, pattern INCR_WRAP, pattern DECR_WRAP,
+        pattern VENDOR, pattern RENDERER, pattern VERSION, pattern NEAREST,
+        pattern LINEAR, pattern NEAREST_MIPMAP_NEAREST,
+        pattern LINEAR_MIPMAP_NEAREST, pattern NEAREST_MIPMAP_LINEAR,
+        pattern LINEAR_MIPMAP_LINEAR, pattern TEXTURE_MAG_FILTER,
+        pattern TEXTURE_MIN_FILTER, pattern TEXTURE_WRAP_S,
+        pattern TEXTURE_WRAP_T, pattern TEXTURE, pattern TEXTURE_CUBE_MAP,
+        pattern TEXTURE_BINDING_CUBE_MAP,
+        pattern TEXTURE_CUBE_MAP_POSITIVE_X,
+        pattern TEXTURE_CUBE_MAP_NEGATIVE_X,
+        pattern TEXTURE_CUBE_MAP_POSITIVE_Y,
+        pattern TEXTURE_CUBE_MAP_NEGATIVE_Y,
+        pattern TEXTURE_CUBE_MAP_POSITIVE_Z,
+        pattern TEXTURE_CUBE_MAP_NEGATIVE_Z,
+        pattern MAX_CUBE_MAP_TEXTURE_SIZE, pattern TEXTURE0,
+        pattern TEXTURE1, pattern TEXTURE2, pattern TEXTURE3,
+        pattern TEXTURE4, pattern TEXTURE5, pattern TEXTURE6,
+        pattern TEXTURE7, pattern TEXTURE8, pattern TEXTURE9,
+        pattern TEXTURE10, pattern TEXTURE11, pattern TEXTURE12,
+        pattern TEXTURE13, pattern TEXTURE14, pattern TEXTURE15,
+        pattern TEXTURE16, pattern TEXTURE17, pattern TEXTURE18,
+        pattern TEXTURE19, pattern TEXTURE20, pattern TEXTURE21,
+        pattern TEXTURE22, pattern TEXTURE23, pattern TEXTURE24,
+        pattern TEXTURE25, pattern TEXTURE26, pattern TEXTURE27,
+        pattern TEXTURE28, pattern TEXTURE29, pattern TEXTURE30,
+        pattern TEXTURE31, pattern ACTIVE_TEXTURE, pattern REPEAT,
+        pattern CLAMP_TO_EDGE, pattern MIRRORED_REPEAT, pattern FLOAT_VEC2,
+        pattern FLOAT_VEC3, pattern FLOAT_VEC4, pattern INT_VEC2,
+        pattern INT_VEC3, pattern INT_VEC4, pattern BOOL,
+        pattern BOOL_VEC2, pattern BOOL_VEC3, pattern BOOL_VEC4,
+        pattern FLOAT_MAT2, pattern FLOAT_MAT3, pattern FLOAT_MAT4,
+        pattern SAMPLER_2D, pattern SAMPLER_CUBE,
+        pattern VERTEX_ATTRIB_ARRAY_ENABLED,
+        pattern VERTEX_ATTRIB_ARRAY_SIZE,
+        pattern VERTEX_ATTRIB_ARRAY_STRIDE,
+        pattern VERTEX_ATTRIB_ARRAY_TYPE,
+        pattern VERTEX_ATTRIB_ARRAY_NORMALIZED,
+        pattern VERTEX_ATTRIB_ARRAY_POINTER,
+        pattern VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+        pattern IMPLEMENTATION_COLOR_READ_TYPE,
+        pattern IMPLEMENTATION_COLOR_READ_FORMAT, pattern COMPILE_STATUS,
+        pattern LOW_FLOAT, pattern MEDIUM_FLOAT, pattern HIGH_FLOAT,
+        pattern LOW_INT, pattern MEDIUM_INT, pattern HIGH_INT,
+        pattern FRAMEBUFFER, pattern RENDERBUFFER, pattern RGBA4,
+        pattern RGB5_A1, pattern RGB565, pattern DEPTH_COMPONENT16,
+        pattern STENCIL_INDEX, pattern STENCIL_INDEX8,
+        pattern DEPTH_STENCIL, pattern RENDERBUFFER_WIDTH,
+        pattern RENDERBUFFER_HEIGHT, pattern RENDERBUFFER_INTERNAL_FORMAT,
+        pattern RENDERBUFFER_RED_SIZE, pattern RENDERBUFFER_GREEN_SIZE,
+        pattern RENDERBUFFER_BLUE_SIZE, pattern RENDERBUFFER_ALPHA_SIZE,
+        pattern RENDERBUFFER_DEPTH_SIZE, pattern RENDERBUFFER_STENCIL_SIZE,
+        pattern FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+        pattern FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+        pattern FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+        pattern FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+        pattern COLOR_ATTACHMENT0, pattern DEPTH_ATTACHMENT,
+        pattern STENCIL_ATTACHMENT, pattern DEPTH_STENCIL_ATTACHMENT,
+        pattern NONE, pattern FRAMEBUFFER_COMPLETE,
+        pattern FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+        pattern FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+        pattern FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
+        pattern FRAMEBUFFER_UNSUPPORTED, pattern FRAMEBUFFER_BINDING,
+        pattern RENDERBUFFER_BINDING, pattern MAX_RENDERBUFFER_SIZE,
+        pattern INVALID_FRAMEBUFFER_OPERATION, pattern UNPACK_FLIP_Y_WEBGL,
+        pattern UNPACK_PREMULTIPLY_ALPHA_WEBGL, pattern CONTEXT_LOST_WEBGL,
+        pattern UNPACK_COLORSPACE_CONVERSION_WEBGL,
+        pattern BROWSER_DEFAULT_WEBGL, js_getCanvas, getCanvas,
+        js_getDrawingBufferWidth, getDrawingBufferWidth,
+        js_getDrawingBufferHeight, getDrawingBufferHeight,
+        WebGLRenderingContextBase(..), gTypeWebGLRenderingContextBase,
+        IsWebGLRenderingContextBase, toWebGLRenderingContextBase)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"activeTexture\"]($2)"
+        js_activeTexture :: WebGLRenderingContextBase -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.activeTexture Mozilla WebGLRenderingContextBase.activeTexture documentation> 
+activeTexture ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> GLenum -> m ()
+activeTexture self texture
+  = liftIO
+      (js_activeTexture (toWebGLRenderingContextBase self) texture)
+ 
+foreign import javascript unsafe "$1[\"attachShader\"]($2, $3)"
+        js_attachShader ::
+        WebGLRenderingContextBase ->
+          Optional WebGLProgram -> Optional WebGLShader -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.attachShader Mozilla WebGLRenderingContextBase.attachShader documentation> 
+attachShader ::
+             (MonadIO m, IsWebGLRenderingContextBase self) =>
+               self -> Maybe WebGLProgram -> Maybe WebGLShader -> m ()
+attachShader self program shader
+  = liftIO
+      (js_attachShader (toWebGLRenderingContextBase self)
+         (maybeToOptional program)
+         (maybeToOptional shader))
+ 
+foreign import javascript unsafe
+        "$1[\"bindAttribLocation\"]($2, $3,\n$4)" js_bindAttribLocation ::
+        WebGLRenderingContextBase ->
+          Optional WebGLProgram -> GLuint -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bindAttribLocation Mozilla WebGLRenderingContextBase.bindAttribLocation documentation> 
+bindAttribLocation ::
+                   (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
+                     self -> Maybe WebGLProgram -> GLuint -> name -> m ()
+bindAttribLocation self program index name
+  = liftIO
+      (js_bindAttribLocation (toWebGLRenderingContextBase self)
+         (maybeToOptional program)
+         index
+         (toJSString name))
+ 
+foreign import javascript unsafe "$1[\"bindBuffer\"]($2, $3)"
+        js_bindBuffer ::
+        WebGLRenderingContextBase ->
+          GLenum -> Optional WebGLBuffer -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bindBuffer Mozilla WebGLRenderingContextBase.bindBuffer documentation> 
+bindBuffer ::
+           (MonadIO m, IsWebGLRenderingContextBase self) =>
+             self -> GLenum -> Maybe WebGLBuffer -> m ()
+bindBuffer self target buffer
+  = liftIO
+      (js_bindBuffer (toWebGLRenderingContextBase self) target
+         (maybeToOptional buffer))
+ 
+foreign import javascript unsafe "$1[\"bindFramebuffer\"]($2, $3)"
+        js_bindFramebuffer ::
+        WebGLRenderingContextBase ->
+          GLenum -> Optional WebGLFramebuffer -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bindFramebuffer Mozilla WebGLRenderingContextBase.bindFramebuffer documentation> 
+bindFramebuffer ::
+                (MonadIO m, IsWebGLRenderingContextBase self) =>
+                  self -> GLenum -> Maybe WebGLFramebuffer -> m ()
+bindFramebuffer self target framebuffer
+  = liftIO
+      (js_bindFramebuffer (toWebGLRenderingContextBase self) target
+         (maybeToOptional framebuffer))
+ 
+foreign import javascript unsafe "$1[\"bindRenderbuffer\"]($2, $3)"
+        js_bindRenderbuffer ::
+        WebGLRenderingContextBase ->
+          GLenum -> Optional WebGLRenderbuffer -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bindRenderbuffer Mozilla WebGLRenderingContextBase.bindRenderbuffer documentation> 
+bindRenderbuffer ::
+                 (MonadIO m, IsWebGLRenderingContextBase self) =>
+                   self -> GLenum -> Maybe WebGLRenderbuffer -> m ()
+bindRenderbuffer self target renderbuffer
+  = liftIO
+      (js_bindRenderbuffer (toWebGLRenderingContextBase self) target
+         (maybeToOptional renderbuffer))
+ 
+foreign import javascript unsafe "$1[\"bindTexture\"]($2, $3)"
+        js_bindTexture ::
+        WebGLRenderingContextBase ->
+          GLenum -> Optional WebGLTexture -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bindTexture Mozilla WebGLRenderingContextBase.bindTexture documentation> 
+bindTexture ::
+            (MonadIO m, IsWebGLRenderingContextBase self) =>
+              self -> GLenum -> Maybe WebGLTexture -> m ()
+bindTexture self target texture
+  = liftIO
+      (js_bindTexture (toWebGLRenderingContextBase self) target
+         (maybeToOptional texture))
+ 
+foreign import javascript unsafe
+        "$1[\"blendColor\"]($2, $3, $4, $5)" js_blendColor ::
+        WebGLRenderingContextBase ->
+          GLclampf -> GLclampf -> GLclampf -> GLclampf -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.blendColor Mozilla WebGLRenderingContextBase.blendColor documentation> 
+blendColor ::
+           (MonadIO m, IsWebGLRenderingContextBase self) =>
+             self -> GLclampf -> GLclampf -> GLclampf -> GLclampf -> m ()
+blendColor self red green blue alpha
+  = liftIO
+      (js_blendColor (toWebGLRenderingContextBase self) red green blue
+         alpha)
+ 
+foreign import javascript unsafe "$1[\"blendEquation\"]($2)"
+        js_blendEquation :: WebGLRenderingContextBase -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.blendEquation Mozilla WebGLRenderingContextBase.blendEquation documentation> 
+blendEquation ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> GLenum -> m ()
+blendEquation self mode
+  = liftIO (js_blendEquation (toWebGLRenderingContextBase self) mode)
+ 
+foreign import javascript unsafe
+        "$1[\"blendEquationSeparate\"]($2,\n$3)" js_blendEquationSeparate
+        :: WebGLRenderingContextBase -> GLenum -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.blendEquationSeparate Mozilla WebGLRenderingContextBase.blendEquationSeparate documentation> 
+blendEquationSeparate ::
+                      (MonadIO m, IsWebGLRenderingContextBase self) =>
+                        self -> GLenum -> GLenum -> m ()
+blendEquationSeparate self modeRGB modeAlpha
+  = liftIO
+      (js_blendEquationSeparate (toWebGLRenderingContextBase self)
+         modeRGB
+         modeAlpha)
+ 
+foreign import javascript unsafe "$1[\"blendFunc\"]($2, $3)"
+        js_blendFunc ::
+        WebGLRenderingContextBase -> GLenum -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.blendFunc Mozilla WebGLRenderingContextBase.blendFunc documentation> 
+blendFunc ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> GLenum -> GLenum -> m ()
+blendFunc self sfactor dfactor
+  = liftIO
+      (js_blendFunc (toWebGLRenderingContextBase self) sfactor dfactor)
+ 
+foreign import javascript unsafe
+        "$1[\"blendFuncSeparate\"]($2, $3,\n$4, $5)" js_blendFuncSeparate
+        ::
+        WebGLRenderingContextBase ->
+          GLenum -> GLenum -> GLenum -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.blendFuncSeparate Mozilla WebGLRenderingContextBase.blendFuncSeparate documentation> 
+blendFuncSeparate ::
+                  (MonadIO m, IsWebGLRenderingContextBase self) =>
+                    self -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+blendFuncSeparate self srcRGB dstRGB srcAlpha dstAlpha
+  = liftIO
+      (js_blendFuncSeparate (toWebGLRenderingContextBase self) srcRGB
+         dstRGB
+         srcAlpha
+         dstAlpha)
+ 
+foreign import javascript unsafe "$1[\"bufferData\"]($2, $3, $4)"
+        js_bufferData ::
+        WebGLRenderingContextBase ->
+          GLenum -> Optional BufferDataSource -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bufferData Mozilla WebGLRenderingContextBase.bufferData documentation> 
+bufferData ::
+           (MonadIO m, IsWebGLRenderingContextBase self,
+            IsBufferDataSource data') =>
+             self -> GLenum -> Maybe data' -> GLenum -> m ()
+bufferData self target data' usage
+  = liftIO
+      (js_bufferData (toWebGLRenderingContextBase self) target
+         (maybeToOptional (fmap toBufferDataSource data'))
+         usage)
+ 
+foreign import javascript unsafe "$1[\"bufferData\"]($2, $3, $4)"
+        js_bufferDataPtr ::
+        WebGLRenderingContextBase -> GLenum -> Double -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bufferData Mozilla WebGLRenderingContextBase.bufferData documentation> 
+bufferDataPtr ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> GLenum -> GLsizeiptr -> GLenum -> m ()
+bufferDataPtr self target size usage
+  = liftIO
+      (js_bufferDataPtr (toWebGLRenderingContextBase self) target
+         (fromIntegral size)
+         usage)
+ 
+foreign import javascript unsafe
+        "$1[\"bufferSubData\"]($2, $3, $4)" js_bufferSubData ::
+        WebGLRenderingContextBase ->
+          GLenum -> Double -> Optional BufferDataSource -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.bufferSubData Mozilla WebGLRenderingContextBase.bufferSubData documentation> 
+bufferSubData ::
+              (MonadIO m, IsWebGLRenderingContextBase self,
+               IsBufferDataSource data') =>
+                self -> GLenum -> GLintptr -> Maybe data' -> m ()
+bufferSubData self target offset data'
+  = liftIO
+      (js_bufferSubData (toWebGLRenderingContextBase self) target
+         (fromIntegral offset)
+         (maybeToOptional (fmap toBufferDataSource data')))
+ 
+foreign import javascript unsafe
+        "$1[\"checkFramebufferStatus\"]($2)" js_checkFramebufferStatus ::
+        WebGLRenderingContextBase -> GLenum -> IO GLenum
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.checkFramebufferStatus Mozilla WebGLRenderingContextBase.checkFramebufferStatus documentation> 
+checkFramebufferStatus ::
+                       (MonadIO m, IsWebGLRenderingContextBase self) =>
+                         self -> GLenum -> m GLenum
+checkFramebufferStatus self target
+  = liftIO
+      (js_checkFramebufferStatus (toWebGLRenderingContextBase self)
+         target)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.checkFramebufferStatus Mozilla WebGLRenderingContextBase.checkFramebufferStatus documentation> 
+checkFramebufferStatus_ ::
+                        (MonadIO m, IsWebGLRenderingContextBase self) =>
+                          self -> GLenum -> m ()
+checkFramebufferStatus_ self target
+  = liftIO
+      (void
+         (js_checkFramebufferStatus (toWebGLRenderingContextBase self)
+            target))
+ 
+foreign import javascript unsafe "$1[\"clear\"]($2)" js_clear ::
+        WebGLRenderingContextBase -> GLbitfield -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.clear Mozilla WebGLRenderingContextBase.clear documentation> 
+clear ::
+      (MonadIO m, IsWebGLRenderingContextBase self) =>
+        self -> GLbitfield -> m ()
+clear self mask
+  = liftIO (js_clear (toWebGLRenderingContextBase self) mask)
+ 
+foreign import javascript unsafe
+        "$1[\"clearColor\"]($2, $3, $4, $5)" js_clearColor ::
+        WebGLRenderingContextBase ->
+          GLclampf -> GLclampf -> GLclampf -> GLclampf -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.clearColor Mozilla WebGLRenderingContextBase.clearColor documentation> 
+clearColor ::
+           (MonadIO m, IsWebGLRenderingContextBase self) =>
+             self -> GLclampf -> GLclampf -> GLclampf -> GLclampf -> m ()
+clearColor self red green blue alpha
+  = liftIO
+      (js_clearColor (toWebGLRenderingContextBase self) red green blue
+         alpha)
+ 
+foreign import javascript unsafe "$1[\"clearDepth\"]($2)"
+        js_clearDepth :: WebGLRenderingContextBase -> GLclampf -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.clearDepth Mozilla WebGLRenderingContextBase.clearDepth documentation> 
+clearDepth ::
+           (MonadIO m, IsWebGLRenderingContextBase self) =>
+             self -> GLclampf -> m ()
+clearDepth self depth
+  = liftIO (js_clearDepth (toWebGLRenderingContextBase self) depth)
+ 
+foreign import javascript unsafe "$1[\"clearStencil\"]($2)"
+        js_clearStencil :: WebGLRenderingContextBase -> GLint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.clearStencil Mozilla WebGLRenderingContextBase.clearStencil documentation> 
+clearStencil ::
+             (MonadIO m, IsWebGLRenderingContextBase self) =>
+               self -> GLint -> m ()
+clearStencil self s
+  = liftIO (js_clearStencil (toWebGLRenderingContextBase self) s)
+ 
+foreign import javascript unsafe
+        "$1[\"colorMask\"]($2, $3, $4, $5)" js_colorMask ::
+        WebGLRenderingContextBase ->
+          GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.colorMask Mozilla WebGLRenderingContextBase.colorMask documentation> 
+colorMask ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+colorMask self red green blue alpha
+  = liftIO
+      (js_colorMask (toWebGLRenderingContextBase self) red green blue
+         alpha)
+ 
+foreign import javascript unsafe "$1[\"compileShader\"]($2)"
+        js_compileShader ::
+        WebGLRenderingContextBase -> Optional WebGLShader -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.compileShader Mozilla WebGLRenderingContextBase.compileShader documentation> 
+compileShader ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> Maybe WebGLShader -> m ()
+compileShader self shader
+  = liftIO
+      (js_compileShader (toWebGLRenderingContextBase self)
+         (maybeToOptional shader))
+ 
+foreign import javascript unsafe
+        "$1[\"compressedTexImage2D\"]($2,\n$3, $4, $5, $6, $7, $8)"
+        js_compressedTexImage2D ::
+        WebGLRenderingContextBase ->
+          GLenum ->
+            GLint ->
+              GLenum -> GLsizei -> GLsizei -> GLint -> ArrayBufferView -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.compressedTexImage2D Mozilla WebGLRenderingContextBase.compressedTexImage2D documentation> 
+compressedTexImage2D ::
+                     (MonadIO m, IsWebGLRenderingContextBase self,
+                      IsArrayBufferView data') =>
+                       self ->
+                         GLenum ->
+                           GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> data' -> m ()
+compressedTexImage2D self target level internalformat width height
+  border data'
+  = liftIO
+      (js_compressedTexImage2D (toWebGLRenderingContextBase self) target
+         level
+         internalformat
+         width
+         height
+         border
+         (toArrayBufferView data'))
+ 
+foreign import javascript unsafe
+        "$1[\"compressedTexSubImage2D\"]($2,\n$3, $4, $5, $6, $7, $8, $9)"
+        js_compressedTexSubImage2D ::
+        WebGLRenderingContextBase ->
+          GLenum ->
+            GLint ->
+              GLint ->
+                GLint -> GLsizei -> GLsizei -> GLenum -> ArrayBufferView -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.compressedTexSubImage2D Mozilla WebGLRenderingContextBase.compressedTexSubImage2D documentation> 
+compressedTexSubImage2D ::
+                        (MonadIO m, IsWebGLRenderingContextBase self,
+                         IsArrayBufferView data') =>
+                          self ->
+                            GLenum ->
+                              GLint ->
+                                GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> data' -> m ()
+compressedTexSubImage2D self target level xoffset yoffset width
+  height format data'
+  = liftIO
+      (js_compressedTexSubImage2D (toWebGLRenderingContextBase self)
+         target
+         level
+         xoffset
+         yoffset
+         width
+         height
+         format
+         (toArrayBufferView data'))
+ 
+foreign import javascript unsafe
+        "$1[\"copyTexImage2D\"]($2, $3, $4,\n$5, $6, $7, $8, $9)"
+        js_copyTexImage2D ::
+        WebGLRenderingContextBase ->
+          GLenum ->
+            GLint ->
+              GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.copyTexImage2D Mozilla WebGLRenderingContextBase.copyTexImage2D documentation> 
+copyTexImage2D ::
+               (MonadIO m, IsWebGLRenderingContextBase self) =>
+                 self ->
+                   GLenum ->
+                     GLint ->
+                       GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+copyTexImage2D self target level internalformat x y width height
+  border
+  = liftIO
+      (js_copyTexImage2D (toWebGLRenderingContextBase self) target level
+         internalformat
+         x
+         y
+         width
+         height
+         border)
+ 
+foreign import javascript unsafe
+        "$1[\"copyTexSubImage2D\"]($2, $3,\n$4, $5, $6, $7, $8, $9)"
+        js_copyTexSubImage2D ::
+        WebGLRenderingContextBase ->
+          GLenum ->
+            GLint ->
+              GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.copyTexSubImage2D Mozilla WebGLRenderingContextBase.copyTexSubImage2D documentation> 
+copyTexSubImage2D ::
+                  (MonadIO m, IsWebGLRenderingContextBase self) =>
+                    self ->
+                      GLenum ->
+                        GLint ->
+                          GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+copyTexSubImage2D self target level xoffset yoffset x y width
+  height
+  = liftIO
+      (js_copyTexSubImage2D (toWebGLRenderingContextBase self) target
+         level
+         xoffset
+         yoffset
+         x
+         y
+         width
+         height)
+ 
+foreign import javascript unsafe "$1[\"createBuffer\"]()"
+        js_createBuffer :: WebGLRenderingContextBase -> IO WebGLBuffer
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createBuffer Mozilla WebGLRenderingContextBase.createBuffer documentation> 
+createBuffer ::
+             (MonadIO m, IsWebGLRenderingContextBase self) =>
+               self -> m WebGLBuffer
+createBuffer self
+  = liftIO (js_createBuffer (toWebGLRenderingContextBase self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createBuffer Mozilla WebGLRenderingContextBase.createBuffer documentation> 
+createBuffer_ ::
+              (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+createBuffer_ self
+  = liftIO
+      (void (js_createBuffer (toWebGLRenderingContextBase self)))
+ 
+foreign import javascript unsafe "$1[\"createFramebuffer\"]()"
+        js_createFramebuffer ::
+        WebGLRenderingContextBase -> IO WebGLFramebuffer
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createFramebuffer Mozilla WebGLRenderingContextBase.createFramebuffer documentation> 
+createFramebuffer ::
+                  (MonadIO m, IsWebGLRenderingContextBase self) =>
+                    self -> m WebGLFramebuffer
+createFramebuffer self
+  = liftIO (js_createFramebuffer (toWebGLRenderingContextBase self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createFramebuffer Mozilla WebGLRenderingContextBase.createFramebuffer documentation> 
+createFramebuffer_ ::
+                   (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+createFramebuffer_ self
+  = liftIO
+      (void (js_createFramebuffer (toWebGLRenderingContextBase self)))
+ 
+foreign import javascript unsafe "$1[\"createProgram\"]()"
+        js_createProgram :: WebGLRenderingContextBase -> IO WebGLProgram
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createProgram Mozilla WebGLRenderingContextBase.createProgram documentation> 
+createProgram ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> m WebGLProgram
+createProgram self
+  = liftIO (js_createProgram (toWebGLRenderingContextBase self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createProgram Mozilla WebGLRenderingContextBase.createProgram documentation> 
+createProgram_ ::
+               (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+createProgram_ self
+  = liftIO
+      (void (js_createProgram (toWebGLRenderingContextBase self)))
+ 
+foreign import javascript unsafe "$1[\"createRenderbuffer\"]()"
+        js_createRenderbuffer ::
+        WebGLRenderingContextBase -> IO WebGLRenderbuffer
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createRenderbuffer Mozilla WebGLRenderingContextBase.createRenderbuffer documentation> 
+createRenderbuffer ::
+                   (MonadIO m, IsWebGLRenderingContextBase self) =>
+                     self -> m WebGLRenderbuffer
+createRenderbuffer self
+  = liftIO (js_createRenderbuffer (toWebGLRenderingContextBase self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createRenderbuffer Mozilla WebGLRenderingContextBase.createRenderbuffer documentation> 
+createRenderbuffer_ ::
+                    (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+createRenderbuffer_ self
+  = liftIO
+      (void (js_createRenderbuffer (toWebGLRenderingContextBase self)))
+ 
+foreign import javascript unsafe "$1[\"createShader\"]($2)"
+        js_createShader ::
+        WebGLRenderingContextBase -> GLenum -> IO WebGLShader
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createShader Mozilla WebGLRenderingContextBase.createShader documentation> 
+createShader ::
+             (MonadIO m, IsWebGLRenderingContextBase self) =>
+               self -> GLenum -> m WebGLShader
+createShader self type'
+  = liftIO (js_createShader (toWebGLRenderingContextBase self) type')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createShader Mozilla WebGLRenderingContextBase.createShader documentation> 
+createShader_ ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> GLenum -> m ()
+createShader_ self type'
+  = liftIO
+      (void (js_createShader (toWebGLRenderingContextBase self) type'))
+ 
+foreign import javascript unsafe "$1[\"createTexture\"]()"
+        js_createTexture :: WebGLRenderingContextBase -> IO WebGLTexture
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createTexture Mozilla WebGLRenderingContextBase.createTexture documentation> 
+createTexture ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> m WebGLTexture
+createTexture self
+  = liftIO (js_createTexture (toWebGLRenderingContextBase self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.createTexture Mozilla WebGLRenderingContextBase.createTexture documentation> 
+createTexture_ ::
+               (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+createTexture_ self
+  = liftIO
+      (void (js_createTexture (toWebGLRenderingContextBase self)))
+ 
+foreign import javascript unsafe "$1[\"cullFace\"]($2)" js_cullFace
+        :: WebGLRenderingContextBase -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.cullFace Mozilla WebGLRenderingContextBase.cullFace documentation> 
+cullFace ::
+         (MonadIO m, IsWebGLRenderingContextBase self) =>
+           self -> GLenum -> m ()
+cullFace self mode
+  = liftIO (js_cullFace (toWebGLRenderingContextBase self) mode)
+ 
+foreign import javascript unsafe "$1[\"deleteBuffer\"]($2)"
+        js_deleteBuffer ::
+        WebGLRenderingContextBase -> Optional WebGLBuffer -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteBuffer Mozilla WebGLRenderingContextBase.deleteBuffer documentation> 
+deleteBuffer ::
+             (MonadIO m, IsWebGLRenderingContextBase self) =>
+               self -> Maybe WebGLBuffer -> m ()
+deleteBuffer self buffer
+  = liftIO
+      (js_deleteBuffer (toWebGLRenderingContextBase self)
+         (maybeToOptional buffer))
+ 
+foreign import javascript unsafe "$1[\"deleteFramebuffer\"]($2)"
+        js_deleteFramebuffer ::
+        WebGLRenderingContextBase -> Optional WebGLFramebuffer -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteFramebuffer Mozilla WebGLRenderingContextBase.deleteFramebuffer documentation> 
+deleteFramebuffer ::
+                  (MonadIO m, IsWebGLRenderingContextBase self) =>
+                    self -> Maybe WebGLFramebuffer -> m ()
+deleteFramebuffer self framebuffer
+  = liftIO
+      (js_deleteFramebuffer (toWebGLRenderingContextBase self)
+         (maybeToOptional framebuffer))
+ 
+foreign import javascript unsafe "$1[\"deleteProgram\"]($2)"
+        js_deleteProgram ::
+        WebGLRenderingContextBase -> Optional WebGLProgram -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteProgram Mozilla WebGLRenderingContextBase.deleteProgram documentation> 
+deleteProgram ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> Maybe WebGLProgram -> m ()
+deleteProgram self program
+  = liftIO
+      (js_deleteProgram (toWebGLRenderingContextBase self)
+         (maybeToOptional program))
+ 
+foreign import javascript unsafe "$1[\"deleteRenderbuffer\"]($2)"
+        js_deleteRenderbuffer ::
+        WebGLRenderingContextBase -> Optional WebGLRenderbuffer -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteRenderbuffer Mozilla WebGLRenderingContextBase.deleteRenderbuffer documentation> 
+deleteRenderbuffer ::
+                   (MonadIO m, IsWebGLRenderingContextBase self) =>
+                     self -> Maybe WebGLRenderbuffer -> m ()
+deleteRenderbuffer self renderbuffer
+  = liftIO
+      (js_deleteRenderbuffer (toWebGLRenderingContextBase self)
+         (maybeToOptional renderbuffer))
+ 
+foreign import javascript unsafe "$1[\"deleteShader\"]($2)"
+        js_deleteShader ::
+        WebGLRenderingContextBase -> Optional WebGLShader -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteShader Mozilla WebGLRenderingContextBase.deleteShader documentation> 
+deleteShader ::
+             (MonadIO m, IsWebGLRenderingContextBase self) =>
+               self -> Maybe WebGLShader -> m ()
+deleteShader self shader
+  = liftIO
+      (js_deleteShader (toWebGLRenderingContextBase self)
+         (maybeToOptional shader))
+ 
+foreign import javascript unsafe "$1[\"deleteTexture\"]($2)"
+        js_deleteTexture ::
+        WebGLRenderingContextBase -> Optional WebGLTexture -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.deleteTexture Mozilla WebGLRenderingContextBase.deleteTexture documentation> 
+deleteTexture ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> Maybe WebGLTexture -> m ()
+deleteTexture self texture
+  = liftIO
+      (js_deleteTexture (toWebGLRenderingContextBase self)
+         (maybeToOptional texture))
+ 
+foreign import javascript unsafe "$1[\"depthFunc\"]($2)"
+        js_depthFunc :: WebGLRenderingContextBase -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.depthFunc Mozilla WebGLRenderingContextBase.depthFunc documentation> 
+depthFunc ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> GLenum -> m ()
+depthFunc self func
+  = liftIO (js_depthFunc (toWebGLRenderingContextBase self) func)
+ 
+foreign import javascript unsafe "$1[\"depthMask\"]($2)"
+        js_depthMask :: WebGLRenderingContextBase -> GLboolean -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.depthMask Mozilla WebGLRenderingContextBase.depthMask documentation> 
+depthMask ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> GLboolean -> m ()
+depthMask self flag
+  = liftIO (js_depthMask (toWebGLRenderingContextBase self) flag)
+ 
+foreign import javascript unsafe "$1[\"depthRange\"]($2, $3)"
+        js_depthRange ::
+        WebGLRenderingContextBase -> GLclampf -> GLclampf -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.depthRange Mozilla WebGLRenderingContextBase.depthRange documentation> 
+depthRange ::
+           (MonadIO m, IsWebGLRenderingContextBase self) =>
+             self -> GLclampf -> GLclampf -> m ()
+depthRange self zNear zFar
+  = liftIO
+      (js_depthRange (toWebGLRenderingContextBase self) zNear zFar)
+ 
+foreign import javascript unsafe "$1[\"detachShader\"]($2, $3)"
+        js_detachShader ::
+        WebGLRenderingContextBase ->
+          Optional WebGLProgram -> Optional WebGLShader -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.detachShader Mozilla WebGLRenderingContextBase.detachShader documentation> 
+detachShader ::
+             (MonadIO m, IsWebGLRenderingContextBase self) =>
+               self -> Maybe WebGLProgram -> Maybe WebGLShader -> m ()
+detachShader self program shader
+  = liftIO
+      (js_detachShader (toWebGLRenderingContextBase self)
+         (maybeToOptional program)
+         (maybeToOptional shader))
+ 
+foreign import javascript unsafe "$1[\"disable\"]($2)" js_disable
+        :: WebGLRenderingContextBase -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.disable Mozilla WebGLRenderingContextBase.disable documentation> 
+disable ::
+        (MonadIO m, IsWebGLRenderingContextBase self) =>
+          self -> GLenum -> m ()
+disable self cap
+  = liftIO (js_disable (toWebGLRenderingContextBase self) cap)
+ 
+foreign import javascript unsafe
+        "$1[\"disableVertexAttribArray\"]($2)" js_disableVertexAttribArray
+        :: WebGLRenderingContextBase -> GLuint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.disableVertexAttribArray Mozilla WebGLRenderingContextBase.disableVertexAttribArray documentation> 
+disableVertexAttribArray ::
+                         (MonadIO m, IsWebGLRenderingContextBase self) =>
+                           self -> GLuint -> m ()
+disableVertexAttribArray self index
+  = liftIO
+      (js_disableVertexAttribArray (toWebGLRenderingContextBase self)
+         index)
+ 
+foreign import javascript unsafe "$1[\"drawArrays\"]($2, $3, $4)"
+        js_drawArrays ::
+        WebGLRenderingContextBase -> GLenum -> GLint -> GLsizei -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.drawArrays Mozilla WebGLRenderingContextBase.drawArrays documentation> 
+drawArrays ::
+           (MonadIO m, IsWebGLRenderingContextBase self) =>
+             self -> GLenum -> GLint -> GLsizei -> m ()
+drawArrays self mode first count
+  = liftIO
+      (js_drawArrays (toWebGLRenderingContextBase self) mode first count)
+ 
+foreign import javascript unsafe
+        "$1[\"drawElements\"]($2, $3, $4,\n$5)" js_drawElements ::
+        WebGLRenderingContextBase ->
+          GLenum -> GLsizei -> GLenum -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.drawElements Mozilla WebGLRenderingContextBase.drawElements documentation> 
+drawElements ::
+             (MonadIO m, IsWebGLRenderingContextBase self) =>
+               self -> GLenum -> GLsizei -> GLenum -> GLintptr -> m ()
+drawElements self mode count type' offset
+  = liftIO
+      (js_drawElements (toWebGLRenderingContextBase self) mode count
+         type'
+         (fromIntegral offset))
+ 
+foreign import javascript unsafe "$1[\"enable\"]($2)" js_enable ::
+        WebGLRenderingContextBase -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.enable Mozilla WebGLRenderingContextBase.enable documentation> 
+enable ::
+       (MonadIO m, IsWebGLRenderingContextBase self) =>
+         self -> GLenum -> m ()
+enable self cap
+  = liftIO (js_enable (toWebGLRenderingContextBase self) cap)
+ 
+foreign import javascript unsafe
+        "$1[\"enableVertexAttribArray\"]($2)" js_enableVertexAttribArray ::
+        WebGLRenderingContextBase -> GLuint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.enableVertexAttribArray Mozilla WebGLRenderingContextBase.enableVertexAttribArray documentation> 
+enableVertexAttribArray ::
+                        (MonadIO m, IsWebGLRenderingContextBase self) =>
+                          self -> GLuint -> m ()
+enableVertexAttribArray self index
+  = liftIO
+      (js_enableVertexAttribArray (toWebGLRenderingContextBase self)
+         index)
+ 
+foreign import javascript unsafe "$1[\"finish\"]()" js_finish ::
+        WebGLRenderingContextBase -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.finish Mozilla WebGLRenderingContextBase.finish documentation> 
+finish ::
+       (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+finish self = liftIO (js_finish (toWebGLRenderingContextBase self))
+ 
+foreign import javascript unsafe "$1[\"flush\"]()" js_flush ::
+        WebGLRenderingContextBase -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.flush Mozilla WebGLRenderingContextBase.flush documentation> 
+flush ::
+      (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+flush self = liftIO (js_flush (toWebGLRenderingContextBase self))
+ 
+foreign import javascript unsafe
+        "$1[\"framebufferRenderbuffer\"]($2,\n$3, $4, $5)"
+        js_framebufferRenderbuffer ::
+        WebGLRenderingContextBase ->
+          GLenum -> GLenum -> GLenum -> Optional WebGLRenderbuffer -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.framebufferRenderbuffer Mozilla WebGLRenderingContextBase.framebufferRenderbuffer documentation> 
+framebufferRenderbuffer ::
+                        (MonadIO m, IsWebGLRenderingContextBase self) =>
+                          self ->
+                            GLenum -> GLenum -> GLenum -> Maybe WebGLRenderbuffer -> m ()
+framebufferRenderbuffer self target attachment renderbuffertarget
+  renderbuffer
+  = liftIO
+      (js_framebufferRenderbuffer (toWebGLRenderingContextBase self)
+         target
+         attachment
+         renderbuffertarget
+         (maybeToOptional renderbuffer))
+ 
+foreign import javascript unsafe
+        "$1[\"framebufferTexture2D\"]($2,\n$3, $4, $5, $6)"
+        js_framebufferTexture2D ::
+        WebGLRenderingContextBase ->
+          GLenum ->
+            GLenum -> GLenum -> Optional WebGLTexture -> GLint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.framebufferTexture2D Mozilla WebGLRenderingContextBase.framebufferTexture2D documentation> 
+framebufferTexture2D ::
+                     (MonadIO m, IsWebGLRenderingContextBase self) =>
+                       self ->
+                         GLenum -> GLenum -> GLenum -> Maybe WebGLTexture -> GLint -> m ()
+framebufferTexture2D self target attachment textarget texture level
+  = liftIO
+      (js_framebufferTexture2D (toWebGLRenderingContextBase self) target
+         attachment
+         textarget
+         (maybeToOptional texture)
+         level)
+ 
+foreign import javascript unsafe "$1[\"frontFace\"]($2)"
+        js_frontFace :: WebGLRenderingContextBase -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.frontFace Mozilla WebGLRenderingContextBase.frontFace documentation> 
+frontFace ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> GLenum -> m ()
+frontFace self mode
+  = liftIO (js_frontFace (toWebGLRenderingContextBase self) mode)
+ 
+foreign import javascript unsafe "$1[\"generateMipmap\"]($2)"
+        js_generateMipmap :: WebGLRenderingContextBase -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.generateMipmap Mozilla WebGLRenderingContextBase.generateMipmap documentation> 
+generateMipmap ::
+               (MonadIO m, IsWebGLRenderingContextBase self) =>
+                 self -> GLenum -> m ()
+generateMipmap self target
+  = liftIO
+      (js_generateMipmap (toWebGLRenderingContextBase self) target)
+ 
+foreign import javascript unsafe "$1[\"getActiveAttrib\"]($2, $3)"
+        js_getActiveAttrib ::
+        WebGLRenderingContextBase ->
+          Optional WebGLProgram -> GLuint -> IO WebGLActiveInfo
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveAttrib Mozilla WebGLRenderingContextBase.getActiveAttrib documentation> 
+getActiveAttrib ::
+                (MonadIO m, IsWebGLRenderingContextBase self) =>
+                  self -> Maybe WebGLProgram -> GLuint -> m WebGLActiveInfo
+getActiveAttrib self program index
+  = liftIO
+      (js_getActiveAttrib (toWebGLRenderingContextBase self)
+         (maybeToOptional program)
+         index)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveAttrib Mozilla WebGLRenderingContextBase.getActiveAttrib documentation> 
+getActiveAttrib_ ::
+                 (MonadIO m, IsWebGLRenderingContextBase self) =>
+                   self -> Maybe WebGLProgram -> GLuint -> m ()
+getActiveAttrib_ self program index
+  = liftIO
+      (void
+         (js_getActiveAttrib (toWebGLRenderingContextBase self)
+            (maybeToOptional program)
+            index))
+ 
+foreign import javascript unsafe "$1[\"getActiveUniform\"]($2, $3)"
+        js_getActiveUniform ::
+        WebGLRenderingContextBase ->
+          Optional WebGLProgram -> GLuint -> IO WebGLActiveInfo
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveUniform Mozilla WebGLRenderingContextBase.getActiveUniform documentation> 
+getActiveUniform ::
+                 (MonadIO m, IsWebGLRenderingContextBase self) =>
+                   self -> Maybe WebGLProgram -> GLuint -> m WebGLActiveInfo
+getActiveUniform self program index
+  = liftIO
+      (js_getActiveUniform (toWebGLRenderingContextBase self)
+         (maybeToOptional program)
+         index)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getActiveUniform Mozilla WebGLRenderingContextBase.getActiveUniform documentation> 
+getActiveUniform_ ::
+                  (MonadIO m, IsWebGLRenderingContextBase self) =>
+                    self -> Maybe WebGLProgram -> GLuint -> m ()
+getActiveUniform_ self program index
+  = liftIO
+      (void
+         (js_getActiveUniform (toWebGLRenderingContextBase self)
+            (maybeToOptional program)
+            index))
+ 
+foreign import javascript unsafe "$1[\"getAttachedShaders\"]($2)"
+        js_getAttachedShaders ::
+        WebGLRenderingContextBase -> Optional WebGLProgram -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getAttachedShaders Mozilla WebGLRenderingContextBase.getAttachedShaders documentation> 
+getAttachedShaders ::
+                   (MonadIO m, IsWebGLRenderingContextBase self) =>
+                     self -> Maybe WebGLProgram -> m (Maybe [WebGLShader])
+getAttachedShaders self program
+  = liftIO
+      ((js_getAttachedShaders (toWebGLRenderingContextBase self)
+          (maybeToOptional program))
+         >>= fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getAttachedShaders Mozilla WebGLRenderingContextBase.getAttachedShaders documentation> 
+getAttachedShaders_ ::
+                    (MonadIO m, IsWebGLRenderingContextBase self) =>
+                      self -> Maybe WebGLProgram -> m ()
+getAttachedShaders_ self program
+  = liftIO
+      (void
+         (js_getAttachedShaders (toWebGLRenderingContextBase self)
+            (maybeToOptional program)))
+ 
+foreign import javascript unsafe
+        "$1[\"getAttribLocation\"]($2, $3)" js_getAttribLocation ::
+        WebGLRenderingContextBase ->
+          Optional WebGLProgram -> JSString -> IO GLint
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getAttribLocation Mozilla WebGLRenderingContextBase.getAttribLocation documentation> 
+getAttribLocation ::
+                  (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
+                    self -> Maybe WebGLProgram -> name -> m GLint
+getAttribLocation self program name
+  = liftIO
+      (js_getAttribLocation (toWebGLRenderingContextBase self)
+         (maybeToOptional program)
+         (toJSString name))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getAttribLocation Mozilla WebGLRenderingContextBase.getAttribLocation documentation> 
+getAttribLocation_ ::
+                   (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
+                     self -> Maybe WebGLProgram -> name -> m ()
+getAttribLocation_ self program name
+  = liftIO
+      (void
+         (js_getAttribLocation (toWebGLRenderingContextBase self)
+            (maybeToOptional program)
+            (toJSString name)))
+ 
+foreign import javascript unsafe
+        "$1[\"getBufferParameter\"]($2, $3)" js_getBufferParameter ::
+        WebGLRenderingContextBase -> GLenum -> GLenum -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getBufferParameter Mozilla WebGLRenderingContextBase.getBufferParameter documentation> 
+getBufferParameter ::
+                   (MonadIO m, IsWebGLRenderingContextBase self) =>
+                     self -> GLenum -> GLenum -> m JSVal
+getBufferParameter self target pname
+  = liftIO
+      (js_getBufferParameter (toWebGLRenderingContextBase self) target
+         pname)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getBufferParameter Mozilla WebGLRenderingContextBase.getBufferParameter documentation> 
+getBufferParameter_ ::
+                    (MonadIO m, IsWebGLRenderingContextBase self) =>
+                      self -> GLenum -> GLenum -> m ()
+getBufferParameter_ self target pname
+  = liftIO
+      (void
+         (js_getBufferParameter (toWebGLRenderingContextBase self) target
+            pname))
+ 
+foreign import javascript unsafe "$1[\"getContextAttributes\"]()"
+        js_getContextAttributes ::
+        WebGLRenderingContextBase -> IO (Nullable WebGLContextAttributes)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getContextAttributes Mozilla WebGLRenderingContextBase.getContextAttributes documentation> 
+getContextAttributes ::
+                     (MonadIO m, IsWebGLRenderingContextBase self) =>
+                       self -> m (Maybe WebGLContextAttributes)
+getContextAttributes self
+  = liftIO
+      (nullableToMaybe <$>
+         (js_getContextAttributes (toWebGLRenderingContextBase self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getContextAttributes Mozilla WebGLRenderingContextBase.getContextAttributes documentation> 
+getContextAttributes_ ::
+                      (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+getContextAttributes_ self
+  = liftIO
+      (void (js_getContextAttributes (toWebGLRenderingContextBase self)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getContextAttributes Mozilla WebGLRenderingContextBase.getContextAttributes documentation> 
+getContextAttributesUnsafe ::
+                           (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack) =>
+                             self -> m WebGLContextAttributes
+getContextAttributesUnsafe self
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_getContextAttributes (toWebGLRenderingContextBase self)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getContextAttributes Mozilla WebGLRenderingContextBase.getContextAttributes documentation> 
+getContextAttributesUnchecked ::
+                              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                                self -> m WebGLContextAttributes
+getContextAttributesUnchecked self
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getContextAttributes (toWebGLRenderingContextBase self)))
+ 
+foreign import javascript unsafe "$1[\"getError\"]()" js_getError
+        :: WebGLRenderingContextBase -> IO GLenum
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getError Mozilla WebGLRenderingContextBase.getError documentation> 
+getError ::
+         (MonadIO m, IsWebGLRenderingContextBase self) => self -> m GLenum
+getError self
+  = liftIO (js_getError (toWebGLRenderingContextBase self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getError Mozilla WebGLRenderingContextBase.getError documentation> 
+getError_ ::
+          (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+getError_ self
+  = liftIO (void (js_getError (toWebGLRenderingContextBase self)))
+ 
+foreign import javascript unsafe "$1[\"getSupportedExtensions\"]()"
+        js_getSupportedExtensions :: WebGLRenderingContextBase -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getSupportedExtensions Mozilla WebGLRenderingContextBase.getSupportedExtensions documentation> 
+getSupportedExtensions ::
+                       (MonadIO m, IsWebGLRenderingContextBase self,
+                        FromJSString result) =>
+                         self -> m (Maybe [result])
+getSupportedExtensions self
+  = liftIO
+      ((js_getSupportedExtensions (toWebGLRenderingContextBase self)) >>=
+         fromJSValUnchecked)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getSupportedExtensions Mozilla WebGLRenderingContextBase.getSupportedExtensions documentation> 
+getSupportedExtensions_ ::
+                        (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+getSupportedExtensions_ self
+  = liftIO
+      (void
+         (js_getSupportedExtensions (toWebGLRenderingContextBase self)))
+ 
+foreign import javascript unsafe "$1[\"getExtension\"]($2)"
+        js_getExtension ::
+        WebGLRenderingContextBase -> JSString -> IO (Nullable GObject)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getExtension Mozilla WebGLRenderingContextBase.getExtension documentation> 
+getExtension ::
+             (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
+               self -> name -> m (Maybe GObject)
+getExtension self name
+  = liftIO
+      (nullableToMaybe <$>
+         (js_getExtension (toWebGLRenderingContextBase self)
+            (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getExtension Mozilla WebGLRenderingContextBase.getExtension documentation> 
+getExtension_ ::
+              (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
+                self -> name -> m ()
+getExtension_ self name
+  = liftIO
+      (void
+         (js_getExtension (toWebGLRenderingContextBase self)
+            (toJSString name)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getExtension Mozilla WebGLRenderingContextBase.getExtension documentation> 
+getExtensionUnsafe ::
+                   (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name,
+                    HasCallStack) =>
+                     self -> name -> m GObject
+getExtensionUnsafe self name
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_getExtension (toWebGLRenderingContextBase self)
+             (toJSString name)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getExtension Mozilla WebGLRenderingContextBase.getExtension documentation> 
+getExtensionUnchecked ::
+                      (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
+                        self -> name -> m GObject
+getExtensionUnchecked self name
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_getExtension (toWebGLRenderingContextBase self)
+            (toJSString name)))
+ 
+foreign import javascript unsafe
+        "$1[\"getFramebufferAttachmentParameter\"]($2,\n$3, $4)"
+        js_getFramebufferAttachmentParameter ::
+        WebGLRenderingContextBase -> GLenum -> GLenum -> GLenum -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getFramebufferAttachmentParameter Mozilla WebGLRenderingContextBase.getFramebufferAttachmentParameter documentation> 
+getFramebufferAttachmentParameter ::
+                                  (MonadIO m, IsWebGLRenderingContextBase self) =>
+                                    self -> GLenum -> GLenum -> GLenum -> m JSVal
+getFramebufferAttachmentParameter self target attachment pname
+  = liftIO
+      (js_getFramebufferAttachmentParameter
+         (toWebGLRenderingContextBase self)
+         target
+         attachment
+         pname)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getFramebufferAttachmentParameter Mozilla WebGLRenderingContextBase.getFramebufferAttachmentParameter documentation> 
+getFramebufferAttachmentParameter_ ::
+                                   (MonadIO m, IsWebGLRenderingContextBase self) =>
+                                     self -> GLenum -> GLenum -> GLenum -> m ()
+getFramebufferAttachmentParameter_ self target attachment pname
+  = liftIO
+      (void
+         (js_getFramebufferAttachmentParameter
+            (toWebGLRenderingContextBase self)
+            target
+            attachment
+            pname))
+ 
+foreign import javascript unsafe "$1[\"getParameter\"]($2)"
+        js_getParameter :: WebGLRenderingContextBase -> GLenum -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getParameter Mozilla WebGLRenderingContextBase.getParameter documentation> 
+getParameter ::
+             (MonadIO m, IsWebGLRenderingContextBase self) =>
+               self -> GLenum -> m JSVal
+getParameter self pname
+  = liftIO (js_getParameter (toWebGLRenderingContextBase self) pname)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getParameter Mozilla WebGLRenderingContextBase.getParameter documentation> 
+getParameter_ ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> GLenum -> m ()
+getParameter_ self pname
+  = liftIO
+      (void (js_getParameter (toWebGLRenderingContextBase self) pname))
+ 
+foreign import javascript unsafe
+        "$1[\"getProgramParameter\"]($2,\n$3)" js_getProgramParameter ::
+        WebGLRenderingContextBase ->
+          Optional WebGLProgram -> GLenum -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramParameter Mozilla WebGLRenderingContextBase.getProgramParameter documentation> 
+getProgramParameter ::
+                    (MonadIO m, IsWebGLRenderingContextBase self) =>
+                      self -> Maybe WebGLProgram -> GLenum -> m JSVal
+getProgramParameter self program pname
+  = liftIO
+      (js_getProgramParameter (toWebGLRenderingContextBase self)
+         (maybeToOptional program)
+         pname)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramParameter Mozilla WebGLRenderingContextBase.getProgramParameter documentation> 
+getProgramParameter_ ::
+                     (MonadIO m, IsWebGLRenderingContextBase self) =>
+                       self -> Maybe WebGLProgram -> GLenum -> m ()
+getProgramParameter_ self program pname
+  = liftIO
+      (void
+         (js_getProgramParameter (toWebGLRenderingContextBase self)
+            (maybeToOptional program)
+            pname))
+ 
+foreign import javascript unsafe "$1[\"getProgramInfoLog\"]($2)"
+        js_getProgramInfoLog ::
+        WebGLRenderingContextBase ->
+          Optional WebGLProgram -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramInfoLog Mozilla WebGLRenderingContextBase.getProgramInfoLog documentation> 
+getProgramInfoLog ::
+                  (MonadIO m, IsWebGLRenderingContextBase self,
+                   FromJSString result) =>
+                    self -> Maybe WebGLProgram -> m (Maybe result)
+getProgramInfoLog self program
+  = liftIO
+      (fromMaybeJSString <$>
+         (js_getProgramInfoLog (toWebGLRenderingContextBase self)
+            (maybeToOptional program)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramInfoLog Mozilla WebGLRenderingContextBase.getProgramInfoLog documentation> 
+getProgramInfoLog_ ::
+                   (MonadIO m, IsWebGLRenderingContextBase self) =>
+                     self -> Maybe WebGLProgram -> m ()
+getProgramInfoLog_ self program
+  = liftIO
+      (void
+         (js_getProgramInfoLog (toWebGLRenderingContextBase self)
+            (maybeToOptional program)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramInfoLog Mozilla WebGLRenderingContextBase.getProgramInfoLog documentation> 
+getProgramInfoLogUnsafe ::
+                        (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack,
+                         FromJSString result) =>
+                          self -> Maybe WebGLProgram -> m result
+getProgramInfoLogUnsafe self program
+  = liftIO
+      ((fromMaybeJSString <$>
+          (js_getProgramInfoLog (toWebGLRenderingContextBase self)
+             (maybeToOptional program)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getProgramInfoLog Mozilla WebGLRenderingContextBase.getProgramInfoLog documentation> 
+getProgramInfoLogUnchecked ::
+                           (MonadIO m, IsWebGLRenderingContextBase self,
+                            FromJSString result) =>
+                             self -> Maybe WebGLProgram -> m result
+getProgramInfoLogUnchecked self program
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getProgramInfoLog (toWebGLRenderingContextBase self)
+            (maybeToOptional program)))
+ 
+foreign import javascript unsafe
+        "$1[\"getRenderbufferParameter\"]($2,\n$3)"
+        js_getRenderbufferParameter ::
+        WebGLRenderingContextBase -> GLenum -> GLenum -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getRenderbufferParameter Mozilla WebGLRenderingContextBase.getRenderbufferParameter documentation> 
+getRenderbufferParameter ::
+                         (MonadIO m, IsWebGLRenderingContextBase self) =>
+                           self -> GLenum -> GLenum -> m JSVal
+getRenderbufferParameter self target pname
+  = liftIO
+      (js_getRenderbufferParameter (toWebGLRenderingContextBase self)
+         target
+         pname)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getRenderbufferParameter Mozilla WebGLRenderingContextBase.getRenderbufferParameter documentation> 
+getRenderbufferParameter_ ::
+                          (MonadIO m, IsWebGLRenderingContextBase self) =>
+                            self -> GLenum -> GLenum -> m ()
+getRenderbufferParameter_ self target pname
+  = liftIO
+      (void
+         (js_getRenderbufferParameter (toWebGLRenderingContextBase self)
+            target
+            pname))
+ 
+foreign import javascript unsafe
+        "$1[\"getShaderParameter\"]($2, $3)" js_getShaderParameter ::
+        WebGLRenderingContextBase ->
+          Optional WebGLShader -> GLenum -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderParameter Mozilla WebGLRenderingContextBase.getShaderParameter documentation> 
+getShaderParameter ::
+                   (MonadIO m, IsWebGLRenderingContextBase self) =>
+                     self -> Maybe WebGLShader -> GLenum -> m JSVal
+getShaderParameter self shader pname
+  = liftIO
+      (js_getShaderParameter (toWebGLRenderingContextBase self)
+         (maybeToOptional shader)
+         pname)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderParameter Mozilla WebGLRenderingContextBase.getShaderParameter documentation> 
+getShaderParameter_ ::
+                    (MonadIO m, IsWebGLRenderingContextBase self) =>
+                      self -> Maybe WebGLShader -> GLenum -> m ()
+getShaderParameter_ self shader pname
+  = liftIO
+      (void
+         (js_getShaderParameter (toWebGLRenderingContextBase self)
+            (maybeToOptional shader)
+            pname))
+ 
+foreign import javascript unsafe "$1[\"getShaderInfoLog\"]($2)"
+        js_getShaderInfoLog ::
+        WebGLRenderingContextBase ->
+          Optional WebGLShader -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderInfoLog Mozilla WebGLRenderingContextBase.getShaderInfoLog documentation> 
+getShaderInfoLog ::
+                 (MonadIO m, IsWebGLRenderingContextBase self,
+                  FromJSString result) =>
+                   self -> Maybe WebGLShader -> m (Maybe result)
+getShaderInfoLog self shader
+  = liftIO
+      (fromMaybeJSString <$>
+         (js_getShaderInfoLog (toWebGLRenderingContextBase self)
+            (maybeToOptional shader)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderInfoLog Mozilla WebGLRenderingContextBase.getShaderInfoLog documentation> 
+getShaderInfoLog_ ::
+                  (MonadIO m, IsWebGLRenderingContextBase self) =>
+                    self -> Maybe WebGLShader -> m ()
+getShaderInfoLog_ self shader
+  = liftIO
+      (void
+         (js_getShaderInfoLog (toWebGLRenderingContextBase self)
+            (maybeToOptional shader)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderInfoLog Mozilla WebGLRenderingContextBase.getShaderInfoLog documentation> 
+getShaderInfoLogUnsafe ::
+                       (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack,
+                        FromJSString result) =>
+                         self -> Maybe WebGLShader -> m result
+getShaderInfoLogUnsafe self shader
+  = liftIO
+      ((fromMaybeJSString <$>
+          (js_getShaderInfoLog (toWebGLRenderingContextBase self)
+             (maybeToOptional shader)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderInfoLog Mozilla WebGLRenderingContextBase.getShaderInfoLog documentation> 
+getShaderInfoLogUnchecked ::
+                          (MonadIO m, IsWebGLRenderingContextBase self,
+                           FromJSString result) =>
+                            self -> Maybe WebGLShader -> m result
+getShaderInfoLogUnchecked self shader
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getShaderInfoLog (toWebGLRenderingContextBase self)
+            (maybeToOptional shader)))
+ 
+foreign import javascript unsafe
+        "$1[\"getShaderPrecisionFormat\"]($2,\n$3)"
+        js_getShaderPrecisionFormat ::
+        WebGLRenderingContextBase ->
+          GLenum -> GLenum -> IO WebGLShaderPrecisionFormat
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderPrecisionFormat Mozilla WebGLRenderingContextBase.getShaderPrecisionFormat documentation> 
+getShaderPrecisionFormat ::
+                         (MonadIO m, IsWebGLRenderingContextBase self) =>
+                           self -> GLenum -> GLenum -> m WebGLShaderPrecisionFormat
+getShaderPrecisionFormat self shadertype precisiontype
+  = liftIO
+      (js_getShaderPrecisionFormat (toWebGLRenderingContextBase self)
+         shadertype
+         precisiontype)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderPrecisionFormat Mozilla WebGLRenderingContextBase.getShaderPrecisionFormat documentation> 
+getShaderPrecisionFormat_ ::
+                          (MonadIO m, IsWebGLRenderingContextBase self) =>
+                            self -> GLenum -> GLenum -> m ()
+getShaderPrecisionFormat_ self shadertype precisiontype
+  = liftIO
+      (void
+         (js_getShaderPrecisionFormat (toWebGLRenderingContextBase self)
+            shadertype
+            precisiontype))
+ 
+foreign import javascript unsafe "$1[\"getShaderSource\"]($2)"
+        js_getShaderSource ::
+        WebGLRenderingContextBase ->
+          Optional WebGLShader -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderSource Mozilla WebGLRenderingContextBase.getShaderSource documentation> 
+getShaderSource ::
+                (MonadIO m, IsWebGLRenderingContextBase self,
+                 FromJSString result) =>
+                  self -> Maybe WebGLShader -> m (Maybe result)
+getShaderSource self shader
+  = liftIO
+      (fromMaybeJSString <$>
+         (js_getShaderSource (toWebGLRenderingContextBase self)
+            (maybeToOptional shader)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderSource Mozilla WebGLRenderingContextBase.getShaderSource documentation> 
+getShaderSource_ ::
+                 (MonadIO m, IsWebGLRenderingContextBase self) =>
+                   self -> Maybe WebGLShader -> m ()
+getShaderSource_ self shader
+  = liftIO
+      (void
+         (js_getShaderSource (toWebGLRenderingContextBase self)
+            (maybeToOptional shader)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderSource Mozilla WebGLRenderingContextBase.getShaderSource documentation> 
+getShaderSourceUnsafe ::
+                      (MonadIO m, IsWebGLRenderingContextBase self, HasCallStack,
+                       FromJSString result) =>
+                        self -> Maybe WebGLShader -> m result
+getShaderSourceUnsafe self shader
+  = liftIO
+      ((fromMaybeJSString <$>
+          (js_getShaderSource (toWebGLRenderingContextBase self)
+             (maybeToOptional shader)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getShaderSource Mozilla WebGLRenderingContextBase.getShaderSource documentation> 
+getShaderSourceUnchecked ::
+                         (MonadIO m, IsWebGLRenderingContextBase self,
+                          FromJSString result) =>
+                           self -> Maybe WebGLShader -> m result
+getShaderSourceUnchecked self shader
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_getShaderSource (toWebGLRenderingContextBase self)
+            (maybeToOptional shader)))
+ 
+foreign import javascript unsafe "$1[\"getTexParameter\"]($2, $3)"
+        js_getTexParameter ::
+        WebGLRenderingContextBase -> GLenum -> GLenum -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getTexParameter Mozilla WebGLRenderingContextBase.getTexParameter documentation> 
+getTexParameter ::
+                (MonadIO m, IsWebGLRenderingContextBase self) =>
+                  self -> GLenum -> GLenum -> m JSVal
+getTexParameter self target pname
+  = liftIO
+      (js_getTexParameter (toWebGLRenderingContextBase self) target
+         pname)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getTexParameter Mozilla WebGLRenderingContextBase.getTexParameter documentation> 
+getTexParameter_ ::
+                 (MonadIO m, IsWebGLRenderingContextBase self) =>
+                   self -> GLenum -> GLenum -> m ()
+getTexParameter_ self target pname
+  = liftIO
+      (void
+         (js_getTexParameter (toWebGLRenderingContextBase self) target
+            pname))
+ 
+foreign import javascript unsafe "$1[\"getUniform\"]($2, $3)"
+        js_getUniform ::
+        WebGLRenderingContextBase ->
+          Optional WebGLProgram -> Optional WebGLUniformLocation -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getUniform Mozilla WebGLRenderingContextBase.getUniform documentation> 
+getUniform ::
+           (MonadIO m, IsWebGLRenderingContextBase self) =>
+             self -> Maybe WebGLProgram -> Maybe WebGLUniformLocation -> m JSVal
+getUniform self program location
+  = liftIO
+      (js_getUniform (toWebGLRenderingContextBase self)
+         (maybeToOptional program)
+         (maybeToOptional location))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getUniform Mozilla WebGLRenderingContextBase.getUniform documentation> 
+getUniform_ ::
+            (MonadIO m, IsWebGLRenderingContextBase self) =>
+              self -> Maybe WebGLProgram -> Maybe WebGLUniformLocation -> m ()
+getUniform_ self program location
+  = liftIO
+      (void
+         (js_getUniform (toWebGLRenderingContextBase self)
+            (maybeToOptional program)
+            (maybeToOptional location)))
+ 
+foreign import javascript unsafe
+        "$1[\"getUniformLocation\"]($2, $3)" js_getUniformLocation ::
+        WebGLRenderingContextBase ->
+          Optional WebGLProgram -> JSString -> IO WebGLUniformLocation
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getUniformLocation Mozilla WebGLRenderingContextBase.getUniformLocation documentation> 
+getUniformLocation ::
+                   (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
+                     self -> Maybe WebGLProgram -> name -> m WebGLUniformLocation
+getUniformLocation self program name
+  = liftIO
+      (js_getUniformLocation (toWebGLRenderingContextBase self)
+         (maybeToOptional program)
+         (toJSString name))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getUniformLocation Mozilla WebGLRenderingContextBase.getUniformLocation documentation> 
+getUniformLocation_ ::
+                    (MonadIO m, IsWebGLRenderingContextBase self, ToJSString name) =>
+                      self -> Maybe WebGLProgram -> name -> m ()
+getUniformLocation_ self program name
+  = liftIO
+      (void
+         (js_getUniformLocation (toWebGLRenderingContextBase self)
+            (maybeToOptional program)
+            (toJSString name)))
+ 
+foreign import javascript unsafe "$1[\"getVertexAttrib\"]($2, $3)"
+        js_getVertexAttrib ::
+        WebGLRenderingContextBase -> GLuint -> GLenum -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getVertexAttrib Mozilla WebGLRenderingContextBase.getVertexAttrib documentation> 
+getVertexAttrib ::
+                (MonadIO m, IsWebGLRenderingContextBase self) =>
+                  self -> GLuint -> GLenum -> m JSVal
+getVertexAttrib self index pname
+  = liftIO
+      (js_getVertexAttrib (toWebGLRenderingContextBase self) index pname)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getVertexAttrib Mozilla WebGLRenderingContextBase.getVertexAttrib documentation> 
+getVertexAttrib_ ::
+                 (MonadIO m, IsWebGLRenderingContextBase self) =>
+                   self -> GLuint -> GLenum -> m ()
+getVertexAttrib_ self index pname
+  = liftIO
+      (void
+         (js_getVertexAttrib (toWebGLRenderingContextBase self) index
+            pname))
+ 
+foreign import javascript unsafe
+        "$1[\"getVertexAttribOffset\"]($2,\n$3)" js_getVertexAttribOffset
+        :: WebGLRenderingContextBase -> GLuint -> GLenum -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getVertexAttribOffset Mozilla WebGLRenderingContextBase.getVertexAttribOffset documentation> 
+getVertexAttribOffset ::
+                      (MonadIO m, IsWebGLRenderingContextBase self) =>
+                        self -> GLuint -> GLenum -> m GLsizeiptr
+getVertexAttribOffset self index pname
+  = liftIO
+      (round <$>
+         (js_getVertexAttribOffset (toWebGLRenderingContextBase self) index
+            pname))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.getVertexAttribOffset Mozilla WebGLRenderingContextBase.getVertexAttribOffset documentation> 
+getVertexAttribOffset_ ::
+                       (MonadIO m, IsWebGLRenderingContextBase self) =>
+                         self -> GLuint -> GLenum -> m ()
+getVertexAttribOffset_ self index pname
+  = liftIO
+      (void
+         (js_getVertexAttribOffset (toWebGLRenderingContextBase self) index
+            pname))
+ 
+foreign import javascript unsafe "$1[\"hint\"]($2, $3)" js_hint ::
+        WebGLRenderingContextBase -> GLenum -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.hint Mozilla WebGLRenderingContextBase.hint documentation> 
+hint ::
+     (MonadIO m, IsWebGLRenderingContextBase self) =>
+       self -> GLenum -> GLenum -> m ()
+hint self target mode
+  = liftIO (js_hint (toWebGLRenderingContextBase self) target mode)
+ 
+foreign import javascript unsafe "$1[\"isBuffer\"]($2)" js_isBuffer
+        ::
+        WebGLRenderingContextBase -> Optional WebGLBuffer -> IO GLboolean
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isBuffer Mozilla WebGLRenderingContextBase.isBuffer documentation> 
+isBuffer ::
+         (MonadIO m, IsWebGLRenderingContextBase self) =>
+           self -> Maybe WebGLBuffer -> m GLboolean
+isBuffer self buffer
+  = liftIO
+      (js_isBuffer (toWebGLRenderingContextBase self)
+         (maybeToOptional buffer))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isBuffer Mozilla WebGLRenderingContextBase.isBuffer documentation> 
+isBuffer_ ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> Maybe WebGLBuffer -> m ()
+isBuffer_ self buffer
+  = liftIO
+      (void
+         (js_isBuffer (toWebGLRenderingContextBase self)
+            (maybeToOptional buffer)))
+ 
+foreign import javascript unsafe "$1[\"isContextLost\"]()"
+        js_isContextLost :: WebGLRenderingContextBase -> IO GLboolean
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isContextLost Mozilla WebGLRenderingContextBase.isContextLost documentation> 
+isContextLost ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> m GLboolean
+isContextLost self
+  = liftIO (js_isContextLost (toWebGLRenderingContextBase self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isContextLost Mozilla WebGLRenderingContextBase.isContextLost documentation> 
+isContextLost_ ::
+               (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+isContextLost_ self
+  = liftIO
+      (void (js_isContextLost (toWebGLRenderingContextBase self)))
+ 
+foreign import javascript unsafe "$1[\"isEnabled\"]($2)"
+        js_isEnabled :: WebGLRenderingContextBase -> GLenum -> IO GLboolean
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isEnabled Mozilla WebGLRenderingContextBase.isEnabled documentation> 
+isEnabled ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> GLenum -> m GLboolean
+isEnabled self cap
+  = liftIO (js_isEnabled (toWebGLRenderingContextBase self) cap)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isEnabled Mozilla WebGLRenderingContextBase.isEnabled documentation> 
+isEnabled_ ::
+           (MonadIO m, IsWebGLRenderingContextBase self) =>
+             self -> GLenum -> m ()
+isEnabled_ self cap
+  = liftIO
+      (void (js_isEnabled (toWebGLRenderingContextBase self) cap))
+ 
+foreign import javascript unsafe "$1[\"isFramebuffer\"]($2)"
+        js_isFramebuffer ::
+        WebGLRenderingContextBase ->
+          Optional WebGLFramebuffer -> IO GLboolean
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isFramebuffer Mozilla WebGLRenderingContextBase.isFramebuffer documentation> 
+isFramebuffer ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> Maybe WebGLFramebuffer -> m GLboolean
+isFramebuffer self framebuffer
+  = liftIO
+      (js_isFramebuffer (toWebGLRenderingContextBase self)
+         (maybeToOptional framebuffer))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isFramebuffer Mozilla WebGLRenderingContextBase.isFramebuffer documentation> 
+isFramebuffer_ ::
+               (MonadIO m, IsWebGLRenderingContextBase self) =>
+                 self -> Maybe WebGLFramebuffer -> m ()
+isFramebuffer_ self framebuffer
+  = liftIO
+      (void
+         (js_isFramebuffer (toWebGLRenderingContextBase self)
+            (maybeToOptional framebuffer)))
+ 
+foreign import javascript unsafe "$1[\"isProgram\"]($2)"
+        js_isProgram ::
+        WebGLRenderingContextBase -> Optional WebGLProgram -> IO GLboolean
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isProgram Mozilla WebGLRenderingContextBase.isProgram documentation> 
+isProgram ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> Maybe WebGLProgram -> m GLboolean
+isProgram self program
+  = liftIO
+      (js_isProgram (toWebGLRenderingContextBase self)
+         (maybeToOptional program))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isProgram Mozilla WebGLRenderingContextBase.isProgram documentation> 
+isProgram_ ::
+           (MonadIO m, IsWebGLRenderingContextBase self) =>
+             self -> Maybe WebGLProgram -> m ()
+isProgram_ self program
+  = liftIO
+      (void
+         (js_isProgram (toWebGLRenderingContextBase self)
+            (maybeToOptional program)))
+ 
+foreign import javascript unsafe "$1[\"isRenderbuffer\"]($2)"
+        js_isRenderbuffer ::
+        WebGLRenderingContextBase ->
+          Optional WebGLRenderbuffer -> IO GLboolean
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isRenderbuffer Mozilla WebGLRenderingContextBase.isRenderbuffer documentation> 
+isRenderbuffer ::
+               (MonadIO m, IsWebGLRenderingContextBase self) =>
+                 self -> Maybe WebGLRenderbuffer -> m GLboolean
+isRenderbuffer self renderbuffer
+  = liftIO
+      (js_isRenderbuffer (toWebGLRenderingContextBase self)
+         (maybeToOptional renderbuffer))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isRenderbuffer Mozilla WebGLRenderingContextBase.isRenderbuffer documentation> 
+isRenderbuffer_ ::
+                (MonadIO m, IsWebGLRenderingContextBase self) =>
+                  self -> Maybe WebGLRenderbuffer -> m ()
+isRenderbuffer_ self renderbuffer
+  = liftIO
+      (void
+         (js_isRenderbuffer (toWebGLRenderingContextBase self)
+            (maybeToOptional renderbuffer)))
+ 
+foreign import javascript unsafe "$1[\"isShader\"]($2)" js_isShader
+        ::
+        WebGLRenderingContextBase -> Optional WebGLShader -> IO GLboolean
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isShader Mozilla WebGLRenderingContextBase.isShader documentation> 
+isShader ::
+         (MonadIO m, IsWebGLRenderingContextBase self) =>
+           self -> Maybe WebGLShader -> m GLboolean
+isShader self shader
+  = liftIO
+      (js_isShader (toWebGLRenderingContextBase self)
+         (maybeToOptional shader))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isShader Mozilla WebGLRenderingContextBase.isShader documentation> 
+isShader_ ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> Maybe WebGLShader -> m ()
+isShader_ self shader
+  = liftIO
+      (void
+         (js_isShader (toWebGLRenderingContextBase self)
+            (maybeToOptional shader)))
+ 
+foreign import javascript unsafe "$1[\"isTexture\"]($2)"
+        js_isTexture ::
+        WebGLRenderingContextBase -> Optional WebGLTexture -> IO GLboolean
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isTexture Mozilla WebGLRenderingContextBase.isTexture documentation> 
+isTexture ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> Maybe WebGLTexture -> m GLboolean
+isTexture self texture
+  = liftIO
+      (js_isTexture (toWebGLRenderingContextBase self)
+         (maybeToOptional texture))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.isTexture Mozilla WebGLRenderingContextBase.isTexture documentation> 
+isTexture_ ::
+           (MonadIO m, IsWebGLRenderingContextBase self) =>
+             self -> Maybe WebGLTexture -> m ()
+isTexture_ self texture
+  = liftIO
+      (void
+         (js_isTexture (toWebGLRenderingContextBase self)
+            (maybeToOptional texture)))
+ 
+foreign import javascript unsafe "$1[\"lineWidth\"]($2)"
+        js_lineWidth :: WebGLRenderingContextBase -> GLfloat -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.lineWidth Mozilla WebGLRenderingContextBase.lineWidth documentation> 
+lineWidth ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> GLfloat -> m ()
+lineWidth self width
+  = liftIO (js_lineWidth (toWebGLRenderingContextBase self) width)
+ 
+foreign import javascript unsafe "$1[\"linkProgram\"]($2)"
+        js_linkProgram ::
+        WebGLRenderingContextBase -> Optional WebGLProgram -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.linkProgram Mozilla WebGLRenderingContextBase.linkProgram documentation> 
+linkProgram ::
+            (MonadIO m, IsWebGLRenderingContextBase self) =>
+              self -> Maybe WebGLProgram -> m ()
+linkProgram self program
+  = liftIO
+      (js_linkProgram (toWebGLRenderingContextBase self)
+         (maybeToOptional program))
+ 
+foreign import javascript unsafe "$1[\"pixelStorei\"]($2, $3)"
+        js_pixelStorei ::
+        WebGLRenderingContextBase -> GLenum -> GLint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.pixelStorei Mozilla WebGLRenderingContextBase.pixelStorei documentation> 
+pixelStorei ::
+            (MonadIO m, IsWebGLRenderingContextBase self) =>
+              self -> GLenum -> GLint -> m ()
+pixelStorei self pname param
+  = liftIO
+      (js_pixelStorei (toWebGLRenderingContextBase self) pname param)
+ 
+foreign import javascript unsafe "$1[\"polygonOffset\"]($2, $3)"
+        js_polygonOffset ::
+        WebGLRenderingContextBase -> GLfloat -> GLfloat -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.polygonOffset Mozilla WebGLRenderingContextBase.polygonOffset documentation> 
+polygonOffset ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> GLfloat -> GLfloat -> m ()
+polygonOffset self factor units
+  = liftIO
+      (js_polygonOffset (toWebGLRenderingContextBase self) factor units)
+ 
+foreign import javascript unsafe
+        "$1[\"readPixels\"]($2, $3, $4, $5,\n$6, $7, $8)" js_readPixels ::
+        WebGLRenderingContextBase ->
+          GLint ->
+            GLint ->
+              GLsizei -> GLsizei -> GLenum -> GLenum -> ArrayBufferView -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.readPixels Mozilla WebGLRenderingContextBase.readPixels documentation> 
+readPixels ::
+           (MonadIO m, IsWebGLRenderingContextBase self,
+            IsArrayBufferView pixels) =>
+             self ->
+               GLint ->
+                 GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> pixels -> m ()
+readPixels self x y width height format type' pixels
+  = liftIO
+      (js_readPixels (toWebGLRenderingContextBase self) x y width height
+         format
+         type'
+         (toArrayBufferView pixels))
+ 
+foreign import javascript unsafe "$1[\"releaseShaderCompiler\"]()"
+        js_releaseShaderCompiler :: WebGLRenderingContextBase -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.releaseShaderCompiler Mozilla WebGLRenderingContextBase.releaseShaderCompiler documentation> 
+releaseShaderCompiler ::
+                      (MonadIO m, IsWebGLRenderingContextBase self) => self -> m ()
+releaseShaderCompiler self
+  = liftIO
+      (js_releaseShaderCompiler (toWebGLRenderingContextBase self))
+ 
+foreign import javascript unsafe
+        "$1[\"renderbufferStorage\"]($2,\n$3, $4, $5)"
+        js_renderbufferStorage ::
+        WebGLRenderingContextBase ->
+          GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.renderbufferStorage Mozilla WebGLRenderingContextBase.renderbufferStorage documentation> 
+renderbufferStorage ::
+                    (MonadIO m, IsWebGLRenderingContextBase self) =>
+                      self -> GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
+renderbufferStorage self target internalformat width height
+  = liftIO
+      (js_renderbufferStorage (toWebGLRenderingContextBase self) target
+         internalformat
+         width
+         height)
+ 
+foreign import javascript unsafe "$1[\"sampleCoverage\"]($2, $3)"
+        js_sampleCoverage ::
+        WebGLRenderingContextBase -> GLclampf -> GLboolean -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.sampleCoverage Mozilla WebGLRenderingContextBase.sampleCoverage documentation> 
+sampleCoverage ::
+               (MonadIO m, IsWebGLRenderingContextBase self) =>
+                 self -> GLclampf -> GLboolean -> m ()
+sampleCoverage self value invert
+  = liftIO
+      (js_sampleCoverage (toWebGLRenderingContextBase self) value invert)
+ 
+foreign import javascript unsafe "$1[\"scissor\"]($2, $3, $4, $5)"
+        js_scissor ::
+        WebGLRenderingContextBase ->
+          GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.scissor Mozilla WebGLRenderingContextBase.scissor documentation> 
+scissor ::
+        (MonadIO m, IsWebGLRenderingContextBase self) =>
+          self -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+scissor self x y width height
+  = liftIO
+      (js_scissor (toWebGLRenderingContextBase self) x y width height)
+ 
+foreign import javascript unsafe "$1[\"shaderSource\"]($2, $3)"
+        js_shaderSource ::
+        WebGLRenderingContextBase ->
+          Optional WebGLShader -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.shaderSource Mozilla WebGLRenderingContextBase.shaderSource documentation> 
+shaderSource ::
+             (MonadIO m, IsWebGLRenderingContextBase self, ToJSString string) =>
+               self -> Maybe WebGLShader -> string -> m ()
+shaderSource self shader string
+  = liftIO
+      (js_shaderSource (toWebGLRenderingContextBase self)
+         (maybeToOptional shader)
+         (toJSString string))
+ 
+foreign import javascript unsafe "$1[\"stencilFunc\"]($2, $3, $4)"
+        js_stencilFunc ::
+        WebGLRenderingContextBase -> GLenum -> GLint -> GLuint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilFunc Mozilla WebGLRenderingContextBase.stencilFunc documentation> 
+stencilFunc ::
+            (MonadIO m, IsWebGLRenderingContextBase self) =>
+              self -> GLenum -> GLint -> GLuint -> m ()
+stencilFunc self func ref mask
+  = liftIO
+      (js_stencilFunc (toWebGLRenderingContextBase self) func ref mask)
+ 
+foreign import javascript unsafe
+        "$1[\"stencilFuncSeparate\"]($2,\n$3, $4, $5)"
+        js_stencilFuncSeparate ::
+        WebGLRenderingContextBase ->
+          GLenum -> GLenum -> GLint -> GLuint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilFuncSeparate Mozilla WebGLRenderingContextBase.stencilFuncSeparate documentation> 
+stencilFuncSeparate ::
+                    (MonadIO m, IsWebGLRenderingContextBase self) =>
+                      self -> GLenum -> GLenum -> GLint -> GLuint -> m ()
+stencilFuncSeparate self face func ref mask
+  = liftIO
+      (js_stencilFuncSeparate (toWebGLRenderingContextBase self) face
+         func
+         ref
+         mask)
+ 
+foreign import javascript unsafe "$1[\"stencilMask\"]($2)"
+        js_stencilMask :: WebGLRenderingContextBase -> GLuint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilMask Mozilla WebGLRenderingContextBase.stencilMask documentation> 
+stencilMask ::
+            (MonadIO m, IsWebGLRenderingContextBase self) =>
+              self -> GLuint -> m ()
+stencilMask self mask
+  = liftIO (js_stencilMask (toWebGLRenderingContextBase self) mask)
+ 
+foreign import javascript unsafe
+        "$1[\"stencilMaskSeparate\"]($2,\n$3)" js_stencilMaskSeparate ::
+        WebGLRenderingContextBase -> GLenum -> GLuint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilMaskSeparate Mozilla WebGLRenderingContextBase.stencilMaskSeparate documentation> 
+stencilMaskSeparate ::
+                    (MonadIO m, IsWebGLRenderingContextBase self) =>
+                      self -> GLenum -> GLuint -> m ()
+stencilMaskSeparate self face mask
+  = liftIO
+      (js_stencilMaskSeparate (toWebGLRenderingContextBase self) face
+         mask)
+ 
+foreign import javascript unsafe "$1[\"stencilOp\"]($2, $3, $4)"
+        js_stencilOp ::
+        WebGLRenderingContextBase -> GLenum -> GLenum -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilOp Mozilla WebGLRenderingContextBase.stencilOp documentation> 
+stencilOp ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> GLenum -> GLenum -> GLenum -> m ()
+stencilOp self fail zfail zpass
+  = liftIO
+      (js_stencilOp (toWebGLRenderingContextBase self) fail zfail zpass)
+ 
+foreign import javascript unsafe
+        "$1[\"stencilOpSeparate\"]($2, $3,\n$4, $5)" js_stencilOpSeparate
+        ::
+        WebGLRenderingContextBase ->
+          GLenum -> GLenum -> GLenum -> GLenum -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.stencilOpSeparate Mozilla WebGLRenderingContextBase.stencilOpSeparate documentation> 
+stencilOpSeparate ::
+                  (MonadIO m, IsWebGLRenderingContextBase self) =>
+                    self -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+stencilOpSeparate self face fail zfail zpass
+  = liftIO
+      (js_stencilOpSeparate (toWebGLRenderingContextBase self) face fail
+         zfail
+         zpass)
+ 
+foreign import javascript unsafe
+        "$1[\"texParameterf\"]($2, $3, $4)" js_texParameterf ::
+        WebGLRenderingContextBase -> GLenum -> GLenum -> GLfloat -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texParameterf Mozilla WebGLRenderingContextBase.texParameterf documentation> 
+texParameterf ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> GLenum -> GLenum -> GLfloat -> m ()
+texParameterf self target pname param
+  = liftIO
+      (js_texParameterf (toWebGLRenderingContextBase self) target pname
+         param)
+ 
+foreign import javascript unsafe
+        "$1[\"texParameteri\"]($2, $3, $4)" js_texParameteri ::
+        WebGLRenderingContextBase -> GLenum -> GLenum -> GLint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texParameteri Mozilla WebGLRenderingContextBase.texParameteri documentation> 
+texParameteri ::
+              (MonadIO m, IsWebGLRenderingContextBase self) =>
+                self -> GLenum -> GLenum -> GLint -> m ()
+texParameteri self target pname param
+  = liftIO
+      (js_texParameteri (toWebGLRenderingContextBase self) target pname
+         param)
+ 
+foreign import javascript unsafe
+        "$1[\"texImage2D\"]($2, $3, $4, $5,\n$6, $7, $8, $9, $10)"
+        js_texImage2DView ::
+        WebGLRenderingContextBase ->
+          GLenum ->
+            GLint ->
+              GLenum ->
+                GLsizei ->
+                  GLsizei ->
+                    GLint -> GLenum -> GLenum -> Optional ArrayBufferView -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texImage2D Mozilla WebGLRenderingContextBase.texImage2D documentation> 
+texImage2DView ::
+               (MonadIO m, IsWebGLRenderingContextBase self,
+                IsArrayBufferView pixels) =>
+                 self ->
+                   GLenum ->
+                     GLint ->
+                       GLenum ->
+                         GLsizei ->
+                           GLsizei -> GLint -> GLenum -> GLenum -> Maybe pixels -> m ()
+texImage2DView self target level internalformat width height border
+  format type' pixels
+  = liftIO
+      (js_texImage2DView (toWebGLRenderingContextBase self) target level
+         internalformat
+         width
+         height
+         border
+         format
+         type'
+         (maybeToOptional (fmap toArrayBufferView pixels)))
+ 
+foreign import javascript unsafe
+        "$1[\"texImage2D\"]($2, $3, $4, $5,\n$6, $7)" js_texImage2D ::
+        WebGLRenderingContextBase ->
+          GLenum ->
+            GLint ->
+              GLenum -> GLenum -> GLenum -> Optional TexImageSource -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texImage2D Mozilla WebGLRenderingContextBase.texImage2D documentation> 
+texImage2D ::
+           (MonadIO m, IsWebGLRenderingContextBase self,
+            IsTexImageSource source) =>
+             self ->
+               GLenum ->
+                 GLint -> GLenum -> GLenum -> GLenum -> Maybe source -> m ()
+texImage2D self target level internalformat format type' source
+  = liftIO
+      (js_texImage2D (toWebGLRenderingContextBase self) target level
+         internalformat
+         format
+         type'
+         (maybeToOptional (fmap toTexImageSource source)))
+ 
+foreign import javascript unsafe
+        "$1[\"texSubImage2D\"]($2, $3, $4,\n$5, $6, $7, $8, $9, $10)"
+        js_texSubImage2DView ::
+        WebGLRenderingContextBase ->
+          GLenum ->
+            GLint ->
+              GLint ->
+                GLint ->
+                  GLsizei ->
+                    GLsizei -> GLenum -> GLenum -> Optional ArrayBufferView -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texSubImage2D Mozilla WebGLRenderingContextBase.texSubImage2D documentation> 
+texSubImage2DView ::
+                  (MonadIO m, IsWebGLRenderingContextBase self,
+                   IsArrayBufferView pixels) =>
+                    self ->
+                      GLenum ->
+                        GLint ->
+                          GLint ->
+                            GLint ->
+                              GLsizei -> GLsizei -> GLenum -> GLenum -> Maybe pixels -> m ()
+texSubImage2DView self target level xoffset yoffset width height
+  format type' pixels
+  = liftIO
+      (js_texSubImage2DView (toWebGLRenderingContextBase self) target
+         level
+         xoffset
+         yoffset
+         width
+         height
+         format
+         type'
+         (maybeToOptional (fmap toArrayBufferView pixels)))
+ 
+foreign import javascript unsafe
+        "$1[\"texSubImage2D\"]($2, $3, $4,\n$5, $6, $7, $8)"
+        js_texSubImage2D ::
+        WebGLRenderingContextBase ->
+          GLenum ->
+            GLint ->
+              GLint ->
+                GLint -> GLenum -> GLenum -> Optional TexImageSource -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.texSubImage2D Mozilla WebGLRenderingContextBase.texSubImage2D documentation> 
+texSubImage2D ::
+              (MonadIO m, IsWebGLRenderingContextBase self,
+               IsTexImageSource source) =>
+                self ->
+                  GLenum ->
+                    GLint -> GLint -> GLint -> GLenum -> GLenum -> Maybe source -> m ()
+texSubImage2D self target level xoffset yoffset format type' source
+  = liftIO
+      (js_texSubImage2D (toWebGLRenderingContextBase self) target level
+         xoffset
+         yoffset
+         format
+         type'
+         (maybeToOptional (fmap toTexImageSource source)))
+ 
+foreign import javascript unsafe "$1[\"uniform1f\"]($2, $3)"
+        js_uniform1f ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> GLfloat -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform1f Mozilla WebGLRenderingContextBase.uniform1f documentation> 
+uniform1f ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> Maybe WebGLUniformLocation -> GLfloat -> m ()
+uniform1f self location x
+  = liftIO
+      (js_uniform1f (toWebGLRenderingContextBase self)
+         (maybeToOptional location)
+         x)
+ 
+foreign import javascript unsafe "$1[\"uniform2f\"]($2, $3, $4)"
+        js_uniform2f ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> GLfloat -> GLfloat -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform2f Mozilla WebGLRenderingContextBase.uniform2f documentation> 
+uniform2f ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> Maybe WebGLUniformLocation -> GLfloat -> GLfloat -> m ()
+uniform2f self location x y
+  = liftIO
+      (js_uniform2f (toWebGLRenderingContextBase self)
+         (maybeToOptional location)
+         x
+         y)
+ 
+foreign import javascript unsafe
+        "$1[\"uniform3f\"]($2, $3, $4, $5)" js_uniform3f ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation ->
+            GLfloat -> GLfloat -> GLfloat -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform3f Mozilla WebGLRenderingContextBase.uniform3f documentation> 
+uniform3f ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self ->
+              Maybe WebGLUniformLocation -> GLfloat -> GLfloat -> GLfloat -> m ()
+uniform3f self location x y z
+  = liftIO
+      (js_uniform3f (toWebGLRenderingContextBase self)
+         (maybeToOptional location)
+         x
+         y
+         z)
+ 
+foreign import javascript unsafe
+        "$1[\"uniform4f\"]($2, $3, $4, $5,\n$6)" js_uniform4f ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation ->
+            GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform4f Mozilla WebGLRenderingContextBase.uniform4f documentation> 
+uniform4f ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self ->
+              Maybe WebGLUniformLocation ->
+                GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+uniform4f self location x y z w
+  = liftIO
+      (js_uniform4f (toWebGLRenderingContextBase self)
+         (maybeToOptional location)
+         x
+         y
+         z
+         w)
+ 
+foreign import javascript unsafe "$1[\"uniform1i\"]($2, $3)"
+        js_uniform1i ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> GLint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform1i Mozilla WebGLRenderingContextBase.uniform1i documentation> 
+uniform1i ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> Maybe WebGLUniformLocation -> GLint -> m ()
+uniform1i self location x
+  = liftIO
+      (js_uniform1i (toWebGLRenderingContextBase self)
+         (maybeToOptional location)
+         x)
+ 
+foreign import javascript unsafe "$1[\"uniform2i\"]($2, $3, $4)"
+        js_uniform2i ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> GLint -> GLint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform2i Mozilla WebGLRenderingContextBase.uniform2i documentation> 
+uniform2i ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> Maybe WebGLUniformLocation -> GLint -> GLint -> m ()
+uniform2i self location x y
+  = liftIO
+      (js_uniform2i (toWebGLRenderingContextBase self)
+         (maybeToOptional location)
+         x
+         y)
+ 
+foreign import javascript unsafe
+        "$1[\"uniform3i\"]($2, $3, $4, $5)" js_uniform3i ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> GLint -> GLint -> GLint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform3i Mozilla WebGLRenderingContextBase.uniform3i documentation> 
+uniform3i ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self ->
+              Maybe WebGLUniformLocation -> GLint -> GLint -> GLint -> m ()
+uniform3i self location x y z
+  = liftIO
+      (js_uniform3i (toWebGLRenderingContextBase self)
+         (maybeToOptional location)
+         x
+         y
+         z)
+ 
+foreign import javascript unsafe
+        "$1[\"uniform4i\"]($2, $3, $4, $5,\n$6)" js_uniform4i ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation ->
+            GLint -> GLint -> GLint -> GLint -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform4i Mozilla WebGLRenderingContextBase.uniform4i documentation> 
+uniform4i ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self ->
+              Maybe WebGLUniformLocation ->
+                GLint -> GLint -> GLint -> GLint -> m ()
+uniform4i self location x y z w
+  = liftIO
+      (js_uniform4i (toWebGLRenderingContextBase self)
+         (maybeToOptional location)
+         x
+         y
+         z
+         w)
+ 
+foreign import javascript unsafe "$1[\"uniform1fv\"]($2, $3)"
+        js_uniform1fv ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> Float32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform1fv Mozilla WebGLRenderingContextBase.uniform1fv documentation> 
+uniform1fv ::
+           (MonadIO m, IsWebGLRenderingContextBase self, IsFloat32List v) =>
+             self -> Maybe WebGLUniformLocation -> v -> m ()
+uniform1fv self location v
+  = liftIO
+      (toJSVal v >>=
+         \ v' ->
+           js_uniform1fv (toWebGLRenderingContextBase self)
+             (maybeToOptional location)
+             (Float32List v'))
+ 
+foreign import javascript unsafe "$1[\"uniform2fv\"]($2, $3)"
+        js_uniform2fv ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> Float32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform2fv Mozilla WebGLRenderingContextBase.uniform2fv documentation> 
+uniform2fv ::
+           (MonadIO m, IsWebGLRenderingContextBase self, IsFloat32List v) =>
+             self -> Maybe WebGLUniformLocation -> v -> m ()
+uniform2fv self location v
+  = liftIO
+      (toJSVal v >>=
+         \ v' ->
+           js_uniform2fv (toWebGLRenderingContextBase self)
+             (maybeToOptional location)
+             (Float32List v'))
+ 
+foreign import javascript unsafe "$1[\"uniform3fv\"]($2, $3)"
+        js_uniform3fv ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> Float32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform3fv Mozilla WebGLRenderingContextBase.uniform3fv documentation> 
+uniform3fv ::
+           (MonadIO m, IsWebGLRenderingContextBase self, IsFloat32List v) =>
+             self -> Maybe WebGLUniformLocation -> v -> m ()
+uniform3fv self location v
+  = liftIO
+      (toJSVal v >>=
+         \ v' ->
+           js_uniform3fv (toWebGLRenderingContextBase self)
+             (maybeToOptional location)
+             (Float32List v'))
+ 
+foreign import javascript unsafe "$1[\"uniform4fv\"]($2, $3)"
+        js_uniform4fv ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> Float32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform4fv Mozilla WebGLRenderingContextBase.uniform4fv documentation> 
+uniform4fv ::
+           (MonadIO m, IsWebGLRenderingContextBase self, IsFloat32List v) =>
+             self -> Maybe WebGLUniformLocation -> v -> m ()
+uniform4fv self location v
+  = liftIO
+      (toJSVal v >>=
+         \ v' ->
+           js_uniform4fv (toWebGLRenderingContextBase self)
+             (maybeToOptional location)
+             (Float32List v'))
+ 
+foreign import javascript unsafe "$1[\"uniform1iv\"]($2, $3)"
+        js_uniform1iv ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> Int32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform1iv Mozilla WebGLRenderingContextBase.uniform1iv documentation> 
+uniform1iv ::
+           (MonadIO m, IsWebGLRenderingContextBase self, IsInt32List v) =>
+             self -> Maybe WebGLUniformLocation -> v -> m ()
+uniform1iv self location v
+  = liftIO
+      (toJSVal v >>=
+         \ v' ->
+           js_uniform1iv (toWebGLRenderingContextBase self)
+             (maybeToOptional location)
+             (Int32List v'))
+ 
+foreign import javascript unsafe "$1[\"uniform2iv\"]($2, $3)"
+        js_uniform2iv ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> Int32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform2iv Mozilla WebGLRenderingContextBase.uniform2iv documentation> 
+uniform2iv ::
+           (MonadIO m, IsWebGLRenderingContextBase self, IsInt32List v) =>
+             self -> Maybe WebGLUniformLocation -> v -> m ()
+uniform2iv self location v
+  = liftIO
+      (toJSVal v >>=
+         \ v' ->
+           js_uniform2iv (toWebGLRenderingContextBase self)
+             (maybeToOptional location)
+             (Int32List v'))
+ 
+foreign import javascript unsafe "$1[\"uniform3iv\"]($2, $3)"
+        js_uniform3iv ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> Int32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform3iv Mozilla WebGLRenderingContextBase.uniform3iv documentation> 
+uniform3iv ::
+           (MonadIO m, IsWebGLRenderingContextBase self, IsInt32List v) =>
+             self -> Maybe WebGLUniformLocation -> v -> m ()
+uniform3iv self location v
+  = liftIO
+      (toJSVal v >>=
+         \ v' ->
+           js_uniform3iv (toWebGLRenderingContextBase self)
+             (maybeToOptional location)
+             (Int32List v'))
+ 
+foreign import javascript unsafe "$1[\"uniform4iv\"]($2, $3)"
+        js_uniform4iv ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> Int32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniform4iv Mozilla WebGLRenderingContextBase.uniform4iv documentation> 
+uniform4iv ::
+           (MonadIO m, IsWebGLRenderingContextBase self, IsInt32List v) =>
+             self -> Maybe WebGLUniformLocation -> v -> m ()
+uniform4iv self location v
+  = liftIO
+      (toJSVal v >>=
+         \ v' ->
+           js_uniform4iv (toWebGLRenderingContextBase self)
+             (maybeToOptional location)
+             (Int32List v'))
+ 
+foreign import javascript unsafe
+        "$1[\"uniformMatrix2fv\"]($2, $3,\n$4)" js_uniformMatrix2fv ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> GLboolean -> Float32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniformMatrix2fv Mozilla WebGLRenderingContextBase.uniformMatrix2fv documentation> 
+uniformMatrix2fv ::
+                 (MonadIO m, IsWebGLRenderingContextBase self,
+                  IsFloat32List array) =>
+                   self -> Maybe WebGLUniformLocation -> GLboolean -> array -> m ()
+uniformMatrix2fv self location transpose array
+  = liftIO
+      (toJSVal array >>=
+         \ array' ->
+           js_uniformMatrix2fv (toWebGLRenderingContextBase self)
+             (maybeToOptional location)
+             transpose
+             (Float32List array'))
+ 
+foreign import javascript unsafe
+        "$1[\"uniformMatrix3fv\"]($2, $3,\n$4)" js_uniformMatrix3fv ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> GLboolean -> Float32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniformMatrix3fv Mozilla WebGLRenderingContextBase.uniformMatrix3fv documentation> 
+uniformMatrix3fv ::
+                 (MonadIO m, IsWebGLRenderingContextBase self,
+                  IsFloat32List array) =>
+                   self -> Maybe WebGLUniformLocation -> GLboolean -> array -> m ()
+uniformMatrix3fv self location transpose array
+  = liftIO
+      (toJSVal array >>=
+         \ array' ->
+           js_uniformMatrix3fv (toWebGLRenderingContextBase self)
+             (maybeToOptional location)
+             transpose
+             (Float32List array'))
+ 
+foreign import javascript unsafe
+        "$1[\"uniformMatrix4fv\"]($2, $3,\n$4)" js_uniformMatrix4fv ::
+        WebGLRenderingContextBase ->
+          Optional WebGLUniformLocation -> GLboolean -> Float32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.uniformMatrix4fv Mozilla WebGLRenderingContextBase.uniformMatrix4fv documentation> 
+uniformMatrix4fv ::
+                 (MonadIO m, IsWebGLRenderingContextBase self,
+                  IsFloat32List array) =>
+                   self -> Maybe WebGLUniformLocation -> GLboolean -> array -> m ()
+uniformMatrix4fv self location transpose array
+  = liftIO
+      (toJSVal array >>=
+         \ array' ->
+           js_uniformMatrix4fv (toWebGLRenderingContextBase self)
+             (maybeToOptional location)
+             transpose
+             (Float32List array'))
+ 
+foreign import javascript unsafe "$1[\"useProgram\"]($2)"
+        js_useProgram ::
+        WebGLRenderingContextBase -> Optional WebGLProgram -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.useProgram Mozilla WebGLRenderingContextBase.useProgram documentation> 
+useProgram ::
+           (MonadIO m, IsWebGLRenderingContextBase self) =>
+             self -> Maybe WebGLProgram -> m ()
+useProgram self program
+  = liftIO
+      (js_useProgram (toWebGLRenderingContextBase self)
+         (maybeToOptional program))
+ 
+foreign import javascript unsafe "$1[\"validateProgram\"]($2)"
+        js_validateProgram ::
+        WebGLRenderingContextBase -> Optional WebGLProgram -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.validateProgram Mozilla WebGLRenderingContextBase.validateProgram documentation> 
+validateProgram ::
+                (MonadIO m, IsWebGLRenderingContextBase self) =>
+                  self -> Maybe WebGLProgram -> m ()
+validateProgram self program
+  = liftIO
+      (js_validateProgram (toWebGLRenderingContextBase self)
+         (maybeToOptional program))
+ 
+foreign import javascript unsafe "$1[\"vertexAttrib1f\"]($2, $3)"
+        js_vertexAttrib1f ::
+        WebGLRenderingContextBase -> GLuint -> GLfloat -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib1f Mozilla WebGLRenderingContextBase.vertexAttrib1f documentation> 
+vertexAttrib1f ::
+               (MonadIO m, IsWebGLRenderingContextBase self) =>
+                 self -> GLuint -> GLfloat -> m ()
+vertexAttrib1f self index x
+  = liftIO
+      (js_vertexAttrib1f (toWebGLRenderingContextBase self) index x)
+ 
+foreign import javascript unsafe
+        "$1[\"vertexAttrib2f\"]($2, $3, $4)" js_vertexAttrib2f ::
+        WebGLRenderingContextBase -> GLuint -> GLfloat -> GLfloat -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib2f Mozilla WebGLRenderingContextBase.vertexAttrib2f documentation> 
+vertexAttrib2f ::
+               (MonadIO m, IsWebGLRenderingContextBase self) =>
+                 self -> GLuint -> GLfloat -> GLfloat -> m ()
+vertexAttrib2f self index x y
+  = liftIO
+      (js_vertexAttrib2f (toWebGLRenderingContextBase self) index x y)
+ 
+foreign import javascript unsafe
+        "$1[\"vertexAttrib3f\"]($2, $3, $4,\n$5)" js_vertexAttrib3f ::
+        WebGLRenderingContextBase ->
+          GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib3f Mozilla WebGLRenderingContextBase.vertexAttrib3f documentation> 
+vertexAttrib3f ::
+               (MonadIO m, IsWebGLRenderingContextBase self) =>
+                 self -> GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+vertexAttrib3f self index x y z
+  = liftIO
+      (js_vertexAttrib3f (toWebGLRenderingContextBase self) index x y z)
+ 
+foreign import javascript unsafe
+        "$1[\"vertexAttrib4f\"]($2, $3, $4,\n$5, $6)" js_vertexAttrib4f ::
+        WebGLRenderingContextBase ->
+          GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib4f Mozilla WebGLRenderingContextBase.vertexAttrib4f documentation> 
+vertexAttrib4f ::
+               (MonadIO m, IsWebGLRenderingContextBase self) =>
+                 self -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+vertexAttrib4f self index x y z w
+  = liftIO
+      (js_vertexAttrib4f (toWebGLRenderingContextBase self) index x y z
+         w)
+ 
+foreign import javascript unsafe "$1[\"vertexAttrib1fv\"]($2, $3)"
+        js_vertexAttrib1fv ::
+        WebGLRenderingContextBase -> GLuint -> Float32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib1fv Mozilla WebGLRenderingContextBase.vertexAttrib1fv documentation> 
+vertexAttrib1fv ::
+                (MonadIO m, IsWebGLRenderingContextBase self,
+                 IsFloat32List values) =>
+                  self -> GLuint -> values -> m ()
+vertexAttrib1fv self index values
+  = liftIO
+      (toJSVal values >>=
+         \ values' ->
+           js_vertexAttrib1fv (toWebGLRenderingContextBase self) index
+             (Float32List values'))
+ 
+foreign import javascript unsafe "$1[\"vertexAttrib2fv\"]($2, $3)"
+        js_vertexAttrib2fv ::
+        WebGLRenderingContextBase -> GLuint -> Float32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib2fv Mozilla WebGLRenderingContextBase.vertexAttrib2fv documentation> 
+vertexAttrib2fv ::
+                (MonadIO m, IsWebGLRenderingContextBase self,
+                 IsFloat32List values) =>
+                  self -> GLuint -> values -> m ()
+vertexAttrib2fv self index values
+  = liftIO
+      (toJSVal values >>=
+         \ values' ->
+           js_vertexAttrib2fv (toWebGLRenderingContextBase self) index
+             (Float32List values'))
+ 
+foreign import javascript unsafe "$1[\"vertexAttrib3fv\"]($2, $3)"
+        js_vertexAttrib3fv ::
+        WebGLRenderingContextBase -> GLuint -> Float32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib3fv Mozilla WebGLRenderingContextBase.vertexAttrib3fv documentation> 
+vertexAttrib3fv ::
+                (MonadIO m, IsWebGLRenderingContextBase self,
+                 IsFloat32List values) =>
+                  self -> GLuint -> values -> m ()
+vertexAttrib3fv self index values
+  = liftIO
+      (toJSVal values >>=
+         \ values' ->
+           js_vertexAttrib3fv (toWebGLRenderingContextBase self) index
+             (Float32List values'))
+ 
+foreign import javascript unsafe "$1[\"vertexAttrib4fv\"]($2, $3)"
+        js_vertexAttrib4fv ::
+        WebGLRenderingContextBase -> GLuint -> Float32List -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttrib4fv Mozilla WebGLRenderingContextBase.vertexAttrib4fv documentation> 
+vertexAttrib4fv ::
+                (MonadIO m, IsWebGLRenderingContextBase self,
+                 IsFloat32List values) =>
+                  self -> GLuint -> values -> m ()
+vertexAttrib4fv self index values
+  = liftIO
+      (toJSVal values >>=
+         \ values' ->
+           js_vertexAttrib4fv (toWebGLRenderingContextBase self) index
+             (Float32List values'))
+ 
+foreign import javascript unsafe
+        "$1[\"vertexAttribPointer\"]($2,\n$3, $4, $5, $6, $7)"
+        js_vertexAttribPointer ::
+        WebGLRenderingContextBase ->
+          GLuint ->
+            GLint -> GLenum -> GLboolean -> GLsizei -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.vertexAttribPointer Mozilla WebGLRenderingContextBase.vertexAttribPointer documentation> 
+vertexAttribPointer ::
+                    (MonadIO m, IsWebGLRenderingContextBase self) =>
+                      self ->
+                        GLuint ->
+                          GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()
+vertexAttribPointer self indx size type' normalized stride offset
+  = liftIO
+      (js_vertexAttribPointer (toWebGLRenderingContextBase self) indx
+         size
+         type'
+         normalized
+         stride
+         (fromIntegral offset))
+ 
+foreign import javascript unsafe "$1[\"viewport\"]($2, $3, $4, $5)"
+        js_viewport ::
+        WebGLRenderingContextBase ->
+          GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.viewport Mozilla WebGLRenderingContextBase.viewport documentation> 
+viewport ::
+         (MonadIO m, IsWebGLRenderingContextBase self) =>
+           self -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+viewport self x y width height
+  = liftIO
+      (js_viewport (toWebGLRenderingContextBase self) x y width height)
+pattern DEPTH_BUFFER_BIT = 256
+pattern STENCIL_BUFFER_BIT = 1024
+pattern COLOR_BUFFER_BIT = 16384
+pattern POINTS = 0
+pattern LINES = 1
+pattern LINE_LOOP = 2
+pattern LINE_STRIP = 3
+pattern TRIANGLES = 4
+pattern TRIANGLE_STRIP = 5
+pattern TRIANGLE_FAN = 6
+pattern ZERO = 0
+pattern ONE = 1
+pattern SRC_COLOR = 768
+pattern ONE_MINUS_SRC_COLOR = 769
+pattern SRC_ALPHA = 770
+pattern ONE_MINUS_SRC_ALPHA = 771
+pattern DST_ALPHA = 772
+pattern ONE_MINUS_DST_ALPHA = 773
+pattern DST_COLOR = 774
+pattern ONE_MINUS_DST_COLOR = 775
+pattern SRC_ALPHA_SATURATE = 776
+pattern FUNC_ADD = 32774
+pattern BLEND_EQUATION = 32777
+pattern BLEND_EQUATION_RGB = 32777
+pattern BLEND_EQUATION_ALPHA = 34877
+pattern FUNC_SUBTRACT = 32778
+pattern FUNC_REVERSE_SUBTRACT = 32779
+pattern BLEND_DST_RGB = 32968
+pattern BLEND_SRC_RGB = 32969
+pattern BLEND_DST_ALPHA = 32970
+pattern BLEND_SRC_ALPHA = 32971
+pattern CONSTANT_COLOR = 32769
+pattern ONE_MINUS_CONSTANT_COLOR = 32770
+pattern CONSTANT_ALPHA = 32771
+pattern ONE_MINUS_CONSTANT_ALPHA = 32772
+pattern BLEND_COLOR = 32773
+pattern ARRAY_BUFFER = 34962
+pattern ELEMENT_ARRAY_BUFFER = 34963
+pattern ARRAY_BUFFER_BINDING = 34964
+pattern ELEMENT_ARRAY_BUFFER_BINDING = 34965
+pattern STREAM_DRAW = 35040
+pattern STATIC_DRAW = 35044
+pattern DYNAMIC_DRAW = 35048
+pattern BUFFER_SIZE = 34660
+pattern BUFFER_USAGE = 34661
+pattern CURRENT_VERTEX_ATTRIB = 34342
+pattern FRONT = 1028
+pattern BACK = 1029
+pattern FRONT_AND_BACK = 1032
+pattern TEXTURE_2D = 3553
+pattern CULL_FACE = 2884
+pattern BLEND = 3042
+pattern DITHER = 3024
+pattern STENCIL_TEST = 2960
+pattern DEPTH_TEST = 2929
+pattern SCISSOR_TEST = 3089
+pattern POLYGON_OFFSET_FILL = 32823
+pattern SAMPLE_ALPHA_TO_COVERAGE = 32926
+pattern SAMPLE_COVERAGE = 32928
+pattern NO_ERROR = 0
+pattern INVALID_ENUM = 1280
+pattern INVALID_VALUE = 1281
+pattern INVALID_OPERATION = 1282
+pattern OUT_OF_MEMORY = 1285
+pattern CW = 2304
+pattern CCW = 2305
+pattern LINE_WIDTH = 2849
+pattern ALIASED_POINT_SIZE_RANGE = 33901
+pattern ALIASED_LINE_WIDTH_RANGE = 33902
+pattern CULL_FACE_MODE = 2885
+pattern FRONT_FACE = 2886
+pattern DEPTH_RANGE = 2928
+pattern DEPTH_WRITEMASK = 2930
+pattern DEPTH_CLEAR_VALUE = 2931
+pattern DEPTH_FUNC = 2932
+pattern STENCIL_CLEAR_VALUE = 2961
+pattern STENCIL_FUNC = 2962
+pattern STENCIL_FAIL = 2964
+pattern STENCIL_PASS_DEPTH_FAIL = 2965
+pattern STENCIL_PASS_DEPTH_PASS = 2966
+pattern STENCIL_REF = 2967
+pattern STENCIL_VALUE_MASK = 2963
+pattern STENCIL_WRITEMASK = 2968
+pattern STENCIL_BACK_FUNC = 34816
+pattern STENCIL_BACK_FAIL = 34817
+pattern STENCIL_BACK_PASS_DEPTH_FAIL = 34818
+pattern STENCIL_BACK_PASS_DEPTH_PASS = 34819
+pattern STENCIL_BACK_REF = 36003
+pattern STENCIL_BACK_VALUE_MASK = 36004
+pattern STENCIL_BACK_WRITEMASK = 36005
+pattern VIEWPORT = 2978
+pattern SCISSOR_BOX = 3088
+pattern COLOR_CLEAR_VALUE = 3106
+pattern COLOR_WRITEMASK = 3107
+pattern UNPACK_ALIGNMENT = 3317
+pattern PACK_ALIGNMENT = 3333
+pattern MAX_TEXTURE_SIZE = 3379
+pattern MAX_VIEWPORT_DIMS = 3386
+pattern SUBPIXEL_BITS = 3408
+pattern RED_BITS = 3410
+pattern GREEN_BITS = 3411
+pattern BLUE_BITS = 3412
+pattern ALPHA_BITS = 3413
+pattern DEPTH_BITS = 3414
+pattern STENCIL_BITS = 3415
+pattern POLYGON_OFFSET_UNITS = 10752
+pattern POLYGON_OFFSET_FACTOR = 32824
+pattern TEXTURE_BINDING_2D = 32873
+pattern SAMPLE_BUFFERS = 32936
+pattern SAMPLES = 32937
+pattern SAMPLE_COVERAGE_VALUE = 32938
+pattern SAMPLE_COVERAGE_INVERT = 32939
+pattern COMPRESSED_TEXTURE_FORMATS = 34467
+pattern DONT_CARE = 4352
+pattern FASTEST = 4353
+pattern NICEST = 4354
+pattern GENERATE_MIPMAP_HINT = 33170
+pattern BYTE = 5120
+pattern UNSIGNED_BYTE = 5121
+pattern SHORT = 5122
+pattern UNSIGNED_SHORT = 5123
+pattern INT = 5124
+pattern UNSIGNED_INT = 5125
+pattern FLOAT = 5126
+pattern DEPTH_COMPONENT = 6402
+pattern ALPHA = 6406
+pattern RGB = 6407
+pattern RGBA = 6408
+pattern LUMINANCE = 6409
+pattern LUMINANCE_ALPHA = 6410
+pattern UNSIGNED_SHORT_4_4_4_4 = 32819
+pattern UNSIGNED_SHORT_5_5_5_1 = 32820
+pattern UNSIGNED_SHORT_5_6_5 = 33635
+pattern FRAGMENT_SHADER = 35632
+pattern VERTEX_SHADER = 35633
+pattern MAX_VERTEX_ATTRIBS = 34921
+pattern MAX_VERTEX_UNIFORM_VECTORS = 36347
+pattern MAX_VARYING_VECTORS = 36348
+pattern MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661
+pattern MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660
+pattern MAX_TEXTURE_IMAGE_UNITS = 34930
+pattern MAX_FRAGMENT_UNIFORM_VECTORS = 36349
+pattern SHADER_TYPE = 35663
+pattern DELETE_STATUS = 35712
+pattern LINK_STATUS = 35714
+pattern VALIDATE_STATUS = 35715
+pattern ATTACHED_SHADERS = 35717
+pattern ACTIVE_UNIFORMS = 35718
+pattern ACTIVE_ATTRIBUTES = 35721
+pattern SHADING_LANGUAGE_VERSION = 35724
+pattern CURRENT_PROGRAM = 35725
+pattern NEVER = 512
+pattern LESS = 513
+pattern EQUAL = 514
+pattern LEQUAL = 515
+pattern GREATER = 516
+pattern NOTEQUAL = 517
+pattern GEQUAL = 518
+pattern ALWAYS = 519
+pattern KEEP = 7680
+pattern REPLACE = 7681
+pattern INCR = 7682
+pattern DECR = 7683
+pattern INVERT = 5386
+pattern INCR_WRAP = 34055
+pattern DECR_WRAP = 34056
+pattern VENDOR = 7936
+pattern RENDERER = 7937
+pattern VERSION = 7938
+pattern NEAREST = 9728
+pattern LINEAR = 9729
+pattern NEAREST_MIPMAP_NEAREST = 9984
+pattern LINEAR_MIPMAP_NEAREST = 9985
+pattern NEAREST_MIPMAP_LINEAR = 9986
+pattern LINEAR_MIPMAP_LINEAR = 9987
+pattern TEXTURE_MAG_FILTER = 10240
+pattern TEXTURE_MIN_FILTER = 10241
+pattern TEXTURE_WRAP_S = 10242
+pattern TEXTURE_WRAP_T = 10243
+pattern TEXTURE = 5890
+pattern TEXTURE_CUBE_MAP = 34067
+pattern TEXTURE_BINDING_CUBE_MAP = 34068
+pattern TEXTURE_CUBE_MAP_POSITIVE_X = 34069
+pattern TEXTURE_CUBE_MAP_NEGATIVE_X = 34070
+pattern TEXTURE_CUBE_MAP_POSITIVE_Y = 34071
+pattern TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072
+pattern TEXTURE_CUBE_MAP_POSITIVE_Z = 34073
+pattern TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074
+pattern MAX_CUBE_MAP_TEXTURE_SIZE = 34076
+pattern TEXTURE0 = 33984
+pattern TEXTURE1 = 33985
+pattern TEXTURE2 = 33986
+pattern TEXTURE3 = 33987
+pattern TEXTURE4 = 33988
+pattern TEXTURE5 = 33989
+pattern TEXTURE6 = 33990
+pattern TEXTURE7 = 33991
+pattern TEXTURE8 = 33992
+pattern TEXTURE9 = 33993
+pattern TEXTURE10 = 33994
+pattern TEXTURE11 = 33995
+pattern TEXTURE12 = 33996
+pattern TEXTURE13 = 33997
+pattern TEXTURE14 = 33998
+pattern TEXTURE15 = 33999
+pattern TEXTURE16 = 34000
+pattern TEXTURE17 = 34001
+pattern TEXTURE18 = 34002
+pattern TEXTURE19 = 34003
+pattern TEXTURE20 = 34004
+pattern TEXTURE21 = 34005
+pattern TEXTURE22 = 34006
+pattern TEXTURE23 = 34007
+pattern TEXTURE24 = 34008
+pattern TEXTURE25 = 34009
+pattern TEXTURE26 = 34010
+pattern TEXTURE27 = 34011
+pattern TEXTURE28 = 34012
+pattern TEXTURE29 = 34013
+pattern TEXTURE30 = 34014
+pattern TEXTURE31 = 34015
+pattern ACTIVE_TEXTURE = 34016
+pattern REPEAT = 10497
+pattern CLAMP_TO_EDGE = 33071
+pattern MIRRORED_REPEAT = 33648
+pattern FLOAT_VEC2 = 35664
+pattern FLOAT_VEC3 = 35665
+pattern FLOAT_VEC4 = 35666
+pattern INT_VEC2 = 35667
+pattern INT_VEC3 = 35668
+pattern INT_VEC4 = 35669
+pattern BOOL = 35670
+pattern BOOL_VEC2 = 35671
+pattern BOOL_VEC3 = 35672
+pattern BOOL_VEC4 = 35673
+pattern FLOAT_MAT2 = 35674
+pattern FLOAT_MAT3 = 35675
+pattern FLOAT_MAT4 = 35676
+pattern SAMPLER_2D = 35678
+pattern SAMPLER_CUBE = 35680
+pattern VERTEX_ATTRIB_ARRAY_ENABLED = 34338
+pattern VERTEX_ATTRIB_ARRAY_SIZE = 34339
+pattern VERTEX_ATTRIB_ARRAY_STRIDE = 34340
+pattern VERTEX_ATTRIB_ARRAY_TYPE = 34341
+pattern VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922
+pattern VERTEX_ATTRIB_ARRAY_POINTER = 34373
+pattern VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975
+pattern IMPLEMENTATION_COLOR_READ_TYPE = 35738
+pattern IMPLEMENTATION_COLOR_READ_FORMAT = 35739
+pattern COMPILE_STATUS = 35713
+pattern LOW_FLOAT = 36336
+pattern MEDIUM_FLOAT = 36337
+pattern HIGH_FLOAT = 36338
+pattern LOW_INT = 36339
+pattern MEDIUM_INT = 36340
+pattern HIGH_INT = 36341
+pattern FRAMEBUFFER = 36160
+pattern RENDERBUFFER = 36161
+pattern RGBA4 = 32854
+pattern RGB5_A1 = 32855
+pattern RGB565 = 36194
+pattern DEPTH_COMPONENT16 = 33189
+pattern STENCIL_INDEX = 6401
+pattern STENCIL_INDEX8 = 36168
+pattern DEPTH_STENCIL = 34041
+pattern RENDERBUFFER_WIDTH = 36162
+pattern RENDERBUFFER_HEIGHT = 36163
+pattern RENDERBUFFER_INTERNAL_FORMAT = 36164
+pattern RENDERBUFFER_RED_SIZE = 36176
+pattern RENDERBUFFER_GREEN_SIZE = 36177
+pattern RENDERBUFFER_BLUE_SIZE = 36178
+pattern RENDERBUFFER_ALPHA_SIZE = 36179
+pattern RENDERBUFFER_DEPTH_SIZE = 36180
+pattern RENDERBUFFER_STENCIL_SIZE = 36181
+pattern FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048
+pattern FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049
+pattern FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050
+pattern FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051
+pattern COLOR_ATTACHMENT0 = 36064
+pattern DEPTH_ATTACHMENT = 36096
+pattern STENCIL_ATTACHMENT = 36128
+pattern DEPTH_STENCIL_ATTACHMENT = 33306
+pattern NONE = 0
+pattern FRAMEBUFFER_COMPLETE = 36053
+pattern FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054
+pattern FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055
+pattern FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057
+pattern FRAMEBUFFER_UNSUPPORTED = 36061
+pattern FRAMEBUFFER_BINDING = 36006
+pattern RENDERBUFFER_BINDING = 36007
+pattern MAX_RENDERBUFFER_SIZE = 34024
+pattern INVALID_FRAMEBUFFER_OPERATION = 1286
+pattern UNPACK_FLIP_Y_WEBGL = 37440
+pattern UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441
+pattern CONTEXT_LOST_WEBGL = 37442
+pattern UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443
+pattern BROWSER_DEFAULT_WEBGL = 37444
+ 
+foreign import javascript unsafe "$1[\"canvas\"]" js_getCanvas ::
+        WebGLRenderingContextBase -> IO HTMLCanvasElement
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase.canvas Mozilla WebGLRenderingContextBase.canvas documentation> 
+getCanvas ::
+          (MonadIO m, IsWebGLRenderingContextBase self) =>
+            self -> m HTMLCanvasElement
+getCanvas self
+  = liftIO (js_getCanvas (toWebGLRenderingContextBase self))
  
 foreign import javascript unsafe "$1[\"drawingBufferWidth\"]"
         js_getDrawingBufferWidth :: WebGLRenderingContextBase -> IO GLsizei
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebGLShaderPrecisionFormat.hs b/src/GHCJS/DOM/JSFFI/Generated/WebGLShaderPrecisionFormat.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebGLShaderPrecisionFormat.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebGLShaderPrecisionFormat.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,18 +32,18 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLShaderPrecisionFormat.rangeMin Mozilla WebGLShaderPrecisionFormat.rangeMin documentation> 
 getRangeMin :: (MonadIO m) => WebGLShaderPrecisionFormat -> m Int
-getRangeMin self = liftIO (js_getRangeMin (self))
+getRangeMin self = liftIO (js_getRangeMin self)
  
 foreign import javascript unsafe "$1[\"rangeMax\"]" js_getRangeMax
         :: WebGLShaderPrecisionFormat -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLShaderPrecisionFormat.rangeMax Mozilla WebGLShaderPrecisionFormat.rangeMax documentation> 
 getRangeMax :: (MonadIO m) => WebGLShaderPrecisionFormat -> m Int
-getRangeMax self = liftIO (js_getRangeMax (self))
+getRangeMax self = liftIO (js_getRangeMax self)
  
 foreign import javascript unsafe "$1[\"precision\"]"
         js_getPrecision :: WebGLShaderPrecisionFormat -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGLShaderPrecisionFormat.precision Mozilla WebGLShaderPrecisionFormat.precision documentation> 
 getPrecision :: (MonadIO m) => WebGLShaderPrecisionFormat -> m Int
-getPrecision self = liftIO (js_getPrecision (self))
+getPrecision self = liftIO (js_getPrecision self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitAnimationEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitAnimationEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebKitAnimationEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitAnimationEvent.hs
@@ -4,7 +4,8 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WebKitAnimationEvent
-       (js_getAnimationName, getAnimationName, js_getElapsedTime,
+       (js_newWebKitAnimationEvent, newWebKitAnimationEvent,
+        js_getAnimationName, getAnimationName, js_getElapsedTime,
         getElapsedTime, WebKitAnimationEvent(..),
         gTypeWebKitAnimationEvent)
        where
@@ -12,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,11 +22,27 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"WebKitAnimationEvent\"]($1,\n$2)"
+        js_newWebKitAnimationEvent ::
+        JSString ->
+          Optional WebKitAnimationEventInit -> IO WebKitAnimationEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitAnimationEvent Mozilla WebKitAnimationEvent documentation> 
+newWebKitAnimationEvent ::
+                        (MonadIO m, ToJSString type') =>
+                          type' -> Maybe WebKitAnimationEventInit -> m WebKitAnimationEvent
+newWebKitAnimationEvent type' eventInitDict
+  = liftIO
+      (js_newWebKitAnimationEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"animationName\"]"
         js_getAnimationName :: WebKitAnimationEvent -> IO JSString
 
@@ -34,11 +51,11 @@
                  (MonadIO m, FromJSString result) =>
                    WebKitAnimationEvent -> m result
 getAnimationName self
-  = liftIO (fromJSString <$> (js_getAnimationName (self)))
+  = liftIO (fromJSString <$> (js_getAnimationName self))
  
 foreign import javascript unsafe "$1[\"elapsedTime\"]"
         js_getElapsedTime :: WebKitAnimationEvent -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitAnimationEvent.elapsedTime Mozilla WebKitAnimationEvent.elapsedTime documentation> 
 getElapsedTime :: (MonadIO m) => WebKitAnimationEvent -> m Double
-getElapsedTime self = liftIO (js_getElapsedTime (self))
+getElapsedTime self = liftIO (js_getElapsedTime self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSFilterValue.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSFilterValue.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSFilterValue.hs
+++ /dev/null
@@ -1,79 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.WebKitCSSFilterValue
-       (js__get, _get, _get_, _getUnsafe, _getUnchecked,
-        pattern CSS_FILTER_REFERENCE, pattern CSS_FILTER_GRAYSCALE,
-        pattern CSS_FILTER_SEPIA, pattern CSS_FILTER_SATURATE,
-        pattern CSS_FILTER_HUE_ROTATE, pattern CSS_FILTER_INVERT,
-        pattern CSS_FILTER_OPACITY, pattern CSS_FILTER_BRIGHTNESS,
-        pattern CSS_FILTER_CONTRAST, pattern CSS_FILTER_BLUR,
-        pattern CSS_FILTER_DROP_SHADOW, js_getOperationType,
-        getOperationType, WebKitCSSFilterValue(..),
-        gTypeWebKitCSSFilterValue)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"_get\"]($2)" js__get ::
-        WebKitCSSFilterValue -> Word -> IO (Nullable CSSValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSFilterValue._get Mozilla WebKitCSSFilterValue._get documentation> 
-_get ::
-     (MonadIO m) => WebKitCSSFilterValue -> Word -> m (Maybe CSSValue)
-_get self index
-  = liftIO (nullableToMaybe <$> (js__get (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSFilterValue._get Mozilla WebKitCSSFilterValue._get documentation> 
-_get_ :: (MonadIO m) => WebKitCSSFilterValue -> Word -> m ()
-_get_ self index = liftIO (void (js__get (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSFilterValue._get Mozilla WebKitCSSFilterValue._get documentation> 
-_getUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             WebKitCSSFilterValue -> Word -> m CSSValue
-_getUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js__get (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSFilterValue._get Mozilla WebKitCSSFilterValue._get documentation> 
-_getUnchecked ::
-              (MonadIO m) => WebKitCSSFilterValue -> Word -> m CSSValue
-_getUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js__get (self) index))
-pattern CSS_FILTER_REFERENCE = 1
-pattern CSS_FILTER_GRAYSCALE = 2
-pattern CSS_FILTER_SEPIA = 3
-pattern CSS_FILTER_SATURATE = 4
-pattern CSS_FILTER_HUE_ROTATE = 5
-pattern CSS_FILTER_INVERT = 6
-pattern CSS_FILTER_OPACITY = 7
-pattern CSS_FILTER_BRIGHTNESS = 8
-pattern CSS_FILTER_CONTRAST = 9
-pattern CSS_FILTER_BLUR = 10
-pattern CSS_FILTER_DROP_SHADOW = 11
- 
-foreign import javascript unsafe "$1[\"operationType\"]"
-        js_getOperationType :: WebKitCSSFilterValue -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSFilterValue.operationType Mozilla WebKitCSSFilterValue.operationType documentation> 
-getOperationType :: (MonadIO m) => WebKitCSSFilterValue -> m Word
-getOperationType self = liftIO (js_getOperationType (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSMatrix.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSMatrix.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSMatrix.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSMatrix.hs
@@ -5,34 +5,30 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WebKitCSSMatrix
        (js_newWebKitCSSMatrix, newWebKitCSSMatrix, js_setMatrixValue,
-        setMatrixValue, js_multiply, multiply, multiply_, multiplyUnsafe,
-        multiplyUnchecked, js_inverse, inverse, inverse_, inverseUnsafe,
-        inverseUnchecked, js_translate, translate, translate_,
-        translateUnsafe, translateUnchecked, js_scale, scale, scale_,
-        scaleUnsafe, scaleUnchecked, js_rotate, rotate, rotate_,
-        rotateUnsafe, rotateUnchecked, js_rotateAxisAngle, rotateAxisAngle,
-        rotateAxisAngle_, rotateAxisAngleUnsafe, rotateAxisAngleUnchecked,
-        js_skewX, skewX, skewX_, skewXUnsafe, skewXUnchecked, js_skewY,
-        skewY, skewY_, skewYUnsafe, skewYUnchecked, js_toString, toString,
-        toString_, js_setA, setA, js_getA, getA, js_setB, setB, js_getB,
-        getB, js_setC, setC, js_getC, getC, js_setD, setD, js_getD, getD,
-        js_setE, setE, js_getE, getE, js_setF, setF, js_getF, getF,
-        js_setM11, setM11, js_getM11, getM11, js_setM12, setM12, js_getM12,
-        getM12, js_setM13, setM13, js_getM13, getM13, js_setM14, setM14,
-        js_getM14, getM14, js_setM21, setM21, js_getM21, getM21, js_setM22,
-        setM22, js_getM22, getM22, js_setM23, setM23, js_getM23, getM23,
-        js_setM24, setM24, js_getM24, getM24, js_setM31, setM31, js_getM31,
-        getM31, js_setM32, setM32, js_getM32, getM32, js_setM33, setM33,
-        js_getM33, getM33, js_setM34, setM34, js_getM34, getM34, js_setM41,
-        setM41, js_getM41, getM41, js_setM42, setM42, js_getM42, getM42,
-        js_setM43, setM43, js_getM43, getM43, js_setM44, setM44, js_getM44,
-        getM44, WebKitCSSMatrix(..), gTypeWebKitCSSMatrix)
+        setMatrixValue, js_multiply, multiply, multiply_, js_inverse,
+        inverse, inverse_, js_translate, translate, translate_, js_scale,
+        scale, scale_, js_rotate, rotate, rotate_, js_rotateAxisAngle,
+        rotateAxisAngle, rotateAxisAngle_, js_skewX, skewX, skewX_,
+        js_skewY, skewY, skewY_, js_toString, toString, toString_, js_setA,
+        setA, js_getA, getA, js_setB, setB, js_getB, getB, js_setC, setC,
+        js_getC, getC, js_setD, setD, js_getD, getD, js_setE, setE,
+        js_getE, getE, js_setF, setF, js_getF, getF, js_setM11, setM11,
+        js_getM11, getM11, js_setM12, setM12, js_getM12, getM12, js_setM13,
+        setM13, js_getM13, getM13, js_setM14, setM14, js_getM14, getM14,
+        js_setM21, setM21, js_getM21, getM21, js_setM22, setM22, js_getM22,
+        getM22, js_setM23, setM23, js_getM23, getM23, js_setM24, setM24,
+        js_getM24, getM24, js_setM31, setM31, js_getM31, getM31, js_setM32,
+        setM32, js_getM32, getM32, js_setM33, setM33, js_getM33, getM33,
+        js_setM34, setM34, js_getM34, getM34, js_setM41, setM41, js_getM41,
+        getM41, js_setM42, setM42, js_getM42, getM42, js_setM43, setM43,
+        js_getM43, getM43, js_setM44, setM44, js_getM44, getM44,
+        WebKitCSSMatrix(..), gTypeWebKitCSSMatrix)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -41,6 +37,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -48,300 +45,191 @@
  
 foreign import javascript unsafe
         "new window[\"WebKitCSSMatrix\"]($1)" js_newWebKitCSSMatrix ::
-        JSString -> IO WebKitCSSMatrix
+        Optional JSString -> IO WebKitCSSMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix Mozilla WebKitCSSMatrix documentation> 
 newWebKitCSSMatrix ::
-                   (MonadIO m, ToJSString cssValue) => cssValue -> m WebKitCSSMatrix
+                   (MonadIO m, ToJSString cssValue) =>
+                     Maybe cssValue -> m WebKitCSSMatrix
 newWebKitCSSMatrix cssValue
-  = liftIO (js_newWebKitCSSMatrix (toJSString cssValue))
+  = liftIO (js_newWebKitCSSMatrix (toOptionalJSString cssValue))
  
 foreign import javascript unsafe "$1[\"setMatrixValue\"]($2)"
-        js_setMatrixValue :: WebKitCSSMatrix -> JSString -> IO ()
+        js_setMatrixValue :: WebKitCSSMatrix -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.setMatrixValue Mozilla WebKitCSSMatrix.setMatrixValue documentation> 
 setMatrixValue ::
-               (MonadIO m, ToJSString string) => WebKitCSSMatrix -> string -> m ()
+               (MonadIO m, ToJSString string) =>
+                 WebKitCSSMatrix -> Maybe string -> m ()
 setMatrixValue self string
-  = liftIO (js_setMatrixValue (self) (toJSString string))
+  = liftIO (js_setMatrixValue self (toOptionalJSString string))
  
 foreign import javascript unsafe "$1[\"multiply\"]($2)" js_multiply
         ::
-        WebKitCSSMatrix ->
-          Nullable WebKitCSSMatrix -> IO (Nullable WebKitCSSMatrix)
+        WebKitCSSMatrix -> Optional WebKitCSSMatrix -> IO WebKitCSSMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.multiply Mozilla WebKitCSSMatrix.multiply documentation> 
 multiply ::
          (MonadIO m) =>
-           WebKitCSSMatrix ->
-             Maybe WebKitCSSMatrix -> m (Maybe WebKitCSSMatrix)
+           WebKitCSSMatrix -> Maybe WebKitCSSMatrix -> m WebKitCSSMatrix
 multiply self secondMatrix
-  = liftIO
-      (nullableToMaybe <$>
-         (js_multiply (self) (maybeToNullable secondMatrix)))
+  = liftIO (js_multiply self (maybeToOptional secondMatrix))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.multiply Mozilla WebKitCSSMatrix.multiply documentation> 
 multiply_ ::
           (MonadIO m) => WebKitCSSMatrix -> Maybe WebKitCSSMatrix -> m ()
 multiply_ self secondMatrix
-  = liftIO (void (js_multiply (self) (maybeToNullable secondMatrix)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.multiply Mozilla WebKitCSSMatrix.multiply documentation> 
-multiplyUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 WebKitCSSMatrix -> Maybe WebKitCSSMatrix -> m WebKitCSSMatrix
-multiplyUnsafe self secondMatrix
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_multiply (self) (maybeToNullable secondMatrix)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.multiply Mozilla WebKitCSSMatrix.multiply documentation> 
-multiplyUnchecked ::
-                  (MonadIO m) =>
-                    WebKitCSSMatrix -> Maybe WebKitCSSMatrix -> m WebKitCSSMatrix
-multiplyUnchecked self secondMatrix
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_multiply (self) (maybeToNullable secondMatrix)))
+  = liftIO (void (js_multiply self (maybeToOptional secondMatrix)))
  
 foreign import javascript unsafe "$1[\"inverse\"]()" js_inverse ::
-        WebKitCSSMatrix -> IO (Nullable WebKitCSSMatrix)
+        WebKitCSSMatrix -> IO WebKitCSSMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.inverse Mozilla WebKitCSSMatrix.inverse documentation> 
-inverse ::
-        (MonadIO m) => WebKitCSSMatrix -> m (Maybe WebKitCSSMatrix)
-inverse self = liftIO (nullableToMaybe <$> (js_inverse (self)))
+inverse :: (MonadIO m) => WebKitCSSMatrix -> m WebKitCSSMatrix
+inverse self = liftIO (js_inverse self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.inverse Mozilla WebKitCSSMatrix.inverse documentation> 
 inverse_ :: (MonadIO m) => WebKitCSSMatrix -> m ()
-inverse_ self = liftIO (void (js_inverse (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.inverse Mozilla WebKitCSSMatrix.inverse documentation> 
-inverseUnsafe ::
-              (MonadIO m, HasCallStack) => WebKitCSSMatrix -> m WebKitCSSMatrix
-inverseUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_inverse (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.inverse Mozilla WebKitCSSMatrix.inverse documentation> 
-inverseUnchecked ::
-                 (MonadIO m) => WebKitCSSMatrix -> m WebKitCSSMatrix
-inverseUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_inverse (self)))
+inverse_ self = liftIO (void (js_inverse self))
  
 foreign import javascript unsafe "$1[\"translate\"]($2, $3, $4)"
         js_translate ::
         WebKitCSSMatrix ->
-          Double -> Double -> Double -> IO (Nullable WebKitCSSMatrix)
+          Optional Double ->
+            Optional Double -> Optional Double -> IO WebKitCSSMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.translate Mozilla WebKitCSSMatrix.translate documentation> 
 translate ::
           (MonadIO m) =>
             WebKitCSSMatrix ->
-              Double -> Double -> Double -> m (Maybe WebKitCSSMatrix)
+              Maybe Double -> Maybe Double -> Maybe Double -> m WebKitCSSMatrix
 translate self x y z
-  = liftIO (nullableToMaybe <$> (js_translate (self) x y z))
+  = liftIO
+      (js_translate self (maybeToOptional x) (maybeToOptional y)
+         (maybeToOptional z))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.translate Mozilla WebKitCSSMatrix.translate documentation> 
 translate_ ::
            (MonadIO m) =>
-             WebKitCSSMatrix -> Double -> Double -> Double -> m ()
-translate_ self x y z = liftIO (void (js_translate (self) x y z))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.translate Mozilla WebKitCSSMatrix.translate documentation> 
-translateUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  WebKitCSSMatrix -> Double -> Double -> Double -> m WebKitCSSMatrix
-translateUnsafe self x y z
-  = liftIO
-      ((nullableToMaybe <$> (js_translate (self) x y z)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.translate Mozilla WebKitCSSMatrix.translate documentation> 
-translateUnchecked ::
-                   (MonadIO m) =>
-                     WebKitCSSMatrix -> Double -> Double -> Double -> m WebKitCSSMatrix
-translateUnchecked self x y z
+             WebKitCSSMatrix ->
+               Maybe Double -> Maybe Double -> Maybe Double -> m ()
+translate_ self x y z
   = liftIO
-      (fromJust . nullableToMaybe <$> (js_translate (self) x y z))
+      (void
+         (js_translate self (maybeToOptional x) (maybeToOptional y)
+            (maybeToOptional z)))
  
 foreign import javascript unsafe "$1[\"scale\"]($2, $3, $4)"
         js_scale ::
         WebKitCSSMatrix ->
-          Double -> Double -> Double -> IO (Nullable WebKitCSSMatrix)
+          Optional Double ->
+            Optional Double -> Optional Double -> IO WebKitCSSMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.scale Mozilla WebKitCSSMatrix.scale documentation> 
 scale ::
       (MonadIO m) =>
         WebKitCSSMatrix ->
-          Double -> Double -> Double -> m (Maybe WebKitCSSMatrix)
+          Maybe Double -> Maybe Double -> Maybe Double -> m WebKitCSSMatrix
 scale self scaleX scaleY scaleZ
   = liftIO
-      (nullableToMaybe <$> (js_scale (self) scaleX scaleY scaleZ))
+      (js_scale self (maybeToOptional scaleX) (maybeToOptional scaleY)
+         (maybeToOptional scaleZ))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.scale Mozilla WebKitCSSMatrix.scale documentation> 
 scale_ ::
        (MonadIO m) =>
-         WebKitCSSMatrix -> Double -> Double -> Double -> m ()
+         WebKitCSSMatrix ->
+           Maybe Double -> Maybe Double -> Maybe Double -> m ()
 scale_ self scaleX scaleY scaleZ
-  = liftIO (void (js_scale (self) scaleX scaleY scaleZ))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.scale Mozilla WebKitCSSMatrix.scale documentation> 
-scaleUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              WebKitCSSMatrix -> Double -> Double -> Double -> m WebKitCSSMatrix
-scaleUnsafe self scaleX scaleY scaleZ
   = liftIO
-      ((nullableToMaybe <$> (js_scale (self) scaleX scaleY scaleZ)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.scale Mozilla WebKitCSSMatrix.scale documentation> 
-scaleUnchecked ::
-               (MonadIO m) =>
-                 WebKitCSSMatrix -> Double -> Double -> Double -> m WebKitCSSMatrix
-scaleUnchecked self scaleX scaleY scaleZ
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_scale (self) scaleX scaleY scaleZ))
+      (void
+         (js_scale self (maybeToOptional scaleX) (maybeToOptional scaleY)
+            (maybeToOptional scaleZ)))
  
 foreign import javascript unsafe "$1[\"rotate\"]($2, $3, $4)"
         js_rotate ::
         WebKitCSSMatrix ->
-          Double -> Double -> Double -> IO (Nullable WebKitCSSMatrix)
+          Optional Double ->
+            Optional Double -> Optional Double -> IO WebKitCSSMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.rotate Mozilla WebKitCSSMatrix.rotate documentation> 
 rotate ::
        (MonadIO m) =>
          WebKitCSSMatrix ->
-           Double -> Double -> Double -> m (Maybe WebKitCSSMatrix)
+           Maybe Double -> Maybe Double -> Maybe Double -> m WebKitCSSMatrix
 rotate self rotX rotY rotZ
-  = liftIO (nullableToMaybe <$> (js_rotate (self) rotX rotY rotZ))
+  = liftIO
+      (js_rotate self (maybeToOptional rotX) (maybeToOptional rotY)
+         (maybeToOptional rotZ))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.rotate Mozilla WebKitCSSMatrix.rotate documentation> 
 rotate_ ::
         (MonadIO m) =>
-          WebKitCSSMatrix -> Double -> Double -> Double -> m ()
+          WebKitCSSMatrix ->
+            Maybe Double -> Maybe Double -> Maybe Double -> m ()
 rotate_ self rotX rotY rotZ
-  = liftIO (void (js_rotate (self) rotX rotY rotZ))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.rotate Mozilla WebKitCSSMatrix.rotate documentation> 
-rotateUnsafe ::
-             (MonadIO m, HasCallStack) =>
-               WebKitCSSMatrix -> Double -> Double -> Double -> m WebKitCSSMatrix
-rotateUnsafe self rotX rotY rotZ
   = liftIO
-      ((nullableToMaybe <$> (js_rotate (self) rotX rotY rotZ)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.rotate Mozilla WebKitCSSMatrix.rotate documentation> 
-rotateUnchecked ::
-                (MonadIO m) =>
-                  WebKitCSSMatrix -> Double -> Double -> Double -> m WebKitCSSMatrix
-rotateUnchecked self rotX rotY rotZ
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_rotate (self) rotX rotY rotZ))
+      (void
+         (js_rotate self (maybeToOptional rotX) (maybeToOptional rotY)
+            (maybeToOptional rotZ)))
  
 foreign import javascript unsafe
         "$1[\"rotateAxisAngle\"]($2, $3,\n$4, $5)" js_rotateAxisAngle ::
         WebKitCSSMatrix ->
-          Double ->
-            Double -> Double -> Double -> IO (Nullable WebKitCSSMatrix)
+          Optional Double ->
+            Optional Double ->
+              Optional Double -> Optional Double -> IO WebKitCSSMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.rotateAxisAngle Mozilla WebKitCSSMatrix.rotateAxisAngle documentation> 
 rotateAxisAngle ::
                 (MonadIO m) =>
                   WebKitCSSMatrix ->
-                    Double -> Double -> Double -> Double -> m (Maybe WebKitCSSMatrix)
+                    Maybe Double ->
+                      Maybe Double -> Maybe Double -> Maybe Double -> m WebKitCSSMatrix
 rotateAxisAngle self x y z angle
   = liftIO
-      (nullableToMaybe <$> (js_rotateAxisAngle (self) x y z angle))
+      (js_rotateAxisAngle self (maybeToOptional x) (maybeToOptional y)
+         (maybeToOptional z)
+         (maybeToOptional angle))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.rotateAxisAngle Mozilla WebKitCSSMatrix.rotateAxisAngle documentation> 
 rotateAxisAngle_ ::
                  (MonadIO m) =>
-                   WebKitCSSMatrix -> Double -> Double -> Double -> Double -> m ()
+                   WebKitCSSMatrix ->
+                     Maybe Double ->
+                       Maybe Double -> Maybe Double -> Maybe Double -> m ()
 rotateAxisAngle_ self x y z angle
-  = liftIO (void (js_rotateAxisAngle (self) x y z angle))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.rotateAxisAngle Mozilla WebKitCSSMatrix.rotateAxisAngle documentation> 
-rotateAxisAngleUnsafe ::
-                      (MonadIO m, HasCallStack) =>
-                        WebKitCSSMatrix ->
-                          Double -> Double -> Double -> Double -> m WebKitCSSMatrix
-rotateAxisAngleUnsafe self x y z angle
   = liftIO
-      ((nullableToMaybe <$> (js_rotateAxisAngle (self) x y z angle)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.rotateAxisAngle Mozilla WebKitCSSMatrix.rotateAxisAngle documentation> 
-rotateAxisAngleUnchecked ::
-                         (MonadIO m) =>
-                           WebKitCSSMatrix ->
-                             Double -> Double -> Double -> Double -> m WebKitCSSMatrix
-rotateAxisAngleUnchecked self x y z angle
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_rotateAxisAngle (self) x y z angle))
+      (void
+         (js_rotateAxisAngle self (maybeToOptional x) (maybeToOptional y)
+            (maybeToOptional z)
+            (maybeToOptional angle)))
  
 foreign import javascript unsafe "$1[\"skewX\"]($2)" js_skewX ::
-        WebKitCSSMatrix -> Double -> IO (Nullable WebKitCSSMatrix)
+        WebKitCSSMatrix -> Optional Double -> IO WebKitCSSMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.skewX Mozilla WebKitCSSMatrix.skewX documentation> 
 skewX ::
-      (MonadIO m) =>
-        WebKitCSSMatrix -> Double -> m (Maybe WebKitCSSMatrix)
-skewX self angle
-  = liftIO (nullableToMaybe <$> (js_skewX (self) angle))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.skewX Mozilla WebKitCSSMatrix.skewX documentation> 
-skewX_ :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-skewX_ self angle = liftIO (void (js_skewX (self) angle))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.skewX Mozilla WebKitCSSMatrix.skewX documentation> 
-skewXUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              WebKitCSSMatrix -> Double -> m WebKitCSSMatrix
-skewXUnsafe self angle
-  = liftIO
-      ((nullableToMaybe <$> (js_skewX (self) angle)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (MonadIO m) => WebKitCSSMatrix -> Maybe Double -> m WebKitCSSMatrix
+skewX self angle = liftIO (js_skewX self (maybeToOptional angle))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.skewX Mozilla WebKitCSSMatrix.skewX documentation> 
-skewXUnchecked ::
-               (MonadIO m) => WebKitCSSMatrix -> Double -> m WebKitCSSMatrix
-skewXUnchecked self angle
-  = liftIO (fromJust . nullableToMaybe <$> (js_skewX (self) angle))
+skewX_ :: (MonadIO m) => WebKitCSSMatrix -> Maybe Double -> m ()
+skewX_ self angle
+  = liftIO (void (js_skewX self (maybeToOptional angle)))
  
 foreign import javascript unsafe "$1[\"skewY\"]($2)" js_skewY ::
-        WebKitCSSMatrix -> Double -> IO (Nullable WebKitCSSMatrix)
+        WebKitCSSMatrix -> Optional Double -> IO WebKitCSSMatrix
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.skewY Mozilla WebKitCSSMatrix.skewY documentation> 
 skewY ::
-      (MonadIO m) =>
-        WebKitCSSMatrix -> Double -> m (Maybe WebKitCSSMatrix)
-skewY self angle
-  = liftIO (nullableToMaybe <$> (js_skewY (self) angle))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.skewY Mozilla WebKitCSSMatrix.skewY documentation> 
-skewY_ :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-skewY_ self angle = liftIO (void (js_skewY (self) angle))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.skewY Mozilla WebKitCSSMatrix.skewY documentation> 
-skewYUnsafe ::
-            (MonadIO m, HasCallStack) =>
-              WebKitCSSMatrix -> Double -> m WebKitCSSMatrix
-skewYUnsafe self angle
-  = liftIO
-      ((nullableToMaybe <$> (js_skewY (self) angle)) >>=
-         maybe (Prelude.error "Nothing to return") return)
+      (MonadIO m) => WebKitCSSMatrix -> Maybe Double -> m WebKitCSSMatrix
+skewY self angle = liftIO (js_skewY self (maybeToOptional angle))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.skewY Mozilla WebKitCSSMatrix.skewY documentation> 
-skewYUnchecked ::
-               (MonadIO m) => WebKitCSSMatrix -> Double -> m WebKitCSSMatrix
-skewYUnchecked self angle
-  = liftIO (fromJust . nullableToMaybe <$> (js_skewY (self) angle))
+skewY_ :: (MonadIO m) => WebKitCSSMatrix -> Maybe Double -> m ()
+skewY_ self angle
+  = liftIO (void (js_skewY self (maybeToOptional angle)))
  
 foreign import javascript unsafe "$1[\"toString\"]()" js_toString
         :: WebKitCSSMatrix -> IO JSString
@@ -349,316 +237,316 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.toString Mozilla WebKitCSSMatrix.toString documentation> 
 toString ::
          (MonadIO m, FromJSString result) => WebKitCSSMatrix -> m result
-toString self = liftIO (fromJSString <$> (js_toString (self)))
+toString self = liftIO (fromJSString <$> (js_toString self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.toString Mozilla WebKitCSSMatrix.toString documentation> 
 toString_ :: (MonadIO m) => WebKitCSSMatrix -> m ()
-toString_ self = liftIO (void (js_toString (self)))
+toString_ self = liftIO (void (js_toString self))
  
 foreign import javascript unsafe "$1[\"a\"] = $2;" js_setA ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.a Mozilla WebKitCSSMatrix.a documentation> 
 setA :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setA self val = liftIO (js_setA (self) val)
+setA self val = liftIO (js_setA self val)
  
 foreign import javascript unsafe "$1[\"a\"]" js_getA ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.a Mozilla WebKitCSSMatrix.a documentation> 
 getA :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getA self = liftIO (js_getA (self))
+getA self = liftIO (js_getA self)
  
 foreign import javascript unsafe "$1[\"b\"] = $2;" js_setB ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.b Mozilla WebKitCSSMatrix.b documentation> 
 setB :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setB self val = liftIO (js_setB (self) val)
+setB self val = liftIO (js_setB self val)
  
 foreign import javascript unsafe "$1[\"b\"]" js_getB ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.b Mozilla WebKitCSSMatrix.b documentation> 
 getB :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getB self = liftIO (js_getB (self))
+getB self = liftIO (js_getB self)
  
 foreign import javascript unsafe "$1[\"c\"] = $2;" js_setC ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.c Mozilla WebKitCSSMatrix.c documentation> 
 setC :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setC self val = liftIO (js_setC (self) val)
+setC self val = liftIO (js_setC self val)
  
 foreign import javascript unsafe "$1[\"c\"]" js_getC ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.c Mozilla WebKitCSSMatrix.c documentation> 
 getC :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getC self = liftIO (js_getC (self))
+getC self = liftIO (js_getC self)
  
 foreign import javascript unsafe "$1[\"d\"] = $2;" js_setD ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.d Mozilla WebKitCSSMatrix.d documentation> 
 setD :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setD self val = liftIO (js_setD (self) val)
+setD self val = liftIO (js_setD self val)
  
 foreign import javascript unsafe "$1[\"d\"]" js_getD ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.d Mozilla WebKitCSSMatrix.d documentation> 
 getD :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getD self = liftIO (js_getD (self))
+getD self = liftIO (js_getD self)
  
 foreign import javascript unsafe "$1[\"e\"] = $2;" js_setE ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.e Mozilla WebKitCSSMatrix.e documentation> 
 setE :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setE self val = liftIO (js_setE (self) val)
+setE self val = liftIO (js_setE self val)
  
 foreign import javascript unsafe "$1[\"e\"]" js_getE ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.e Mozilla WebKitCSSMatrix.e documentation> 
 getE :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getE self = liftIO (js_getE (self))
+getE self = liftIO (js_getE self)
  
 foreign import javascript unsafe "$1[\"f\"] = $2;" js_setF ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.f Mozilla WebKitCSSMatrix.f documentation> 
 setF :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setF self val = liftIO (js_setF (self) val)
+setF self val = liftIO (js_setF self val)
  
 foreign import javascript unsafe "$1[\"f\"]" js_getF ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.f Mozilla WebKitCSSMatrix.f documentation> 
 getF :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getF self = liftIO (js_getF (self))
+getF self = liftIO (js_getF self)
  
 foreign import javascript unsafe "$1[\"m11\"] = $2;" js_setM11 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m11 Mozilla WebKitCSSMatrix.m11 documentation> 
 setM11 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM11 self val = liftIO (js_setM11 (self) val)
+setM11 self val = liftIO (js_setM11 self val)
  
 foreign import javascript unsafe "$1[\"m11\"]" js_getM11 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m11 Mozilla WebKitCSSMatrix.m11 documentation> 
 getM11 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM11 self = liftIO (js_getM11 (self))
+getM11 self = liftIO (js_getM11 self)
  
 foreign import javascript unsafe "$1[\"m12\"] = $2;" js_setM12 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m12 Mozilla WebKitCSSMatrix.m12 documentation> 
 setM12 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM12 self val = liftIO (js_setM12 (self) val)
+setM12 self val = liftIO (js_setM12 self val)
  
 foreign import javascript unsafe "$1[\"m12\"]" js_getM12 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m12 Mozilla WebKitCSSMatrix.m12 documentation> 
 getM12 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM12 self = liftIO (js_getM12 (self))
+getM12 self = liftIO (js_getM12 self)
  
 foreign import javascript unsafe "$1[\"m13\"] = $2;" js_setM13 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m13 Mozilla WebKitCSSMatrix.m13 documentation> 
 setM13 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM13 self val = liftIO (js_setM13 (self) val)
+setM13 self val = liftIO (js_setM13 self val)
  
 foreign import javascript unsafe "$1[\"m13\"]" js_getM13 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m13 Mozilla WebKitCSSMatrix.m13 documentation> 
 getM13 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM13 self = liftIO (js_getM13 (self))
+getM13 self = liftIO (js_getM13 self)
  
 foreign import javascript unsafe "$1[\"m14\"] = $2;" js_setM14 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m14 Mozilla WebKitCSSMatrix.m14 documentation> 
 setM14 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM14 self val = liftIO (js_setM14 (self) val)
+setM14 self val = liftIO (js_setM14 self val)
  
 foreign import javascript unsafe "$1[\"m14\"]" js_getM14 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m14 Mozilla WebKitCSSMatrix.m14 documentation> 
 getM14 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM14 self = liftIO (js_getM14 (self))
+getM14 self = liftIO (js_getM14 self)
  
 foreign import javascript unsafe "$1[\"m21\"] = $2;" js_setM21 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m21 Mozilla WebKitCSSMatrix.m21 documentation> 
 setM21 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM21 self val = liftIO (js_setM21 (self) val)
+setM21 self val = liftIO (js_setM21 self val)
  
 foreign import javascript unsafe "$1[\"m21\"]" js_getM21 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m21 Mozilla WebKitCSSMatrix.m21 documentation> 
 getM21 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM21 self = liftIO (js_getM21 (self))
+getM21 self = liftIO (js_getM21 self)
  
 foreign import javascript unsafe "$1[\"m22\"] = $2;" js_setM22 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m22 Mozilla WebKitCSSMatrix.m22 documentation> 
 setM22 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM22 self val = liftIO (js_setM22 (self) val)
+setM22 self val = liftIO (js_setM22 self val)
  
 foreign import javascript unsafe "$1[\"m22\"]" js_getM22 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m22 Mozilla WebKitCSSMatrix.m22 documentation> 
 getM22 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM22 self = liftIO (js_getM22 (self))
+getM22 self = liftIO (js_getM22 self)
  
 foreign import javascript unsafe "$1[\"m23\"] = $2;" js_setM23 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m23 Mozilla WebKitCSSMatrix.m23 documentation> 
 setM23 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM23 self val = liftIO (js_setM23 (self) val)
+setM23 self val = liftIO (js_setM23 self val)
  
 foreign import javascript unsafe "$1[\"m23\"]" js_getM23 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m23 Mozilla WebKitCSSMatrix.m23 documentation> 
 getM23 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM23 self = liftIO (js_getM23 (self))
+getM23 self = liftIO (js_getM23 self)
  
 foreign import javascript unsafe "$1[\"m24\"] = $2;" js_setM24 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m24 Mozilla WebKitCSSMatrix.m24 documentation> 
 setM24 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM24 self val = liftIO (js_setM24 (self) val)
+setM24 self val = liftIO (js_setM24 self val)
  
 foreign import javascript unsafe "$1[\"m24\"]" js_getM24 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m24 Mozilla WebKitCSSMatrix.m24 documentation> 
 getM24 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM24 self = liftIO (js_getM24 (self))
+getM24 self = liftIO (js_getM24 self)
  
 foreign import javascript unsafe "$1[\"m31\"] = $2;" js_setM31 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m31 Mozilla WebKitCSSMatrix.m31 documentation> 
 setM31 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM31 self val = liftIO (js_setM31 (self) val)
+setM31 self val = liftIO (js_setM31 self val)
  
 foreign import javascript unsafe "$1[\"m31\"]" js_getM31 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m31 Mozilla WebKitCSSMatrix.m31 documentation> 
 getM31 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM31 self = liftIO (js_getM31 (self))
+getM31 self = liftIO (js_getM31 self)
  
 foreign import javascript unsafe "$1[\"m32\"] = $2;" js_setM32 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m32 Mozilla WebKitCSSMatrix.m32 documentation> 
 setM32 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM32 self val = liftIO (js_setM32 (self) val)
+setM32 self val = liftIO (js_setM32 self val)
  
 foreign import javascript unsafe "$1[\"m32\"]" js_getM32 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m32 Mozilla WebKitCSSMatrix.m32 documentation> 
 getM32 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM32 self = liftIO (js_getM32 (self))
+getM32 self = liftIO (js_getM32 self)
  
 foreign import javascript unsafe "$1[\"m33\"] = $2;" js_setM33 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m33 Mozilla WebKitCSSMatrix.m33 documentation> 
 setM33 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM33 self val = liftIO (js_setM33 (self) val)
+setM33 self val = liftIO (js_setM33 self val)
  
 foreign import javascript unsafe "$1[\"m33\"]" js_getM33 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m33 Mozilla WebKitCSSMatrix.m33 documentation> 
 getM33 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM33 self = liftIO (js_getM33 (self))
+getM33 self = liftIO (js_getM33 self)
  
 foreign import javascript unsafe "$1[\"m34\"] = $2;" js_setM34 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m34 Mozilla WebKitCSSMatrix.m34 documentation> 
 setM34 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM34 self val = liftIO (js_setM34 (self) val)
+setM34 self val = liftIO (js_setM34 self val)
  
 foreign import javascript unsafe "$1[\"m34\"]" js_getM34 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m34 Mozilla WebKitCSSMatrix.m34 documentation> 
 getM34 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM34 self = liftIO (js_getM34 (self))
+getM34 self = liftIO (js_getM34 self)
  
 foreign import javascript unsafe "$1[\"m41\"] = $2;" js_setM41 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m41 Mozilla WebKitCSSMatrix.m41 documentation> 
 setM41 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM41 self val = liftIO (js_setM41 (self) val)
+setM41 self val = liftIO (js_setM41 self val)
  
 foreign import javascript unsafe "$1[\"m41\"]" js_getM41 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m41 Mozilla WebKitCSSMatrix.m41 documentation> 
 getM41 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM41 self = liftIO (js_getM41 (self))
+getM41 self = liftIO (js_getM41 self)
  
 foreign import javascript unsafe "$1[\"m42\"] = $2;" js_setM42 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m42 Mozilla WebKitCSSMatrix.m42 documentation> 
 setM42 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM42 self val = liftIO (js_setM42 (self) val)
+setM42 self val = liftIO (js_setM42 self val)
  
 foreign import javascript unsafe "$1[\"m42\"]" js_getM42 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m42 Mozilla WebKitCSSMatrix.m42 documentation> 
 getM42 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM42 self = liftIO (js_getM42 (self))
+getM42 self = liftIO (js_getM42 self)
  
 foreign import javascript unsafe "$1[\"m43\"] = $2;" js_setM43 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m43 Mozilla WebKitCSSMatrix.m43 documentation> 
 setM43 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM43 self val = liftIO (js_setM43 (self) val)
+setM43 self val = liftIO (js_setM43 self val)
  
 foreign import javascript unsafe "$1[\"m43\"]" js_getM43 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m43 Mozilla WebKitCSSMatrix.m43 documentation> 
 getM43 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM43 self = liftIO (js_getM43 (self))
+getM43 self = liftIO (js_getM43 self)
  
 foreign import javascript unsafe "$1[\"m44\"] = $2;" js_setM44 ::
         WebKitCSSMatrix -> Double -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m44 Mozilla WebKitCSSMatrix.m44 documentation> 
 setM44 :: (MonadIO m) => WebKitCSSMatrix -> Double -> m ()
-setM44 self val = liftIO (js_setM44 (self) val)
+setM44 self val = liftIO (js_setM44 self val)
  
 foreign import javascript unsafe "$1[\"m44\"]" js_getM44 ::
         WebKitCSSMatrix -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix.m44 Mozilla WebKitCSSMatrix.m44 documentation> 
 getM44 :: (MonadIO m) => WebKitCSSMatrix -> m Double
-getM44 self = liftIO (js_getM44 (self))
+getM44 self = liftIO (js_getM44 self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSRegionRule.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSRegionRule.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSRegionRule.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSRegionRule.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WebKitCSSRegionRule
-       (js_getCssRules, getCssRules, getCssRulesUnsafe,
-        getCssRulesUnchecked, WebKitCSSRegionRule(..),
+       (js_getCssRules, getCssRules, WebKitCSSRegionRule(..),
         gTypeWebKitCSSRegionRule)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,30 +20,15 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"cssRules\"]" js_getCssRules
-        :: WebKitCSSRegionRule -> IO (Nullable CSSRuleList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSRegionRule.cssRules Mozilla WebKitCSSRegionRule.cssRules documentation> 
-getCssRules ::
-            (MonadIO m) => WebKitCSSRegionRule -> m (Maybe CSSRuleList)
-getCssRules self
-  = liftIO (nullableToMaybe <$> (js_getCssRules (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSRegionRule.cssRules Mozilla WebKitCSSRegionRule.cssRules documentation> 
-getCssRulesUnsafe ::
-                  (MonadIO m, HasCallStack) => WebKitCSSRegionRule -> m CSSRuleList
-getCssRulesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCssRules (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        :: WebKitCSSRegionRule -> IO CSSRuleList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSRegionRule.cssRules Mozilla WebKitCSSRegionRule.cssRules documentation> 
-getCssRulesUnchecked ::
-                     (MonadIO m) => WebKitCSSRegionRule -> m CSSRuleList
-getCssRulesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCssRules (self)))
+getCssRules :: (MonadIO m) => WebKitCSSRegionRule -> m CSSRuleList
+getCssRules self = liftIO (js_getCssRules self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSTransformValue.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSTransformValue.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSTransformValue.hs
+++ /dev/null
@@ -1,93 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.WebKitCSSTransformValue
-       (js__get, _get, _get_, _getUnsafe, _getUnchecked,
-        pattern CSS_TRANSLATE, pattern CSS_TRANSLATEX,
-        pattern CSS_TRANSLATEY, pattern CSS_ROTATE, pattern CSS_SCALE,
-        pattern CSS_SCALEX, pattern CSS_SCALEY, pattern CSS_SKEW,
-        pattern CSS_SKEWX, pattern CSS_SKEWY, pattern CSS_MATRIX,
-        pattern CSS_TRANSLATEZ, pattern CSS_TRANSLATE3D,
-        pattern CSS_ROTATEX, pattern CSS_ROTATEY, pattern CSS_ROTATEZ,
-        pattern CSS_ROTATE3D, pattern CSS_SCALEZ, pattern CSS_SCALE3D,
-        pattern CSS_PERSPECTIVE, pattern CSS_MATRIX3D, js_getOperationType,
-        getOperationType, WebKitCSSTransformValue(..),
-        gTypeWebKitCSSTransformValue)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"_get\"]($2)" js__get ::
-        WebKitCSSTransformValue -> Word -> IO (Nullable CSSValue)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSTransformValue._get Mozilla WebKitCSSTransformValue._get documentation> 
-_get ::
-     (MonadIO m) =>
-       WebKitCSSTransformValue -> Word -> m (Maybe CSSValue)
-_get self index
-  = liftIO (nullableToMaybe <$> (js__get (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSTransformValue._get Mozilla WebKitCSSTransformValue._get documentation> 
-_get_ :: (MonadIO m) => WebKitCSSTransformValue -> Word -> m ()
-_get_ self index = liftIO (void (js__get (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSTransformValue._get Mozilla WebKitCSSTransformValue._get documentation> 
-_getUnsafe ::
-           (MonadIO m, HasCallStack) =>
-             WebKitCSSTransformValue -> Word -> m CSSValue
-_getUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js__get (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSTransformValue._get Mozilla WebKitCSSTransformValue._get documentation> 
-_getUnchecked ::
-              (MonadIO m) => WebKitCSSTransformValue -> Word -> m CSSValue
-_getUnchecked self index
-  = liftIO (fromJust . nullableToMaybe <$> (js__get (self) index))
-pattern CSS_TRANSLATE = 1
-pattern CSS_TRANSLATEX = 2
-pattern CSS_TRANSLATEY = 3
-pattern CSS_ROTATE = 4
-pattern CSS_SCALE = 5
-pattern CSS_SCALEX = 6
-pattern CSS_SCALEY = 7
-pattern CSS_SKEW = 8
-pattern CSS_SKEWX = 9
-pattern CSS_SKEWY = 10
-pattern CSS_MATRIX = 11
-pattern CSS_TRANSLATEZ = 12
-pattern CSS_TRANSLATE3D = 13
-pattern CSS_ROTATEX = 14
-pattern CSS_ROTATEY = 15
-pattern CSS_ROTATEZ = 16
-pattern CSS_ROTATE3D = 17
-pattern CSS_SCALEZ = 18
-pattern CSS_SCALE3D = 19
-pattern CSS_PERSPECTIVE = 20
-pattern CSS_MATRIX3D = 21
- 
-foreign import javascript unsafe "$1[\"operationType\"]"
-        js_getOperationType :: WebKitCSSTransformValue -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSTransformValue.operationType Mozilla WebKitCSSTransformValue.operationType documentation> 
-getOperationType ::
-                 (MonadIO m) => WebKitCSSTransformValue -> m Word
-getOperationType self = liftIO (js_getOperationType (self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSViewportRule.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSViewportRule.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSViewportRule.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitCSSViewportRule.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WebKitCSSViewportRule
-       (js_getStyle, getStyle, getStyleUnsafe, getStyleUnchecked,
-        WebKitCSSViewportRule(..), gTypeWebKitCSSViewportRule)
+       (js_getStyle, getStyle, WebKitCSSViewportRule(..),
+        gTypeWebKitCSSViewportRule)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,31 +20,16 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"style\"]" js_getStyle ::
-        WebKitCSSViewportRule -> IO (Nullable CSSStyleDeclaration)
+        WebKitCSSViewportRule -> IO CSSStyleDeclaration
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSViewportRule.style Mozilla WebKitCSSViewportRule.style documentation> 
 getStyle ::
-         (MonadIO m) =>
-           WebKitCSSViewportRule -> m (Maybe CSSStyleDeclaration)
-getStyle self = liftIO (nullableToMaybe <$> (js_getStyle (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSViewportRule.style Mozilla WebKitCSSViewportRule.style documentation> 
-getStyleUnsafe ::
-               (MonadIO m, HasCallStack) =>
-                 WebKitCSSViewportRule -> m CSSStyleDeclaration
-getStyleUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStyle (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSViewportRule.style Mozilla WebKitCSSViewportRule.style documentation> 
-getStyleUnchecked ::
-                  (MonadIO m) => WebKitCSSViewportRule -> m CSSStyleDeclaration
-getStyleUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getStyle (self)))
+         (MonadIO m) => WebKitCSSViewportRule -> m CSSStyleDeclaration
+getStyle self = liftIO (js_getStyle self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeyError.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeyError.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeyError.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.WebKitMediaKeyError
+       (pattern MEDIA_KEYERR_UNKNOWN, pattern MEDIA_KEYERR_CLIENT,
+        pattern MEDIA_KEYERR_SERVICE, pattern MEDIA_KEYERR_OUTPUT,
+        pattern MEDIA_KEYERR_HARDWARECHANGE, pattern MEDIA_KEYERR_DOMAIN,
+        js_getCode, getCode, js_getSystemCode, getSystemCode,
+        WebKitMediaKeyError(..), gTypeWebKitMediaKeyError)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+pattern MEDIA_KEYERR_UNKNOWN = 1
+pattern MEDIA_KEYERR_CLIENT = 2
+pattern MEDIA_KEYERR_SERVICE = 3
+pattern MEDIA_KEYERR_OUTPUT = 4
+pattern MEDIA_KEYERR_HARDWARECHANGE = 5
+pattern MEDIA_KEYERR_DOMAIN = 6
+ 
+foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
+        WebKitMediaKeyError -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyError.code Mozilla WebKitMediaKeyError.code documentation> 
+getCode :: (MonadIO m) => WebKitMediaKeyError -> m Word
+getCode self = liftIO (js_getCode self)
+ 
+foreign import javascript unsafe "$1[\"systemCode\"]"
+        js_getSystemCode :: WebKitMediaKeyError -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyError.systemCode Mozilla WebKitMediaKeyError.systemCode documentation> 
+getSystemCode :: (MonadIO m) => WebKitMediaKeyError -> m Word
+getSystemCode self = liftIO (js_getSystemCode self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeyMessageEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeyMessageEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeyMessageEvent.hs
@@ -0,0 +1,64 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.WebKitMediaKeyMessageEvent
+       (js_newWebKitMediaKeyMessageEvent, newWebKitMediaKeyMessageEvent,
+        js_getMessage, getMessage, js_getDestinationURL, getDestinationURL,
+        WebKitMediaKeyMessageEvent(..), gTypeWebKitMediaKeyMessageEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"WebKitMediaKeyMessageEvent\"]($1,\n$2)"
+        js_newWebKitMediaKeyMessageEvent ::
+        JSString ->
+          Optional WebKitMediaKeyMessageEventInit ->
+            IO WebKitMediaKeyMessageEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent Mozilla WebKitMediaKeyMessageEvent documentation> 
+newWebKitMediaKeyMessageEvent ::
+                              (MonadIO m, ToJSString type') =>
+                                type' ->
+                                  Maybe WebKitMediaKeyMessageEventInit ->
+                                    m WebKitMediaKeyMessageEvent
+newWebKitMediaKeyMessageEvent type' eventInitDict
+  = liftIO
+      (js_newWebKitMediaKeyMessageEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
+        WebKitMediaKeyMessageEvent -> IO Uint8Array
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent.message Mozilla WebKitMediaKeyMessageEvent.message documentation> 
+getMessage ::
+           (MonadIO m) => WebKitMediaKeyMessageEvent -> m Uint8Array
+getMessage self = liftIO (js_getMessage self)
+ 
+foreign import javascript unsafe "$1[\"destinationURL\"]"
+        js_getDestinationURL :: WebKitMediaKeyMessageEvent -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent.destinationURL Mozilla WebKitMediaKeyMessageEvent.destinationURL documentation> 
+getDestinationURL ::
+                  (MonadIO m, FromJSString result) =>
+                    WebKitMediaKeyMessageEvent -> m result
+getDestinationURL self
+  = liftIO (fromJSString <$> (js_getDestinationURL self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeyNeededEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeyNeededEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeyNeededEvent.hs
@@ -0,0 +1,53 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.WebKitMediaKeyNeededEvent
+       (js_newWebKitMediaKeyNeededEvent, newWebKitMediaKeyNeededEvent,
+        js_getInitData, getInitData, WebKitMediaKeyNeededEvent(..),
+        gTypeWebKitMediaKeyNeededEvent)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"WebKitMediaKeyNeededEvent\"]($1,\n$2)"
+        js_newWebKitMediaKeyNeededEvent ::
+        JSString ->
+          Optional WebKitMediaKeyNeededEventInit ->
+            IO WebKitMediaKeyNeededEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyNeededEvent Mozilla WebKitMediaKeyNeededEvent documentation> 
+newWebKitMediaKeyNeededEvent ::
+                             (MonadIO m, ToJSString type') =>
+                               type' ->
+                                 Maybe WebKitMediaKeyNeededEventInit -> m WebKitMediaKeyNeededEvent
+newWebKitMediaKeyNeededEvent type' eventInitDict
+  = liftIO
+      (js_newWebKitMediaKeyNeededEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe "$1[\"initData\"]" js_getInitData
+        :: WebKitMediaKeyNeededEvent -> IO Uint8Array
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyNeededEvent.initData Mozilla WebKitMediaKeyNeededEvent.initData documentation> 
+getInitData ::
+            (MonadIO m) => WebKitMediaKeyNeededEvent -> m Uint8Array
+getInitData self = liftIO (js_getInitData self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeySession.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeySession.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeySession.hs
@@ -0,0 +1,85 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.WebKitMediaKeySession
+       (js_update, update, js_close, close, js_getError, getError,
+        js_getKeySystem, getKeySystem, js_getSessionId, getSessionId,
+        webKitKeyAdded, webKitKeyError, webKitKeyMessage,
+        WebKitMediaKeySession(..), gTypeWebKitMediaKeySession)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"update\"]($2)" js_update ::
+        WebKitMediaKeySession -> Uint8Array -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.update Mozilla WebKitMediaKeySession.update documentation> 
+update ::
+       (MonadIO m, IsUint8Array key) =>
+         WebKitMediaKeySession -> key -> m ()
+update self key = liftIO (js_update self (toUint8Array key))
+ 
+foreign import javascript unsafe "$1[\"close\"]()" js_close ::
+        WebKitMediaKeySession -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.close Mozilla WebKitMediaKeySession.close documentation> 
+close :: (MonadIO m) => WebKitMediaKeySession -> m ()
+close self = liftIO (js_close self)
+ 
+foreign import javascript unsafe "$1[\"error\"]" js_getError ::
+        WebKitMediaKeySession -> IO WebKitMediaKeyError
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.error Mozilla WebKitMediaKeySession.error documentation> 
+getError ::
+         (MonadIO m) => WebKitMediaKeySession -> m WebKitMediaKeyError
+getError self = liftIO (js_getError self)
+ 
+foreign import javascript unsafe "$1[\"keySystem\"]"
+        js_getKeySystem :: WebKitMediaKeySession -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.keySystem Mozilla WebKitMediaKeySession.keySystem documentation> 
+getKeySystem ::
+             (MonadIO m, FromJSString result) =>
+               WebKitMediaKeySession -> m result
+getKeySystem self
+  = liftIO (fromJSString <$> (js_getKeySystem self))
+ 
+foreign import javascript unsafe "$1[\"sessionId\"]"
+        js_getSessionId :: WebKitMediaKeySession -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.sessionId Mozilla WebKitMediaKeySession.sessionId documentation> 
+getSessionId ::
+             (MonadIO m, FromJSString result) =>
+               WebKitMediaKeySession -> m result
+getSessionId self
+  = liftIO (fromJSString <$> (js_getSessionId self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.onwebkitkeyadded Mozilla WebKitMediaKeySession.onwebkitkeyadded documentation> 
+webKitKeyAdded :: EventName WebKitMediaKeySession Event
+webKitKeyAdded = unsafeEventName (toJSString "webkitkeyadded")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.onwebkitkeyerror Mozilla WebKitMediaKeySession.onwebkitkeyerror documentation> 
+webKitKeyError :: EventName WebKitMediaKeySession Event
+webKitKeyError = unsafeEventName (toJSString "webkitkeyerror")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession.onwebkitkeymessage Mozilla WebKitMediaKeySession.onwebkitkeymessage documentation> 
+webKitKeyMessage :: EventName WebKitMediaKeySession Event
+webKitKeyMessage = unsafeEventName (toJSString "webkitkeymessage")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeys.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeys.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitMediaKeys.hs
@@ -0,0 +1,93 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.WebKitMediaKeys
+       (js_newWebKitMediaKeys, newWebKitMediaKeys, js_createSession,
+        createSession, createSession_, js_isTypeSupported, isTypeSupported,
+        isTypeSupported_, js_getKeySystem, getKeySystem,
+        WebKitMediaKeys(..), gTypeWebKitMediaKeys)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe
+        "new window[\"WebKitMediaKeys\"]($1)" js_newWebKitMediaKeys ::
+        JSString -> IO WebKitMediaKeys
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys Mozilla WebKitMediaKeys documentation> 
+newWebKitMediaKeys ::
+                   (MonadIO m, ToJSString keySystem) => keySystem -> m WebKitMediaKeys
+newWebKitMediaKeys keySystem
+  = liftIO (js_newWebKitMediaKeys (toJSString keySystem))
+ 
+foreign import javascript unsafe "$1[\"createSession\"]($2, $3)"
+        js_createSession ::
+        WebKitMediaKeys ->
+          JSString -> Uint8Array -> IO WebKitMediaKeySession
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.createSession Mozilla WebKitMediaKeys.createSession documentation> 
+createSession ::
+              (MonadIO m, ToJSString type', IsUint8Array initData) =>
+                WebKitMediaKeys -> type' -> initData -> m WebKitMediaKeySession
+createSession self type' initData
+  = liftIO
+      (js_createSession self (toJSString type') (toUint8Array initData))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.createSession Mozilla WebKitMediaKeys.createSession documentation> 
+createSession_ ::
+               (MonadIO m, ToJSString type', IsUint8Array initData) =>
+                 WebKitMediaKeys -> type' -> initData -> m ()
+createSession_ self type' initData
+  = liftIO
+      (void
+         (js_createSession self (toJSString type') (toUint8Array initData)))
+ 
+foreign import javascript unsafe
+        "($1[\"isTypeSupported\"]($2,\n$3) ? 1 : 0)" js_isTypeSupported ::
+        WebKitMediaKeys -> JSString -> Optional JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.isTypeSupported Mozilla WebKitMediaKeys.isTypeSupported documentation> 
+isTypeSupported ::
+                (MonadIO m, ToJSString keySystem, ToJSString type') =>
+                  WebKitMediaKeys -> keySystem -> Maybe type' -> m Bool
+isTypeSupported self keySystem type'
+  = liftIO
+      (js_isTypeSupported self (toJSString keySystem)
+         (toOptionalJSString type'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.isTypeSupported Mozilla WebKitMediaKeys.isTypeSupported documentation> 
+isTypeSupported_ ::
+                 (MonadIO m, ToJSString keySystem, ToJSString type') =>
+                   WebKitMediaKeys -> keySystem -> Maybe type' -> m ()
+isTypeSupported_ self keySystem type'
+  = liftIO
+      (void
+         (js_isTypeSupported self (toJSString keySystem)
+            (toOptionalJSString type')))
+ 
+foreign import javascript unsafe "$1[\"keySystem\"]"
+        js_getKeySystem :: WebKitMediaKeys -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys.keySystem Mozilla WebKitMediaKeys.keySystem documentation> 
+getKeySystem ::
+             (MonadIO m, FromJSString result) => WebKitMediaKeys -> m result
+getKeySystem self
+  = liftIO (fromJSString <$> (js_getKeySystem self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitNamedFlow.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitNamedFlow.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebKitNamedFlow.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitNamedFlow.hs
@@ -5,19 +5,16 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WebKitNamedFlow
        (js_getRegionsByContent, getRegionsByContent, getRegionsByContent_,
-        getRegionsByContentUnsafe, getRegionsByContentUnchecked,
-        js_getRegions, getRegions, getRegions_, getRegionsUnsafe,
-        getRegionsUnchecked, js_getContent, getContent, getContent_,
-        getContentUnsafe, getContentUnchecked, js_getName, getName,
-        js_getOverset, getOverset, js_getFirstEmptyRegionIndex,
-        getFirstEmptyRegionIndex, WebKitNamedFlow(..),
-        gTypeWebKitNamedFlow)
+        js_getRegions, getRegions, getRegions_, js_getContent, getContent,
+        getContent_, js_getName, getName, js_getOverset, getOverset,
+        js_getFirstEmptyRegionIndex, getFirstEmptyRegionIndex,
+        WebKitNamedFlow(..), gTypeWebKitNamedFlow)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,6 +23,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,17 +31,16 @@
  
 foreign import javascript unsafe "$1[\"getRegionsByContent\"]($2)"
         js_getRegionsByContent ::
-        WebKitNamedFlow -> Nullable Node -> IO (Nullable NodeList)
+        WebKitNamedFlow -> Optional Node -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getRegionsByContent Mozilla WebKitNamedFlow.getRegionsByContent documentation> 
 getRegionsByContent ::
                     (MonadIO m, IsNode contentNode) =>
-                      WebKitNamedFlow -> Maybe contentNode -> m (Maybe NodeList)
+                      WebKitNamedFlow -> Maybe contentNode -> m NodeList
 getRegionsByContent self contentNode
   = liftIO
-      (nullableToMaybe <$>
-         (js_getRegionsByContent (self)
-            (maybeToNullable (fmap toNode contentNode))))
+      (js_getRegionsByContent self
+         (maybeToOptional (fmap toNode contentNode)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getRegionsByContent Mozilla WebKitNamedFlow.getRegionsByContent documentation> 
 getRegionsByContent_ ::
@@ -52,79 +49,30 @@
 getRegionsByContent_ self contentNode
   = liftIO
       (void
-         (js_getRegionsByContent (self)
-            (maybeToNullable (fmap toNode contentNode))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getRegionsByContent Mozilla WebKitNamedFlow.getRegionsByContent documentation> 
-getRegionsByContentUnsafe ::
-                          (MonadIO m, IsNode contentNode, HasCallStack) =>
-                            WebKitNamedFlow -> Maybe contentNode -> m NodeList
-getRegionsByContentUnsafe self contentNode
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getRegionsByContent (self)
-             (maybeToNullable (fmap toNode contentNode))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getRegionsByContent Mozilla WebKitNamedFlow.getRegionsByContent documentation> 
-getRegionsByContentUnchecked ::
-                             (MonadIO m, IsNode contentNode) =>
-                               WebKitNamedFlow -> Maybe contentNode -> m NodeList
-getRegionsByContentUnchecked self contentNode
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getRegionsByContent (self)
-            (maybeToNullable (fmap toNode contentNode))))
+         (js_getRegionsByContent self
+            (maybeToOptional (fmap toNode contentNode))))
  
 foreign import javascript unsafe "$1[\"getRegions\"]()"
-        js_getRegions :: WebKitNamedFlow -> IO (Nullable NodeList)
+        js_getRegions :: WebKitNamedFlow -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getRegions Mozilla WebKitNamedFlow.getRegions documentation> 
-getRegions :: (MonadIO m) => WebKitNamedFlow -> m (Maybe NodeList)
-getRegions self
-  = liftIO (nullableToMaybe <$> (js_getRegions (self)))
+getRegions :: (MonadIO m) => WebKitNamedFlow -> m NodeList
+getRegions self = liftIO (js_getRegions self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getRegions Mozilla WebKitNamedFlow.getRegions documentation> 
 getRegions_ :: (MonadIO m) => WebKitNamedFlow -> m ()
-getRegions_ self = liftIO (void (js_getRegions (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getRegions Mozilla WebKitNamedFlow.getRegions documentation> 
-getRegionsUnsafe ::
-                 (MonadIO m, HasCallStack) => WebKitNamedFlow -> m NodeList
-getRegionsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getRegions (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getRegions Mozilla WebKitNamedFlow.getRegions documentation> 
-getRegionsUnchecked :: (MonadIO m) => WebKitNamedFlow -> m NodeList
-getRegionsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getRegions (self)))
+getRegions_ self = liftIO (void (js_getRegions self))
  
 foreign import javascript unsafe "$1[\"getContent\"]()"
-        js_getContent :: WebKitNamedFlow -> IO (Nullable NodeList)
+        js_getContent :: WebKitNamedFlow -> IO NodeList
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getContent Mozilla WebKitNamedFlow.getContent documentation> 
-getContent :: (MonadIO m) => WebKitNamedFlow -> m (Maybe NodeList)
-getContent self
-  = liftIO (nullableToMaybe <$> (js_getContent (self)))
+getContent :: (MonadIO m) => WebKitNamedFlow -> m NodeList
+getContent self = liftIO (js_getContent self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getContent Mozilla WebKitNamedFlow.getContent documentation> 
 getContent_ :: (MonadIO m) => WebKitNamedFlow -> m ()
-getContent_ self = liftIO (void (js_getContent (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getContent Mozilla WebKitNamedFlow.getContent documentation> 
-getContentUnsafe ::
-                 (MonadIO m, HasCallStack) => WebKitNamedFlow -> m NodeList
-getContentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getContent (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.getContent Mozilla WebKitNamedFlow.getContent documentation> 
-getContentUnchecked :: (MonadIO m) => WebKitNamedFlow -> m NodeList
-getContentUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getContent (self)))
+getContent_ self = liftIO (void (js_getContent self))
  
 foreign import javascript unsafe "$1[\"name\"]" js_getName ::
         WebKitNamedFlow -> IO JSString
@@ -132,14 +80,14 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.name Mozilla WebKitNamedFlow.name documentation> 
 getName ::
         (MonadIO m, FromJSString result) => WebKitNamedFlow -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
+getName self = liftIO (fromJSString <$> (js_getName self))
  
 foreign import javascript unsafe "($1[\"overset\"] ? 1 : 0)"
         js_getOverset :: WebKitNamedFlow -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.overset Mozilla WebKitNamedFlow.overset documentation> 
 getOverset :: (MonadIO m) => WebKitNamedFlow -> m Bool
-getOverset self = liftIO (js_getOverset (self))
+getOverset self = liftIO (js_getOverset self)
  
 foreign import javascript unsafe "$1[\"firstEmptyRegionIndex\"]"
         js_getFirstEmptyRegionIndex :: WebKitNamedFlow -> IO Int
@@ -147,4 +95,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow.firstEmptyRegionIndex Mozilla WebKitNamedFlow.firstEmptyRegionIndex documentation> 
 getFirstEmptyRegionIndex :: (MonadIO m) => WebKitNamedFlow -> m Int
 getFirstEmptyRegionIndex self
-  = liftIO (js_getFirstEmptyRegionIndex (self))
+  = liftIO (js_getFirstEmptyRegionIndex self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitNamespace.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitNamespace.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebKitNamespace.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitNamespace.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WebKitNamespace
-       (js_getMessageHandlers, getMessageHandlers,
-        getMessageHandlersUnsafe, getMessageHandlersUnchecked,
-        WebKitNamespace(..), gTypeWebKitNamespace)
+       (js_getMessageHandlers, getMessageHandlers, WebKitNamespace(..),
+        gTypeWebKitNamespace)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,27 +28,9 @@
  
 foreign import javascript unsafe "$1[\"messageHandlers\"]"
         js_getMessageHandlers ::
-        WebKitNamespace -> IO (Nullable UserMessageHandlersNamespace)
+        WebKitNamespace -> IO UserMessageHandlersNamespace
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamespace.messageHandlers Mozilla WebKitNamespace.messageHandlers documentation> 
 getMessageHandlers ::
-                   (MonadIO m) =>
-                     WebKitNamespace -> m (Maybe UserMessageHandlersNamespace)
-getMessageHandlers self
-  = liftIO (nullableToMaybe <$> (js_getMessageHandlers (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamespace.messageHandlers Mozilla WebKitNamespace.messageHandlers documentation> 
-getMessageHandlersUnsafe ::
-                         (MonadIO m, HasCallStack) =>
-                           WebKitNamespace -> m UserMessageHandlersNamespace
-getMessageHandlersUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMessageHandlers (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamespace.messageHandlers Mozilla WebKitNamespace.messageHandlers documentation> 
-getMessageHandlersUnchecked ::
-                            (MonadIO m) => WebKitNamespace -> m UserMessageHandlersNamespace
-getMessageHandlersUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getMessageHandlers (self)))
+                   (MonadIO m) => WebKitNamespace -> m UserMessageHandlersNamespace
+getMessageHandlers self = liftIO (js_getMessageHandlers self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitPlaybackTargetAvailabilityEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitPlaybackTargetAvailabilityEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebKitPlaybackTargetAvailabilityEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitPlaybackTargetAvailabilityEvent.hs
@@ -4,15 +4,16 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WebKitPlaybackTargetAvailabilityEvent
-       (js_getAvailability, getAvailability,
-        WebKitPlaybackTargetAvailabilityEvent(..),
+       (js_newWebKitPlaybackTargetAvailabilityEvent,
+        newWebKitPlaybackTargetAvailabilityEvent, js_getAvailability,
+        getAvailability, WebKitPlaybackTargetAvailabilityEvent(..),
         gTypeWebKitPlaybackTargetAvailabilityEvent)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,11 +22,30 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"WebKitPlaybackTargetAvailabilityEvent\"]($1,\n$2)"
+        js_newWebKitPlaybackTargetAvailabilityEvent ::
+        JSString ->
+          Optional WebKitPlaybackTargetAvailabilityEventInit ->
+            IO WebKitPlaybackTargetAvailabilityEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPlaybackTargetAvailabilityEvent Mozilla WebKitPlaybackTargetAvailabilityEvent documentation> 
+newWebKitPlaybackTargetAvailabilityEvent ::
+                                         (MonadIO m, ToJSString type') =>
+                                           type' ->
+                                             Maybe WebKitPlaybackTargetAvailabilityEventInit ->
+                                               m WebKitPlaybackTargetAvailabilityEvent
+newWebKitPlaybackTargetAvailabilityEvent type' eventInitDict
+  = liftIO
+      (js_newWebKitPlaybackTargetAvailabilityEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"availability\"]"
         js_getAvailability ::
         WebKitPlaybackTargetAvailabilityEvent -> IO JSString
@@ -35,4 +55,4 @@
                 (MonadIO m, FromJSString result) =>
                   WebKitPlaybackTargetAvailabilityEvent -> m result
 getAvailability self
-  = liftIO (fromJSString <$> (js_getAvailability (self)))
+  = liftIO (fromJSString <$> (js_getAvailability self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitPoint.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitPoint.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebKitPoint.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitPoint.hs
@@ -4,15 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WebKitPoint
-       (js_newWebKitPoint, newWebKitPoint, js_newWebKitPoint',
-        newWebKitPoint', js_setX, setX, js_getX, getX, js_setY, setY,
-        js_getY, getY, WebKitPoint(..), gTypeWebKitPoint)
+       (js_newWebKitPoint, newWebKitPoint, js_setX, setX, js_getX, getX,
+        js_setY, setY, js_getY, getY, WebKitPoint(..), gTypeWebKitPoint)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,50 +20,47 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "new window[\"WebKitPoint\"]()"
-        js_newWebKitPoint :: IO WebKitPoint
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPoint Mozilla WebKitPoint documentation> 
-newWebKitPoint :: (MonadIO m) => m WebKitPoint
-newWebKitPoint = liftIO (js_newWebKitPoint)
- 
 foreign import javascript unsafe
-        "new window[\"WebKitPoint\"]($1,\n$2)" js_newWebKitPoint' ::
-        Float -> Float -> IO WebKitPoint
+        "new window[\"WebKitPoint\"]($1,\n$2)" js_newWebKitPoint ::
+        Optional Float -> Optional Float -> IO WebKitPoint
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPoint Mozilla WebKitPoint documentation> 
-newWebKitPoint' :: (MonadIO m) => Float -> Float -> m WebKitPoint
-newWebKitPoint' x y = liftIO (js_newWebKitPoint' x y)
+newWebKitPoint ::
+               (MonadIO m) => Maybe Float -> Maybe Float -> m WebKitPoint
+newWebKitPoint x y
+  = liftIO
+      (js_newWebKitPoint (maybeToOptional x) (maybeToOptional y))
  
 foreign import javascript unsafe "$1[\"x\"] = $2;" js_setX ::
         WebKitPoint -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPoint.x Mozilla WebKitPoint.x documentation> 
 setX :: (MonadIO m) => WebKitPoint -> Float -> m ()
-setX self val = liftIO (js_setX (self) val)
+setX self val = liftIO (js_setX self val)
  
 foreign import javascript unsafe "$1[\"x\"]" js_getX ::
         WebKitPoint -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPoint.x Mozilla WebKitPoint.x documentation> 
 getX :: (MonadIO m) => WebKitPoint -> m Float
-getX self = liftIO (js_getX (self))
+getX self = liftIO (js_getX self)
  
 foreign import javascript unsafe "$1[\"y\"] = $2;" js_setY ::
         WebKitPoint -> Float -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPoint.y Mozilla WebKitPoint.y documentation> 
 setY :: (MonadIO m) => WebKitPoint -> Float -> m ()
-setY self val = liftIO (js_setY (self) val)
+setY self val = liftIO (js_setY self val)
  
 foreign import javascript unsafe "$1[\"y\"]" js_getY ::
         WebKitPoint -> IO Float
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPoint.y Mozilla WebKitPoint.y documentation> 
 getY :: (MonadIO m) => WebKitPoint -> m Float
-getY self = liftIO (js_getY (self))
+getY self = liftIO (js_getY self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitSubtleCrypto.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitSubtleCrypto.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitSubtleCrypto.hs
@@ -0,0 +1,335 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.WebKitSubtleCrypto
+       (js_encrypt, encrypt, encrypt_, js_decrypt, decrypt, decrypt_,
+        js_sign, sign, sign_, js_verify, verify, verify_, js_digest,
+        digest, digest_, js_generateKey, generateKey, generateKey_,
+        js_importKey, importKey, importKey_, js_exportKey, exportKey,
+        exportKey_, js_wrapKey, wrapKey, wrapKey_, js_unwrapKey, unwrapKey,
+        unwrapKey_, WebKitSubtleCrypto(..), gTypeWebKitSubtleCrypto)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript interruptible
+        "$1[\"encrypt\"]($2, $3, $4).\nthen($c);" js_encrypt ::
+        WebKitSubtleCrypto ->
+          JSString -> CryptoKey -> JSVal -> IO ArrayBuffer
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.encrypt Mozilla WebKitSubtleCrypto.encrypt documentation> 
+encrypt ::
+        (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
+          WebKitSubtleCrypto ->
+            algorithm -> CryptoKey -> [data'] -> m ArrayBuffer
+encrypt self algorithm key data'
+  = liftIO
+      (toJSVal data' >>=
+         \ data'' -> js_encrypt self (toJSString algorithm) key data'')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.encrypt Mozilla WebKitSubtleCrypto.encrypt documentation> 
+encrypt_ ::
+         (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
+           WebKitSubtleCrypto -> algorithm -> CryptoKey -> [data'] -> m ()
+encrypt_ self algorithm key data'
+  = liftIO
+      (void
+         (toJSVal data' >>=
+            \ data'' -> js_encrypt self (toJSString algorithm) key data''))
+ 
+foreign import javascript interruptible
+        "$1[\"decrypt\"]($2, $3, $4).\nthen($c);" js_decrypt ::
+        WebKitSubtleCrypto ->
+          JSString -> CryptoKey -> JSVal -> IO ArrayBuffer
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.decrypt Mozilla WebKitSubtleCrypto.decrypt documentation> 
+decrypt ::
+        (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
+          WebKitSubtleCrypto ->
+            algorithm -> CryptoKey -> [data'] -> m ArrayBuffer
+decrypt self algorithm key data'
+  = liftIO
+      (toJSVal data' >>=
+         \ data'' -> js_decrypt self (toJSString algorithm) key data'')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.decrypt Mozilla WebKitSubtleCrypto.decrypt documentation> 
+decrypt_ ::
+         (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
+           WebKitSubtleCrypto -> algorithm -> CryptoKey -> [data'] -> m ()
+decrypt_ self algorithm key data'
+  = liftIO
+      (void
+         (toJSVal data' >>=
+            \ data'' -> js_decrypt self (toJSString algorithm) key data''))
+ 
+foreign import javascript interruptible
+        "$1[\"sign\"]($2, $3, $4).then($c);" js_sign ::
+        WebKitSubtleCrypto ->
+          JSString -> CryptoKey -> JSVal -> IO ArrayBuffer
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.sign Mozilla WebKitSubtleCrypto.sign documentation> 
+sign ::
+     (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
+       WebKitSubtleCrypto ->
+         algorithm -> CryptoKey -> [data'] -> m ArrayBuffer
+sign self algorithm key data'
+  = liftIO
+      (toJSVal data' >>=
+         \ data'' -> js_sign self (toJSString algorithm) key data'')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.sign Mozilla WebKitSubtleCrypto.sign documentation> 
+sign_ ::
+      (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
+        WebKitSubtleCrypto -> algorithm -> CryptoKey -> [data'] -> m ()
+sign_ self algorithm key data'
+  = liftIO
+      (void
+         (toJSVal data' >>=
+            \ data'' -> js_sign self (toJSString algorithm) key data''))
+ 
+foreign import javascript interruptible
+        "$1[\"verify\"]($2, $3, $4, $5).\nthen($c);" js_verify ::
+        WebKitSubtleCrypto ->
+          JSString -> CryptoKey -> CryptoOperationData -> JSVal -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.verify Mozilla WebKitSubtleCrypto.verify documentation> 
+verify ::
+       (MonadIO m, ToJSString algorithm, IsCryptoOperationData signature,
+        IsCryptoOperationData data') =>
+         WebKitSubtleCrypto ->
+           algorithm -> CryptoKey -> signature -> [data'] -> m Bool
+verify self algorithm key signature data'
+  = liftIO
+      (toJSVal data' >>=
+         \ data'' ->
+           js_verify self (toJSString algorithm) key
+             (toCryptoOperationData signature)
+             data'')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.verify Mozilla WebKitSubtleCrypto.verify documentation> 
+verify_ ::
+        (MonadIO m, ToJSString algorithm, IsCryptoOperationData signature,
+         IsCryptoOperationData data') =>
+          WebKitSubtleCrypto ->
+            algorithm -> CryptoKey -> signature -> [data'] -> m ()
+verify_ self algorithm key signature data'
+  = liftIO
+      (void
+         (toJSVal data' >>=
+            \ data'' ->
+              js_verify self (toJSString algorithm) key
+                (toCryptoOperationData signature)
+                data''))
+ 
+foreign import javascript interruptible
+        "$1[\"digest\"]($2, $3).then($c);" js_digest ::
+        WebKitSubtleCrypto -> JSString -> JSVal -> IO ArrayBuffer
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.digest Mozilla WebKitSubtleCrypto.digest documentation> 
+digest ::
+       (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
+         WebKitSubtleCrypto -> algorithm -> [data'] -> m ArrayBuffer
+digest self algorithm data'
+  = liftIO
+      (toJSVal data' >>=
+         \ data'' -> js_digest self (toJSString algorithm) data'')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.digest Mozilla WebKitSubtleCrypto.digest documentation> 
+digest_ ::
+        (MonadIO m, ToJSString algorithm, IsCryptoOperationData data') =>
+          WebKitSubtleCrypto -> algorithm -> [data'] -> m ()
+digest_ self algorithm data'
+  = liftIO
+      (void
+         (toJSVal data' >>=
+            \ data'' -> js_digest self (toJSString algorithm) data''))
+ 
+foreign import javascript interruptible
+        "$1[\"generateKey\"]($2, $3, $4).\nthen($c);" js_generateKey ::
+        WebKitSubtleCrypto ->
+          JSString -> Bool -> JSVal -> IO CryptoKeyOrKeyPair
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.generateKey Mozilla WebKitSubtleCrypto.generateKey documentation> 
+generateKey ::
+            (MonadIO m, ToJSString algorithm) =>
+              WebKitSubtleCrypto ->
+                algorithm -> Bool -> [CryptoKeyUsage] -> m CryptoKeyOrKeyPair
+generateKey self algorithm extractable keyUsages
+  = liftIO
+      (toJSVal keyUsages >>=
+         \ keyUsages' ->
+           js_generateKey self (toJSString algorithm) extractable keyUsages')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.generateKey Mozilla WebKitSubtleCrypto.generateKey documentation> 
+generateKey_ ::
+             (MonadIO m, ToJSString algorithm) =>
+               WebKitSubtleCrypto -> algorithm -> Bool -> [CryptoKeyUsage] -> m ()
+generateKey_ self algorithm extractable keyUsages
+  = liftIO
+      (void
+         (toJSVal keyUsages >>=
+            \ keyUsages' ->
+              js_generateKey self (toJSString algorithm) extractable keyUsages'))
+ 
+foreign import javascript interruptible
+        "$1[\"importKey\"]($2, $3, $4, $5,\n$6).\nthen($c);" js_importKey
+        ::
+        WebKitSubtleCrypto ->
+          JSString ->
+            CryptoOperationData ->
+              Optional JSString -> Bool -> JSVal -> IO CryptoKey
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.importKey Mozilla WebKitSubtleCrypto.importKey documentation> 
+importKey ::
+          (MonadIO m, ToJSString format, IsCryptoOperationData keyData,
+           ToJSString algorithm) =>
+            WebKitSubtleCrypto ->
+              format ->
+                keyData ->
+                  Maybe algorithm -> Bool -> [CryptoKeyUsage] -> m CryptoKey
+importKey self format keyData algorithm extractable keyUsages
+  = liftIO
+      (toJSVal keyUsages >>=
+         \ keyUsages' ->
+           js_importKey self (toJSString format)
+             (toCryptoOperationData keyData)
+             (toOptionalJSString algorithm)
+             extractable
+             keyUsages')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.importKey Mozilla WebKitSubtleCrypto.importKey documentation> 
+importKey_ ::
+           (MonadIO m, ToJSString format, IsCryptoOperationData keyData,
+            ToJSString algorithm) =>
+             WebKitSubtleCrypto ->
+               format ->
+                 keyData -> Maybe algorithm -> Bool -> [CryptoKeyUsage] -> m ()
+importKey_ self format keyData algorithm extractable keyUsages
+  = liftIO
+      (void
+         (toJSVal keyUsages >>=
+            \ keyUsages' ->
+              js_importKey self (toJSString format)
+                (toCryptoOperationData keyData)
+                (toOptionalJSString algorithm)
+                extractable
+                keyUsages'))
+ 
+foreign import javascript interruptible
+        "$1[\"exportKey\"]($2, $3).\nthen($c);" js_exportKey ::
+        WebKitSubtleCrypto -> JSString -> CryptoKey -> IO ArrayBuffer
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.exportKey Mozilla WebKitSubtleCrypto.exportKey documentation> 
+exportKey ::
+          (MonadIO m, ToJSString format) =>
+            WebKitSubtleCrypto -> format -> CryptoKey -> m ArrayBuffer
+exportKey self format key
+  = liftIO (js_exportKey self (toJSString format) key)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.exportKey Mozilla WebKitSubtleCrypto.exportKey documentation> 
+exportKey_ ::
+           (MonadIO m, ToJSString format) =>
+             WebKitSubtleCrypto -> format -> CryptoKey -> m ()
+exportKey_ self format key
+  = liftIO (void (js_exportKey self (toJSString format) key))
+ 
+foreign import javascript interruptible
+        "$1[\"wrapKey\"]($2, $3, $4, $5).\nthen($c);" js_wrapKey ::
+        WebKitSubtleCrypto ->
+          JSString -> CryptoKey -> CryptoKey -> JSString -> IO ArrayBuffer
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.wrapKey Mozilla WebKitSubtleCrypto.wrapKey documentation> 
+wrapKey ::
+        (MonadIO m, ToJSString format, ToJSString wrapAlgorithm) =>
+          WebKitSubtleCrypto ->
+            format -> CryptoKey -> CryptoKey -> wrapAlgorithm -> m ArrayBuffer
+wrapKey self format key wrappingKey wrapAlgorithm
+  = liftIO
+      (js_wrapKey self (toJSString format) key wrappingKey
+         (toJSString wrapAlgorithm))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.wrapKey Mozilla WebKitSubtleCrypto.wrapKey documentation> 
+wrapKey_ ::
+         (MonadIO m, ToJSString format, ToJSString wrapAlgorithm) =>
+           WebKitSubtleCrypto ->
+             format -> CryptoKey -> CryptoKey -> wrapAlgorithm -> m ()
+wrapKey_ self format key wrappingKey wrapAlgorithm
+  = liftIO
+      (void
+         (js_wrapKey self (toJSString format) key wrappingKey
+            (toJSString wrapAlgorithm)))
+ 
+foreign import javascript interruptible
+        "$1[\"unwrapKey\"]($2, $3, $4, $5,\n$6, $7, $8).\nthen($c);"
+        js_unwrapKey ::
+        WebKitSubtleCrypto ->
+          JSString ->
+            CryptoOperationData ->
+              CryptoKey ->
+                JSString -> Optional JSString -> Bool -> JSVal -> IO CryptoKey
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.unwrapKey Mozilla WebKitSubtleCrypto.unwrapKey documentation> 
+unwrapKey ::
+          (MonadIO m, ToJSString format, IsCryptoOperationData wrappedKey,
+           ToJSString unwrapAlgorithm, ToJSString unwrappedKeyAlgorithm) =>
+            WebKitSubtleCrypto ->
+              format ->
+                wrappedKey ->
+                  CryptoKey ->
+                    unwrapAlgorithm ->
+                      Maybe unwrappedKeyAlgorithm ->
+                        Bool -> [CryptoKeyUsage] -> m CryptoKey
+unwrapKey self format wrappedKey unwrappingKey unwrapAlgorithm
+  unwrappedKeyAlgorithm extractable keyUsages
+  = liftIO
+      (toJSVal keyUsages >>=
+         \ keyUsages' ->
+           js_unwrapKey self (toJSString format)
+             (toCryptoOperationData wrappedKey)
+             unwrappingKey
+             (toJSString unwrapAlgorithm)
+             (toOptionalJSString unwrappedKeyAlgorithm)
+             extractable
+             keyUsages')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto.unwrapKey Mozilla WebKitSubtleCrypto.unwrapKey documentation> 
+unwrapKey_ ::
+           (MonadIO m, ToJSString format, IsCryptoOperationData wrappedKey,
+            ToJSString unwrapAlgorithm, ToJSString unwrappedKeyAlgorithm) =>
+             WebKitSubtleCrypto ->
+               format ->
+                 wrappedKey ->
+                   CryptoKey ->
+                     unwrapAlgorithm ->
+                       Maybe unwrappedKeyAlgorithm -> Bool -> [CryptoKeyUsage] -> m ()
+unwrapKey_ self format wrappedKey unwrappingKey unwrapAlgorithm
+  unwrappedKeyAlgorithm extractable keyUsages
+  = liftIO
+      (void
+         (toJSVal keyUsages >>=
+            \ keyUsages' ->
+              js_unwrapKey self (toJSString format)
+                (toCryptoOperationData wrappedKey)
+                unwrappingKey
+                (toJSString unwrapAlgorithm)
+                (toOptionalJSString unwrappedKeyAlgorithm)
+                extractable
+                keyUsages'))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebKitTransitionEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/WebKitTransitionEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebKitTransitionEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebKitTransitionEvent.hs
@@ -4,7 +4,8 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WebKitTransitionEvent
-       (js_getPropertyName, getPropertyName, js_getElapsedTime,
+       (js_newWebKitTransitionEvent, newWebKitTransitionEvent,
+        js_getPropertyName, getPropertyName, js_getElapsedTime,
         getElapsedTime, js_getPseudoElement, getPseudoElement,
         WebKitTransitionEvent(..), gTypeWebKitTransitionEvent)
        where
@@ -12,7 +13,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,11 +22,27 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript unsafe
+        "new window[\"WebKitTransitionEvent\"]($1,\n$2)"
+        js_newWebKitTransitionEvent ::
+        JSString ->
+          Optional WebKitTransitionEventInit -> IO WebKitTransitionEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitTransitionEvent Mozilla WebKitTransitionEvent documentation> 
+newWebKitTransitionEvent ::
+                         (MonadIO m, ToJSString type') =>
+                           type' -> Maybe WebKitTransitionEventInit -> m WebKitTransitionEvent
+newWebKitTransitionEvent type' eventInitDict
+  = liftIO
+      (js_newWebKitTransitionEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
 foreign import javascript unsafe "$1[\"propertyName\"]"
         js_getPropertyName :: WebKitTransitionEvent -> IO JSString
 
@@ -34,14 +51,14 @@
                 (MonadIO m, FromJSString result) =>
                   WebKitTransitionEvent -> m result
 getPropertyName self
-  = liftIO (fromJSString <$> (js_getPropertyName (self)))
+  = liftIO (fromJSString <$> (js_getPropertyName self))
  
 foreign import javascript unsafe "$1[\"elapsedTime\"]"
         js_getElapsedTime :: WebKitTransitionEvent -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebKitTransitionEvent.elapsedTime Mozilla WebKitTransitionEvent.elapsedTime documentation> 
 getElapsedTime :: (MonadIO m) => WebKitTransitionEvent -> m Double
-getElapsedTime self = liftIO (js_getElapsedTime (self))
+getElapsedTime self = liftIO (js_getElapsedTime self)
  
 foreign import javascript unsafe "$1[\"pseudoElement\"]"
         js_getPseudoElement :: WebKitTransitionEvent -> IO JSString
@@ -51,4 +68,4 @@
                  (MonadIO m, FromJSString result) =>
                    WebKitTransitionEvent -> m result
 getPseudoElement self
-  = liftIO (fromJSString <$> (js_getPseudoElement (self)))
+  = liftIO (fromJSString <$> (js_getPseudoElement self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WebSocket.hs b/src/GHCJS/DOM/JSFFI/Generated/WebSocket.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WebSocket.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WebSocket.hs
@@ -20,7 +20,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -29,6 +29,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -41,7 +42,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket Mozilla WebSocket documentation> 
 newWebSocket ::
              (MonadIO m, ToJSString url, ToJSString protocols) =>
-               url -> Maybe [protocols] -> m WebSocket
+               url -> [protocols] -> m WebSocket
 newWebSocket url protocols
   = liftIO
       (toJSVal protocols >>=
@@ -59,36 +60,28 @@
   = liftIO (js_newWebSocket' (toJSString url) (toJSString protocol))
  
 foreign import javascript unsafe "$1[\"send\"]($2)" js_send ::
-        WebSocket -> Nullable ArrayBuffer -> IO ()
+        WebSocket -> ArrayBuffer -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.send Mozilla WebSocket.send documentation> 
 send ::
-     (MonadIO m, IsArrayBuffer data') =>
-       WebSocket -> Maybe data' -> m ()
-send self data'
-  = liftIO
-      (js_send (self) (maybeToNullable (fmap toArrayBuffer data')))
+     (MonadIO m, IsArrayBuffer data') => WebSocket -> data' -> m ()
+send self data' = liftIO (js_send self (toArrayBuffer data'))
  
 foreign import javascript unsafe "$1[\"send\"]($2)" js_sendView ::
-        WebSocket -> Nullable ArrayBufferView -> IO ()
+        WebSocket -> ArrayBufferView -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.send Mozilla WebSocket.send documentation> 
 sendView ::
-         (MonadIO m, IsArrayBufferView data') =>
-           WebSocket -> Maybe data' -> m ()
+         (MonadIO m, IsArrayBufferView data') => WebSocket -> data' -> m ()
 sendView self data'
-  = liftIO
-      (js_sendView (self)
-         (maybeToNullable (fmap toArrayBufferView data')))
+  = liftIO (js_sendView self (toArrayBufferView data'))
  
 foreign import javascript unsafe "$1[\"send\"]($2)" js_sendBlob ::
-        WebSocket -> Nullable Blob -> IO ()
+        WebSocket -> Blob -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.send Mozilla WebSocket.send documentation> 
-sendBlob ::
-         (MonadIO m, IsBlob data') => WebSocket -> Maybe data' -> m ()
-sendBlob self data'
-  = liftIO (js_sendBlob (self) (maybeToNullable (fmap toBlob data')))
+sendBlob :: (MonadIO m, IsBlob data') => WebSocket -> data' -> m ()
+sendBlob self data' = liftIO (js_sendBlob self (toBlob data'))
  
 foreign import javascript unsafe "$1[\"send\"]($2)" js_sendString
         :: WebSocket -> JSString -> IO ()
@@ -97,17 +90,18 @@
 sendString ::
            (MonadIO m, ToJSString data') => WebSocket -> data' -> m ()
 sendString self data'
-  = liftIO (js_sendString (self) (toJSString data'))
+  = liftIO (js_sendString self (toJSString data'))
  
 foreign import javascript unsafe "$1[\"close\"]($2, $3)" js_close
-        :: WebSocket -> Word -> JSString -> IO ()
+        :: WebSocket -> Optional Word -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.close Mozilla WebSocket.close documentation> 
 close ::
       (MonadIO m, ToJSString reason) =>
-        WebSocket -> Word -> reason -> m ()
+        WebSocket -> Maybe Word -> Maybe reason -> m ()
 close self code reason
-  = liftIO (js_close (self) code (toJSString reason))
+  = liftIO
+      (js_close self (maybeToOptional code) (toOptionalJSString reason))
 pattern CONNECTING = 0
 pattern OPEN = 1
 pattern CLOSING = 2
@@ -118,21 +112,21 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.url Mozilla WebSocket.url documentation> 
 getUrl :: (MonadIO m, FromJSString result) => WebSocket -> m result
-getUrl self = liftIO (fromJSString <$> (js_getUrl (self)))
+getUrl self = liftIO (fromJSString <$> (js_getUrl self))
  
 foreign import javascript unsafe "$1[\"readyState\"]"
         js_getReadyState :: WebSocket -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.readyState Mozilla WebSocket.readyState documentation> 
 getReadyState :: (MonadIO m) => WebSocket -> m Word
-getReadyState self = liftIO (js_getReadyState (self))
+getReadyState self = liftIO (js_getReadyState self)
  
 foreign import javascript unsafe "$1[\"bufferedAmount\"]"
         js_getBufferedAmount :: WebSocket -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.bufferedAmount Mozilla WebSocket.bufferedAmount documentation> 
 getBufferedAmount :: (MonadIO m) => WebSocket -> m Word
-getBufferedAmount self = liftIO (js_getBufferedAmount (self))
+getBufferedAmount self = liftIO (js_getBufferedAmount self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.onopen Mozilla WebSocket.onopen documentation> 
 open :: EventName WebSocket Event
@@ -157,7 +151,7 @@
 getProtocol ::
             (MonadIO m, FromJSString result) => WebSocket -> m (Maybe result)
 getProtocol self
-  = liftIO (fromMaybeJSString <$> (js_getProtocol (self)))
+  = liftIO (fromMaybeJSString <$> (js_getProtocol self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.protocol Mozilla WebSocket.protocol documentation> 
 getProtocolUnsafe ::
@@ -165,14 +159,14 @@
                     WebSocket -> m result
 getProtocolUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getProtocol (self))) >>=
+      ((fromMaybeJSString <$> (js_getProtocol self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.protocol Mozilla WebSocket.protocol documentation> 
 getProtocolUnchecked ::
                      (MonadIO m, FromJSString result) => WebSocket -> m result
 getProtocolUnchecked self
-  = liftIO (fromJust . fromMaybeJSString <$> (js_getProtocol (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getProtocol self))
  
 foreign import javascript unsafe "$1[\"extensions\"]"
         js_getExtensions :: WebSocket -> IO (Nullable JSString)
@@ -181,7 +175,7 @@
 getExtensions ::
               (MonadIO m, FromJSString result) => WebSocket -> m (Maybe result)
 getExtensions self
-  = liftIO (fromMaybeJSString <$> (js_getExtensions (self)))
+  = liftIO (fromMaybeJSString <$> (js_getExtensions self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.extensions Mozilla WebSocket.extensions documentation> 
 getExtensionsUnsafe ::
@@ -189,15 +183,14 @@
                       WebSocket -> m result
 getExtensionsUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getExtensions (self))) >>=
+      ((fromMaybeJSString <$> (js_getExtensions self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket.extensions Mozilla WebSocket.extensions documentation> 
 getExtensionsUnchecked ::
                        (MonadIO m, FromJSString result) => WebSocket -> m result
 getExtensionsUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getExtensions (self)))
+  = liftIO (fromJust . fromMaybeJSString <$> (js_getExtensions self))
  
 foreign import javascript unsafe "$1[\"binaryType\"] = $2;"
         js_setBinaryType :: WebSocket -> JSString -> IO ()
@@ -206,7 +199,7 @@
 setBinaryType ::
               (MonadIO m, ToJSString val) => WebSocket -> val -> m ()
 setBinaryType self val
-  = liftIO (js_setBinaryType (self) (toJSString val))
+  = liftIO (js_setBinaryType self (toJSString val))
  
 foreign import javascript unsafe "$1[\"binaryType\"]"
         js_getBinaryType :: WebSocket -> IO JSString
@@ -215,4 +208,4 @@
 getBinaryType ::
               (MonadIO m, FromJSString result) => WebSocket -> m result
 getBinaryType self
-  = liftIO (fromJSString <$> (js_getBinaryType (self)))
+  = liftIO (fromJSString <$> (js_getBinaryType self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WheelEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/WheelEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WheelEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WheelEvent.hs
@@ -4,12 +4,12 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WheelEvent
-       (js_initWebKitWheelEvent, initWebKitWheelEvent,
-        pattern DOM_DELTA_PIXEL, pattern DOM_DELTA_LINE,
-        pattern DOM_DELTA_PAGE, js_getDeltaX, getDeltaX, js_getDeltaY,
-        getDeltaY, js_getDeltaZ, getDeltaZ, js_getDeltaMode, getDeltaMode,
-        js_getWheelDeltaX, getWheelDeltaX, js_getWheelDeltaY,
-        getWheelDeltaY, js_getWheelDelta, getWheelDelta,
+       (js_newWheelEvent, newWheelEvent, js_initWebKitWheelEvent,
+        initWebKitWheelEvent, pattern DOM_DELTA_PIXEL,
+        pattern DOM_DELTA_LINE, pattern DOM_DELTA_PAGE, js_getDeltaX,
+        getDeltaX, js_getDeltaY, getDeltaY, js_getDeltaZ, getDeltaZ,
+        js_getDeltaMode, getDeltaMode, js_getWheelDeltaX, getWheelDeltaX,
+        js_getWheelDeltaY, getWheelDeltaY, js_getWheelDelta, getWheelDelta,
         js_getWebkitDirectionInvertedFromDevice,
         getWebkitDirectionInvertedFromDevice, WheelEvent(..),
         gTypeWheelEvent)
@@ -18,7 +18,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -27,37 +27,57 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe
+        "new window[\"WheelEvent\"]($1, $2)" js_newWheelEvent ::
+        JSString -> Optional WheelEventInit -> IO WheelEvent
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent Mozilla WheelEvent documentation> 
+newWheelEvent ::
+              (MonadIO m, ToJSString type') =>
+                type' -> Maybe WheelEventInit -> m WheelEvent
+newWheelEvent type' eventInitDict
+  = liftIO
+      (js_newWheelEvent (toJSString type')
+         (maybeToOptional eventInitDict))
+ 
+foreign import javascript unsafe
         "$1[\"initWebKitWheelEvent\"]($2,\n$3, $4, $5, $6, $7, $8, $9, $10,\n$11, $12)"
         js_initWebKitWheelEvent ::
         WheelEvent ->
-          Int ->
-            Int ->
-              Nullable Window ->
-                Int -> Int -> Int -> Int -> Bool -> Bool -> Bool -> Bool -> IO ()
+          Optional Int ->
+            Optional Int ->
+              Optional Window ->
+                Optional Int ->
+                  Optional Int ->
+                    Optional Int ->
+                      Optional Int -> Bool -> Bool -> Bool -> Bool -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent.initWebKitWheelEvent Mozilla WheelEvent.initWebKitWheelEvent documentation> 
 initWebKitWheelEvent ::
                      (MonadIO m) =>
                        WheelEvent ->
-                         Int ->
-                           Int ->
+                         Maybe Int ->
+                           Maybe Int ->
                              Maybe Window ->
-                               Int -> Int -> Int -> Int -> Bool -> Bool -> Bool -> Bool -> m ()
+                               Maybe Int ->
+                                 Maybe Int ->
+                                   Maybe Int -> Maybe Int -> Bool -> Bool -> Bool -> Bool -> m ()
 initWebKitWheelEvent self wheelDeltaX wheelDeltaY view screenX
   screenY clientX clientY ctrlKey altKey shiftKey metaKey
   = liftIO
-      (js_initWebKitWheelEvent (self) wheelDeltaX wheelDeltaY
-         (maybeToNullable view)
-         screenX
-         screenY
-         clientX
-         clientY
+      (js_initWebKitWheelEvent self (maybeToOptional wheelDeltaX)
+         (maybeToOptional wheelDeltaY)
+         (maybeToOptional view)
+         (maybeToOptional screenX)
+         (maybeToOptional screenY)
+         (maybeToOptional clientX)
+         (maybeToOptional clientY)
          ctrlKey
          altKey
          shiftKey
@@ -71,49 +91,49 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent.deltaX Mozilla WheelEvent.deltaX documentation> 
 getDeltaX :: (MonadIO m) => WheelEvent -> m Double
-getDeltaX self = liftIO (js_getDeltaX (self))
+getDeltaX self = liftIO (js_getDeltaX self)
  
 foreign import javascript unsafe "$1[\"deltaY\"]" js_getDeltaY ::
         WheelEvent -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent.deltaY Mozilla WheelEvent.deltaY documentation> 
 getDeltaY :: (MonadIO m) => WheelEvent -> m Double
-getDeltaY self = liftIO (js_getDeltaY (self))
+getDeltaY self = liftIO (js_getDeltaY self)
  
 foreign import javascript unsafe "$1[\"deltaZ\"]" js_getDeltaZ ::
         WheelEvent -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent.deltaZ Mozilla WheelEvent.deltaZ documentation> 
 getDeltaZ :: (MonadIO m) => WheelEvent -> m Double
-getDeltaZ self = liftIO (js_getDeltaZ (self))
+getDeltaZ self = liftIO (js_getDeltaZ self)
  
 foreign import javascript unsafe "$1[\"deltaMode\"]"
         js_getDeltaMode :: WheelEvent -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent.deltaMode Mozilla WheelEvent.deltaMode documentation> 
 getDeltaMode :: (MonadIO m) => WheelEvent -> m Word
-getDeltaMode self = liftIO (js_getDeltaMode (self))
+getDeltaMode self = liftIO (js_getDeltaMode self)
  
 foreign import javascript unsafe "$1[\"wheelDeltaX\"]"
         js_getWheelDeltaX :: WheelEvent -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent.wheelDeltaX Mozilla WheelEvent.wheelDeltaX documentation> 
 getWheelDeltaX :: (MonadIO m) => WheelEvent -> m Int
-getWheelDeltaX self = liftIO (js_getWheelDeltaX (self))
+getWheelDeltaX self = liftIO (js_getWheelDeltaX self)
  
 foreign import javascript unsafe "$1[\"wheelDeltaY\"]"
         js_getWheelDeltaY :: WheelEvent -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent.wheelDeltaY Mozilla WheelEvent.wheelDeltaY documentation> 
 getWheelDeltaY :: (MonadIO m) => WheelEvent -> m Int
-getWheelDeltaY self = liftIO (js_getWheelDeltaY (self))
+getWheelDeltaY self = liftIO (js_getWheelDeltaY self)
  
 foreign import javascript unsafe "$1[\"wheelDelta\"]"
         js_getWheelDelta :: WheelEvent -> IO Int
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent.wheelDelta Mozilla WheelEvent.wheelDelta documentation> 
 getWheelDelta :: (MonadIO m) => WheelEvent -> m Int
-getWheelDelta self = liftIO (js_getWheelDelta (self))
+getWheelDelta self = liftIO (js_getWheelDelta self)
  
 foreign import javascript unsafe
         "($1[\"webkitDirectionInvertedFromDevice\"] ? 1 : 0)"
@@ -123,4 +143,4 @@
 getWebkitDirectionInvertedFromDevice ::
                                      (MonadIO m) => WheelEvent -> m Bool
 getWebkitDirectionInvertedFromDevice self
-  = liftIO (js_getWebkitDirectionInvertedFromDevice (self))
+  = liftIO (js_getWebkitDirectionInvertedFromDevice self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Window.hs b/src/GHCJS/DOM/JSFFI/Generated/Window.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Window.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Window.hs
@@ -4,2047 +4,1229 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Window
-       (js_openDatabase, openDatabase, openDatabase_, openDatabaseUnsafe,
-        openDatabaseUnchecked, js_getSelection, getSelection,
-        getSelection_, getSelectionUnsafe, getSelectionUnchecked, js_focus,
-        focus, js_blur, blur, js_close, close, js_print, print, js_stop,
-        stop, js_open, open, open_, openUnsafe, openUnchecked,
-        js_showModalDialog, showModalDialog, showModalDialog_, js_alert,
-        alert, js_confirm, confirm, confirm_, js_prompt, prompt, prompt_,
-        promptUnsafe, promptUnchecked, js_find, find, find_, js_scrollBy,
-        scrollBy, js_scrollTo, scrollTo, js_scroll, scroll, js_moveBy,
-        moveBy, js_moveTo, moveTo, js_resizeBy, resizeBy, js_resizeTo,
-        resizeTo, js_matchMedia, matchMedia, matchMedia_, matchMediaUnsafe,
-        matchMediaUnchecked, js_getComputedStyle, getComputedStyle,
-        getComputedStyle_, getComputedStyleUnsafe,
-        getComputedStyleUnchecked, js_getMatchedCSSRules,
-        getMatchedCSSRules, getMatchedCSSRules_, getMatchedCSSRulesUnsafe,
-        getMatchedCSSRulesUnchecked, js_webkitConvertPointFromPageToNode,
-        webkitConvertPointFromPageToNode,
-        webkitConvertPointFromPageToNode_,
-        webkitConvertPointFromPageToNodeUnsafe,
-        webkitConvertPointFromPageToNodeUnchecked,
-        js_webkitConvertPointFromNodeToPage,
-        webkitConvertPointFromNodeToPage,
-        webkitConvertPointFromNodeToPage_,
-        webkitConvertPointFromNodeToPageUnsafe,
-        webkitConvertPointFromNodeToPageUnchecked, js_postMessage,
-        postMessage, js_requestAnimationFrame, requestAnimationFrame,
-        requestAnimationFrame_, js_cancelAnimationFrame,
-        cancelAnimationFrame, js_webkitRequestAnimationFrame,
-        webkitRequestAnimationFrame, webkitRequestAnimationFrame_,
-        js_webkitCancelAnimationFrame, webkitCancelAnimationFrame,
-        js_webkitCancelRequestAnimationFrame,
-        webkitCancelRequestAnimationFrame, js_captureEvents, captureEvents,
-        js_releaseEvents, releaseEvents, js_getWebkitIndexedDB,
-        getWebkitIndexedDB, getWebkitIndexedDBUnsafe,
-        getWebkitIndexedDBUnchecked, js_getIndexedDB, getIndexedDB,
-        getIndexedDBUnsafe, getIndexedDBUnchecked, js_getWebkitStorageInfo,
-        getWebkitStorageInfo, getWebkitStorageInfoUnsafe,
-        getWebkitStorageInfoUnchecked, js_getSpeechSynthesis,
-        getSpeechSynthesis, getSpeechSynthesisUnsafe,
-        getSpeechSynthesisUnchecked, js_getScreen, getScreen,
-        getScreenUnsafe, getScreenUnchecked, js_getHistory, getHistory,
-        getHistoryUnsafe, getHistoryUnchecked, js_getLocationbar,
-        getLocationbar, getLocationbarUnsafe, getLocationbarUnchecked,
-        js_getMenubar, getMenubar, getMenubarUnsafe, getMenubarUnchecked,
-        js_getPersonalbar, getPersonalbar, getPersonalbarUnsafe,
-        getPersonalbarUnchecked, js_getScrollbars, getScrollbars,
-        getScrollbarsUnsafe, getScrollbarsUnchecked, js_getStatusbar,
-        getStatusbar, getStatusbarUnsafe, getStatusbarUnchecked,
-        js_getToolbar, getToolbar, getToolbarUnsafe, getToolbarUnchecked,
-        js_getNavigator, getNavigator, getNavigatorUnsafe,
-        getNavigatorUnchecked, js_getClientInformation,
-        getClientInformation, getClientInformationUnsafe,
-        getClientInformationUnchecked, js_getCrypto, getCrypto,
-        getCryptoUnsafe, getCryptoUnchecked, js_setLocation, setLocation,
-        js_getLocation, getLocation, getLocationUnsafe,
-        getLocationUnchecked, js_getEvent, getEvent, getEventUnsafe,
-        getEventUnchecked, js_getFrameElement, getFrameElement,
-        getFrameElementUnsafe, getFrameElementUnchecked,
-        js_getOffscreenBuffering, getOffscreenBuffering, js_getOuterHeight,
-        getOuterHeight, js_getOuterWidth, getOuterWidth, js_getInnerHeight,
-        getInnerHeight, js_getInnerWidth, getInnerWidth, js_getScreenX,
-        getScreenX, js_getScreenY, getScreenY, js_getScreenLeft,
-        getScreenLeft, js_getScreenTop, getScreenTop, js_getScrollX,
-        getScrollX, js_getScrollY, getScrollY, js_getPageXOffset,
-        getPageXOffset, js_getPageYOffset, getPageYOffset, js_getClosed,
-        getClosed, js_getLength, getLength, js_setName, setName,
-        js_getName, getName, js_setStatus, setStatus, js_getStatus,
-        getStatus, js_setDefaultStatus, setDefaultStatus,
-        js_getDefaultStatus, getDefaultStatus, js_setDefaultstatus,
-        setDefaultstatus, js_getDefaultstatus, getDefaultstatus,
-        js_getSelf, getSelf, getSelfUnsafe, getSelfUnchecked, js_getWindow,
-        getWindow, getWindowUnsafe, getWindowUnchecked, js_getFrames,
-        getFrames, getFramesUnsafe, getFramesUnchecked, js_getOpener,
-        getOpener, getOpenerUnsafe, getOpenerUnchecked, js_getParent,
-        getParent, getParentUnsafe, getParentUnchecked, js_getTop, getTop,
-        getTopUnsafe, getTopUnchecked, js_getDocument, getDocument,
-        getDocumentUnsafe, getDocumentUnchecked, js_getStyleMedia,
-        getStyleMedia, getStyleMediaUnsafe, getStyleMediaUnchecked,
-        js_getDevicePixelRatio, getDevicePixelRatio,
-        js_getApplicationCache, getApplicationCache,
-        getApplicationCacheUnsafe, getApplicationCacheUnchecked,
-        js_getSessionStorage, getSessionStorage, getSessionStorageUnsafe,
-        getSessionStorageUnchecked, js_getLocalStorage, getLocalStorage,
-        getLocalStorageUnsafe, getLocalStorageUnchecked, js_getOrientation,
-        getOrientation, js_getPerformance, getPerformance,
-        getPerformanceUnsafe, getPerformanceUnchecked, js_getCSS, getCSS,
-        getCSSUnsafe, getCSSUnchecked, abort, beforeUnload, blurEvent,
-        canPlay, canPlayThrough, change, click, contextMenu, dblClick,
-        drag, dragEnd, dragEnter, dragLeave, dragOver, dragStart, drop,
-        durationChange, emptied, ended, error, focusEvent, hashChange,
-        input, invalid, keyDown, keyPress, keyUp, load, loadedData,
-        loadedMetadata, loadStart, message, mouseDown, mouseEnter,
-        mouseLeave, mouseMove, mouseOut, mouseOver, mouseUp, mouseWheel,
-        offline, online, pageHide, pageShow, pause, play, playing,
-        popState, progress, rateChange, resize, scrollEvent, seeked,
-        seeking, select, stalled, storage, submit, suspend, timeUpdate,
-        unload, volumeChange, waiting, wheel, reset, search,
-        webKitAnimationEnd, webKitAnimationIteration, webKitAnimationStart,
-        animationEnd, animationIteration, animationStart,
-        webKitTransitionEnd, transitionEnd, orientationChange, touchStart,
-        touchMove, touchEnd, touchCancel, gestureStart, gestureChange,
-        gestureEnd, deviceMotion, deviceOrientation, webKitDeviceProximity,
-        webKitWillRevealBottom, webKitWillRevealLeft,
-        webKitWillRevealRight, webKitWillRevealTop, Window(..),
-        gTypeWindow)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe
-        "$1[\"openDatabase\"]($2, $3, $4,\n$5, $6)" js_openDatabase ::
-        Window ->
-          JSString ->
-            JSString ->
-              JSString ->
-                Word -> Nullable DatabaseCallback -> IO (Nullable Database)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.openDatabase Mozilla Window.openDatabase documentation> 
-openDatabase ::
-             (MonadIO m, ToJSString name, ToJSString version,
-              ToJSString displayName) =>
-               Window ->
-                 name ->
-                   version ->
-                     displayName -> Word -> Maybe DatabaseCallback -> m (Maybe Database)
-openDatabase self name version displayName estimatedSize
-  creationCallback
-  = liftIO
-      (nullableToMaybe <$>
-         (js_openDatabase (self) (toJSString name) (toJSString version)
-            (toJSString displayName)
-            estimatedSize
-            (maybeToNullable creationCallback)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.openDatabase Mozilla Window.openDatabase documentation> 
-openDatabase_ ::
-              (MonadIO m, ToJSString name, ToJSString version,
-               ToJSString displayName) =>
-                Window ->
-                  name ->
-                    version -> displayName -> Word -> Maybe DatabaseCallback -> m ()
-openDatabase_ self name version displayName estimatedSize
-  creationCallback
-  = liftIO
-      (void
-         (js_openDatabase (self) (toJSString name) (toJSString version)
-            (toJSString displayName)
-            estimatedSize
-            (maybeToNullable creationCallback)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.openDatabase Mozilla Window.openDatabase documentation> 
-openDatabaseUnsafe ::
-                   (MonadIO m, ToJSString name, ToJSString version,
-                    ToJSString displayName, HasCallStack) =>
-                     Window ->
-                       name ->
-                         version ->
-                           displayName -> Word -> Maybe DatabaseCallback -> m Database
-openDatabaseUnsafe self name version displayName estimatedSize
-  creationCallback
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_openDatabase (self) (toJSString name) (toJSString version)
-             (toJSString displayName)
-             estimatedSize
-             (maybeToNullable creationCallback)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.openDatabase Mozilla Window.openDatabase documentation> 
-openDatabaseUnchecked ::
-                      (MonadIO m, ToJSString name, ToJSString version,
-                       ToJSString displayName) =>
-                        Window ->
-                          name ->
-                            version ->
-                              displayName -> Word -> Maybe DatabaseCallback -> m Database
-openDatabaseUnchecked self name version displayName estimatedSize
-  creationCallback
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_openDatabase (self) (toJSString name) (toJSString version)
-            (toJSString displayName)
-            estimatedSize
-            (maybeToNullable creationCallback)))
- 
-foreign import javascript unsafe "$1[\"getSelection\"]()"
-        js_getSelection :: Window -> IO (Nullable Selection)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection Mozilla Window.getSelection documentation> 
-getSelection :: (MonadIO m) => Window -> m (Maybe Selection)
-getSelection self
-  = liftIO (nullableToMaybe <$> (js_getSelection (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection Mozilla Window.getSelection documentation> 
-getSelection_ :: (MonadIO m) => Window -> m ()
-getSelection_ self = liftIO (void (js_getSelection (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection Mozilla Window.getSelection documentation> 
-getSelectionUnsafe ::
-                   (MonadIO m, HasCallStack) => Window -> m Selection
-getSelectionUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSelection (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection Mozilla Window.getSelection documentation> 
-getSelectionUnchecked :: (MonadIO m) => Window -> m Selection
-getSelectionUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getSelection (self)))
- 
-foreign import javascript unsafe "$1[\"focus\"]()" js_focus ::
-        Window -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.focus Mozilla Window.focus documentation> 
-focus :: (MonadIO m) => Window -> m ()
-focus self = liftIO (js_focus (self))
- 
-foreign import javascript unsafe "$1[\"blur\"]()" js_blur ::
-        Window -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.blur Mozilla Window.blur documentation> 
-blur :: (MonadIO m) => Window -> m ()
-blur self = liftIO (js_blur (self))
- 
-foreign import javascript unsafe "$1[\"close\"]()" js_close ::
-        Window -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.close Mozilla Window.close documentation> 
-close :: (MonadIO m) => Window -> m ()
-close self = liftIO (js_close (self))
- 
-foreign import javascript unsafe "$1[\"print\"]()" js_print ::
-        Window -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.print Mozilla Window.print documentation> 
-print :: (MonadIO m) => Window -> m ()
-print self = liftIO (js_print (self))
- 
-foreign import javascript unsafe "$1[\"stop\"]()" js_stop ::
-        Window -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.stop Mozilla Window.stop documentation> 
-stop :: (MonadIO m) => Window -> m ()
-stop self = liftIO (js_stop (self))
- 
-foreign import javascript unsafe "$1[\"open\"]($2, $3, $4)" js_open
-        ::
-        Window -> JSString -> JSString -> JSString -> IO (Nullable Window)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.open Mozilla Window.open documentation> 
-open ::
-     (MonadIO m, ToJSString url, ToJSString name, ToJSString options) =>
-       Window -> url -> name -> options -> m (Maybe Window)
-open self url name options
-  = liftIO
-      (nullableToMaybe <$>
-         (js_open (self) (toJSString url) (toJSString name)
-            (toJSString options)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.open Mozilla Window.open documentation> 
-open_ ::
-      (MonadIO m, ToJSString url, ToJSString name, ToJSString options) =>
-        Window -> url -> name -> options -> m ()
-open_ self url name options
-  = liftIO
-      (void
-         (js_open (self) (toJSString url) (toJSString name)
-            (toJSString options)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.open Mozilla Window.open documentation> 
-openUnsafe ::
-           (MonadIO m, ToJSString url, ToJSString name, ToJSString options,
-            HasCallStack) =>
-             Window -> url -> name -> options -> m Window
-openUnsafe self url name options
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_open (self) (toJSString url) (toJSString name)
-             (toJSString options)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.open Mozilla Window.open documentation> 
-openUnchecked ::
-              (MonadIO m, ToJSString url, ToJSString name, ToJSString options) =>
-                Window -> url -> name -> options -> m Window
-openUnchecked self url name options
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_open (self) (toJSString url) (toJSString name)
-            (toJSString options)))
- 
-foreign import javascript unsafe
-        "$1[\"showModalDialog\"]($2, $3,\n$4)" js_showModalDialog ::
-        Window -> JSString -> JSVal -> JSString -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.showModalDialog Mozilla Window.showModalDialog documentation> 
-showModalDialog ::
-                (MonadIO m, ToJSString url, ToJSString featureArgs) =>
-                  Window -> url -> JSVal -> featureArgs -> m JSVal
-showModalDialog self url dialogArgs featureArgs
-  = liftIO
-      (js_showModalDialog (self) (toJSString url) dialogArgs
-         (toJSString featureArgs))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.showModalDialog Mozilla Window.showModalDialog documentation> 
-showModalDialog_ ::
-                 (MonadIO m, ToJSString url, ToJSString featureArgs) =>
-                   Window -> url -> JSVal -> featureArgs -> m ()
-showModalDialog_ self url dialogArgs featureArgs
-  = liftIO
-      (void
-         (js_showModalDialog (self) (toJSString url) dialogArgs
-            (toJSString featureArgs)))
- 
-foreign import javascript unsafe "$1[\"alert\"]($2)" js_alert ::
-        Window -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.alert Mozilla Window.alert documentation> 
-alert ::
-      (MonadIO m, ToJSString message) => Window -> message -> m ()
-alert self message = liftIO (js_alert (self) (toJSString message))
- 
-foreign import javascript unsafe "($1[\"confirm\"]($2) ? 1 : 0)"
-        js_confirm :: Window -> JSString -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.confirm Mozilla Window.confirm documentation> 
-confirm ::
-        (MonadIO m, ToJSString message) => Window -> message -> m Bool
-confirm self message
-  = liftIO (js_confirm (self) (toJSString message))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.confirm Mozilla Window.confirm documentation> 
-confirm_ ::
-         (MonadIO m, ToJSString message) => Window -> message -> m ()
-confirm_ self message
-  = liftIO (void (js_confirm (self) (toJSString message)))
- 
-foreign import javascript unsafe "$1[\"prompt\"]($2, $3)" js_prompt
-        ::
-        Window -> JSString -> Nullable JSString -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.prompt Mozilla Window.prompt documentation> 
-prompt ::
-       (MonadIO m, ToJSString message, ToJSString defaultValue,
-        FromJSString result) =>
-         Window -> message -> Maybe defaultValue -> m (Maybe result)
-prompt self message defaultValue
-  = liftIO
-      (fromMaybeJSString <$>
-         (js_prompt (self) (toJSString message)
-            (toMaybeJSString defaultValue)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.prompt Mozilla Window.prompt documentation> 
-prompt_ ::
-        (MonadIO m, ToJSString message, ToJSString defaultValue) =>
-          Window -> message -> Maybe defaultValue -> m ()
-prompt_ self message defaultValue
-  = liftIO
-      (void
-         (js_prompt (self) (toJSString message)
-            (toMaybeJSString defaultValue)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.prompt Mozilla Window.prompt documentation> 
-promptUnsafe ::
-             (MonadIO m, ToJSString message, ToJSString defaultValue,
-              HasCallStack, FromJSString result) =>
-               Window -> message -> Maybe defaultValue -> m result
-promptUnsafe self message defaultValue
-  = liftIO
-      ((fromMaybeJSString <$>
-          (js_prompt (self) (toJSString message)
-             (toMaybeJSString defaultValue)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.prompt Mozilla Window.prompt documentation> 
-promptUnchecked ::
-                (MonadIO m, ToJSString message, ToJSString defaultValue,
-                 FromJSString result) =>
-                  Window -> message -> Maybe defaultValue -> m result
-promptUnchecked self message defaultValue
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_prompt (self) (toJSString message)
-            (toMaybeJSString defaultValue)))
- 
-foreign import javascript unsafe
-        "($1[\"find\"]($2, $3, $4, $5, $6,\n$7, $8) ? 1 : 0)" js_find ::
-        Window ->
-          JSString -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.find Mozilla Window.find documentation> 
-find ::
-     (MonadIO m, ToJSString string) =>
-       Window ->
-         string -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> m Bool
-find self string caseSensitive backwards wrap wholeWord
-  searchInFrames showDialog
-  = liftIO
-      (js_find (self) (toJSString string) caseSensitive backwards wrap
-         wholeWord
-         searchInFrames
-         showDialog)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.find Mozilla Window.find documentation> 
-find_ ::
-      (MonadIO m, ToJSString string) =>
-        Window ->
-          string -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> m ()
-find_ self string caseSensitive backwards wrap wholeWord
-  searchInFrames showDialog
-  = liftIO
-      (void
-         (js_find (self) (toJSString string) caseSensitive backwards wrap
-            wholeWord
-            searchInFrames
-            showDialog))
- 
-foreign import javascript unsafe "$1[\"scrollBy\"]($2, $3)"
-        js_scrollBy :: Window -> Int -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollBy Mozilla Window.scrollBy documentation> 
-scrollBy :: (MonadIO m) => Window -> Int -> Int -> m ()
-scrollBy self x y = liftIO (js_scrollBy (self) x y)
- 
-foreign import javascript unsafe "$1[\"scrollTo\"]($2, $3)"
-        js_scrollTo :: Window -> Int -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollTo Mozilla Window.scrollTo documentation> 
-scrollTo :: (MonadIO m) => Window -> Int -> Int -> m ()
-scrollTo self x y = liftIO (js_scrollTo (self) x y)
- 
-foreign import javascript unsafe "$1[\"scroll\"]($2, $3)" js_scroll
-        :: Window -> Int -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scroll Mozilla Window.scroll documentation> 
-scroll :: (MonadIO m) => Window -> Int -> Int -> m ()
-scroll self x y = liftIO (js_scroll (self) x y)
- 
-foreign import javascript unsafe "$1[\"moveBy\"]($2, $3)" js_moveBy
-        :: Window -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.moveBy Mozilla Window.moveBy documentation> 
-moveBy :: (MonadIO m) => Window -> Float -> Float -> m ()
-moveBy self x y = liftIO (js_moveBy (self) x y)
- 
-foreign import javascript unsafe "$1[\"moveTo\"]($2, $3)" js_moveTo
-        :: Window -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.moveTo Mozilla Window.moveTo documentation> 
-moveTo :: (MonadIO m) => Window -> Float -> Float -> m ()
-moveTo self x y = liftIO (js_moveTo (self) x y)
- 
-foreign import javascript unsafe "$1[\"resizeBy\"]($2, $3)"
-        js_resizeBy :: Window -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.resizeBy Mozilla Window.resizeBy documentation> 
-resizeBy :: (MonadIO m) => Window -> Float -> Float -> m ()
-resizeBy self x y = liftIO (js_resizeBy (self) x y)
- 
-foreign import javascript unsafe "$1[\"resizeTo\"]($2, $3)"
-        js_resizeTo :: Window -> Float -> Float -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.resizeTo Mozilla Window.resizeTo documentation> 
-resizeTo :: (MonadIO m) => Window -> Float -> Float -> m ()
-resizeTo self width height
-  = liftIO (js_resizeTo (self) width height)
- 
-foreign import javascript unsafe "$1[\"matchMedia\"]($2)"
-        js_matchMedia :: Window -> JSString -> IO (Nullable MediaQueryList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.matchMedia Mozilla Window.matchMedia documentation> 
-matchMedia ::
-           (MonadIO m, ToJSString query) =>
-             Window -> query -> m (Maybe MediaQueryList)
-matchMedia self query
-  = liftIO
-      (nullableToMaybe <$> (js_matchMedia (self) (toJSString query)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.matchMedia Mozilla Window.matchMedia documentation> 
-matchMedia_ ::
-            (MonadIO m, ToJSString query) => Window -> query -> m ()
-matchMedia_ self query
-  = liftIO (void (js_matchMedia (self) (toJSString query)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.matchMedia Mozilla Window.matchMedia documentation> 
-matchMediaUnsafe ::
-                 (MonadIO m, ToJSString query, HasCallStack) =>
-                   Window -> query -> m MediaQueryList
-matchMediaUnsafe self query
-  = liftIO
-      ((nullableToMaybe <$> (js_matchMedia (self) (toJSString query)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.matchMedia Mozilla Window.matchMedia documentation> 
-matchMediaUnchecked ::
-                    (MonadIO m, ToJSString query) =>
-                      Window -> query -> m MediaQueryList
-matchMediaUnchecked self query
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_matchMedia (self) (toJSString query)))
- 
-foreign import javascript unsafe "$1[\"getComputedStyle\"]($2, $3)"
-        js_getComputedStyle ::
-        Window ->
-          Nullable Element ->
-            Nullable JSString -> IO (Nullable CSSStyleDeclaration)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getComputedStyle Mozilla Window.getComputedStyle documentation> 
-getComputedStyle ::
-                 (MonadIO m, IsElement element, ToJSString pseudoElement) =>
-                   Window ->
-                     Maybe element ->
-                       Maybe pseudoElement -> m (Maybe CSSStyleDeclaration)
-getComputedStyle self element pseudoElement
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getComputedStyle (self)
-            (maybeToNullable (fmap toElement element))
-            (toMaybeJSString pseudoElement)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getComputedStyle Mozilla Window.getComputedStyle documentation> 
-getComputedStyle_ ::
-                  (MonadIO m, IsElement element, ToJSString pseudoElement) =>
-                    Window -> Maybe element -> Maybe pseudoElement -> m ()
-getComputedStyle_ self element pseudoElement
-  = liftIO
-      (void
-         (js_getComputedStyle (self)
-            (maybeToNullable (fmap toElement element))
-            (toMaybeJSString pseudoElement)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getComputedStyle Mozilla Window.getComputedStyle documentation> 
-getComputedStyleUnsafe ::
-                       (MonadIO m, IsElement element, ToJSString pseudoElement,
-                        HasCallStack) =>
-                         Window ->
-                           Maybe element -> Maybe pseudoElement -> m CSSStyleDeclaration
-getComputedStyleUnsafe self element pseudoElement
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getComputedStyle (self)
-             (maybeToNullable (fmap toElement element))
-             (toMaybeJSString pseudoElement)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getComputedStyle Mozilla Window.getComputedStyle documentation> 
-getComputedStyleUnchecked ::
-                          (MonadIO m, IsElement element, ToJSString pseudoElement) =>
-                            Window ->
-                              Maybe element -> Maybe pseudoElement -> m CSSStyleDeclaration
-getComputedStyleUnchecked self element pseudoElement
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getComputedStyle (self)
-            (maybeToNullable (fmap toElement element))
-            (toMaybeJSString pseudoElement)))
- 
-foreign import javascript unsafe
-        "$1[\"getMatchedCSSRules\"]($2, $3)" js_getMatchedCSSRules ::
-        Window ->
-          Nullable Element -> Nullable JSString -> IO (Nullable CSSRuleList)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getMatchedCSSRules Mozilla Window.getMatchedCSSRules documentation> 
-getMatchedCSSRules ::
-                   (MonadIO m, IsElement element, ToJSString pseudoElement) =>
-                     Window ->
-                       Maybe element -> Maybe pseudoElement -> m (Maybe CSSRuleList)
-getMatchedCSSRules self element pseudoElement
-  = liftIO
-      (nullableToMaybe <$>
-         (js_getMatchedCSSRules (self)
-            (maybeToNullable (fmap toElement element))
-            (toMaybeJSString pseudoElement)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getMatchedCSSRules Mozilla Window.getMatchedCSSRules documentation> 
-getMatchedCSSRules_ ::
-                    (MonadIO m, IsElement element, ToJSString pseudoElement) =>
-                      Window -> Maybe element -> Maybe pseudoElement -> m ()
-getMatchedCSSRules_ self element pseudoElement
-  = liftIO
-      (void
-         (js_getMatchedCSSRules (self)
-            (maybeToNullable (fmap toElement element))
-            (toMaybeJSString pseudoElement)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getMatchedCSSRules Mozilla Window.getMatchedCSSRules documentation> 
-getMatchedCSSRulesUnsafe ::
-                         (MonadIO m, IsElement element, ToJSString pseudoElement,
-                          HasCallStack) =>
-                           Window -> Maybe element -> Maybe pseudoElement -> m CSSRuleList
-getMatchedCSSRulesUnsafe self element pseudoElement
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_getMatchedCSSRules (self)
-             (maybeToNullable (fmap toElement element))
-             (toMaybeJSString pseudoElement)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getMatchedCSSRules Mozilla Window.getMatchedCSSRules documentation> 
-getMatchedCSSRulesUnchecked ::
-                            (MonadIO m, IsElement element, ToJSString pseudoElement) =>
-                              Window -> Maybe element -> Maybe pseudoElement -> m CSSRuleList
-getMatchedCSSRulesUnchecked self element pseudoElement
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getMatchedCSSRules (self)
-            (maybeToNullable (fmap toElement element))
-            (toMaybeJSString pseudoElement)))
- 
-foreign import javascript unsafe
-        "$1[\"webkitConvertPointFromPageToNode\"]($2,\n$3)"
-        js_webkitConvertPointFromPageToNode ::
-        Window ->
-          Nullable Node -> Nullable WebKitPoint -> IO (Nullable WebKitPoint)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromPageToNode Mozilla Window.webkitConvertPointFromPageToNode documentation> 
-webkitConvertPointFromPageToNode ::
-                                 (MonadIO m, IsNode node) =>
-                                   Window ->
-                                     Maybe node -> Maybe WebKitPoint -> m (Maybe WebKitPoint)
-webkitConvertPointFromPageToNode self node p
-  = liftIO
-      (nullableToMaybe <$>
-         (js_webkitConvertPointFromPageToNode (self)
-            (maybeToNullable (fmap toNode node))
-            (maybeToNullable p)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromPageToNode Mozilla Window.webkitConvertPointFromPageToNode documentation> 
-webkitConvertPointFromPageToNode_ ::
-                                  (MonadIO m, IsNode node) =>
-                                    Window -> Maybe node -> Maybe WebKitPoint -> m ()
-webkitConvertPointFromPageToNode_ self node p
-  = liftIO
-      (void
-         (js_webkitConvertPointFromPageToNode (self)
-            (maybeToNullable (fmap toNode node))
-            (maybeToNullable p)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromPageToNode Mozilla Window.webkitConvertPointFromPageToNode documentation> 
-webkitConvertPointFromPageToNodeUnsafe ::
-                                       (MonadIO m, IsNode node, HasCallStack) =>
-                                         Window -> Maybe node -> Maybe WebKitPoint -> m WebKitPoint
-webkitConvertPointFromPageToNodeUnsafe self node p
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_webkitConvertPointFromPageToNode (self)
-             (maybeToNullable (fmap toNode node))
-             (maybeToNullable p)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromPageToNode Mozilla Window.webkitConvertPointFromPageToNode documentation> 
-webkitConvertPointFromPageToNodeUnchecked ::
-                                          (MonadIO m, IsNode node) =>
-                                            Window ->
-                                              Maybe node -> Maybe WebKitPoint -> m WebKitPoint
-webkitConvertPointFromPageToNodeUnchecked self node p
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_webkitConvertPointFromPageToNode (self)
-            (maybeToNullable (fmap toNode node))
-            (maybeToNullable p)))
- 
-foreign import javascript unsafe
-        "$1[\"webkitConvertPointFromNodeToPage\"]($2,\n$3)"
-        js_webkitConvertPointFromNodeToPage ::
-        Window ->
-          Nullable Node -> Nullable WebKitPoint -> IO (Nullable WebKitPoint)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromNodeToPage Mozilla Window.webkitConvertPointFromNodeToPage documentation> 
-webkitConvertPointFromNodeToPage ::
-                                 (MonadIO m, IsNode node) =>
-                                   Window ->
-                                     Maybe node -> Maybe WebKitPoint -> m (Maybe WebKitPoint)
-webkitConvertPointFromNodeToPage self node p
-  = liftIO
-      (nullableToMaybe <$>
-         (js_webkitConvertPointFromNodeToPage (self)
-            (maybeToNullable (fmap toNode node))
-            (maybeToNullable p)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromNodeToPage Mozilla Window.webkitConvertPointFromNodeToPage documentation> 
-webkitConvertPointFromNodeToPage_ ::
-                                  (MonadIO m, IsNode node) =>
-                                    Window -> Maybe node -> Maybe WebKitPoint -> m ()
-webkitConvertPointFromNodeToPage_ self node p
-  = liftIO
-      (void
-         (js_webkitConvertPointFromNodeToPage (self)
-            (maybeToNullable (fmap toNode node))
-            (maybeToNullable p)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromNodeToPage Mozilla Window.webkitConvertPointFromNodeToPage documentation> 
-webkitConvertPointFromNodeToPageUnsafe ::
-                                       (MonadIO m, IsNode node, HasCallStack) =>
-                                         Window -> Maybe node -> Maybe WebKitPoint -> m WebKitPoint
-webkitConvertPointFromNodeToPageUnsafe self node p
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_webkitConvertPointFromNodeToPage (self)
-             (maybeToNullable (fmap toNode node))
-             (maybeToNullable p)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromNodeToPage Mozilla Window.webkitConvertPointFromNodeToPage documentation> 
-webkitConvertPointFromNodeToPageUnchecked ::
-                                          (MonadIO m, IsNode node) =>
-                                            Window ->
-                                              Maybe node -> Maybe WebKitPoint -> m WebKitPoint
-webkitConvertPointFromNodeToPageUnchecked self node p
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_webkitConvertPointFromNodeToPage (self)
-            (maybeToNullable (fmap toNode node))
-            (maybeToNullable p)))
- 
-foreign import javascript unsafe "$1[\"postMessage\"]($2, $3, $4)"
-        js_postMessage ::
-        Window ->
-          Nullable SerializedScriptValue ->
-            JSString -> Nullable Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage Mozilla Window.postMessage documentation> 
-postMessage ::
-            (MonadIO m, IsSerializedScriptValue message,
-             ToJSString targetOrigin, IsArray messagePorts) =>
-              Window ->
-                Maybe message -> targetOrigin -> Maybe messagePorts -> m ()
-postMessage self message targetOrigin messagePorts
-  = liftIO
-      (js_postMessage (self)
-         (maybeToNullable (fmap toSerializedScriptValue message))
-         (toJSString targetOrigin)
-         (maybeToNullable (fmap toArray messagePorts)))
- 
-foreign import javascript unsafe
-        "$1[\"requestAnimationFrame\"]($2)" js_requestAnimationFrame ::
-        Window -> Nullable RequestAnimationFrameCallback -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.requestAnimationFrame Mozilla Window.requestAnimationFrame documentation> 
-requestAnimationFrame ::
-                      (MonadIO m) =>
-                        Window -> Maybe RequestAnimationFrameCallback -> m Int
-requestAnimationFrame self callback
-  = liftIO
-      (js_requestAnimationFrame (self) (maybeToNullable callback))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.requestAnimationFrame Mozilla Window.requestAnimationFrame documentation> 
-requestAnimationFrame_ ::
-                       (MonadIO m) =>
-                         Window -> Maybe RequestAnimationFrameCallback -> m ()
-requestAnimationFrame_ self callback
-  = liftIO
-      (void (js_requestAnimationFrame (self) (maybeToNullable callback)))
- 
-foreign import javascript unsafe "$1[\"cancelAnimationFrame\"]($2)"
-        js_cancelAnimationFrame :: Window -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.cancelAnimationFrame Mozilla Window.cancelAnimationFrame documentation> 
-cancelAnimationFrame :: (MonadIO m) => Window -> Int -> m ()
-cancelAnimationFrame self id
-  = liftIO (js_cancelAnimationFrame (self) id)
- 
-foreign import javascript unsafe
-        "$1[\"webkitRequestAnimationFrame\"]($2)"
-        js_webkitRequestAnimationFrame ::
-        Window -> Nullable RequestAnimationFrameCallback -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitRequestAnimationFrame Mozilla Window.webkitRequestAnimationFrame documentation> 
-webkitRequestAnimationFrame ::
-                            (MonadIO m) =>
-                              Window -> Maybe RequestAnimationFrameCallback -> m Int
-webkitRequestAnimationFrame self callback
-  = liftIO
-      (js_webkitRequestAnimationFrame (self) (maybeToNullable callback))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitRequestAnimationFrame Mozilla Window.webkitRequestAnimationFrame documentation> 
-webkitRequestAnimationFrame_ ::
-                             (MonadIO m) =>
-                               Window -> Maybe RequestAnimationFrameCallback -> m ()
-webkitRequestAnimationFrame_ self callback
-  = liftIO
-      (void
-         (js_webkitRequestAnimationFrame (self) (maybeToNullable callback)))
- 
-foreign import javascript unsafe
-        "$1[\"webkitCancelAnimationFrame\"]($2)"
-        js_webkitCancelAnimationFrame :: Window -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitCancelAnimationFrame Mozilla Window.webkitCancelAnimationFrame documentation> 
-webkitCancelAnimationFrame :: (MonadIO m) => Window -> Int -> m ()
-webkitCancelAnimationFrame self id
-  = liftIO (js_webkitCancelAnimationFrame (self) id)
- 
-foreign import javascript unsafe
-        "$1[\"webkitCancelRequestAnimationFrame\"]($2)"
-        js_webkitCancelRequestAnimationFrame :: Window -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitCancelRequestAnimationFrame Mozilla Window.webkitCancelRequestAnimationFrame documentation> 
-webkitCancelRequestAnimationFrame ::
-                                  (MonadIO m) => Window -> Int -> m ()
-webkitCancelRequestAnimationFrame self id
-  = liftIO (js_webkitCancelRequestAnimationFrame (self) id)
- 
-foreign import javascript unsafe "$1[\"captureEvents\"]()"
-        js_captureEvents :: Window -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.captureEvents Mozilla Window.captureEvents documentation> 
-captureEvents :: (MonadIO m) => Window -> m ()
-captureEvents self = liftIO (js_captureEvents (self))
- 
-foreign import javascript unsafe "$1[\"releaseEvents\"]()"
-        js_releaseEvents :: Window -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.releaseEvents Mozilla Window.releaseEvents documentation> 
-releaseEvents :: (MonadIO m) => Window -> m ()
-releaseEvents self = liftIO (js_releaseEvents (self))
- 
-foreign import javascript unsafe "$1[\"webkitIndexedDB\"]"
-        js_getWebkitIndexedDB :: Window -> IO (Nullable IDBFactory)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitIndexedDB Mozilla Window.webkitIndexedDB documentation> 
-getWebkitIndexedDB :: (MonadIO m) => Window -> m (Maybe IDBFactory)
-getWebkitIndexedDB self
-  = liftIO (nullableToMaybe <$> (js_getWebkitIndexedDB (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitIndexedDB Mozilla Window.webkitIndexedDB documentation> 
-getWebkitIndexedDBUnsafe ::
-                         (MonadIO m, HasCallStack) => Window -> m IDBFactory
-getWebkitIndexedDBUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWebkitIndexedDB (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitIndexedDB Mozilla Window.webkitIndexedDB documentation> 
-getWebkitIndexedDBUnchecked ::
-                            (MonadIO m) => Window -> m IDBFactory
-getWebkitIndexedDBUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getWebkitIndexedDB (self)))
- 
-foreign import javascript unsafe "$1[\"indexedDB\"]"
-        js_getIndexedDB :: Window -> IO (Nullable IDBFactory)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.indexedDB Mozilla Window.indexedDB documentation> 
-getIndexedDB :: (MonadIO m) => Window -> m (Maybe IDBFactory)
-getIndexedDB self
-  = liftIO (nullableToMaybe <$> (js_getIndexedDB (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.indexedDB Mozilla Window.indexedDB documentation> 
-getIndexedDBUnsafe ::
-                   (MonadIO m, HasCallStack) => Window -> m IDBFactory
-getIndexedDBUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getIndexedDB (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.indexedDB Mozilla Window.indexedDB documentation> 
-getIndexedDBUnchecked :: (MonadIO m) => Window -> m IDBFactory
-getIndexedDBUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getIndexedDB (self)))
- 
-foreign import javascript unsafe "$1[\"webkitStorageInfo\"]"
-        js_getWebkitStorageInfo :: Window -> IO (Nullable StorageInfo)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitStorageInfo Mozilla Window.webkitStorageInfo documentation> 
-getWebkitStorageInfo ::
-                     (MonadIO m) => Window -> m (Maybe StorageInfo)
-getWebkitStorageInfo self
-  = liftIO (nullableToMaybe <$> (js_getWebkitStorageInfo (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitStorageInfo Mozilla Window.webkitStorageInfo documentation> 
-getWebkitStorageInfoUnsafe ::
-                           (MonadIO m, HasCallStack) => Window -> m StorageInfo
-getWebkitStorageInfoUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWebkitStorageInfo (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitStorageInfo Mozilla Window.webkitStorageInfo documentation> 
-getWebkitStorageInfoUnchecked ::
-                              (MonadIO m) => Window -> m StorageInfo
-getWebkitStorageInfoUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getWebkitStorageInfo (self)))
- 
-foreign import javascript unsafe "$1[\"speechSynthesis\"]"
-        js_getSpeechSynthesis :: Window -> IO (Nullable SpeechSynthesis)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.speechSynthesis Mozilla Window.speechSynthesis documentation> 
-getSpeechSynthesis ::
-                   (MonadIO m) => Window -> m (Maybe SpeechSynthesis)
-getSpeechSynthesis self
-  = liftIO (nullableToMaybe <$> (js_getSpeechSynthesis (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.speechSynthesis Mozilla Window.speechSynthesis documentation> 
-getSpeechSynthesisUnsafe ::
-                         (MonadIO m, HasCallStack) => Window -> m SpeechSynthesis
-getSpeechSynthesisUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSpeechSynthesis (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.speechSynthesis Mozilla Window.speechSynthesis documentation> 
-getSpeechSynthesisUnchecked ::
-                            (MonadIO m) => Window -> m SpeechSynthesis
-getSpeechSynthesisUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSpeechSynthesis (self)))
- 
-foreign import javascript unsafe "$1[\"screen\"]" js_getScreen ::
-        Window -> IO (Nullable Screen)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screen Mozilla Window.screen documentation> 
-getScreen :: (MonadIO m) => Window -> m (Maybe Screen)
-getScreen self = liftIO (nullableToMaybe <$> (js_getScreen (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screen Mozilla Window.screen documentation> 
-getScreenUnsafe :: (MonadIO m, HasCallStack) => Window -> m Screen
-getScreenUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getScreen (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screen Mozilla Window.screen documentation> 
-getScreenUnchecked :: (MonadIO m) => Window -> m Screen
-getScreenUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getScreen (self)))
- 
-foreign import javascript unsafe "$1[\"history\"]" js_getHistory ::
-        Window -> IO (Nullable History)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.history Mozilla Window.history documentation> 
-getHistory :: (MonadIO m) => Window -> m (Maybe History)
-getHistory self
-  = liftIO (nullableToMaybe <$> (js_getHistory (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.history Mozilla Window.history documentation> 
-getHistoryUnsafe ::
-                 (MonadIO m, HasCallStack) => Window -> m History
-getHistoryUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getHistory (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.history Mozilla Window.history documentation> 
-getHistoryUnchecked :: (MonadIO m) => Window -> m History
-getHistoryUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getHistory (self)))
- 
-foreign import javascript unsafe "$1[\"locationbar\"]"
-        js_getLocationbar :: Window -> IO (Nullable BarProp)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.locationbar Mozilla Window.locationbar documentation> 
-getLocationbar :: (MonadIO m) => Window -> m (Maybe BarProp)
-getLocationbar self
-  = liftIO (nullableToMaybe <$> (js_getLocationbar (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.locationbar Mozilla Window.locationbar documentation> 
-getLocationbarUnsafe ::
-                     (MonadIO m, HasCallStack) => Window -> m BarProp
-getLocationbarUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLocationbar (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.locationbar Mozilla Window.locationbar documentation> 
-getLocationbarUnchecked :: (MonadIO m) => Window -> m BarProp
-getLocationbarUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getLocationbar (self)))
- 
-foreign import javascript unsafe "$1[\"menubar\"]" js_getMenubar ::
-        Window -> IO (Nullable BarProp)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.menubar Mozilla Window.menubar documentation> 
-getMenubar :: (MonadIO m) => Window -> m (Maybe BarProp)
-getMenubar self
-  = liftIO (nullableToMaybe <$> (js_getMenubar (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.menubar Mozilla Window.menubar documentation> 
-getMenubarUnsafe ::
-                 (MonadIO m, HasCallStack) => Window -> m BarProp
-getMenubarUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getMenubar (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.menubar Mozilla Window.menubar documentation> 
-getMenubarUnchecked :: (MonadIO m) => Window -> m BarProp
-getMenubarUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getMenubar (self)))
- 
-foreign import javascript unsafe "$1[\"personalbar\"]"
-        js_getPersonalbar :: Window -> IO (Nullable BarProp)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.personalbar Mozilla Window.personalbar documentation> 
-getPersonalbar :: (MonadIO m) => Window -> m (Maybe BarProp)
-getPersonalbar self
-  = liftIO (nullableToMaybe <$> (js_getPersonalbar (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.personalbar Mozilla Window.personalbar documentation> 
-getPersonalbarUnsafe ::
-                     (MonadIO m, HasCallStack) => Window -> m BarProp
-getPersonalbarUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPersonalbar (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.personalbar Mozilla Window.personalbar documentation> 
-getPersonalbarUnchecked :: (MonadIO m) => Window -> m BarProp
-getPersonalbarUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPersonalbar (self)))
- 
-foreign import javascript unsafe "$1[\"scrollbars\"]"
-        js_getScrollbars :: Window -> IO (Nullable BarProp)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollbars Mozilla Window.scrollbars documentation> 
-getScrollbars :: (MonadIO m) => Window -> m (Maybe BarProp)
-getScrollbars self
-  = liftIO (nullableToMaybe <$> (js_getScrollbars (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollbars Mozilla Window.scrollbars documentation> 
-getScrollbarsUnsafe ::
-                    (MonadIO m, HasCallStack) => Window -> m BarProp
-getScrollbarsUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getScrollbars (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollbars Mozilla Window.scrollbars documentation> 
-getScrollbarsUnchecked :: (MonadIO m) => Window -> m BarProp
-getScrollbarsUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getScrollbars (self)))
- 
-foreign import javascript unsafe "$1[\"statusbar\"]"
-        js_getStatusbar :: Window -> IO (Nullable BarProp)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.statusbar Mozilla Window.statusbar documentation> 
-getStatusbar :: (MonadIO m) => Window -> m (Maybe BarProp)
-getStatusbar self
-  = liftIO (nullableToMaybe <$> (js_getStatusbar (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.statusbar Mozilla Window.statusbar documentation> 
-getStatusbarUnsafe ::
-                   (MonadIO m, HasCallStack) => Window -> m BarProp
-getStatusbarUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStatusbar (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.statusbar Mozilla Window.statusbar documentation> 
-getStatusbarUnchecked :: (MonadIO m) => Window -> m BarProp
-getStatusbarUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getStatusbar (self)))
- 
-foreign import javascript unsafe "$1[\"toolbar\"]" js_getToolbar ::
-        Window -> IO (Nullable BarProp)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.toolbar Mozilla Window.toolbar documentation> 
-getToolbar :: (MonadIO m) => Window -> m (Maybe BarProp)
-getToolbar self
-  = liftIO (nullableToMaybe <$> (js_getToolbar (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.toolbar Mozilla Window.toolbar documentation> 
-getToolbarUnsafe ::
-                 (MonadIO m, HasCallStack) => Window -> m BarProp
-getToolbarUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getToolbar (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.toolbar Mozilla Window.toolbar documentation> 
-getToolbarUnchecked :: (MonadIO m) => Window -> m BarProp
-getToolbarUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getToolbar (self)))
- 
-foreign import javascript unsafe "$1[\"navigator\"]"
-        js_getNavigator :: Window -> IO (Nullable Navigator)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.navigator Mozilla Window.navigator documentation> 
-getNavigator :: (MonadIO m) => Window -> m (Maybe Navigator)
-getNavigator self
-  = liftIO (nullableToMaybe <$> (js_getNavigator (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.navigator Mozilla Window.navigator documentation> 
-getNavigatorUnsafe ::
-                   (MonadIO m, HasCallStack) => Window -> m Navigator
-getNavigatorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getNavigator (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.navigator Mozilla Window.navigator documentation> 
-getNavigatorUnchecked :: (MonadIO m) => Window -> m Navigator
-getNavigatorUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getNavigator (self)))
- 
-foreign import javascript unsafe "$1[\"clientInformation\"]"
-        js_getClientInformation :: Window -> IO (Nullable Navigator)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.clientInformation Mozilla Window.clientInformation documentation> 
-getClientInformation ::
-                     (MonadIO m) => Window -> m (Maybe Navigator)
-getClientInformation self
-  = liftIO (nullableToMaybe <$> (js_getClientInformation (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.clientInformation Mozilla Window.clientInformation documentation> 
-getClientInformationUnsafe ::
-                           (MonadIO m, HasCallStack) => Window -> m Navigator
-getClientInformationUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getClientInformation (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.clientInformation Mozilla Window.clientInformation documentation> 
-getClientInformationUnchecked ::
-                              (MonadIO m) => Window -> m Navigator
-getClientInformationUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getClientInformation (self)))
- 
-foreign import javascript unsafe "$1[\"crypto\"]" js_getCrypto ::
-        Window -> IO (Nullable Crypto)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.crypto Mozilla Window.crypto documentation> 
-getCrypto :: (MonadIO m) => Window -> m (Maybe Crypto)
-getCrypto self = liftIO (nullableToMaybe <$> (js_getCrypto (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.crypto Mozilla Window.crypto documentation> 
-getCryptoUnsafe :: (MonadIO m, HasCallStack) => Window -> m Crypto
-getCryptoUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCrypto (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.crypto Mozilla Window.crypto documentation> 
-getCryptoUnchecked :: (MonadIO m) => Window -> m Crypto
-getCryptoUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCrypto (self)))
- 
-foreign import javascript unsafe "$1[\"location\"] = $2;"
-        js_setLocation :: Window -> Nullable Location -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.location Mozilla Window.location documentation> 
-setLocation :: (MonadIO m) => Window -> Maybe Location -> m ()
-setLocation self val
-  = liftIO (js_setLocation (self) (maybeToNullable val))
- 
-foreign import javascript unsafe "$1[\"location\"]" js_getLocation
-        :: Window -> IO (Nullable Location)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.location Mozilla Window.location documentation> 
-getLocation :: (MonadIO m) => Window -> m (Maybe Location)
-getLocation self
-  = liftIO (nullableToMaybe <$> (js_getLocation (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.location Mozilla Window.location documentation> 
-getLocationUnsafe ::
-                  (MonadIO m, HasCallStack) => Window -> m Location
-getLocationUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLocation (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.location Mozilla Window.location documentation> 
-getLocationUnchecked :: (MonadIO m) => Window -> m Location
-getLocationUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getLocation (self)))
- 
-foreign import javascript unsafe "$1[\"event\"]" js_getEvent ::
-        Window -> IO (Nullable Event)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.event Mozilla Window.event documentation> 
-getEvent :: (MonadIO m) => Window -> m (Maybe Event)
-getEvent self = liftIO (nullableToMaybe <$> (js_getEvent (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.event Mozilla Window.event documentation> 
-getEventUnsafe :: (MonadIO m, HasCallStack) => Window -> m Event
-getEventUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getEvent (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.event Mozilla Window.event documentation> 
-getEventUnchecked :: (MonadIO m) => Window -> m Event
-getEventUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getEvent (self)))
- 
-foreign import javascript unsafe "$1[\"frameElement\"]"
-        js_getFrameElement :: Window -> IO (Nullable Element)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.frameElement Mozilla Window.frameElement documentation> 
-getFrameElement :: (MonadIO m) => Window -> m (Maybe Element)
-getFrameElement self
-  = liftIO (nullableToMaybe <$> (js_getFrameElement (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.frameElement Mozilla Window.frameElement documentation> 
-getFrameElementUnsafe ::
-                      (MonadIO m, HasCallStack) => Window -> m Element
-getFrameElementUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFrameElement (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.frameElement Mozilla Window.frameElement documentation> 
-getFrameElementUnchecked :: (MonadIO m) => Window -> m Element
-getFrameElementUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getFrameElement (self)))
- 
-foreign import javascript unsafe
-        "($1[\"offscreenBuffering\"] ? 1 : 0)" js_getOffscreenBuffering ::
-        Window -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.offscreenBuffering Mozilla Window.offscreenBuffering documentation> 
-getOffscreenBuffering :: (MonadIO m) => Window -> m Bool
-getOffscreenBuffering self
-  = liftIO (js_getOffscreenBuffering (self))
- 
-foreign import javascript unsafe "$1[\"outerHeight\"]"
-        js_getOuterHeight :: Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.outerHeight Mozilla Window.outerHeight documentation> 
-getOuterHeight :: (MonadIO m) => Window -> m Int
-getOuterHeight self = liftIO (js_getOuterHeight (self))
- 
-foreign import javascript unsafe "$1[\"outerWidth\"]"
-        js_getOuterWidth :: Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.outerWidth Mozilla Window.outerWidth documentation> 
-getOuterWidth :: (MonadIO m) => Window -> m Int
-getOuterWidth self = liftIO (js_getOuterWidth (self))
- 
-foreign import javascript unsafe "$1[\"innerHeight\"]"
-        js_getInnerHeight :: Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.innerHeight Mozilla Window.innerHeight documentation> 
-getInnerHeight :: (MonadIO m) => Window -> m Int
-getInnerHeight self = liftIO (js_getInnerHeight (self))
- 
-foreign import javascript unsafe "$1[\"innerWidth\"]"
-        js_getInnerWidth :: Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.innerWidth Mozilla Window.innerWidth documentation> 
-getInnerWidth :: (MonadIO m) => Window -> m Int
-getInnerWidth self = liftIO (js_getInnerWidth (self))
- 
-foreign import javascript unsafe "$1[\"screenX\"]" js_getScreenX ::
-        Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screenX Mozilla Window.screenX documentation> 
-getScreenX :: (MonadIO m) => Window -> m Int
-getScreenX self = liftIO (js_getScreenX (self))
- 
-foreign import javascript unsafe "$1[\"screenY\"]" js_getScreenY ::
-        Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screenY Mozilla Window.screenY documentation> 
-getScreenY :: (MonadIO m) => Window -> m Int
-getScreenY self = liftIO (js_getScreenY (self))
- 
-foreign import javascript unsafe "$1[\"screenLeft\"]"
-        js_getScreenLeft :: Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screenLeft Mozilla Window.screenLeft documentation> 
-getScreenLeft :: (MonadIO m) => Window -> m Int
-getScreenLeft self = liftIO (js_getScreenLeft (self))
- 
-foreign import javascript unsafe "$1[\"screenTop\"]"
-        js_getScreenTop :: Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screenTop Mozilla Window.screenTop documentation> 
-getScreenTop :: (MonadIO m) => Window -> m Int
-getScreenTop self = liftIO (js_getScreenTop (self))
- 
-foreign import javascript unsafe "$1[\"scrollX\"]" js_getScrollX ::
-        Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX Mozilla Window.scrollX documentation> 
-getScrollX :: (MonadIO m) => Window -> m Int
-getScrollX self = liftIO (js_getScrollX (self))
- 
-foreign import javascript unsafe "$1[\"scrollY\"]" js_getScrollY ::
-        Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY Mozilla Window.scrollY documentation> 
-getScrollY :: (MonadIO m) => Window -> m Int
-getScrollY self = liftIO (js_getScrollY (self))
- 
-foreign import javascript unsafe "$1[\"pageXOffset\"]"
-        js_getPageXOffset :: Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.pageXOffset Mozilla Window.pageXOffset documentation> 
-getPageXOffset :: (MonadIO m) => Window -> m Int
-getPageXOffset self = liftIO (js_getPageXOffset (self))
- 
-foreign import javascript unsafe "$1[\"pageYOffset\"]"
-        js_getPageYOffset :: Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.pageYOffset Mozilla Window.pageYOffset documentation> 
-getPageYOffset :: (MonadIO m) => Window -> m Int
-getPageYOffset self = liftIO (js_getPageYOffset (self))
- 
-foreign import javascript unsafe "($1[\"closed\"] ? 1 : 0)"
-        js_getClosed :: Window -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.closed Mozilla Window.closed documentation> 
-getClosed :: (MonadIO m) => Window -> m Bool
-getClosed self = liftIO (js_getClosed (self))
- 
-foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
-        Window -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.length Mozilla Window.length documentation> 
-getLength :: (MonadIO m) => Window -> m Word
-getLength self = liftIO (js_getLength (self))
- 
-foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
-        Window -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.name Mozilla Window.name documentation> 
-setName :: (MonadIO m, ToJSString val) => Window -> val -> m ()
-setName self val = liftIO (js_setName (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"name\"]" js_getName ::
-        Window -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.name Mozilla Window.name documentation> 
-getName :: (MonadIO m, FromJSString result) => Window -> m result
-getName self = liftIO (fromJSString <$> (js_getName (self)))
- 
-foreign import javascript unsafe "$1[\"status\"] = $2;"
-        js_setStatus :: Window -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.status Mozilla Window.status documentation> 
-setStatus :: (MonadIO m, ToJSString val) => Window -> val -> m ()
-setStatus self val = liftIO (js_setStatus (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"status\"]" js_getStatus ::
-        Window -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.status Mozilla Window.status documentation> 
-getStatus :: (MonadIO m, FromJSString result) => Window -> m result
-getStatus self = liftIO (fromJSString <$> (js_getStatus (self)))
- 
-foreign import javascript unsafe "$1[\"defaultStatus\"] = $2;"
-        js_setDefaultStatus :: Window -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.defaultStatus Mozilla Window.defaultStatus documentation> 
-setDefaultStatus ::
-                 (MonadIO m, ToJSString val) => Window -> val -> m ()
-setDefaultStatus self val
-  = liftIO (js_setDefaultStatus (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"defaultStatus\"]"
-        js_getDefaultStatus :: Window -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.defaultStatus Mozilla Window.defaultStatus documentation> 
-getDefaultStatus ::
-                 (MonadIO m, FromJSString result) => Window -> m result
-getDefaultStatus self
-  = liftIO (fromJSString <$> (js_getDefaultStatus (self)))
- 
-foreign import javascript unsafe "$1[\"defaultstatus\"] = $2;"
-        js_setDefaultstatus :: Window -> JSString -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.defaultstatus Mozilla Window.defaultstatus documentation> 
-setDefaultstatus ::
-                 (MonadIO m, ToJSString val) => Window -> val -> m ()
-setDefaultstatus self val
-  = liftIO (js_setDefaultstatus (self) (toJSString val))
- 
-foreign import javascript unsafe "$1[\"defaultstatus\"]"
-        js_getDefaultstatus :: Window -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.defaultstatus Mozilla Window.defaultstatus documentation> 
-getDefaultstatus ::
-                 (MonadIO m, FromJSString result) => Window -> m result
-getDefaultstatus self
-  = liftIO (fromJSString <$> (js_getDefaultstatus (self)))
- 
-foreign import javascript unsafe "$1[\"self\"]" js_getSelf ::
-        Window -> IO (Nullable Window)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.self Mozilla Window.self documentation> 
-getSelf :: (MonadIO m) => Window -> m (Maybe Window)
-getSelf self = liftIO (nullableToMaybe <$> (js_getSelf (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.self Mozilla Window.self documentation> 
-getSelfUnsafe :: (MonadIO m, HasCallStack) => Window -> m Window
-getSelfUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSelf (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.self Mozilla Window.self documentation> 
-getSelfUnchecked :: (MonadIO m) => Window -> m Window
-getSelfUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getSelf (self)))
- 
-foreign import javascript unsafe "$1[\"window\"]" js_getWindow ::
-        Window -> IO (Nullable Window)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.window Mozilla Window.window documentation> 
-getWindow :: (MonadIO m) => Window -> m (Maybe Window)
-getWindow self = liftIO (nullableToMaybe <$> (js_getWindow (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.window Mozilla Window.window documentation> 
-getWindowUnsafe :: (MonadIO m, HasCallStack) => Window -> m Window
-getWindowUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWindow (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.window Mozilla Window.window documentation> 
-getWindowUnchecked :: (MonadIO m) => Window -> m Window
-getWindowUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getWindow (self)))
- 
-foreign import javascript unsafe "$1[\"frames\"]" js_getFrames ::
-        Window -> IO (Nullable Window)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.frames Mozilla Window.frames documentation> 
-getFrames :: (MonadIO m) => Window -> m (Maybe Window)
-getFrames self = liftIO (nullableToMaybe <$> (js_getFrames (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.frames Mozilla Window.frames documentation> 
-getFramesUnsafe :: (MonadIO m, HasCallStack) => Window -> m Window
-getFramesUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getFrames (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.frames Mozilla Window.frames documentation> 
-getFramesUnchecked :: (MonadIO m) => Window -> m Window
-getFramesUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getFrames (self)))
- 
-foreign import javascript unsafe "$1[\"opener\"]" js_getOpener ::
-        Window -> IO (Nullable Window)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.opener Mozilla Window.opener documentation> 
-getOpener :: (MonadIO m) => Window -> m (Maybe Window)
-getOpener self = liftIO (nullableToMaybe <$> (js_getOpener (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.opener Mozilla Window.opener documentation> 
-getOpenerUnsafe :: (MonadIO m, HasCallStack) => Window -> m Window
-getOpenerUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getOpener (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.opener Mozilla Window.opener documentation> 
-getOpenerUnchecked :: (MonadIO m) => Window -> m Window
-getOpenerUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getOpener (self)))
- 
-foreign import javascript unsafe "$1[\"parent\"]" js_getParent ::
-        Window -> IO (Nullable Window)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.parent Mozilla Window.parent documentation> 
-getParent :: (MonadIO m) => Window -> m (Maybe Window)
-getParent self = liftIO (nullableToMaybe <$> (js_getParent (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.parent Mozilla Window.parent documentation> 
-getParentUnsafe :: (MonadIO m, HasCallStack) => Window -> m Window
-getParentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getParent (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.parent Mozilla Window.parent documentation> 
-getParentUnchecked :: (MonadIO m) => Window -> m Window
-getParentUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getParent (self)))
- 
-foreign import javascript unsafe "$1[\"top\"]" js_getTop ::
-        Window -> IO (Nullable Window)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.top Mozilla Window.top documentation> 
-getTop :: (MonadIO m) => Window -> m (Maybe Window)
-getTop self = liftIO (nullableToMaybe <$> (js_getTop (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.top Mozilla Window.top documentation> 
-getTopUnsafe :: (MonadIO m, HasCallStack) => Window -> m Window
-getTopUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getTop (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.top Mozilla Window.top documentation> 
-getTopUnchecked :: (MonadIO m) => Window -> m Window
-getTopUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getTop (self)))
- 
-foreign import javascript unsafe "$1[\"document\"]" js_getDocument
-        :: Window -> IO (Nullable Document)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.document Mozilla Window.document documentation> 
-getDocument :: (MonadIO m) => Window -> m (Maybe Document)
-getDocument self
-  = liftIO (nullableToMaybe <$> (js_getDocument (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.document Mozilla Window.document documentation> 
-getDocumentUnsafe ::
-                  (MonadIO m, HasCallStack) => Window -> m Document
-getDocumentUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getDocument (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.document Mozilla Window.document documentation> 
-getDocumentUnchecked :: (MonadIO m) => Window -> m Document
-getDocumentUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getDocument (self)))
- 
-foreign import javascript unsafe "$1[\"styleMedia\"]"
-        js_getStyleMedia :: Window -> IO (Nullable StyleMedia)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.styleMedia Mozilla Window.styleMedia documentation> 
-getStyleMedia :: (MonadIO m) => Window -> m (Maybe StyleMedia)
-getStyleMedia self
-  = liftIO (nullableToMaybe <$> (js_getStyleMedia (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.styleMedia Mozilla Window.styleMedia documentation> 
-getStyleMediaUnsafe ::
-                    (MonadIO m, HasCallStack) => Window -> m StyleMedia
-getStyleMediaUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getStyleMedia (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.styleMedia Mozilla Window.styleMedia documentation> 
-getStyleMediaUnchecked :: (MonadIO m) => Window -> m StyleMedia
-getStyleMediaUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getStyleMedia (self)))
- 
-foreign import javascript unsafe "$1[\"devicePixelRatio\"]"
-        js_getDevicePixelRatio :: Window -> IO Double
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.devicePixelRatio Mozilla Window.devicePixelRatio documentation> 
-getDevicePixelRatio :: (MonadIO m) => Window -> m Double
-getDevicePixelRatio self = liftIO (js_getDevicePixelRatio (self))
- 
-foreign import javascript unsafe "$1[\"applicationCache\"]"
-        js_getApplicationCache :: Window -> IO (Nullable ApplicationCache)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.applicationCache Mozilla Window.applicationCache documentation> 
-getApplicationCache ::
-                    (MonadIO m) => Window -> m (Maybe ApplicationCache)
-getApplicationCache self
-  = liftIO (nullableToMaybe <$> (js_getApplicationCache (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.applicationCache Mozilla Window.applicationCache documentation> 
-getApplicationCacheUnsafe ::
-                          (MonadIO m, HasCallStack) => Window -> m ApplicationCache
-getApplicationCacheUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getApplicationCache (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.applicationCache Mozilla Window.applicationCache documentation> 
-getApplicationCacheUnchecked ::
-                             (MonadIO m) => Window -> m ApplicationCache
-getApplicationCacheUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getApplicationCache (self)))
- 
-foreign import javascript unsafe "$1[\"sessionStorage\"]"
-        js_getSessionStorage :: Window -> IO (Nullable Storage)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.sessionStorage Mozilla Window.sessionStorage documentation> 
-getSessionStorage :: (MonadIO m) => Window -> m (Maybe Storage)
-getSessionStorage self
-  = liftIO (nullableToMaybe <$> (js_getSessionStorage (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.sessionStorage Mozilla Window.sessionStorage documentation> 
-getSessionStorageUnsafe ::
-                        (MonadIO m, HasCallStack) => Window -> m Storage
-getSessionStorageUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSessionStorage (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.sessionStorage Mozilla Window.sessionStorage documentation> 
-getSessionStorageUnchecked :: (MonadIO m) => Window -> m Storage
-getSessionStorageUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSessionStorage (self)))
- 
-foreign import javascript unsafe "$1[\"localStorage\"]"
-        js_getLocalStorage :: Window -> IO (Nullable Storage)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.localStorage Mozilla Window.localStorage documentation> 
-getLocalStorage :: (MonadIO m) => Window -> m (Maybe Storage)
-getLocalStorage self
-  = liftIO (nullableToMaybe <$> (js_getLocalStorage (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.localStorage Mozilla Window.localStorage documentation> 
-getLocalStorageUnsafe ::
-                      (MonadIO m, HasCallStack) => Window -> m Storage
-getLocalStorageUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLocalStorage (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.localStorage Mozilla Window.localStorage documentation> 
-getLocalStorageUnchecked :: (MonadIO m) => Window -> m Storage
-getLocalStorageUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getLocalStorage (self)))
- 
-foreign import javascript unsafe "$1[\"orientation\"]"
-        js_getOrientation :: Window -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.orientation Mozilla Window.orientation documentation> 
-getOrientation :: (MonadIO m) => Window -> m Int
-getOrientation self = liftIO (js_getOrientation (self))
- 
-foreign import javascript unsafe "$1[\"performance\"]"
-        js_getPerformance :: Window -> IO (Nullable Performance)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.performance Mozilla Window.performance documentation> 
-getPerformance :: (MonadIO m) => Window -> m (Maybe Performance)
-getPerformance self
-  = liftIO (nullableToMaybe <$> (js_getPerformance (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.performance Mozilla Window.performance documentation> 
-getPerformanceUnsafe ::
-                     (MonadIO m, HasCallStack) => Window -> m Performance
-getPerformanceUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getPerformance (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.performance Mozilla Window.performance documentation> 
-getPerformanceUnchecked :: (MonadIO m) => Window -> m Performance
-getPerformanceUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getPerformance (self)))
- 
-foreign import javascript unsafe "$1[\"CSS\"]" js_getCSS ::
-        Window -> IO (Nullable CSS)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.CSS Mozilla Window.CSS documentation> 
-getCSS :: (MonadIO m) => Window -> m (Maybe CSS)
-getCSS self = liftIO (nullableToMaybe <$> (js_getCSS (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.CSS Mozilla Window.CSS documentation> 
-getCSSUnsafe :: (MonadIO m, HasCallStack) => Window -> m CSS
-getCSSUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getCSS (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.CSS Mozilla Window.CSS documentation> 
-getCSSUnchecked :: (MonadIO m) => Window -> m CSS
-getCSSUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getCSS (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onabort Mozilla Window.onabort documentation> 
-abort :: EventName Window UIEvent
-abort = unsafeEventName (toJSString "abort")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload Mozilla Window.onbeforeunload documentation> 
-beforeUnload :: EventName Window BeforeUnloadEvent
-beforeUnload = unsafeEventName (toJSString "beforeunload")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onblur Mozilla Window.onblur documentation> 
-blurEvent :: EventName Window FocusEvent
-blurEvent = unsafeEventName (toJSString "blur")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.oncanplay Mozilla Window.oncanplay documentation> 
-canPlay :: EventName Window Event
-canPlay = unsafeEventName (toJSString "canplay")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.oncanplaythrough Mozilla Window.oncanplaythrough documentation> 
-canPlayThrough :: EventName Window Event
-canPlayThrough = unsafeEventName (toJSString "canplaythrough")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onchange Mozilla Window.onchange documentation> 
-change :: EventName Window Event
-change = unsafeEventName (toJSString "change")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onclick Mozilla Window.onclick documentation> 
-click :: EventName Window MouseEvent
-click = unsafeEventName (toJSString "click")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.oncontextmenu Mozilla Window.oncontextmenu documentation> 
-contextMenu :: EventName Window MouseEvent
-contextMenu = unsafeEventName (toJSString "contextmenu")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondblclick Mozilla Window.ondblclick documentation> 
-dblClick :: EventName Window MouseEvent
-dblClick = unsafeEventName (toJSString "dblclick")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondrag Mozilla Window.ondrag documentation> 
-drag :: EventName Window MouseEvent
-drag = unsafeEventName (toJSString "drag")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondragend Mozilla Window.ondragend documentation> 
-dragEnd :: EventName Window MouseEvent
-dragEnd = unsafeEventName (toJSString "dragend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondragenter Mozilla Window.ondragenter documentation> 
-dragEnter :: EventName Window MouseEvent
-dragEnter = unsafeEventName (toJSString "dragenter")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondragleave Mozilla Window.ondragleave documentation> 
-dragLeave :: EventName Window MouseEvent
-dragLeave = unsafeEventName (toJSString "dragleave")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondragover Mozilla Window.ondragover documentation> 
-dragOver :: EventName Window MouseEvent
-dragOver = unsafeEventName (toJSString "dragover")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondragstart Mozilla Window.ondragstart documentation> 
-dragStart :: EventName Window MouseEvent
-dragStart = unsafeEventName (toJSString "dragstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondrop Mozilla Window.ondrop documentation> 
-drop :: EventName Window MouseEvent
-drop = unsafeEventName (toJSString "drop")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondurationchange Mozilla Window.ondurationchange documentation> 
-durationChange :: EventName Window Event
-durationChange = unsafeEventName (toJSString "durationchange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onemptied Mozilla Window.onemptied documentation> 
-emptied :: EventName Window Event
-emptied = unsafeEventName (toJSString "emptied")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onended Mozilla Window.onended documentation> 
-ended :: EventName Window Event
-ended = unsafeEventName (toJSString "ended")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onerror Mozilla Window.onerror documentation> 
-error :: EventName Window UIEvent
-error = unsafeEventName (toJSString "error")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onfocus Mozilla Window.onfocus documentation> 
-focusEvent :: EventName Window FocusEvent
-focusEvent = unsafeEventName (toJSString "focus")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onhashchange Mozilla Window.onhashchange documentation> 
-hashChange :: EventName Window HashChangeEvent
-hashChange = unsafeEventName (toJSString "hashchange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.oninput Mozilla Window.oninput documentation> 
-input :: EventName Window Event
-input = unsafeEventName (toJSString "input")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.oninvalid Mozilla Window.oninvalid documentation> 
-invalid :: EventName Window Event
-invalid = unsafeEventName (toJSString "invalid")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onkeydown Mozilla Window.onkeydown documentation> 
-keyDown :: EventName Window KeyboardEvent
-keyDown = unsafeEventName (toJSString "keydown")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onkeypress Mozilla Window.onkeypress documentation> 
-keyPress :: EventName Window KeyboardEvent
-keyPress = unsafeEventName (toJSString "keypress")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onkeyup Mozilla Window.onkeyup documentation> 
-keyUp :: EventName Window KeyboardEvent
-keyUp = unsafeEventName (toJSString "keyup")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onload Mozilla Window.onload documentation> 
-load :: EventName Window UIEvent
-load = unsafeEventName (toJSString "load")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onloadeddata Mozilla Window.onloadeddata documentation> 
-loadedData :: EventName Window Event
-loadedData = unsafeEventName (toJSString "loadeddata")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onloadedmetadata Mozilla Window.onloadedmetadata documentation> 
-loadedMetadata :: EventName Window Event
-loadedMetadata = unsafeEventName (toJSString "loadedmetadata")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onloadstart Mozilla Window.onloadstart documentation> 
-loadStart :: EventName Window ProgressEvent
-loadStart = unsafeEventName (toJSString "loadstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onmessage Mozilla Window.onmessage documentation> 
-message :: EventName Window MessageEvent
-message = unsafeEventName (toJSString "message")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onmousedown Mozilla Window.onmousedown documentation> 
-mouseDown :: EventName Window MouseEvent
-mouseDown = unsafeEventName (toJSString "mousedown")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onmouseenter Mozilla Window.onmouseenter documentation> 
-mouseEnter :: EventName Window MouseEvent
-mouseEnter = unsafeEventName (toJSString "mouseenter")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onmouseleave Mozilla Window.onmouseleave documentation> 
-mouseLeave :: EventName Window MouseEvent
-mouseLeave = unsafeEventName (toJSString "mouseleave")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onmousemove Mozilla Window.onmousemove documentation> 
-mouseMove :: EventName Window MouseEvent
-mouseMove = unsafeEventName (toJSString "mousemove")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onmouseout Mozilla Window.onmouseout documentation> 
-mouseOut :: EventName Window MouseEvent
-mouseOut = unsafeEventName (toJSString "mouseout")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onmouseover Mozilla Window.onmouseover documentation> 
-mouseOver :: EventName Window MouseEvent
-mouseOver = unsafeEventName (toJSString "mouseover")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onmouseup Mozilla Window.onmouseup documentation> 
-mouseUp :: EventName Window MouseEvent
-mouseUp = unsafeEventName (toJSString "mouseup")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onmousewheel Mozilla Window.onmousewheel documentation> 
-mouseWheel :: EventName Window MouseEvent
-mouseWheel = unsafeEventName (toJSString "mousewheel")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onoffline Mozilla Window.onoffline documentation> 
-offline :: EventName Window Event
-offline = unsafeEventName (toJSString "offline")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ononline Mozilla Window.ononline documentation> 
-online :: EventName Window Event
-online = unsafeEventName (toJSString "online")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onpagehide Mozilla Window.onpagehide documentation> 
-pageHide :: EventName Window PageTransitionEvent
-pageHide = unsafeEventName (toJSString "pagehide")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onpageshow Mozilla Window.onpageshow documentation> 
-pageShow :: EventName Window PageTransitionEvent
-pageShow = unsafeEventName (toJSString "pageshow")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onpause Mozilla Window.onpause documentation> 
-pause :: EventName Window Event
-pause = unsafeEventName (toJSString "pause")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onplay Mozilla Window.onplay documentation> 
-play :: EventName Window Event
-play = unsafeEventName (toJSString "play")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onplaying Mozilla Window.onplaying documentation> 
-playing :: EventName Window Event
-playing = unsafeEventName (toJSString "playing")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onpopstate Mozilla Window.onpopstate documentation> 
-popState :: EventName Window PopStateEvent
-popState = unsafeEventName (toJSString "popstate")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onprogress Mozilla Window.onprogress documentation> 
-progress :: EventName Window ProgressEvent
-progress = unsafeEventName (toJSString "progress")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onratechange Mozilla Window.onratechange documentation> 
-rateChange :: EventName Window Event
-rateChange = unsafeEventName (toJSString "ratechange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onresize Mozilla Window.onresize documentation> 
-resize :: EventName Window UIEvent
-resize = unsafeEventName (toJSString "resize")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onscroll Mozilla Window.onscroll documentation> 
-scrollEvent :: EventName Window UIEvent
-scrollEvent = unsafeEventName (toJSString "scroll")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onseeked Mozilla Window.onseeked documentation> 
-seeked :: EventName Window Event
-seeked = unsafeEventName (toJSString "seeked")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onseeking Mozilla Window.onseeking documentation> 
-seeking :: EventName Window Event
-seeking = unsafeEventName (toJSString "seeking")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onselect Mozilla Window.onselect documentation> 
-select :: EventName Window UIEvent
-select = unsafeEventName (toJSString "select")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onstalled Mozilla Window.onstalled documentation> 
-stalled :: EventName Window Event
-stalled = unsafeEventName (toJSString "stalled")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onstorage Mozilla Window.onstorage documentation> 
-storage :: EventName Window StorageEvent
-storage = unsafeEventName (toJSString "storage")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onsubmit Mozilla Window.onsubmit documentation> 
-submit :: EventName Window Event
-submit = unsafeEventName (toJSString "submit")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onsuspend Mozilla Window.onsuspend documentation> 
-suspend :: EventName Window Event
-suspend = unsafeEventName (toJSString "suspend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ontimeupdate Mozilla Window.ontimeupdate documentation> 
-timeUpdate :: EventName Window Event
-timeUpdate = unsafeEventName (toJSString "timeupdate")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onunload Mozilla Window.onunload documentation> 
-unload :: EventName Window UIEvent
-unload = unsafeEventName (toJSString "unload")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onvolumechange Mozilla Window.onvolumechange documentation> 
-volumeChange :: EventName Window Event
-volumeChange = unsafeEventName (toJSString "volumechange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwaiting Mozilla Window.onwaiting documentation> 
-waiting :: EventName Window Event
-waiting = unsafeEventName (toJSString "waiting")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwheel Mozilla Window.onwheel documentation> 
-wheel :: EventName Window WheelEvent
-wheel = unsafeEventName (toJSString "wheel")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onreset Mozilla Window.onreset documentation> 
-reset :: EventName Window Event
-reset = unsafeEventName (toJSString "reset")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onsearch Mozilla Window.onsearch documentation> 
-search :: EventName Window Event
-search = unsafeEventName (toJSString "search")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitanimationend Mozilla Window.onwebkitanimationend documentation> 
-webKitAnimationEnd :: EventName Window AnimationEvent
-webKitAnimationEnd
-  = unsafeEventName (toJSString "webkitanimationend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitanimationiteration Mozilla Window.onwebkitanimationiteration documentation> 
-webKitAnimationIteration :: EventName Window AnimationEvent
-webKitAnimationIteration
-  = unsafeEventName (toJSString "webkitanimationiteration")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitanimationstart Mozilla Window.onwebkitanimationstart documentation> 
-webKitAnimationStart :: EventName Window AnimationEvent
-webKitAnimationStart
-  = unsafeEventName (toJSString "webkitanimationstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onanimationend Mozilla Window.onanimationend documentation> 
-animationEnd :: EventName Window AnimationEvent
-animationEnd = unsafeEventName (toJSString "animationend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onanimationiteration Mozilla Window.onanimationiteration documentation> 
-animationIteration :: EventName Window AnimationEvent
-animationIteration
-  = unsafeEventName (toJSString "animationiteration")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onanimationstart Mozilla Window.onanimationstart documentation> 
-animationStart :: EventName Window AnimationEvent
-animationStart = unsafeEventName (toJSString "animationstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkittransitionend Mozilla Window.onwebkittransitionend documentation> 
-webKitTransitionEnd :: EventName Window TransitionEvent
-webKitTransitionEnd
-  = unsafeEventName (toJSString "webkittransitionend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ontransitionend Mozilla Window.ontransitionend documentation> 
-transitionEnd :: EventName Window TransitionEvent
-transitionEnd = unsafeEventName (toJSString "transitionend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onorientationchange Mozilla Window.onorientationchange documentation> 
-orientationChange :: EventName Window Event
-orientationChange
-  = unsafeEventName (toJSString "orientationchange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ontouchstart Mozilla Window.ontouchstart documentation> 
-touchStart :: EventName Window TouchEvent
-touchStart = unsafeEventName (toJSString "touchstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ontouchmove Mozilla Window.ontouchmove documentation> 
-touchMove :: EventName Window TouchEvent
-touchMove = unsafeEventName (toJSString "touchmove")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ontouchend Mozilla Window.ontouchend documentation> 
-touchEnd :: EventName Window TouchEvent
-touchEnd = unsafeEventName (toJSString "touchend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ontouchcancel Mozilla Window.ontouchcancel documentation> 
-touchCancel :: EventName Window TouchEvent
-touchCancel = unsafeEventName (toJSString "touchcancel")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ongesturestart Mozilla Window.ongesturestart documentation> 
-gestureStart :: EventName Window UIEvent
-gestureStart = unsafeEventName (toJSString "gesturestart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ongesturechange Mozilla Window.ongesturechange documentation> 
-gestureChange :: EventName Window UIEvent
-gestureChange = unsafeEventName (toJSString "gesturechange")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ongestureend Mozilla Window.ongestureend documentation> 
-gestureEnd :: EventName Window UIEvent
-gestureEnd = unsafeEventName (toJSString "gestureend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondevicemotion Mozilla Window.ondevicemotion documentation> 
-deviceMotion :: EventName Window DeviceMotionEvent
-deviceMotion = unsafeEventName (toJSString "devicemotion")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondeviceorientation Mozilla Window.ondeviceorientation documentation> 
-deviceOrientation :: EventName Window DeviceOrientationEvent
-deviceOrientation
-  = unsafeEventName (toJSString "deviceorientation")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitdeviceproximity Mozilla Window.onwebkitdeviceproximity documentation> 
-webKitDeviceProximity :: EventName Window DeviceProximityEvent
-webKitDeviceProximity
-  = unsafeEventName (toJSString "webkitdeviceproximity")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitwillrevealbottom Mozilla Window.onwebkitwillrevealbottom documentation> 
-webKitWillRevealBottom :: EventName Window Event
-webKitWillRevealBottom
-  = unsafeEventName (toJSString "webkitwillrevealbottom")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitwillrevealleft Mozilla Window.onwebkitwillrevealleft documentation> 
-webKitWillRevealLeft :: EventName Window Event
-webKitWillRevealLeft
-  = unsafeEventName (toJSString "webkitwillrevealleft")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitwillrevealright Mozilla Window.onwebkitwillrevealright documentation> 
-webKitWillRevealRight :: EventName Window Event
-webKitWillRevealRight
-  = unsafeEventName (toJSString "webkitwillrevealright")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitwillrevealtop Mozilla Window.onwebkitwillrevealtop documentation> 
-webKitWillRevealTop :: EventName Window Event
-webKitWillRevealTop
-  = unsafeEventName (toJSString "webkitwillrevealtop")
+       (js_fetch, fetch, fetch_, js_openDatabase, openDatabase,
+        openDatabase_, openDatabaseUnsafe, openDatabaseUnchecked,
+        js_getSelection, getSelection, getSelection_, js_focus, focus,
+        js_blur, blur, js_close, close, js_print, print, js_stop, stop,
+        js_open, open, open_, js_showModalDialog, showModalDialog,
+        showModalDialog_, js_alertNoMessage, alertNoMessage, js_alert,
+        alert, js_confirm, confirm, confirm_, js_prompt, prompt, prompt_,
+        promptUnsafe, promptUnchecked, js_find, find, find_, js_scrollBy,
+        scrollBy, js_scrollTo, scrollTo, js_scroll, scroll, js_scrollByOpt,
+        scrollByOpt, js_scrollToOpt, scrollToOpt, js_scrollOpt, scrollOpt,
+        js_moveBy, moveBy, js_moveTo, moveTo, js_resizeBy, resizeBy,
+        js_resizeTo, resizeTo, js_matchMedia, matchMedia, matchMedia_,
+        js_getComputedStyle, getComputedStyle, getComputedStyle_,
+        js_getMatchedCSSRules, getMatchedCSSRules, getMatchedCSSRules_,
+        js_webkitConvertPointFromPageToNode,
+        webkitConvertPointFromPageToNode,
+        webkitConvertPointFromPageToNode_,
+        js_webkitConvertPointFromNodeToPage,
+        webkitConvertPointFromNodeToPage,
+        webkitConvertPointFromNodeToPage_, js_postMessage, postMessage,
+        js_requestAnimationFrame, requestAnimationFrame,
+        requestAnimationFrame_, js_cancelAnimationFrame,
+        cancelAnimationFrame, js_webkitRequestAnimationFrame,
+        webkitRequestAnimationFrame, webkitRequestAnimationFrame_,
+        js_webkitCancelAnimationFrame, webkitCancelAnimationFrame,
+        js_webkitCancelRequestAnimationFrame,
+        webkitCancelRequestAnimationFrame, js_captureEvents, captureEvents,
+        js_releaseEvents, releaseEvents,
+        js_collectMatchingElementsInFlatTree,
+        collectMatchingElementsInFlatTree,
+        collectMatchingElementsInFlatTree_, js_matchingElementInFlatTree,
+        matchingElementInFlatTree, matchingElementInFlatTree_,
+        matchingElementInFlatTreeUnsafe,
+        matchingElementInFlatTreeUnchecked, js_getIndexedDB, getIndexedDB,
+        js_getWebkitIndexedDB, getWebkitIndexedDB, js_getWebkitStorageInfo,
+        getWebkitStorageInfo, js_getSpeechSynthesis, getSpeechSynthesis,
+        js_getScreen, getScreen, js_getHistory, getHistory,
+        js_getLocationbar, getLocationbar, js_getMenubar, getMenubar,
+        js_getPersonalbar, getPersonalbar, js_getScrollbars, getScrollbars,
+        js_getStatusbar, getStatusbar, js_getToolbar, getToolbar,
+        js_getNavigator, getNavigator, js_getClientInformation,
+        getClientInformation, js_setLocation, setLocation, js_getLocation,
+        getLocation, js_getEvent, getEvent, js_getFrameElement,
+        getFrameElement, js_getOffscreenBuffering, getOffscreenBuffering,
+        js_getOuterHeight, getOuterHeight, js_getOuterWidth, getOuterWidth,
+        js_getInnerHeight, getInnerHeight, js_getInnerWidth, getInnerWidth,
+        js_getScreenX, getScreenX, js_getScreenY, getScreenY,
+        js_getScreenLeft, getScreenLeft, js_getScreenTop, getScreenTop,
+        js_getScrollX, getScrollX, js_getScrollY, getScrollY,
+        js_getPageXOffset, getPageXOffset, js_getPageYOffset,
+        getPageYOffset, js_getClosed, getClosed, js_getLength, getLength,
+        js_setName, setName, js_getName, getName, js_setStatus, setStatus,
+        js_getStatus, getStatus, js_setDefaultStatus, setDefaultStatus,
+        js_getDefaultStatus, getDefaultStatus, js_setDefaultstatus,
+        setDefaultstatus, js_getDefaultstatus, getDefaultstatus,
+        js_getSelf, getSelf, js_getWindow, getWindow, js_getFrames,
+        getFrames, js_getOpener, getOpener, js_getParent, getParent,
+        js_getTop, getTop, js_getDocument, getDocument, js_getStyleMedia,
+        getStyleMedia, js_getDevicePixelRatio, getDevicePixelRatio,
+        js_getApplicationCache, getApplicationCache, js_getSessionStorage,
+        getSessionStorage, js_getLocalStorage, getLocalStorage,
+        js_getOrientation, getOrientation, js_getCustomElements,
+        getCustomElements, animationEnd, animationIteration,
+        animationStart, transitionEnd, webKitAnimationEnd,
+        webKitAnimationIteration, webKitAnimationStart,
+        webKitTransitionEnd, gestureChange, gestureEnd, gestureStart,
+        deviceMotion, deviceOrientation, webKitDeviceProximity, Window(..),
+        gTypeWindow)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript interruptible
+        "$1[\"fetch\"]($2, $3).then($c);" js_fetch ::
+        Window -> JSVal -> Optional RequestInit -> IO Response
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.fetch Mozilla Window.fetch documentation> 
+fetch ::
+      (MonadIO m, ToJSVal input) =>
+        Window -> input -> Maybe RequestInit -> m Response
+fetch self input init
+  = liftIO
+      (toJSVal input >>= \ input' -> js_fetch self input'
+         (maybeToOptional init))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.fetch Mozilla Window.fetch documentation> 
+fetch_ ::
+       (MonadIO m, ToJSVal input) =>
+         Window -> input -> Maybe RequestInit -> m ()
+fetch_ self input init
+  = liftIO
+      (void
+         (toJSVal input >>= \ input' -> js_fetch self input'
+            (maybeToOptional init)))
+ 
+foreign import javascript unsafe
+        "$1[\"openDatabase\"]($2, $3, $4,\n$5, $6)" js_openDatabase ::
+        Window ->
+          JSString ->
+            JSString ->
+              JSString ->
+                Word -> Optional DatabaseCallback -> IO (Nullable Database)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.openDatabase Mozilla Window.openDatabase documentation> 
+openDatabase ::
+             (MonadIO m, ToJSString name, ToJSString version,
+              ToJSString displayName) =>
+               Window ->
+                 name ->
+                   version ->
+                     displayName -> Word -> Maybe DatabaseCallback -> m (Maybe Database)
+openDatabase self name version displayName estimatedSize
+  creationCallback
+  = liftIO
+      (nullableToMaybe <$>
+         (js_openDatabase self (toJSString name) (toJSString version)
+            (toJSString displayName)
+            estimatedSize
+            (maybeToOptional creationCallback)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.openDatabase Mozilla Window.openDatabase documentation> 
+openDatabase_ ::
+              (MonadIO m, ToJSString name, ToJSString version,
+               ToJSString displayName) =>
+                Window ->
+                  name ->
+                    version -> displayName -> Word -> Maybe DatabaseCallback -> m ()
+openDatabase_ self name version displayName estimatedSize
+  creationCallback
+  = liftIO
+      (void
+         (js_openDatabase self (toJSString name) (toJSString version)
+            (toJSString displayName)
+            estimatedSize
+            (maybeToOptional creationCallback)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.openDatabase Mozilla Window.openDatabase documentation> 
+openDatabaseUnsafe ::
+                   (MonadIO m, ToJSString name, ToJSString version,
+                    ToJSString displayName, HasCallStack) =>
+                     Window ->
+                       name ->
+                         version ->
+                           displayName -> Word -> Maybe DatabaseCallback -> m Database
+openDatabaseUnsafe self name version displayName estimatedSize
+  creationCallback
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_openDatabase self (toJSString name) (toJSString version)
+             (toJSString displayName)
+             estimatedSize
+             (maybeToOptional creationCallback)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.openDatabase Mozilla Window.openDatabase documentation> 
+openDatabaseUnchecked ::
+                      (MonadIO m, ToJSString name, ToJSString version,
+                       ToJSString displayName) =>
+                        Window ->
+                          name ->
+                            version ->
+                              displayName -> Word -> Maybe DatabaseCallback -> m Database
+openDatabaseUnchecked self name version displayName estimatedSize
+  creationCallback
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_openDatabase self (toJSString name) (toJSString version)
+            (toJSString displayName)
+            estimatedSize
+            (maybeToOptional creationCallback)))
+ 
+foreign import javascript unsafe "$1[\"getSelection\"]()"
+        js_getSelection :: Window -> IO Selection
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection Mozilla Window.getSelection documentation> 
+getSelection :: (MonadIO m) => Window -> m Selection
+getSelection self = liftIO (js_getSelection self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection Mozilla Window.getSelection documentation> 
+getSelection_ :: (MonadIO m) => Window -> m ()
+getSelection_ self = liftIO (void (js_getSelection self))
+ 
+foreign import javascript unsafe "$1[\"focus\"]()" js_focus ::
+        Window -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.focus Mozilla Window.focus documentation> 
+focus :: (MonadIO m) => Window -> m ()
+focus self = liftIO (js_focus self)
+ 
+foreign import javascript unsafe "$1[\"blur\"]()" js_blur ::
+        Window -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.blur Mozilla Window.blur documentation> 
+blur :: (MonadIO m) => Window -> m ()
+blur self = liftIO (js_blur self)
+ 
+foreign import javascript unsafe "$1[\"close\"]()" js_close ::
+        Window -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.close Mozilla Window.close documentation> 
+close :: (MonadIO m) => Window -> m ()
+close self = liftIO (js_close self)
+ 
+foreign import javascript unsafe "$1[\"print\"]()" js_print ::
+        Window -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.print Mozilla Window.print documentation> 
+print :: (MonadIO m) => Window -> m ()
+print self = liftIO (js_print self)
+ 
+foreign import javascript unsafe "$1[\"stop\"]()" js_stop ::
+        Window -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.stop Mozilla Window.stop documentation> 
+stop :: (MonadIO m) => Window -> m ()
+stop self = liftIO (js_stop self)
+ 
+foreign import javascript unsafe "$1[\"open\"]($2, $3, $4)" js_open
+        ::
+        Window ->
+          Optional JSString ->
+            Optional JSString -> Optional JSString -> IO Window
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.open Mozilla Window.open documentation> 
+open ::
+     (MonadIO m, ToJSString url, ToJSString target,
+      ToJSString features) =>
+       Window -> Maybe url -> Maybe target -> Maybe features -> m Window
+open self url target features
+  = liftIO
+      (js_open self (toOptionalJSString url) (toOptionalJSString target)
+         (toOptionalJSString features))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.open Mozilla Window.open documentation> 
+open_ ::
+      (MonadIO m, ToJSString url, ToJSString target,
+       ToJSString features) =>
+        Window -> Maybe url -> Maybe target -> Maybe features -> m ()
+open_ self url target features
+  = liftIO
+      (void
+         (js_open self (toOptionalJSString url) (toOptionalJSString target)
+            (toOptionalJSString features)))
+ 
+foreign import javascript unsafe
+        "$1[\"showModalDialog\"]($2, $3,\n$4)" js_showModalDialog ::
+        Window ->
+          JSString -> Optional JSVal -> Optional JSString -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.showModalDialog Mozilla Window.showModalDialog documentation> 
+showModalDialog ::
+                (MonadIO m, ToJSString url, ToJSVal dialogArgs,
+                 ToJSString featureArgs) =>
+                  Window -> url -> Maybe dialogArgs -> Maybe featureArgs -> m JSVal
+showModalDialog self url dialogArgs featureArgs
+  = liftIO
+      (mapM toJSVal dialogArgs >>=
+         \ dialogArgs' ->
+           js_showModalDialog self (toJSString url)
+             (maybeToOptional dialogArgs')
+         (toOptionalJSString featureArgs))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.showModalDialog Mozilla Window.showModalDialog documentation> 
+showModalDialog_ ::
+                 (MonadIO m, ToJSString url, ToJSVal dialogArgs,
+                  ToJSString featureArgs) =>
+                   Window -> url -> Maybe dialogArgs -> Maybe featureArgs -> m ()
+showModalDialog_ self url dialogArgs featureArgs
+  = liftIO
+      (void
+         (mapM toJSVal dialogArgs >>=
+            \ dialogArgs' ->
+              js_showModalDialog self (toJSString url)
+                (maybeToOptional dialogArgs')
+            (toOptionalJSString featureArgs)))
+ 
+foreign import javascript unsafe "$1[\"alert\"]()"
+        js_alertNoMessage :: Window -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.alert Mozilla Window.alert documentation> 
+alertNoMessage :: (MonadIO m) => Window -> m ()
+alertNoMessage self = liftIO (js_alertNoMessage self)
+ 
+foreign import javascript unsafe "$1[\"alert\"]($2)" js_alert ::
+        Window -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.alert Mozilla Window.alert documentation> 
+alert ::
+      (MonadIO m, ToJSString message) => Window -> message -> m ()
+alert self message = liftIO (js_alert self (toJSString message))
+ 
+foreign import javascript unsafe "($1[\"confirm\"]($2) ? 1 : 0)"
+        js_confirm :: Window -> Optional JSString -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.confirm Mozilla Window.confirm documentation> 
+confirm ::
+        (MonadIO m, ToJSString message) =>
+          Window -> Maybe message -> m Bool
+confirm self message
+  = liftIO (js_confirm self (toOptionalJSString message))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.confirm Mozilla Window.confirm documentation> 
+confirm_ ::
+         (MonadIO m, ToJSString message) => Window -> Maybe message -> m ()
+confirm_ self message
+  = liftIO (void (js_confirm self (toOptionalJSString message)))
+ 
+foreign import javascript unsafe "$1[\"prompt\"]($2, $3)" js_prompt
+        ::
+        Window ->
+          Optional JSString -> Optional JSString -> IO (Nullable JSString)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.prompt Mozilla Window.prompt documentation> 
+prompt ::
+       (MonadIO m, ToJSString message, ToJSString defaultValue,
+        FromJSString result) =>
+         Window -> Maybe message -> Maybe defaultValue -> m (Maybe result)
+prompt self message defaultValue
+  = liftIO
+      (fromMaybeJSString <$>
+         (js_prompt self (toOptionalJSString message)
+            (toOptionalJSString defaultValue)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.prompt Mozilla Window.prompt documentation> 
+prompt_ ::
+        (MonadIO m, ToJSString message, ToJSString defaultValue) =>
+          Window -> Maybe message -> Maybe defaultValue -> m ()
+prompt_ self message defaultValue
+  = liftIO
+      (void
+         (js_prompt self (toOptionalJSString message)
+            (toOptionalJSString defaultValue)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.prompt Mozilla Window.prompt documentation> 
+promptUnsafe ::
+             (MonadIO m, ToJSString message, ToJSString defaultValue,
+              HasCallStack, FromJSString result) =>
+               Window -> Maybe message -> Maybe defaultValue -> m result
+promptUnsafe self message defaultValue
+  = liftIO
+      ((fromMaybeJSString <$>
+          (js_prompt self (toOptionalJSString message)
+             (toOptionalJSString defaultValue)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.prompt Mozilla Window.prompt documentation> 
+promptUnchecked ::
+                (MonadIO m, ToJSString message, ToJSString defaultValue,
+                 FromJSString result) =>
+                  Window -> Maybe message -> Maybe defaultValue -> m result
+promptUnchecked self message defaultValue
+  = liftIO
+      (fromJust . fromMaybeJSString <$>
+         (js_prompt self (toOptionalJSString message)
+            (toOptionalJSString defaultValue)))
+ 
+foreign import javascript unsafe
+        "($1[\"find\"]($2, $3, $4, $5, $6,\n$7, $8) ? 1 : 0)" js_find ::
+        Window ->
+          Optional JSString ->
+            Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.find Mozilla Window.find documentation> 
+find ::
+     (MonadIO m, ToJSString string) =>
+       Window ->
+         Maybe string ->
+           Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> m Bool
+find self string caseSensitive backwards wrap wholeWord
+  searchInFrames showDialog
+  = liftIO
+      (js_find self (toOptionalJSString string) caseSensitive backwards
+         wrap
+         wholeWord
+         searchInFrames
+         showDialog)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.find Mozilla Window.find documentation> 
+find_ ::
+      (MonadIO m, ToJSString string) =>
+        Window ->
+          Maybe string ->
+            Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> m ()
+find_ self string caseSensitive backwards wrap wholeWord
+  searchInFrames showDialog
+  = liftIO
+      (void
+         (js_find self (toOptionalJSString string) caseSensitive backwards
+            wrap
+            wholeWord
+            searchInFrames
+            showDialog))
+ 
+foreign import javascript unsafe "$1[\"scrollBy\"]($2, $3)"
+        js_scrollBy :: Window -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollBy Mozilla Window.scrollBy documentation> 
+scrollBy :: (MonadIO m) => Window -> Double -> Double -> m ()
+scrollBy self x y = liftIO (js_scrollBy self x y)
+ 
+foreign import javascript unsafe "$1[\"scrollTo\"]($2, $3)"
+        js_scrollTo :: Window -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollTo Mozilla Window.scrollTo documentation> 
+scrollTo :: (MonadIO m) => Window -> Double -> Double -> m ()
+scrollTo self x y = liftIO (js_scrollTo self x y)
+ 
+foreign import javascript unsafe "$1[\"scroll\"]($2, $3)" js_scroll
+        :: Window -> Double -> Double -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scroll Mozilla Window.scroll documentation> 
+scroll :: (MonadIO m) => Window -> Double -> Double -> m ()
+scroll self x y = liftIO (js_scroll self x y)
+ 
+foreign import javascript unsafe "$1[\"scrollBy\"]($2)"
+        js_scrollByOpt :: Window -> Optional ScrollToOptions -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollBy Mozilla Window.scrollBy documentation> 
+scrollByOpt ::
+            (MonadIO m) => Window -> Maybe ScrollToOptions -> m ()
+scrollByOpt self option
+  = liftIO (js_scrollByOpt self (maybeToOptional option))
+ 
+foreign import javascript unsafe "$1[\"scrollTo\"]($2)"
+        js_scrollToOpt :: Window -> Optional ScrollToOptions -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollTo Mozilla Window.scrollTo documentation> 
+scrollToOpt ::
+            (MonadIO m) => Window -> Maybe ScrollToOptions -> m ()
+scrollToOpt self options
+  = liftIO (js_scrollToOpt self (maybeToOptional options))
+ 
+foreign import javascript unsafe "$1[\"scroll\"]($2)" js_scrollOpt
+        :: Window -> Optional ScrollToOptions -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scroll Mozilla Window.scroll documentation> 
+scrollOpt :: (MonadIO m) => Window -> Maybe ScrollToOptions -> m ()
+scrollOpt self options
+  = liftIO (js_scrollOpt self (maybeToOptional options))
+ 
+foreign import javascript unsafe "$1[\"moveBy\"]($2, $3)" js_moveBy
+        :: Window -> Optional Float -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.moveBy Mozilla Window.moveBy documentation> 
+moveBy ::
+       (MonadIO m) => Window -> Maybe Float -> Maybe Float -> m ()
+moveBy self x y
+  = liftIO (js_moveBy self (maybeToOptional x) (maybeToOptional y))
+ 
+foreign import javascript unsafe "$1[\"moveTo\"]($2, $3)" js_moveTo
+        :: Window -> Optional Float -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.moveTo Mozilla Window.moveTo documentation> 
+moveTo ::
+       (MonadIO m) => Window -> Maybe Float -> Maybe Float -> m ()
+moveTo self x y
+  = liftIO (js_moveTo self (maybeToOptional x) (maybeToOptional y))
+ 
+foreign import javascript unsafe "$1[\"resizeBy\"]($2, $3)"
+        js_resizeBy :: Window -> Optional Float -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.resizeBy Mozilla Window.resizeBy documentation> 
+resizeBy ::
+         (MonadIO m) => Window -> Maybe Float -> Maybe Float -> m ()
+resizeBy self x y
+  = liftIO (js_resizeBy self (maybeToOptional x) (maybeToOptional y))
+ 
+foreign import javascript unsafe "$1[\"resizeTo\"]($2, $3)"
+        js_resizeTo :: Window -> Optional Float -> Optional Float -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.resizeTo Mozilla Window.resizeTo documentation> 
+resizeTo ::
+         (MonadIO m) => Window -> Maybe Float -> Maybe Float -> m ()
+resizeTo self width height
+  = liftIO
+      (js_resizeTo self (maybeToOptional width) (maybeToOptional height))
+ 
+foreign import javascript unsafe "$1[\"matchMedia\"]($2)"
+        js_matchMedia :: Window -> JSString -> IO MediaQueryList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.matchMedia Mozilla Window.matchMedia documentation> 
+matchMedia ::
+           (MonadIO m, ToJSString query) =>
+             Window -> query -> m MediaQueryList
+matchMedia self query
+  = liftIO (js_matchMedia self (toJSString query))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.matchMedia Mozilla Window.matchMedia documentation> 
+matchMedia_ ::
+            (MonadIO m, ToJSString query) => Window -> query -> m ()
+matchMedia_ self query
+  = liftIO (void (js_matchMedia self (toJSString query)))
+ 
+foreign import javascript unsafe "$1[\"getComputedStyle\"]($2, $3)"
+        js_getComputedStyle ::
+        Window -> Element -> Optional JSString -> IO CSSStyleDeclaration
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getComputedStyle Mozilla Window.getComputedStyle documentation> 
+getComputedStyle ::
+                 (MonadIO m, IsElement element, ToJSString pseudoElement) =>
+                   Window -> element -> Maybe pseudoElement -> m CSSStyleDeclaration
+getComputedStyle self element pseudoElement
+  = liftIO
+      (js_getComputedStyle self (toElement element)
+         (toOptionalJSString pseudoElement))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getComputedStyle Mozilla Window.getComputedStyle documentation> 
+getComputedStyle_ ::
+                  (MonadIO m, IsElement element, ToJSString pseudoElement) =>
+                    Window -> element -> Maybe pseudoElement -> m ()
+getComputedStyle_ self element pseudoElement
+  = liftIO
+      (void
+         (js_getComputedStyle self (toElement element)
+            (toOptionalJSString pseudoElement)))
+ 
+foreign import javascript unsafe
+        "$1[\"getMatchedCSSRules\"]($2, $3)" js_getMatchedCSSRules ::
+        Window -> Optional Element -> Optional JSString -> IO CSSRuleList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getMatchedCSSRules Mozilla Window.getMatchedCSSRules documentation> 
+getMatchedCSSRules ::
+                   (MonadIO m, IsElement element, ToJSString pseudoElement) =>
+                     Window -> Maybe element -> Maybe pseudoElement -> m CSSRuleList
+getMatchedCSSRules self element pseudoElement
+  = liftIO
+      (js_getMatchedCSSRules self
+         (maybeToOptional (fmap toElement element))
+         (toOptionalJSString pseudoElement))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.getMatchedCSSRules Mozilla Window.getMatchedCSSRules documentation> 
+getMatchedCSSRules_ ::
+                    (MonadIO m, IsElement element, ToJSString pseudoElement) =>
+                      Window -> Maybe element -> Maybe pseudoElement -> m ()
+getMatchedCSSRules_ self element pseudoElement
+  = liftIO
+      (void
+         (js_getMatchedCSSRules self
+            (maybeToOptional (fmap toElement element))
+            (toOptionalJSString pseudoElement)))
+ 
+foreign import javascript unsafe
+        "$1[\"webkitConvertPointFromPageToNode\"]($2,\n$3)"
+        js_webkitConvertPointFromPageToNode ::
+        Window -> Optional Node -> Optional WebKitPoint -> IO WebKitPoint
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromPageToNode Mozilla Window.webkitConvertPointFromPageToNode documentation> 
+webkitConvertPointFromPageToNode ::
+                                 (MonadIO m, IsNode node) =>
+                                   Window -> Maybe node -> Maybe WebKitPoint -> m WebKitPoint
+webkitConvertPointFromPageToNode self node p
+  = liftIO
+      (js_webkitConvertPointFromPageToNode self
+         (maybeToOptional (fmap toNode node))
+         (maybeToOptional p))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromPageToNode Mozilla Window.webkitConvertPointFromPageToNode documentation> 
+webkitConvertPointFromPageToNode_ ::
+                                  (MonadIO m, IsNode node) =>
+                                    Window -> Maybe node -> Maybe WebKitPoint -> m ()
+webkitConvertPointFromPageToNode_ self node p
+  = liftIO
+      (void
+         (js_webkitConvertPointFromPageToNode self
+            (maybeToOptional (fmap toNode node))
+            (maybeToOptional p)))
+ 
+foreign import javascript unsafe
+        "$1[\"webkitConvertPointFromNodeToPage\"]($2,\n$3)"
+        js_webkitConvertPointFromNodeToPage ::
+        Window -> Optional Node -> Optional WebKitPoint -> IO WebKitPoint
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromNodeToPage Mozilla Window.webkitConvertPointFromNodeToPage documentation> 
+webkitConvertPointFromNodeToPage ::
+                                 (MonadIO m, IsNode node) =>
+                                   Window -> Maybe node -> Maybe WebKitPoint -> m WebKitPoint
+webkitConvertPointFromNodeToPage self node p
+  = liftIO
+      (js_webkitConvertPointFromNodeToPage self
+         (maybeToOptional (fmap toNode node))
+         (maybeToOptional p))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitConvertPointFromNodeToPage Mozilla Window.webkitConvertPointFromNodeToPage documentation> 
+webkitConvertPointFromNodeToPage_ ::
+                                  (MonadIO m, IsNode node) =>
+                                    Window -> Maybe node -> Maybe WebKitPoint -> m ()
+webkitConvertPointFromNodeToPage_ self node p
+  = liftIO
+      (void
+         (js_webkitConvertPointFromNodeToPage self
+            (maybeToOptional (fmap toNode node))
+            (maybeToOptional p)))
+ 
+foreign import javascript unsafe "$1[\"postMessage\"]($2, $3, $4)"
+        js_postMessage :: Window -> JSVal -> JSString -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage Mozilla Window.postMessage documentation> 
+postMessage ::
+            (MonadIO m, ToJSVal message, ToJSString targetOrigin,
+             IsGObject transfer) =>
+              Window -> message -> targetOrigin -> [transfer] -> m ()
+postMessage self message targetOrigin transfer
+  = liftIO
+      (toJSVal transfer >>=
+         \ transfer' ->
+           toJSVal message >>= \ message' -> js_postMessage self message'
+             (toJSString targetOrigin)
+             transfer')
+ 
+foreign import javascript unsafe
+        "$1[\"requestAnimationFrame\"]($2)" js_requestAnimationFrame ::
+        Window -> RequestAnimationFrameCallback -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.requestAnimationFrame Mozilla Window.requestAnimationFrame documentation> 
+requestAnimationFrame ::
+                      (MonadIO m) => Window -> RequestAnimationFrameCallback -> m Int
+requestAnimationFrame self callback
+  = liftIO (js_requestAnimationFrame self callback)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.requestAnimationFrame Mozilla Window.requestAnimationFrame documentation> 
+requestAnimationFrame_ ::
+                       (MonadIO m) => Window -> RequestAnimationFrameCallback -> m ()
+requestAnimationFrame_ self callback
+  = liftIO (void (js_requestAnimationFrame self callback))
+ 
+foreign import javascript unsafe "$1[\"cancelAnimationFrame\"]($2)"
+        js_cancelAnimationFrame :: Window -> Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.cancelAnimationFrame Mozilla Window.cancelAnimationFrame documentation> 
+cancelAnimationFrame :: (MonadIO m) => Window -> Int -> m ()
+cancelAnimationFrame self id
+  = liftIO (js_cancelAnimationFrame self id)
+ 
+foreign import javascript unsafe
+        "$1[\"webkitRequestAnimationFrame\"]($2)"
+        js_webkitRequestAnimationFrame ::
+        Window -> RequestAnimationFrameCallback -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitRequestAnimationFrame Mozilla Window.webkitRequestAnimationFrame documentation> 
+webkitRequestAnimationFrame ::
+                            (MonadIO m) => Window -> RequestAnimationFrameCallback -> m Int
+webkitRequestAnimationFrame self callback
+  = liftIO (js_webkitRequestAnimationFrame self callback)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitRequestAnimationFrame Mozilla Window.webkitRequestAnimationFrame documentation> 
+webkitRequestAnimationFrame_ ::
+                             (MonadIO m) => Window -> RequestAnimationFrameCallback -> m ()
+webkitRequestAnimationFrame_ self callback
+  = liftIO (void (js_webkitRequestAnimationFrame self callback))
+ 
+foreign import javascript unsafe
+        "$1[\"webkitCancelAnimationFrame\"]($2)"
+        js_webkitCancelAnimationFrame :: Window -> Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitCancelAnimationFrame Mozilla Window.webkitCancelAnimationFrame documentation> 
+webkitCancelAnimationFrame :: (MonadIO m) => Window -> Int -> m ()
+webkitCancelAnimationFrame self id
+  = liftIO (js_webkitCancelAnimationFrame self id)
+ 
+foreign import javascript unsafe
+        "$1[\"webkitCancelRequestAnimationFrame\"]($2)"
+        js_webkitCancelRequestAnimationFrame :: Window -> Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitCancelRequestAnimationFrame Mozilla Window.webkitCancelRequestAnimationFrame documentation> 
+webkitCancelRequestAnimationFrame ::
+                                  (MonadIO m) => Window -> Int -> m ()
+webkitCancelRequestAnimationFrame self id
+  = liftIO (js_webkitCancelRequestAnimationFrame self id)
+ 
+foreign import javascript unsafe "$1[\"captureEvents\"]()"
+        js_captureEvents :: Window -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.captureEvents Mozilla Window.captureEvents documentation> 
+captureEvents :: (MonadIO m) => Window -> m ()
+captureEvents self = liftIO (js_captureEvents self)
+ 
+foreign import javascript unsafe "$1[\"releaseEvents\"]()"
+        js_releaseEvents :: Window -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.releaseEvents Mozilla Window.releaseEvents documentation> 
+releaseEvents :: (MonadIO m) => Window -> m ()
+releaseEvents self = liftIO (js_releaseEvents self)
+ 
+foreign import javascript unsafe
+        "$1[\"collectMatchingElementsInFlatTree\"]($2,\n$3)"
+        js_collectMatchingElementsInFlatTree ::
+        Window -> Node -> JSString -> IO NodeList
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.collectMatchingElementsInFlatTree Mozilla Window.collectMatchingElementsInFlatTree documentation> 
+collectMatchingElementsInFlatTree ::
+                                  (MonadIO m, IsNode scope, ToJSString selectors) =>
+                                    Window -> scope -> selectors -> m NodeList
+collectMatchingElementsInFlatTree self scope selectors
+  = liftIO
+      (js_collectMatchingElementsInFlatTree self (toNode scope)
+         (toJSString selectors))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.collectMatchingElementsInFlatTree Mozilla Window.collectMatchingElementsInFlatTree documentation> 
+collectMatchingElementsInFlatTree_ ::
+                                   (MonadIO m, IsNode scope, ToJSString selectors) =>
+                                     Window -> scope -> selectors -> m ()
+collectMatchingElementsInFlatTree_ self scope selectors
+  = liftIO
+      (void
+         (js_collectMatchingElementsInFlatTree self (toNode scope)
+            (toJSString selectors)))
+ 
+foreign import javascript unsafe
+        "$1[\"matchingElementInFlatTree\"]($2,\n$3)"
+        js_matchingElementInFlatTree ::
+        Window -> Node -> JSString -> IO (Nullable Element)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.matchingElementInFlatTree Mozilla Window.matchingElementInFlatTree documentation> 
+matchingElementInFlatTree ::
+                          (MonadIO m, IsNode scope, ToJSString selectors) =>
+                            Window -> scope -> selectors -> m (Maybe Element)
+matchingElementInFlatTree self scope selectors
+  = liftIO
+      (nullableToMaybe <$>
+         (js_matchingElementInFlatTree self (toNode scope)
+            (toJSString selectors)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.matchingElementInFlatTree Mozilla Window.matchingElementInFlatTree documentation> 
+matchingElementInFlatTree_ ::
+                           (MonadIO m, IsNode scope, ToJSString selectors) =>
+                             Window -> scope -> selectors -> m ()
+matchingElementInFlatTree_ self scope selectors
+  = liftIO
+      (void
+         (js_matchingElementInFlatTree self (toNode scope)
+            (toJSString selectors)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.matchingElementInFlatTree Mozilla Window.matchingElementInFlatTree documentation> 
+matchingElementInFlatTreeUnsafe ::
+                                (MonadIO m, IsNode scope, ToJSString selectors, HasCallStack) =>
+                                  Window -> scope -> selectors -> m Element
+matchingElementInFlatTreeUnsafe self scope selectors
+  = liftIO
+      ((nullableToMaybe <$>
+          (js_matchingElementInFlatTree self (toNode scope)
+             (toJSString selectors)))
+         >>= maybe (Prelude.error "Nothing to return") return)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.matchingElementInFlatTree Mozilla Window.matchingElementInFlatTree documentation> 
+matchingElementInFlatTreeUnchecked ::
+                                   (MonadIO m, IsNode scope, ToJSString selectors) =>
+                                     Window -> scope -> selectors -> m Element
+matchingElementInFlatTreeUnchecked self scope selectors
+  = liftIO
+      (fromJust . nullableToMaybe <$>
+         (js_matchingElementInFlatTree self (toNode scope)
+            (toJSString selectors)))
+ 
+foreign import javascript unsafe "$1[\"indexedDB\"]"
+        js_getIndexedDB :: Window -> IO IDBFactory
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.indexedDB Mozilla Window.indexedDB documentation> 
+getIndexedDB :: (MonadIO m) => Window -> m IDBFactory
+getIndexedDB self = liftIO (js_getIndexedDB self)
+ 
+foreign import javascript unsafe "$1[\"webkitIndexedDB\"]"
+        js_getWebkitIndexedDB :: Window -> IO IDBFactory
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitIndexedDB Mozilla Window.webkitIndexedDB documentation> 
+getWebkitIndexedDB :: (MonadIO m) => Window -> m IDBFactory
+getWebkitIndexedDB self = liftIO (js_getWebkitIndexedDB self)
+ 
+foreign import javascript unsafe "$1[\"webkitStorageInfo\"]"
+        js_getWebkitStorageInfo :: Window -> IO StorageInfo
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.webkitStorageInfo Mozilla Window.webkitStorageInfo documentation> 
+getWebkitStorageInfo :: (MonadIO m) => Window -> m StorageInfo
+getWebkitStorageInfo self = liftIO (js_getWebkitStorageInfo self)
+ 
+foreign import javascript unsafe "$1[\"speechSynthesis\"]"
+        js_getSpeechSynthesis :: Window -> IO SpeechSynthesis
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.speechSynthesis Mozilla Window.speechSynthesis documentation> 
+getSpeechSynthesis :: (MonadIO m) => Window -> m SpeechSynthesis
+getSpeechSynthesis self = liftIO (js_getSpeechSynthesis self)
+ 
+foreign import javascript unsafe "$1[\"screen\"]" js_getScreen ::
+        Window -> IO Screen
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screen Mozilla Window.screen documentation> 
+getScreen :: (MonadIO m) => Window -> m Screen
+getScreen self = liftIO (js_getScreen self)
+ 
+foreign import javascript unsafe "$1[\"history\"]" js_getHistory ::
+        Window -> IO History
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.history Mozilla Window.history documentation> 
+getHistory :: (MonadIO m) => Window -> m History
+getHistory self = liftIO (js_getHistory self)
+ 
+foreign import javascript unsafe "$1[\"locationbar\"]"
+        js_getLocationbar :: Window -> IO BarProp
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.locationbar Mozilla Window.locationbar documentation> 
+getLocationbar :: (MonadIO m) => Window -> m BarProp
+getLocationbar self = liftIO (js_getLocationbar self)
+ 
+foreign import javascript unsafe "$1[\"menubar\"]" js_getMenubar ::
+        Window -> IO BarProp
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.menubar Mozilla Window.menubar documentation> 
+getMenubar :: (MonadIO m) => Window -> m BarProp
+getMenubar self = liftIO (js_getMenubar self)
+ 
+foreign import javascript unsafe "$1[\"personalbar\"]"
+        js_getPersonalbar :: Window -> IO BarProp
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.personalbar Mozilla Window.personalbar documentation> 
+getPersonalbar :: (MonadIO m) => Window -> m BarProp
+getPersonalbar self = liftIO (js_getPersonalbar self)
+ 
+foreign import javascript unsafe "$1[\"scrollbars\"]"
+        js_getScrollbars :: Window -> IO BarProp
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollbars Mozilla Window.scrollbars documentation> 
+getScrollbars :: (MonadIO m) => Window -> m BarProp
+getScrollbars self = liftIO (js_getScrollbars self)
+ 
+foreign import javascript unsafe "$1[\"statusbar\"]"
+        js_getStatusbar :: Window -> IO BarProp
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.statusbar Mozilla Window.statusbar documentation> 
+getStatusbar :: (MonadIO m) => Window -> m BarProp
+getStatusbar self = liftIO (js_getStatusbar self)
+ 
+foreign import javascript unsafe "$1[\"toolbar\"]" js_getToolbar ::
+        Window -> IO BarProp
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.toolbar Mozilla Window.toolbar documentation> 
+getToolbar :: (MonadIO m) => Window -> m BarProp
+getToolbar self = liftIO (js_getToolbar self)
+ 
+foreign import javascript unsafe "$1[\"navigator\"]"
+        js_getNavigator :: Window -> IO Navigator
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.navigator Mozilla Window.navigator documentation> 
+getNavigator :: (MonadIO m) => Window -> m Navigator
+getNavigator self = liftIO (js_getNavigator self)
+ 
+foreign import javascript unsafe "$1[\"clientInformation\"]"
+        js_getClientInformation :: Window -> IO Navigator
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.clientInformation Mozilla Window.clientInformation documentation> 
+getClientInformation :: (MonadIO m) => Window -> m Navigator
+getClientInformation self = liftIO (js_getClientInformation self)
+ 
+foreign import javascript unsafe "$1[\"location\"] = $2;"
+        js_setLocation :: Window -> Location -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.location Mozilla Window.location documentation> 
+setLocation :: (MonadIO m) => Window -> Location -> m ()
+setLocation self val = liftIO (js_setLocation self val)
+ 
+foreign import javascript unsafe "$1[\"location\"]" js_getLocation
+        :: Window -> IO Location
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.location Mozilla Window.location documentation> 
+getLocation :: (MonadIO m) => Window -> m Location
+getLocation self = liftIO (js_getLocation self)
+ 
+foreign import javascript unsafe "$1[\"event\"]" js_getEvent ::
+        Window -> IO Event
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.event Mozilla Window.event documentation> 
+getEvent :: (MonadIO m) => Window -> m Event
+getEvent self = liftIO (js_getEvent self)
+ 
+foreign import javascript unsafe "$1[\"frameElement\"]"
+        js_getFrameElement :: Window -> IO Element
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.frameElement Mozilla Window.frameElement documentation> 
+getFrameElement :: (MonadIO m) => Window -> m Element
+getFrameElement self = liftIO (js_getFrameElement self)
+ 
+foreign import javascript unsafe
+        "($1[\"offscreenBuffering\"] ? 1 : 0)" js_getOffscreenBuffering ::
+        Window -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.offscreenBuffering Mozilla Window.offscreenBuffering documentation> 
+getOffscreenBuffering :: (MonadIO m) => Window -> m Bool
+getOffscreenBuffering self = liftIO (js_getOffscreenBuffering self)
+ 
+foreign import javascript unsafe "$1[\"outerHeight\"]"
+        js_getOuterHeight :: Window -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.outerHeight Mozilla Window.outerHeight documentation> 
+getOuterHeight :: (MonadIO m) => Window -> m Int
+getOuterHeight self = liftIO (js_getOuterHeight self)
+ 
+foreign import javascript unsafe "$1[\"outerWidth\"]"
+        js_getOuterWidth :: Window -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.outerWidth Mozilla Window.outerWidth documentation> 
+getOuterWidth :: (MonadIO m) => Window -> m Int
+getOuterWidth self = liftIO (js_getOuterWidth self)
+ 
+foreign import javascript unsafe "$1[\"innerHeight\"]"
+        js_getInnerHeight :: Window -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.innerHeight Mozilla Window.innerHeight documentation> 
+getInnerHeight :: (MonadIO m) => Window -> m Int
+getInnerHeight self = liftIO (js_getInnerHeight self)
+ 
+foreign import javascript unsafe "$1[\"innerWidth\"]"
+        js_getInnerWidth :: Window -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.innerWidth Mozilla Window.innerWidth documentation> 
+getInnerWidth :: (MonadIO m) => Window -> m Int
+getInnerWidth self = liftIO (js_getInnerWidth self)
+ 
+foreign import javascript unsafe "$1[\"screenX\"]" js_getScreenX ::
+        Window -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screenX Mozilla Window.screenX documentation> 
+getScreenX :: (MonadIO m) => Window -> m Int
+getScreenX self = liftIO (js_getScreenX self)
+ 
+foreign import javascript unsafe "$1[\"screenY\"]" js_getScreenY ::
+        Window -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screenY Mozilla Window.screenY documentation> 
+getScreenY :: (MonadIO m) => Window -> m Int
+getScreenY self = liftIO (js_getScreenY self)
+ 
+foreign import javascript unsafe "$1[\"screenLeft\"]"
+        js_getScreenLeft :: Window -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screenLeft Mozilla Window.screenLeft documentation> 
+getScreenLeft :: (MonadIO m) => Window -> m Int
+getScreenLeft self = liftIO (js_getScreenLeft self)
+ 
+foreign import javascript unsafe "$1[\"screenTop\"]"
+        js_getScreenTop :: Window -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.screenTop Mozilla Window.screenTop documentation> 
+getScreenTop :: (MonadIO m) => Window -> m Int
+getScreenTop self = liftIO (js_getScreenTop self)
+ 
+foreign import javascript unsafe "$1[\"scrollX\"]" js_getScrollX ::
+        Window -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX Mozilla Window.scrollX documentation> 
+getScrollX :: (MonadIO m) => Window -> m Double
+getScrollX self = liftIO (js_getScrollX self)
+ 
+foreign import javascript unsafe "$1[\"scrollY\"]" js_getScrollY ::
+        Window -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY Mozilla Window.scrollY documentation> 
+getScrollY :: (MonadIO m) => Window -> m Double
+getScrollY self = liftIO (js_getScrollY self)
+ 
+foreign import javascript unsafe "$1[\"pageXOffset\"]"
+        js_getPageXOffset :: Window -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.pageXOffset Mozilla Window.pageXOffset documentation> 
+getPageXOffset :: (MonadIO m) => Window -> m Double
+getPageXOffset self = liftIO (js_getPageXOffset self)
+ 
+foreign import javascript unsafe "$1[\"pageYOffset\"]"
+        js_getPageYOffset :: Window -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.pageYOffset Mozilla Window.pageYOffset documentation> 
+getPageYOffset :: (MonadIO m) => Window -> m Double
+getPageYOffset self = liftIO (js_getPageYOffset self)
+ 
+foreign import javascript unsafe "($1[\"closed\"] ? 1 : 0)"
+        js_getClosed :: Window -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.closed Mozilla Window.closed documentation> 
+getClosed :: (MonadIO m) => Window -> m Bool
+getClosed self = liftIO (js_getClosed self)
+ 
+foreign import javascript unsafe "$1[\"length\"]" js_getLength ::
+        Window -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.length Mozilla Window.length documentation> 
+getLength :: (MonadIO m) => Window -> m Word
+getLength self = liftIO (js_getLength self)
+ 
+foreign import javascript unsafe "$1[\"name\"] = $2;" js_setName ::
+        Window -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.name Mozilla Window.name documentation> 
+setName :: (MonadIO m, ToJSString val) => Window -> val -> m ()
+setName self val = liftIO (js_setName self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"name\"]" js_getName ::
+        Window -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.name Mozilla Window.name documentation> 
+getName :: (MonadIO m, FromJSString result) => Window -> m result
+getName self = liftIO (fromJSString <$> (js_getName self))
+ 
+foreign import javascript unsafe "$1[\"status\"] = $2;"
+        js_setStatus :: Window -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.status Mozilla Window.status documentation> 
+setStatus :: (MonadIO m, ToJSString val) => Window -> val -> m ()
+setStatus self val = liftIO (js_setStatus self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"status\"]" js_getStatus ::
+        Window -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.status Mozilla Window.status documentation> 
+getStatus :: (MonadIO m, FromJSString result) => Window -> m result
+getStatus self = liftIO (fromJSString <$> (js_getStatus self))
+ 
+foreign import javascript unsafe "$1[\"defaultStatus\"] = $2;"
+        js_setDefaultStatus :: Window -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.defaultStatus Mozilla Window.defaultStatus documentation> 
+setDefaultStatus ::
+                 (MonadIO m, ToJSString val) => Window -> val -> m ()
+setDefaultStatus self val
+  = liftIO (js_setDefaultStatus self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"defaultStatus\"]"
+        js_getDefaultStatus :: Window -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.defaultStatus Mozilla Window.defaultStatus documentation> 
+getDefaultStatus ::
+                 (MonadIO m, FromJSString result) => Window -> m result
+getDefaultStatus self
+  = liftIO (fromJSString <$> (js_getDefaultStatus self))
+ 
+foreign import javascript unsafe "$1[\"defaultstatus\"] = $2;"
+        js_setDefaultstatus :: Window -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.defaultstatus Mozilla Window.defaultstatus documentation> 
+setDefaultstatus ::
+                 (MonadIO m, ToJSString val) => Window -> val -> m ()
+setDefaultstatus self val
+  = liftIO (js_setDefaultstatus self (toJSString val))
+ 
+foreign import javascript unsafe "$1[\"defaultstatus\"]"
+        js_getDefaultstatus :: Window -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.defaultstatus Mozilla Window.defaultstatus documentation> 
+getDefaultstatus ::
+                 (MonadIO m, FromJSString result) => Window -> m result
+getDefaultstatus self
+  = liftIO (fromJSString <$> (js_getDefaultstatus self))
+ 
+foreign import javascript unsafe "$1[\"self\"]" js_getSelf ::
+        Window -> IO Window
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.self Mozilla Window.self documentation> 
+getSelf :: (MonadIO m) => Window -> m Window
+getSelf self = liftIO (js_getSelf self)
+ 
+foreign import javascript unsafe "$1[\"window\"]" js_getWindow ::
+        Window -> IO Window
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.window Mozilla Window.window documentation> 
+getWindow :: (MonadIO m) => Window -> m Window
+getWindow self = liftIO (js_getWindow self)
+ 
+foreign import javascript unsafe "$1[\"frames\"]" js_getFrames ::
+        Window -> IO Window
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.frames Mozilla Window.frames documentation> 
+getFrames :: (MonadIO m) => Window -> m Window
+getFrames self = liftIO (js_getFrames self)
+ 
+foreign import javascript unsafe "$1[\"opener\"]" js_getOpener ::
+        Window -> IO Window
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.opener Mozilla Window.opener documentation> 
+getOpener :: (MonadIO m) => Window -> m Window
+getOpener self = liftIO (js_getOpener self)
+ 
+foreign import javascript unsafe "$1[\"parent\"]" js_getParent ::
+        Window -> IO Window
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.parent Mozilla Window.parent documentation> 
+getParent :: (MonadIO m) => Window -> m Window
+getParent self = liftIO (js_getParent self)
+ 
+foreign import javascript unsafe "$1[\"top\"]" js_getTop ::
+        Window -> IO Window
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.top Mozilla Window.top documentation> 
+getTop :: (MonadIO m) => Window -> m Window
+getTop self = liftIO (js_getTop self)
+ 
+foreign import javascript unsafe "$1[\"document\"]" js_getDocument
+        :: Window -> IO Document
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.document Mozilla Window.document documentation> 
+getDocument :: (MonadIO m) => Window -> m Document
+getDocument self = liftIO (js_getDocument self)
+ 
+foreign import javascript unsafe "$1[\"styleMedia\"]"
+        js_getStyleMedia :: Window -> IO StyleMedia
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.styleMedia Mozilla Window.styleMedia documentation> 
+getStyleMedia :: (MonadIO m) => Window -> m StyleMedia
+getStyleMedia self = liftIO (js_getStyleMedia self)
+ 
+foreign import javascript unsafe "$1[\"devicePixelRatio\"]"
+        js_getDevicePixelRatio :: Window -> IO Double
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.devicePixelRatio Mozilla Window.devicePixelRatio documentation> 
+getDevicePixelRatio :: (MonadIO m) => Window -> m Double
+getDevicePixelRatio self = liftIO (js_getDevicePixelRatio self)
+ 
+foreign import javascript unsafe "$1[\"applicationCache\"]"
+        js_getApplicationCache :: Window -> IO ApplicationCache
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.applicationCache Mozilla Window.applicationCache documentation> 
+getApplicationCache :: (MonadIO m) => Window -> m ApplicationCache
+getApplicationCache self = liftIO (js_getApplicationCache self)
+ 
+foreign import javascript unsafe "$1[\"sessionStorage\"]"
+        js_getSessionStorage :: Window -> IO Storage
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.sessionStorage Mozilla Window.sessionStorage documentation> 
+getSessionStorage :: (MonadIO m) => Window -> m Storage
+getSessionStorage self = liftIO (js_getSessionStorage self)
+ 
+foreign import javascript unsafe "$1[\"localStorage\"]"
+        js_getLocalStorage :: Window -> IO Storage
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.localStorage Mozilla Window.localStorage documentation> 
+getLocalStorage :: (MonadIO m) => Window -> m Storage
+getLocalStorage self = liftIO (js_getLocalStorage self)
+ 
+foreign import javascript unsafe "$1[\"orientation\"]"
+        js_getOrientation :: Window -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.orientation Mozilla Window.orientation documentation> 
+getOrientation :: (MonadIO m) => Window -> m Int
+getOrientation self = liftIO (js_getOrientation self)
+ 
+foreign import javascript unsafe "$1[\"customElements\"]"
+        js_getCustomElements :: Window -> IO CustomElementRegistry
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.customElements Mozilla Window.customElements documentation> 
+getCustomElements ::
+                  (MonadIO m) => Window -> m CustomElementRegistry
+getCustomElements self = liftIO (js_getCustomElements self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onanimationend Mozilla Window.onanimationend documentation> 
+animationEnd :: EventName Window AnimationEvent
+animationEnd = unsafeEventName (toJSString "animationend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onanimationiteration Mozilla Window.onanimationiteration documentation> 
+animationIteration :: EventName Window AnimationEvent
+animationIteration
+  = unsafeEventName (toJSString "animationiteration")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onanimationstart Mozilla Window.onanimationstart documentation> 
+animationStart :: EventName Window AnimationEvent
+animationStart = unsafeEventName (toJSString "animationstart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ontransitionend Mozilla Window.ontransitionend documentation> 
+transitionEnd :: EventName Window TransitionEvent
+transitionEnd = unsafeEventName (toJSString "transitionend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitanimationend Mozilla Window.onwebkitanimationend documentation> 
+webKitAnimationEnd :: EventName Window AnimationEvent
+webKitAnimationEnd
+  = unsafeEventName (toJSString "webkitanimationend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitanimationiteration Mozilla Window.onwebkitanimationiteration documentation> 
+webKitAnimationIteration :: EventName Window AnimationEvent
+webKitAnimationIteration
+  = unsafeEventName (toJSString "webkitanimationiteration")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitanimationstart Mozilla Window.onwebkitanimationstart documentation> 
+webKitAnimationStart :: EventName Window AnimationEvent
+webKitAnimationStart
+  = unsafeEventName (toJSString "webkitanimationstart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkittransitionend Mozilla Window.onwebkittransitionend documentation> 
+webKitTransitionEnd :: EventName Window TransitionEvent
+webKitTransitionEnd
+  = unsafeEventName (toJSString "webkittransitionend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ongesturechange Mozilla Window.ongesturechange documentation> 
+gestureChange :: EventName Window UIEvent
+gestureChange = unsafeEventName (toJSString "gesturechange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ongestureend Mozilla Window.ongestureend documentation> 
+gestureEnd :: EventName Window UIEvent
+gestureEnd = unsafeEventName (toJSString "gestureend")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ongesturestart Mozilla Window.ongesturestart documentation> 
+gestureStart :: EventName Window UIEvent
+gestureStart = unsafeEventName (toJSString "gesturestart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondevicemotion Mozilla Window.ondevicemotion documentation> 
+deviceMotion :: EventName Window DeviceMotionEvent
+deviceMotion = unsafeEventName (toJSString "devicemotion")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.ondeviceorientation Mozilla Window.ondeviceorientation documentation> 
+deviceOrientation :: EventName Window DeviceOrientationEvent
+deviceOrientation
+  = unsafeEventName (toJSString "deviceorientation")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.onwebkitdeviceproximity Mozilla Window.onwebkitdeviceproximity documentation> 
+webKitDeviceProximity :: EventName Window DeviceProximityEvent
+webKitDeviceProximity
+  = unsafeEventName (toJSString "webkitdeviceproximity")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WindowBase64.hs b/src/GHCJS/DOM/JSFFI/Generated/WindowBase64.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/WindowBase64.hs
+++ /dev/null
@@ -1,58 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.WindowBase64
-       (js_atob, atob, atob_, js_btoa, btoa, btoa_, WindowBase64(..),
-        gTypeWindowBase64)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"atob\"]($2)" js_atob ::
-        WindowBase64 -> JSString -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64.atob Mozilla WindowBase64.atob documentation> 
-atob ::
-     (MonadIO m, ToJSString string, FromJSString result) =>
-       WindowBase64 -> string -> m result
-atob self string
-  = liftIO (fromJSString <$> (js_atob (self) (toJSString string)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64.atob Mozilla WindowBase64.atob documentation> 
-atob_ ::
-      (MonadIO m, ToJSString string) => WindowBase64 -> string -> m ()
-atob_ self string
-  = liftIO (void (js_atob (self) (toJSString string)))
- 
-foreign import javascript unsafe "$1[\"btoa\"]($2)" js_btoa ::
-        WindowBase64 -> JSString -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64.btoa Mozilla WindowBase64.btoa documentation> 
-btoa ::
-     (MonadIO m, ToJSString string, FromJSString result) =>
-       WindowBase64 -> string -> m result
-btoa self string
-  = liftIO (fromJSString <$> (js_btoa (self) (toJSString string)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64.btoa Mozilla WindowBase64.btoa documentation> 
-btoa_ ::
-      (MonadIO m, ToJSString string) => WindowBase64 -> string -> m ()
-btoa_ self string
-  = liftIO (void (js_btoa (self) (toJSString string)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WindowEventHandlers.hs b/src/GHCJS/DOM/JSFFI/Generated/WindowEventHandlers.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/WindowEventHandlers.hs
@@ -0,0 +1,103 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.WindowEventHandlers
+       (beforeUnload, hashChange, languagechange, message, offline,
+        online, pageHide, pageShow, popState, storage, unload,
+        orientationChange, WindowEventHandlers(..),
+        gTypeWindowEventHandlers, IsWindowEventHandlers,
+        toWindowEventHandlers)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.onbeforeunload Mozilla WindowEventHandlers.onbeforeunload documentation> 
+beforeUnload ::
+             (IsWindowEventHandlers self, IsEventTarget self) =>
+               EventName self BeforeUnloadEvent
+beforeUnload = unsafeEventName (toJSString "beforeunload")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.onhashchange Mozilla WindowEventHandlers.onhashchange documentation> 
+hashChange ::
+           (IsWindowEventHandlers self, IsEventTarget self) =>
+             EventName self HashChangeEvent
+hashChange = unsafeEventName (toJSString "hashchange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.onlanguagechange Mozilla WindowEventHandlers.onlanguagechange documentation> 
+languagechange ::
+               (IsWindowEventHandlers self, IsEventTarget self) =>
+                 EventName self Event
+languagechange = unsafeEventName (toJSString "languagechange")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.onmessage Mozilla WindowEventHandlers.onmessage documentation> 
+message ::
+        (IsWindowEventHandlers self, IsEventTarget self) =>
+          EventName self MessageEvent
+message = unsafeEventName (toJSString "message")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.onoffline Mozilla WindowEventHandlers.onoffline documentation> 
+offline ::
+        (IsWindowEventHandlers self, IsEventTarget self) =>
+          EventName self Event
+offline = unsafeEventName (toJSString "offline")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.ononline Mozilla WindowEventHandlers.ononline documentation> 
+online ::
+       (IsWindowEventHandlers self, IsEventTarget self) =>
+         EventName self Event
+online = unsafeEventName (toJSString "online")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.onpagehide Mozilla WindowEventHandlers.onpagehide documentation> 
+pageHide ::
+         (IsWindowEventHandlers self, IsEventTarget self) =>
+           EventName self PageTransitionEvent
+pageHide = unsafeEventName (toJSString "pagehide")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.onpageshow Mozilla WindowEventHandlers.onpageshow documentation> 
+pageShow ::
+         (IsWindowEventHandlers self, IsEventTarget self) =>
+           EventName self PageTransitionEvent
+pageShow = unsafeEventName (toJSString "pageshow")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.onpopstate Mozilla WindowEventHandlers.onpopstate documentation> 
+popState ::
+         (IsWindowEventHandlers self, IsEventTarget self) =>
+           EventName self PopStateEvent
+popState = unsafeEventName (toJSString "popstate")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.onstorage Mozilla WindowEventHandlers.onstorage documentation> 
+storage ::
+        (IsWindowEventHandlers self, IsEventTarget self) =>
+          EventName self StorageEvent
+storage = unsafeEventName (toJSString "storage")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.onunload Mozilla WindowEventHandlers.onunload documentation> 
+unload ::
+       (IsWindowEventHandlers self, IsEventTarget self) =>
+         EventName self UIEvent
+unload = unsafeEventName (toJSString "unload")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers.onorientationchange Mozilla WindowEventHandlers.onorientationchange documentation> 
+orientationChange ::
+                  (IsWindowEventHandlers self, IsEventTarget self) =>
+                    EventName self Event
+orientationChange
+  = unsafeEventName (toJSString "orientationchange")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WindowOrWorkerGlobalScope.hs b/src/GHCJS/DOM/JSFFI/Generated/WindowOrWorkerGlobalScope.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/WindowOrWorkerGlobalScope.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.WindowOrWorkerGlobalScope
+       (js_setTimeout, setTimeout, setTimeout_, js_clearTimeout,
+        clearTimeout, js_setInterval, setInterval, setInterval_,
+        js_clearInterval, clearInterval, js_atob, atob, atob_, js_btoa,
+        btoa, btoa_, WindowOrWorkerGlobalScope(..),
+        gTypeWindowOrWorkerGlobalScope, IsWindowOrWorkerGlobalScope,
+        toWindowOrWorkerGlobalScope)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"setTimeout\"]($2, $3)"
+        js_setTimeout ::
+        WindowOrWorkerGlobalScope -> JSVal -> Optional Int -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope.setTimeout Mozilla WindowOrWorkerGlobalScope.setTimeout documentation> 
+setTimeout ::
+           (MonadIO m, IsWindowOrWorkerGlobalScope self, ToJSVal handler) =>
+             self -> handler -> Maybe Int -> m Int
+setTimeout self handler timeout
+  = liftIO
+      (toJSVal handler >>=
+         \ handler' ->
+           js_setTimeout (toWindowOrWorkerGlobalScope self) handler'
+         (maybeToOptional timeout))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope.setTimeout Mozilla WindowOrWorkerGlobalScope.setTimeout documentation> 
+setTimeout_ ::
+            (MonadIO m, IsWindowOrWorkerGlobalScope self, ToJSVal handler) =>
+              self -> handler -> Maybe Int -> m ()
+setTimeout_ self handler timeout
+  = liftIO
+      (void
+         (toJSVal handler >>=
+            \ handler' ->
+              js_setTimeout (toWindowOrWorkerGlobalScope self) handler'
+            (maybeToOptional timeout)))
+ 
+foreign import javascript unsafe "$1[\"clearTimeout\"]($2)"
+        js_clearTimeout ::
+        WindowOrWorkerGlobalScope -> Optional Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope.clearTimeout Mozilla WindowOrWorkerGlobalScope.clearTimeout documentation> 
+clearTimeout ::
+             (MonadIO m, IsWindowOrWorkerGlobalScope self) =>
+               self -> Maybe Int -> m ()
+clearTimeout self handle
+  = liftIO
+      (js_clearTimeout (toWindowOrWorkerGlobalScope self)
+         (maybeToOptional handle))
+ 
+foreign import javascript unsafe "$1[\"setInterval\"]($2, $3)"
+        js_setInterval ::
+        WindowOrWorkerGlobalScope -> JSVal -> Optional Int -> IO Int
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope.setInterval Mozilla WindowOrWorkerGlobalScope.setInterval documentation> 
+setInterval ::
+            (MonadIO m, IsWindowOrWorkerGlobalScope self, ToJSVal handler) =>
+              self -> handler -> Maybe Int -> m Int
+setInterval self handler timeout
+  = liftIO
+      (toJSVal handler >>=
+         \ handler' ->
+           js_setInterval (toWindowOrWorkerGlobalScope self) handler'
+         (maybeToOptional timeout))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope.setInterval Mozilla WindowOrWorkerGlobalScope.setInterval documentation> 
+setInterval_ ::
+             (MonadIO m, IsWindowOrWorkerGlobalScope self, ToJSVal handler) =>
+               self -> handler -> Maybe Int -> m ()
+setInterval_ self handler timeout
+  = liftIO
+      (void
+         (toJSVal handler >>=
+            \ handler' ->
+              js_setInterval (toWindowOrWorkerGlobalScope self) handler'
+            (maybeToOptional timeout)))
+ 
+foreign import javascript unsafe "$1[\"clearInterval\"]($2)"
+        js_clearInterval ::
+        WindowOrWorkerGlobalScope -> Optional Int -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope.clearInterval Mozilla WindowOrWorkerGlobalScope.clearInterval documentation> 
+clearInterval ::
+              (MonadIO m, IsWindowOrWorkerGlobalScope self) =>
+                self -> Maybe Int -> m ()
+clearInterval self handle
+  = liftIO
+      (js_clearInterval (toWindowOrWorkerGlobalScope self)
+         (maybeToOptional handle))
+ 
+foreign import javascript unsafe "$1[\"atob\"]($2)" js_atob ::
+        WindowOrWorkerGlobalScope -> JSString -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope.atob Mozilla WindowOrWorkerGlobalScope.atob documentation> 
+atob ::
+     (MonadIO m, IsWindowOrWorkerGlobalScope self, ToJSString string,
+      FromJSString result) =>
+       self -> string -> m result
+atob self string
+  = liftIO
+      (fromJSString <$>
+         (js_atob (toWindowOrWorkerGlobalScope self) (toJSString string)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope.atob Mozilla WindowOrWorkerGlobalScope.atob documentation> 
+atob_ ::
+      (MonadIO m, IsWindowOrWorkerGlobalScope self, ToJSString string) =>
+        self -> string -> m ()
+atob_ self string
+  = liftIO
+      (void
+         (js_atob (toWindowOrWorkerGlobalScope self) (toJSString string)))
+ 
+foreign import javascript unsafe "$1[\"btoa\"]($2)" js_btoa ::
+        WindowOrWorkerGlobalScope -> JSString -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope.btoa Mozilla WindowOrWorkerGlobalScope.btoa documentation> 
+btoa ::
+     (MonadIO m, IsWindowOrWorkerGlobalScope self, ToJSString string,
+      FromJSString result) =>
+       self -> string -> m result
+btoa self string
+  = liftIO
+      (fromJSString <$>
+         (js_btoa (toWindowOrWorkerGlobalScope self) (toJSString string)))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope.btoa Mozilla WindowOrWorkerGlobalScope.btoa documentation> 
+btoa_ ::
+      (MonadIO m, IsWindowOrWorkerGlobalScope self, ToJSString string) =>
+        self -> string -> m ()
+btoa_ self string
+  = liftIO
+      (void
+         (js_btoa (toWindowOrWorkerGlobalScope self) (toJSString string)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WindowTimers.hs b/src/GHCJS/DOM/JSFFI/Generated/WindowTimers.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/WindowTimers.hs
+++ /dev/null
@@ -1,68 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.WindowTimers
-       (js_setTimeout, setTimeout, setTimeout_, js_clearTimeout,
-        clearTimeout, js_setInterval, setInterval, setInterval_,
-        js_clearInterval, clearInterval, WindowTimers(..),
-        gTypeWindowTimers)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
- 
-foreign import javascript unsafe "$1[\"setTimeout\"]($2, $3)"
-        js_setTimeout :: WindowTimers -> JSVal -> Int -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setTimeout Mozilla WindowTimers.setTimeout documentation> 
-setTimeout :: (MonadIO m) => WindowTimers -> JSVal -> Int -> m Int
-setTimeout self handler timeout
-  = liftIO (js_setTimeout (self) handler timeout)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setTimeout Mozilla WindowTimers.setTimeout documentation> 
-setTimeout_ :: (MonadIO m) => WindowTimers -> JSVal -> Int -> m ()
-setTimeout_ self handler timeout
-  = liftIO (void (js_setTimeout (self) handler timeout))
- 
-foreign import javascript unsafe "$1[\"clearTimeout\"]($2)"
-        js_clearTimeout :: WindowTimers -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.clearTimeout Mozilla WindowTimers.clearTimeout documentation> 
-clearTimeout :: (MonadIO m) => WindowTimers -> Int -> m ()
-clearTimeout self handle = liftIO (js_clearTimeout (self) handle)
- 
-foreign import javascript unsafe "$1[\"setInterval\"]($2, $3)"
-        js_setInterval :: WindowTimers -> JSVal -> Int -> IO Int
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setInterval Mozilla WindowTimers.setInterval documentation> 
-setInterval :: (MonadIO m) => WindowTimers -> JSVal -> Int -> m Int
-setInterval self handler timeout
-  = liftIO (js_setInterval (self) handler timeout)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setInterval Mozilla WindowTimers.setInterval documentation> 
-setInterval_ :: (MonadIO m) => WindowTimers -> JSVal -> Int -> m ()
-setInterval_ self handler timeout
-  = liftIO (void (js_setInterval (self) handler timeout))
- 
-foreign import javascript unsafe "$1[\"clearInterval\"]($2)"
-        js_clearInterval :: WindowTimers -> Int -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.clearInterval Mozilla WindowTimers.clearInterval documentation> 
-clearInterval :: (MonadIO m) => WindowTimers -> Int -> m ()
-clearInterval self handle = liftIO (js_clearInterval (self) handle)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/Worker.hs b/src/GHCJS/DOM/JSFFI/Generated/Worker.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/Worker.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/Worker.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.Worker
-       (js_newWorker, newWorker, js_postMessage, postMessage,
-        js_terminate, terminate, message, Worker(..), gTypeWorker)
+       (js_newWorker, newWorker, js_terminate, terminate, js_postMessage,
+        postMessage, message, Worker(..), gTypeWorker)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -33,27 +34,26 @@
           (MonadIO m, ToJSString scriptUrl) => scriptUrl -> m Worker
 newWorker scriptUrl = liftIO (js_newWorker (toJSString scriptUrl))
  
-foreign import javascript unsafe "$1[\"postMessage\"]($2, $3)"
-        js_postMessage ::
-        Worker -> Nullable SerializedScriptValue -> Nullable Array -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/Worker.postMessage Mozilla Worker.postMessage documentation> 
-postMessage ::
-            (MonadIO m, IsSerializedScriptValue message,
-             IsArray messagePorts) =>
-              Worker -> Maybe message -> Maybe messagePorts -> m ()
-postMessage self message messagePorts
-  = liftIO
-      (js_postMessage (self)
-         (maybeToNullable (fmap toSerializedScriptValue message))
-         (maybeToNullable (fmap toArray messagePorts)))
- 
 foreign import javascript unsafe "$1[\"terminate\"]()" js_terminate
         :: Worker -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Worker.terminate Mozilla Worker.terminate documentation> 
 terminate :: (MonadIO m) => Worker -> m ()
-terminate self = liftIO (js_terminate (self))
+terminate self = liftIO (js_terminate self)
+ 
+foreign import javascript unsafe "$1[\"postMessage\"]($2, $3)"
+        js_postMessage :: Worker -> JSVal -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/Worker.postMessage Mozilla Worker.postMessage documentation> 
+postMessage ::
+            (MonadIO m, ToJSVal message, IsGObject transfer) =>
+              Worker -> message -> [transfer] -> m ()
+postMessage self message transfer
+  = liftIO
+      (toJSVal transfer >>=
+         \ transfer' ->
+           toJSVal message >>= \ message' -> js_postMessage self message'
+             transfer')
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/Worker.onmessage Mozilla Worker.onmessage documentation> 
 message :: EventName Worker MessageEvent
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WorkerGlobalScope.hs b/src/GHCJS/DOM/JSFFI/Generated/WorkerGlobalScope.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WorkerGlobalScope.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WorkerGlobalScope.hs
@@ -4,18 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WorkerGlobalScope
-       (js_close, close, js_importScripts, importScripts, js_getSelf,
-        getSelf, getSelfUnsafe, getSelfUnchecked, js_getLocation,
-        getLocation, getLocationUnsafe, getLocationUnchecked, error,
-        offline, online, js_getNavigator, getNavigator, getNavigatorUnsafe,
-        getNavigatorUnchecked, WorkerGlobalScope(..),
+       (js_fetch, fetch, fetch_, js_close, close, js_importScripts,
+        importScripts, js_getIndexedDB, getIndexedDB, js_getSelf, getSelf,
+        js_getLocation, getLocation, error, offline, online,
+        js_getNavigator, getNavigator, WorkerGlobalScope(..),
         gTypeWorkerGlobalScope, IsWorkerGlobalScope, toWorkerGlobalScope)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -24,11 +23,37 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
+foreign import javascript interruptible
+        "$1[\"fetch\"]($2, $3).then($c);" js_fetch ::
+        WorkerGlobalScope -> JSVal -> Optional RequestInit -> IO Response
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.fetch Mozilla WorkerGlobalScope.fetch documentation> 
+fetch ::
+      (MonadIO m, IsWorkerGlobalScope self, ToJSVal input) =>
+        self -> input -> Maybe RequestInit -> m Response
+fetch self input init
+  = liftIO
+      (toJSVal input >>=
+         \ input' -> js_fetch (toWorkerGlobalScope self) input'
+         (maybeToOptional init))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.fetch Mozilla WorkerGlobalScope.fetch documentation> 
+fetch_ ::
+       (MonadIO m, IsWorkerGlobalScope self, ToJSVal input) =>
+         self -> input -> Maybe RequestInit -> m ()
+fetch_ self input init
+  = liftIO
+      (void
+         (toJSVal input >>=
+            \ input' -> js_fetch (toWorkerGlobalScope self) input'
+            (maybeToOptional init)))
+ 
 foreign import javascript unsafe "$1[\"close\"]()" js_close ::
         WorkerGlobalScope -> IO ()
 
@@ -36,71 +61,44 @@
 close :: (MonadIO m, IsWorkerGlobalScope self) => self -> m ()
 close self = liftIO (js_close (toWorkerGlobalScope self))
  
-foreign import javascript unsafe "$1[\"importScripts\"]()"
-        js_importScripts :: WorkerGlobalScope -> IO ()
+foreign import javascript unsafe "$1[\"importScripts\"]($2)"
+        js_importScripts :: WorkerGlobalScope -> JSVal -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.importScripts Mozilla WorkerGlobalScope.importScripts documentation> 
 importScripts ::
-              (MonadIO m, IsWorkerGlobalScope self) => self -> m ()
-importScripts self
-  = liftIO (js_importScripts (toWorkerGlobalScope self))
+              (MonadIO m, IsWorkerGlobalScope self, ToJSString urls) =>
+                self -> [urls] -> m ()
+importScripts self urls
+  = liftIO
+      (toJSVal urls >>=
+         \ urls' -> js_importScripts (toWorkerGlobalScope self) urls')
  
+foreign import javascript unsafe "$1[\"indexedDB\"]"
+        js_getIndexedDB :: WorkerGlobalScope -> IO IDBFactory
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.indexedDB Mozilla WorkerGlobalScope.indexedDB documentation> 
+getIndexedDB ::
+             (MonadIO m, IsWorkerGlobalScope self) => self -> m IDBFactory
+getIndexedDB self
+  = liftIO (js_getIndexedDB (toWorkerGlobalScope self))
+ 
 foreign import javascript unsafe "$1[\"self\"]" js_getSelf ::
-        WorkerGlobalScope -> IO (Nullable WorkerGlobalScope)
+        WorkerGlobalScope -> IO WorkerGlobalScope
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.self Mozilla WorkerGlobalScope.self documentation> 
 getSelf ::
         (MonadIO m, IsWorkerGlobalScope self) =>
-          self -> m (Maybe WorkerGlobalScope)
-getSelf self
-  = liftIO
-      (nullableToMaybe <$> (js_getSelf (toWorkerGlobalScope self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.self Mozilla WorkerGlobalScope.self documentation> 
-getSelfUnsafe ::
-              (MonadIO m, IsWorkerGlobalScope self, HasCallStack) =>
-                self -> m WorkerGlobalScope
-getSelfUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSelf (toWorkerGlobalScope self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.self Mozilla WorkerGlobalScope.self documentation> 
-getSelfUnchecked ::
-                 (MonadIO m, IsWorkerGlobalScope self) =>
-                   self -> m WorkerGlobalScope
-getSelfUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getSelf (toWorkerGlobalScope self)))
+          self -> m WorkerGlobalScope
+getSelf self = liftIO (js_getSelf (toWorkerGlobalScope self))
  
 foreign import javascript unsafe "$1[\"location\"]" js_getLocation
-        :: WorkerGlobalScope -> IO (Nullable WorkerLocation)
+        :: WorkerGlobalScope -> IO WorkerLocation
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.location Mozilla WorkerGlobalScope.location documentation> 
 getLocation ::
-            (MonadIO m, IsWorkerGlobalScope self) =>
-              self -> m (Maybe WorkerLocation)
+            (MonadIO m, IsWorkerGlobalScope self) => self -> m WorkerLocation
 getLocation self
-  = liftIO
-      (nullableToMaybe <$> (js_getLocation (toWorkerGlobalScope self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.location Mozilla WorkerGlobalScope.location documentation> 
-getLocationUnsafe ::
-                  (MonadIO m, IsWorkerGlobalScope self, HasCallStack) =>
-                    self -> m WorkerLocation
-getLocationUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getLocation (toWorkerGlobalScope self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.location Mozilla WorkerGlobalScope.location documentation> 
-getLocationUnchecked ::
-                     (MonadIO m, IsWorkerGlobalScope self) => self -> m WorkerLocation
-getLocationUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getLocation (toWorkerGlobalScope self)))
+  = liftIO (js_getLocation (toWorkerGlobalScope self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.onerror Mozilla WorkerGlobalScope.onerror documentation> 
 error ::
@@ -121,30 +119,10 @@
 online = unsafeEventName (toJSString "online")
  
 foreign import javascript unsafe "$1[\"navigator\"]"
-        js_getNavigator ::
-        WorkerGlobalScope -> IO (Nullable WorkerNavigator)
+        js_getNavigator :: WorkerGlobalScope -> IO WorkerNavigator
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.navigator Mozilla WorkerGlobalScope.navigator documentation> 
 getNavigator ::
-             (MonadIO m, IsWorkerGlobalScope self) =>
-               self -> m (Maybe WorkerNavigator)
+             (MonadIO m, IsWorkerGlobalScope self) => self -> m WorkerNavigator
 getNavigator self
-  = liftIO
-      (nullableToMaybe <$> (js_getNavigator (toWorkerGlobalScope self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.navigator Mozilla WorkerGlobalScope.navigator documentation> 
-getNavigatorUnsafe ::
-                   (MonadIO m, IsWorkerGlobalScope self, HasCallStack) =>
-                     self -> m WorkerNavigator
-getNavigatorUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getNavigator (toWorkerGlobalScope self)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope.navigator Mozilla WorkerGlobalScope.navigator documentation> 
-getNavigatorUnchecked ::
-                      (MonadIO m, IsWorkerGlobalScope self) => self -> m WorkerNavigator
-getNavigatorUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getNavigator (toWorkerGlobalScope self)))
+  = liftIO (js_getNavigator (toWorkerGlobalScope self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WorkerLocation.hs b/src/GHCJS/DOM/JSFFI/Generated/WorkerLocation.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WorkerLocation.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WorkerLocation.hs
@@ -4,17 +4,17 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WorkerLocation
-       (js_toString, toString, toString_, js_getHref, getHref,
-        js_getProtocol, getProtocol, js_getHost, getHost, js_getHostname,
-        getHostname, js_getPort, getPort, js_getPathname, getPathname,
-        js_getSearch, getSearch, js_getHash, getHash, WorkerLocation(..),
+       (js_getHref, getHref, js_getProtocol, getProtocol, js_getHost,
+        getHost, js_getHostname, getHostname, js_getPort, getPort,
+        js_getPathname, getPathname, js_getSearch, getSearch, js_getHash,
+        getHash, js_getOrigin, getOrigin, WorkerLocation(..),
         gTypeWorkerLocation)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -23,30 +23,19 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
-foreign import javascript unsafe "$1[\"toString\"]()" js_toString
-        :: WorkerLocation -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation.toString Mozilla WorkerLocation.toString documentation> 
-toString ::
-         (MonadIO m, FromJSString result) => WorkerLocation -> m result
-toString self = liftIO (fromJSString <$> (js_toString (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation.toString Mozilla WorkerLocation.toString documentation> 
-toString_ :: (MonadIO m) => WorkerLocation -> m ()
-toString_ self = liftIO (void (js_toString (self)))
- 
 foreign import javascript unsafe "$1[\"href\"]" js_getHref ::
         WorkerLocation -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation.href Mozilla WorkerLocation.href documentation> 
 getHref ::
         (MonadIO m, FromJSString result) => WorkerLocation -> m result
-getHref self = liftIO (fromJSString <$> (js_getHref (self)))
+getHref self = liftIO (fromJSString <$> (js_getHref self))
  
 foreign import javascript unsafe "$1[\"protocol\"]" js_getProtocol
         :: WorkerLocation -> IO JSString
@@ -54,8 +43,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation.protocol Mozilla WorkerLocation.protocol documentation> 
 getProtocol ::
             (MonadIO m, FromJSString result) => WorkerLocation -> m result
-getProtocol self
-  = liftIO (fromJSString <$> (js_getProtocol (self)))
+getProtocol self = liftIO (fromJSString <$> (js_getProtocol self))
  
 foreign import javascript unsafe "$1[\"host\"]" js_getHost ::
         WorkerLocation -> IO JSString
@@ -63,7 +51,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation.host Mozilla WorkerLocation.host documentation> 
 getHost ::
         (MonadIO m, FromJSString result) => WorkerLocation -> m result
-getHost self = liftIO (fromJSString <$> (js_getHost (self)))
+getHost self = liftIO (fromJSString <$> (js_getHost self))
  
 foreign import javascript unsafe "$1[\"hostname\"]" js_getHostname
         :: WorkerLocation -> IO JSString
@@ -71,8 +59,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation.hostname Mozilla WorkerLocation.hostname documentation> 
 getHostname ::
             (MonadIO m, FromJSString result) => WorkerLocation -> m result
-getHostname self
-  = liftIO (fromJSString <$> (js_getHostname (self)))
+getHostname self = liftIO (fromJSString <$> (js_getHostname self))
  
 foreign import javascript unsafe "$1[\"port\"]" js_getPort ::
         WorkerLocation -> IO JSString
@@ -80,7 +67,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation.port Mozilla WorkerLocation.port documentation> 
 getPort ::
         (MonadIO m, FromJSString result) => WorkerLocation -> m result
-getPort self = liftIO (fromJSString <$> (js_getPort (self)))
+getPort self = liftIO (fromJSString <$> (js_getPort self))
  
 foreign import javascript unsafe "$1[\"pathname\"]" js_getPathname
         :: WorkerLocation -> IO JSString
@@ -88,8 +75,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation.pathname Mozilla WorkerLocation.pathname documentation> 
 getPathname ::
             (MonadIO m, FromJSString result) => WorkerLocation -> m result
-getPathname self
-  = liftIO (fromJSString <$> (js_getPathname (self)))
+getPathname self = liftIO (fromJSString <$> (js_getPathname self))
  
 foreign import javascript unsafe "$1[\"search\"]" js_getSearch ::
         WorkerLocation -> IO JSString
@@ -97,7 +83,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation.search Mozilla WorkerLocation.search documentation> 
 getSearch ::
           (MonadIO m, FromJSString result) => WorkerLocation -> m result
-getSearch self = liftIO (fromJSString <$> (js_getSearch (self)))
+getSearch self = liftIO (fromJSString <$> (js_getSearch self))
  
 foreign import javascript unsafe "$1[\"hash\"]" js_getHash ::
         WorkerLocation -> IO JSString
@@ -105,4 +91,12 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation.hash Mozilla WorkerLocation.hash documentation> 
 getHash ::
         (MonadIO m, FromJSString result) => WorkerLocation -> m result
-getHash self = liftIO (fromJSString <$> (js_getHash (self)))
+getHash self = liftIO (fromJSString <$> (js_getHash self))
+ 
+foreign import javascript unsafe "$1[\"origin\"]" js_getOrigin ::
+        WorkerLocation -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation.origin Mozilla WorkerLocation.origin documentation> 
+getOrigin ::
+          (MonadIO m, FromJSString result) => WorkerLocation -> m result
+getOrigin self = liftIO (fromJSString <$> (js_getOrigin self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WorkerNavigator.hs b/src/GHCJS/DOM/JSFFI/Generated/WorkerNavigator.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/WorkerNavigator.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/WorkerNavigator.hs
@@ -5,19 +5,14 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.WorkerNavigator
        (js_getWebkitTemporaryStorage, getWebkitTemporaryStorage,
-        getWebkitTemporaryStorageUnsafe,
-        getWebkitTemporaryStorageUnchecked, js_getWebkitPersistentStorage,
-        getWebkitPersistentStorage, getWebkitPersistentStorageUnsafe,
-        getWebkitPersistentStorageUnchecked, js_getAppName, getAppName,
-        js_getAppVersion, getAppVersion, js_getPlatform, getPlatform,
-        js_getUserAgent, getUserAgent, js_getOnLine, getOnLine,
+        js_getWebkitPersistentStorage, getWebkitPersistentStorage,
         WorkerNavigator(..), gTypeWorkerNavigator)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -26,103 +21,26 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"webkitTemporaryStorage\"]"
-        js_getWebkitTemporaryStorage ::
-        WorkerNavigator -> IO (Nullable StorageQuota)
+        js_getWebkitTemporaryStorage :: WorkerNavigator -> IO StorageQuota
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator.webkitTemporaryStorage Mozilla WorkerNavigator.webkitTemporaryStorage documentation> 
 getWebkitTemporaryStorage ::
-                          (MonadIO m) => WorkerNavigator -> m (Maybe StorageQuota)
+                          (MonadIO m) => WorkerNavigator -> m StorageQuota
 getWebkitTemporaryStorage self
-  = liftIO
-      (nullableToMaybe <$> (js_getWebkitTemporaryStorage (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator.webkitTemporaryStorage Mozilla WorkerNavigator.webkitTemporaryStorage documentation> 
-getWebkitTemporaryStorageUnsafe ::
-                                (MonadIO m, HasCallStack) => WorkerNavigator -> m StorageQuota
-getWebkitTemporaryStorageUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWebkitTemporaryStorage (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator.webkitTemporaryStorage Mozilla WorkerNavigator.webkitTemporaryStorage documentation> 
-getWebkitTemporaryStorageUnchecked ::
-                                   (MonadIO m) => WorkerNavigator -> m StorageQuota
-getWebkitTemporaryStorageUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getWebkitTemporaryStorage (self)))
+  = liftIO (js_getWebkitTemporaryStorage self)
  
 foreign import javascript unsafe "$1[\"webkitPersistentStorage\"]"
-        js_getWebkitPersistentStorage ::
-        WorkerNavigator -> IO (Nullable StorageQuota)
+        js_getWebkitPersistentStorage :: WorkerNavigator -> IO StorageQuota
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator.webkitPersistentStorage Mozilla WorkerNavigator.webkitPersistentStorage documentation> 
 getWebkitPersistentStorage ::
-                           (MonadIO m) => WorkerNavigator -> m (Maybe StorageQuota)
+                           (MonadIO m) => WorkerNavigator -> m StorageQuota
 getWebkitPersistentStorage self
-  = liftIO
-      (nullableToMaybe <$> (js_getWebkitPersistentStorage (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator.webkitPersistentStorage Mozilla WorkerNavigator.webkitPersistentStorage documentation> 
-getWebkitPersistentStorageUnsafe ::
-                                 (MonadIO m, HasCallStack) => WorkerNavigator -> m StorageQuota
-getWebkitPersistentStorageUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getWebkitPersistentStorage (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator.webkitPersistentStorage Mozilla WorkerNavigator.webkitPersistentStorage documentation> 
-getWebkitPersistentStorageUnchecked ::
-                                    (MonadIO m) => WorkerNavigator -> m StorageQuota
-getWebkitPersistentStorageUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_getWebkitPersistentStorage (self)))
- 
-foreign import javascript unsafe "$1[\"appName\"]" js_getAppName ::
-        WorkerNavigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator.appName Mozilla WorkerNavigator.appName documentation> 
-getAppName ::
-           (MonadIO m, FromJSString result) => WorkerNavigator -> m result
-getAppName self = liftIO (fromJSString <$> (js_getAppName (self)))
- 
-foreign import javascript unsafe "$1[\"appVersion\"]"
-        js_getAppVersion :: WorkerNavigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator.appVersion Mozilla WorkerNavigator.appVersion documentation> 
-getAppVersion ::
-              (MonadIO m, FromJSString result) => WorkerNavigator -> m result
-getAppVersion self
-  = liftIO (fromJSString <$> (js_getAppVersion (self)))
- 
-foreign import javascript unsafe "$1[\"platform\"]" js_getPlatform
-        :: WorkerNavigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator.platform Mozilla WorkerNavigator.platform documentation> 
-getPlatform ::
-            (MonadIO m, FromJSString result) => WorkerNavigator -> m result
-getPlatform self
-  = liftIO (fromJSString <$> (js_getPlatform (self)))
- 
-foreign import javascript unsafe "$1[\"userAgent\"]"
-        js_getUserAgent :: WorkerNavigator -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator.userAgent Mozilla WorkerNavigator.userAgent documentation> 
-getUserAgent ::
-             (MonadIO m, FromJSString result) => WorkerNavigator -> m result
-getUserAgent self
-  = liftIO (fromJSString <$> (js_getUserAgent (self)))
- 
-foreign import javascript unsafe "($1[\"onLine\"] ? 1 : 0)"
-        js_getOnLine :: WorkerNavigator -> IO Bool
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator.onLine Mozilla WorkerNavigator.onLine documentation> 
-getOnLine :: (MonadIO m) => WorkerNavigator -> m Bool
-getOnLine self = liftIO (js_getOnLine (self))
+  = liftIO (js_getWebkitPersistentStorage self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/WritableStream.hs b/src/GHCJS/DOM/JSFFI/Generated/WritableStream.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/WritableStream.hs
@@ -0,0 +1,110 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.WritableStream
+       (js_newWritableStream, newWritableStream, js_abort, abort, abort_,
+        js_close, close, close_, js_write, write, write_, js_getClosed,
+        getClosed, js_getReady, getReady, js_getState, getState,
+        WritableStream(..), gTypeWritableStream)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "new window[\"WritableStream\"]()"
+        js_newWritableStream :: IO WritableStream
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WritableStream Mozilla WritableStream documentation> 
+newWritableStream :: (MonadIO m) => m WritableStream
+newWritableStream = liftIO (js_newWritableStream)
+ 
+foreign import javascript interruptible
+        "$1[\"abort\"]($2).then($c);" js_abort ::
+        WritableStream -> Optional JSVal -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WritableStream.abort Mozilla WritableStream.abort documentation> 
+abort ::
+      (MonadIO m, ToJSVal reason) =>
+        WritableStream -> Maybe reason -> m JSVal
+abort self reason
+  = liftIO
+      (mapM toJSVal reason >>=
+         \ reason' -> js_abort self (maybeToOptional reason'))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WritableStream.abort Mozilla WritableStream.abort documentation> 
+abort_ ::
+       (MonadIO m, ToJSVal reason) =>
+         WritableStream -> Maybe reason -> m ()
+abort_ self reason
+  = liftIO
+      (void
+         (mapM toJSVal reason >>=
+            \ reason' -> js_abort self (maybeToOptional reason')))
+ 
+foreign import javascript interruptible
+        "$1[\"close\"]().then($c);" js_close :: WritableStream -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WritableStream.close Mozilla WritableStream.close documentation> 
+close :: (MonadIO m) => WritableStream -> m JSVal
+close self = liftIO (js_close self)
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WritableStream.close Mozilla WritableStream.close documentation> 
+close_ :: (MonadIO m) => WritableStream -> m ()
+close_ self = liftIO (void (js_close self))
+ 
+foreign import javascript interruptible
+        "$1[\"write\"]($2).then($c);" js_write ::
+        WritableStream -> JSVal -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WritableStream.write Mozilla WritableStream.write documentation> 
+write ::
+      (MonadIO m, ToJSVal chunk) => WritableStream -> chunk -> m JSVal
+write self chunk
+  = liftIO (toJSVal chunk >>= \ chunk' -> js_write self chunk')
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WritableStream.write Mozilla WritableStream.write documentation> 
+write_ ::
+       (MonadIO m, ToJSVal chunk) => WritableStream -> chunk -> m ()
+write_ self chunk
+  = liftIO
+      (void (toJSVal chunk >>= \ chunk' -> js_write self chunk'))
+ 
+foreign import javascript interruptible
+        "$1[\"closed\"].then($c);" js_getClosed ::
+        WritableStream -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WritableStream.closed Mozilla WritableStream.closed documentation> 
+getClosed :: (MonadIO m) => WritableStream -> m Bool
+getClosed self = liftIO (js_getClosed self)
+ 
+foreign import javascript interruptible
+        "$1[\"ready\"].then($c);" js_getReady :: WritableStream -> IO Bool
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WritableStream.ready Mozilla WritableStream.ready documentation> 
+getReady :: (MonadIO m) => WritableStream -> m Bool
+getReady self = liftIO (js_getReady self)
+ 
+foreign import javascript unsafe "$1[\"state\"]" js_getState ::
+        WritableStream -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/WritableStream.state Mozilla WritableStream.state documentation> 
+getState ::
+         (MonadIO m, FromJSString result) => WritableStream -> m result
+getState self = liftIO (fromJSString <$> (js_getState self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequest.hs b/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequest.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequest.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequest.hs
@@ -4,33 +4,30 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.XMLHttpRequest
-       (js_newXMLHttpRequest, newXMLHttpRequest, js_open, open,
-        js_setRequestHeader, setRequestHeader, js_send, send, js_abort,
-        abort, js_getAllResponseHeaders, getAllResponseHeaders,
-        getAllResponseHeaders_, getAllResponseHeadersUnsafe,
-        getAllResponseHeadersUnchecked, js_getResponseHeader,
+       (js_newXMLHttpRequest, newXMLHttpRequest, js_openSimple,
+        openSimple, js_open, open, js_setRequestHeader, setRequestHeader,
+        js_send, send, js_abort, abort, js_getResponseHeader,
         getResponseHeader, getResponseHeader_, getResponseHeaderUnsafe,
-        getResponseHeaderUnchecked, js_overrideMimeType, overrideMimeType,
-        pattern UNSENT, pattern OPENED, pattern HEADERS_RECEIVED,
-        pattern LOADING, pattern DONE, abortEvent, error, load, loadEnd,
-        loadStart, progress, timeout, readyStateChange, js_setTimeout,
-        setTimeout, js_getTimeout, getTimeout, js_getReadyState,
-        getReadyState, js_setWithCredentials, setWithCredentials,
-        js_getWithCredentials, getWithCredentials, js_getUpload, getUpload,
-        getUploadUnsafe, getUploadUnchecked, js_getResponseText,
+        getResponseHeaderUnchecked, js_getAllResponseHeaders,
+        getAllResponseHeaders, getAllResponseHeaders_, js_overrideMimeType,
+        overrideMimeType, pattern UNSENT, pattern OPENED,
+        pattern HEADERS_RECEIVED, pattern LOADING, pattern DONE,
+        readyStateChange, js_getReadyState, getReadyState, js_setTimeout,
+        setTimeout, js_getTimeout, getTimeout, js_setWithCredentials,
+        setWithCredentials, js_getWithCredentials, getWithCredentials,
+        js_getUpload, getUpload, js_getResponseURL, getResponseURL,
+        js_getStatus, getStatus, js_getStatusText, getStatusText,
+        js_setResponseType, setResponseType, js_getResponseType,
+        getResponseType, js_getResponse, getResponse, js_getResponseText,
         getResponseText, getResponseTextUnsafe, getResponseTextUnchecked,
         js_getResponseXML, getResponseXML, getResponseXMLUnsafe,
-        getResponseXMLUnchecked, js_setResponseType, setResponseType,
-        js_getResponseType, getResponseType, js_getResponse, getResponse,
-        getResponseUnsafe, getResponseUnchecked, js_getStatus, getStatus,
-        js_getStatusText, getStatusText, js_getResponseURL, getResponseURL,
-        XMLHttpRequest(..), gTypeXMLHttpRequest)
+        getResponseXMLUnchecked, XMLHttpRequest(..), gTypeXMLHttpRequest)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -39,6 +36,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -51,21 +49,33 @@
 newXMLHttpRequest :: (MonadIO m) => m XMLHttpRequest
 newXMLHttpRequest = liftIO (js_newXMLHttpRequest)
  
+foreign import javascript unsafe "$1[\"open\"]($2, $3)"
+        js_openSimple :: XMLHttpRequest -> JSString -> JSString -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.open Mozilla XMLHttpRequest.open documentation> 
+openSimple ::
+           (MonadIO m, ToJSString method, ToJSString url) =>
+             XMLHttpRequest -> method -> url -> m ()
+openSimple self method url
+  = liftIO (js_openSimple self (toJSString method) (toJSString url))
+ 
 foreign import javascript unsafe "$1[\"open\"]($2, $3, $4, $5, $6)"
         js_open ::
         XMLHttpRequest ->
-          JSString -> JSString -> Bool -> JSString -> JSString -> IO ()
+          JSString ->
+            JSString -> Bool -> Optional JSString -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.open Mozilla XMLHttpRequest.open documentation> 
 open ::
      (MonadIO m, ToJSString method, ToJSString url, ToJSString user,
       ToJSString password) =>
-       XMLHttpRequest -> method -> url -> Bool -> user -> password -> m ()
+       XMLHttpRequest ->
+         method -> url -> Bool -> Maybe user -> Maybe password -> m ()
 open self method url async user password
   = liftIO
-      (js_open (self) (toJSString method) (toJSString url) async
-         (toJSString user)
-         (toJSString password))
+      (js_open self (toJSString method) (toJSString url) async
+         (toOptionalJSString user)
+         (toOptionalJSString password))
  
 foreign import javascript unsafe "$1[\"setRequestHeader\"]($2, $3)"
         js_setRequestHeader ::
@@ -77,54 +87,27 @@
                    XMLHttpRequest -> header -> value -> m ()
 setRequestHeader self header value
   = liftIO
-      (js_setRequestHeader (self) (toJSString header) (toJSString value))
+      (js_setRequestHeader self (toJSString header) (toJSString value))
  
-foreign import javascript unsafe "$1[\"send\"]()" js_send ::
-        XMLHttpRequest -> IO ()
+foreign import javascript unsafe "$1[\"send\"]($2)" js_send ::
+        XMLHttpRequest -> Optional XMLHttpRequestBody -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.send Mozilla XMLHttpRequest.send documentation> 
-send :: (MonadIO m) => XMLHttpRequest -> m ()
-send self = liftIO (js_send (self))
+send ::
+     (MonadIO m, IsXMLHttpRequestBody body) =>
+       XMLHttpRequest -> Maybe body -> m ()
+send self body
+  = liftIO
+      (mapM toJSVal body >>=
+         \ body' ->
+           js_send self (maybeToOptional (fmap XMLHttpRequestBody body')))
  
 foreign import javascript unsafe "$1[\"abort\"]()" js_abort ::
         XMLHttpRequest -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.abort Mozilla XMLHttpRequest.abort documentation> 
 abort :: (MonadIO m) => XMLHttpRequest -> m ()
-abort self = liftIO (js_abort (self))
- 
-foreign import javascript unsafe "$1[\"getAllResponseHeaders\"]()"
-        js_getAllResponseHeaders ::
-        XMLHttpRequest -> IO (Nullable JSString)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getAllResponseHeaders Mozilla XMLHttpRequest.getAllResponseHeaders documentation> 
-getAllResponseHeaders ::
-                      (MonadIO m, FromJSString result) =>
-                        XMLHttpRequest -> m (Maybe result)
-getAllResponseHeaders self
-  = liftIO (fromMaybeJSString <$> (js_getAllResponseHeaders (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getAllResponseHeaders Mozilla XMLHttpRequest.getAllResponseHeaders documentation> 
-getAllResponseHeaders_ :: (MonadIO m) => XMLHttpRequest -> m ()
-getAllResponseHeaders_ self
-  = liftIO (void (js_getAllResponseHeaders (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getAllResponseHeaders Mozilla XMLHttpRequest.getAllResponseHeaders documentation> 
-getAllResponseHeadersUnsafe ::
-                            (MonadIO m, HasCallStack, FromJSString result) =>
-                              XMLHttpRequest -> m result
-getAllResponseHeadersUnsafe self
-  = liftIO
-      ((fromMaybeJSString <$> (js_getAllResponseHeaders (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getAllResponseHeaders Mozilla XMLHttpRequest.getAllResponseHeaders documentation> 
-getAllResponseHeadersUnchecked ::
-                               (MonadIO m, FromJSString result) => XMLHttpRequest -> m result
-getAllResponseHeadersUnchecked self
-  = liftIO
-      (fromJust . fromMaybeJSString <$>
-         (js_getAllResponseHeaders (self)))
+abort self = liftIO (js_abort self)
  
 foreign import javascript unsafe "$1[\"getResponseHeader\"]($2)"
         js_getResponseHeader ::
@@ -132,106 +115,90 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getResponseHeader Mozilla XMLHttpRequest.getResponseHeader documentation> 
 getResponseHeader ::
-                  (MonadIO m, ToJSString header, FromJSString result) =>
-                    XMLHttpRequest -> header -> m (Maybe result)
-getResponseHeader self header
+                  (MonadIO m, ToJSString name, FromJSString result) =>
+                    XMLHttpRequest -> name -> m (Maybe result)
+getResponseHeader self name
   = liftIO
       (fromMaybeJSString <$>
-         (js_getResponseHeader (self) (toJSString header)))
+         (js_getResponseHeader self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getResponseHeader Mozilla XMLHttpRequest.getResponseHeader documentation> 
 getResponseHeader_ ::
-                   (MonadIO m, ToJSString header) => XMLHttpRequest -> header -> m ()
-getResponseHeader_ self header
-  = liftIO (void (js_getResponseHeader (self) (toJSString header)))
+                   (MonadIO m, ToJSString name) => XMLHttpRequest -> name -> m ()
+getResponseHeader_ self name
+  = liftIO (void (js_getResponseHeader self (toJSString name)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getResponseHeader Mozilla XMLHttpRequest.getResponseHeader documentation> 
 getResponseHeaderUnsafe ::
-                        (MonadIO m, ToJSString header, HasCallStack,
-                         FromJSString result) =>
-                          XMLHttpRequest -> header -> m result
-getResponseHeaderUnsafe self header
+                        (MonadIO m, ToJSString name, HasCallStack, FromJSString result) =>
+                          XMLHttpRequest -> name -> m result
+getResponseHeaderUnsafe self name
   = liftIO
       ((fromMaybeJSString <$>
-          (js_getResponseHeader (self) (toJSString header)))
+          (js_getResponseHeader self (toJSString name)))
          >>= maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getResponseHeader Mozilla XMLHttpRequest.getResponseHeader documentation> 
 getResponseHeaderUnchecked ::
-                           (MonadIO m, ToJSString header, FromJSString result) =>
-                             XMLHttpRequest -> header -> m result
-getResponseHeaderUnchecked self header
+                           (MonadIO m, ToJSString name, FromJSString result) =>
+                             XMLHttpRequest -> name -> m result
+getResponseHeaderUnchecked self name
   = liftIO
       (fromJust . fromMaybeJSString <$>
-         (js_getResponseHeader (self) (toJSString header)))
+         (js_getResponseHeader self (toJSString name)))
  
+foreign import javascript unsafe "$1[\"getAllResponseHeaders\"]()"
+        js_getAllResponseHeaders :: XMLHttpRequest -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getAllResponseHeaders Mozilla XMLHttpRequest.getAllResponseHeaders documentation> 
+getAllResponseHeaders ::
+                      (MonadIO m, FromJSString result) => XMLHttpRequest -> m result
+getAllResponseHeaders self
+  = liftIO (fromJSString <$> (js_getAllResponseHeaders self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getAllResponseHeaders Mozilla XMLHttpRequest.getAllResponseHeaders documentation> 
+getAllResponseHeaders_ :: (MonadIO m) => XMLHttpRequest -> m ()
+getAllResponseHeaders_ self
+  = liftIO (void (js_getAllResponseHeaders self))
+ 
 foreign import javascript unsafe "$1[\"overrideMimeType\"]($2)"
         js_overrideMimeType :: XMLHttpRequest -> JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.overrideMimeType Mozilla XMLHttpRequest.overrideMimeType documentation> 
 overrideMimeType ::
-                 (MonadIO m, ToJSString override) =>
-                   XMLHttpRequest -> override -> m ()
-overrideMimeType self override
-  = liftIO (js_overrideMimeType (self) (toJSString override))
+                 (MonadIO m, ToJSString mime) => XMLHttpRequest -> mime -> m ()
+overrideMimeType self mime
+  = liftIO (js_overrideMimeType self (toJSString mime))
 pattern UNSENT = 0
 pattern OPENED = 1
 pattern HEADERS_RECEIVED = 2
 pattern LOADING = 3
 pattern DONE = 4
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.onabort Mozilla XMLHttpRequest.onabort documentation> 
-abortEvent :: EventName XMLHttpRequest XMLHttpRequestProgressEvent
-abortEvent = unsafeEventName (toJSString "abort")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.onerror Mozilla XMLHttpRequest.onerror documentation> 
-error :: EventName XMLHttpRequest XMLHttpRequestProgressEvent
-error = unsafeEventName (toJSString "error")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.onload Mozilla XMLHttpRequest.onload documentation> 
-load :: EventName XMLHttpRequest XMLHttpRequestProgressEvent
-load = unsafeEventName (toJSString "load")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.onloadend Mozilla XMLHttpRequest.onloadend documentation> 
-loadEnd :: EventName XMLHttpRequest ProgressEvent
-loadEnd = unsafeEventName (toJSString "loadend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.onloadstart Mozilla XMLHttpRequest.onloadstart documentation> 
-loadStart :: EventName XMLHttpRequest ProgressEvent
-loadStart = unsafeEventName (toJSString "loadstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.onprogress Mozilla XMLHttpRequest.onprogress documentation> 
-progress :: EventName XMLHttpRequest XMLHttpRequestProgressEvent
-progress = unsafeEventName (toJSString "progress")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.ontimeout Mozilla XMLHttpRequest.ontimeout documentation> 
-timeout :: EventName XMLHttpRequest ProgressEvent
-timeout = unsafeEventName (toJSString "timeout")
-
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.onreadystatechange Mozilla XMLHttpRequest.onreadystatechange documentation> 
 readyStateChange :: EventName XMLHttpRequest Event
 readyStateChange = unsafeEventName (toJSString "readystatechange")
  
+foreign import javascript unsafe "$1[\"readyState\"]"
+        js_getReadyState :: XMLHttpRequest -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.readyState Mozilla XMLHttpRequest.readyState documentation> 
+getReadyState :: (MonadIO m) => XMLHttpRequest -> m Word
+getReadyState self = liftIO (js_getReadyState self)
+ 
 foreign import javascript unsafe "$1[\"timeout\"] = $2;"
         js_setTimeout :: XMLHttpRequest -> Word -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.timeout Mozilla XMLHttpRequest.timeout documentation> 
 setTimeout :: (MonadIO m) => XMLHttpRequest -> Word -> m ()
-setTimeout self val = liftIO (js_setTimeout (self) val)
+setTimeout self val = liftIO (js_setTimeout self val)
  
 foreign import javascript unsafe "$1[\"timeout\"]" js_getTimeout ::
         XMLHttpRequest -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.timeout Mozilla XMLHttpRequest.timeout documentation> 
 getTimeout :: (MonadIO m) => XMLHttpRequest -> m Word
-getTimeout self = liftIO (js_getTimeout (self))
- 
-foreign import javascript unsafe "$1[\"readyState\"]"
-        js_getReadyState :: XMLHttpRequest -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.readyState Mozilla XMLHttpRequest.readyState documentation> 
-getReadyState :: (MonadIO m) => XMLHttpRequest -> m Word
-getReadyState self = liftIO (js_getReadyState (self))
+getTimeout self = liftIO (js_getTimeout self)
  
 foreign import javascript unsafe "$1[\"withCredentials\"] = $2;"
         js_setWithCredentials :: XMLHttpRequest -> Bool -> IO ()
@@ -239,7 +206,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.withCredentials Mozilla XMLHttpRequest.withCredentials documentation> 
 setWithCredentials :: (MonadIO m) => XMLHttpRequest -> Bool -> m ()
 setWithCredentials self val
-  = liftIO (js_setWithCredentials (self) val)
+  = liftIO (js_setWithCredentials self val)
  
 foreign import javascript unsafe
         "($1[\"withCredentials\"] ? 1 : 0)" js_getWithCredentials ::
@@ -247,31 +214,66 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.withCredentials Mozilla XMLHttpRequest.withCredentials documentation> 
 getWithCredentials :: (MonadIO m) => XMLHttpRequest -> m Bool
-getWithCredentials self = liftIO (js_getWithCredentials (self))
+getWithCredentials self = liftIO (js_getWithCredentials self)
  
 foreign import javascript unsafe "$1[\"upload\"]" js_getUpload ::
-        XMLHttpRequest -> IO (Nullable XMLHttpRequestUpload)
+        XMLHttpRequest -> IO XMLHttpRequestUpload
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.upload Mozilla XMLHttpRequest.upload documentation> 
 getUpload ::
-          (MonadIO m) => XMLHttpRequest -> m (Maybe XMLHttpRequestUpload)
-getUpload self = liftIO (nullableToMaybe <$> (js_getUpload (self)))
+          (MonadIO m) => XMLHttpRequest -> m XMLHttpRequestUpload
+getUpload self = liftIO (js_getUpload self)
+ 
+foreign import javascript unsafe "$1[\"responseURL\"]"
+        js_getResponseURL :: XMLHttpRequest -> IO JSString
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.upload Mozilla XMLHttpRequest.upload documentation> 
-getUploadUnsafe ::
-                (MonadIO m, HasCallStack) =>
-                  XMLHttpRequest -> m XMLHttpRequestUpload
-getUploadUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getUpload (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseURL Mozilla XMLHttpRequest.responseURL documentation> 
+getResponseURL ::
+               (MonadIO m, FromJSString result) => XMLHttpRequest -> m result
+getResponseURL self
+  = liftIO (fromJSString <$> (js_getResponseURL self))
+ 
+foreign import javascript unsafe "$1[\"status\"]" js_getStatus ::
+        XMLHttpRequest -> IO Word
 
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.upload Mozilla XMLHttpRequest.upload documentation> 
-getUploadUnchecked ::
-                   (MonadIO m) => XMLHttpRequest -> m XMLHttpRequestUpload
-getUploadUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getUpload (self)))
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.status Mozilla XMLHttpRequest.status documentation> 
+getStatus :: (MonadIO m) => XMLHttpRequest -> m Word
+getStatus self = liftIO (js_getStatus self)
  
+foreign import javascript unsafe "$1[\"statusText\"]"
+        js_getStatusText :: XMLHttpRequest -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.statusText Mozilla XMLHttpRequest.statusText documentation> 
+getStatusText ::
+              (MonadIO m, FromJSString result) => XMLHttpRequest -> m result
+getStatusText self
+  = liftIO (fromJSString <$> (js_getStatusText self))
+ 
+foreign import javascript unsafe "$1[\"responseType\"] = $2;"
+        js_setResponseType :: XMLHttpRequest -> JSVal -> IO ()
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseType Mozilla XMLHttpRequest.responseType documentation> 
+setResponseType ::
+                (MonadIO m) => XMLHttpRequest -> XMLHttpRequestResponseType -> m ()
+setResponseType self val
+  = liftIO (js_setResponseType self (pToJSVal val))
+ 
+foreign import javascript unsafe "$1[\"responseType\"]"
+        js_getResponseType :: XMLHttpRequest -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseType Mozilla XMLHttpRequest.responseType documentation> 
+getResponseType ::
+                (MonadIO m) => XMLHttpRequest -> m XMLHttpRequestResponseType
+getResponseType self
+  = liftIO ((js_getResponseType self) >>= fromJSValUnchecked)
+ 
+foreign import javascript unsafe "$1[\"response\"]" js_getResponse
+        :: XMLHttpRequest -> IO JSVal
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.response Mozilla XMLHttpRequest.response documentation> 
+getResponse :: (MonadIO m) => XMLHttpRequest -> m JSVal
+getResponse self = liftIO (js_getResponse self)
+ 
 foreign import javascript unsafe "$1[\"responseText\"]"
         js_getResponseText :: XMLHttpRequest -> IO (Nullable JSString)
 
@@ -280,7 +282,7 @@
                 (MonadIO m, FromJSString result) =>
                   XMLHttpRequest -> m (Maybe result)
 getResponseText self
-  = liftIO (fromMaybeJSString <$> (js_getResponseText (self)))
+  = liftIO (fromMaybeJSString <$> (js_getResponseText self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseText Mozilla XMLHttpRequest.responseText documentation> 
 getResponseTextUnsafe ::
@@ -288,7 +290,7 @@
                         XMLHttpRequest -> m result
 getResponseTextUnsafe self
   = liftIO
-      ((fromMaybeJSString <$> (js_getResponseText (self))) >>=
+      ((fromMaybeJSString <$> (js_getResponseText self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseText Mozilla XMLHttpRequest.responseText documentation> 
@@ -296,7 +298,7 @@
                          (MonadIO m, FromJSString result) => XMLHttpRequest -> m result
 getResponseTextUnchecked self
   = liftIO
-      (fromJust . fromMaybeJSString <$> (js_getResponseText (self)))
+      (fromJust . fromMaybeJSString <$> (js_getResponseText self))
  
 foreign import javascript unsafe "$1[\"responseXML\"]"
         js_getResponseXML :: XMLHttpRequest -> IO (Nullable Document)
@@ -305,83 +307,18 @@
 getResponseXML ::
                (MonadIO m) => XMLHttpRequest -> m (Maybe Document)
 getResponseXML self
-  = liftIO (nullableToMaybe <$> (js_getResponseXML (self)))
+  = liftIO (nullableToMaybe <$> (js_getResponseXML self))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseXML Mozilla XMLHttpRequest.responseXML documentation> 
 getResponseXMLUnsafe ::
                      (MonadIO m, HasCallStack) => XMLHttpRequest -> m Document
 getResponseXMLUnsafe self
   = liftIO
-      ((nullableToMaybe <$> (js_getResponseXML (self))) >>=
+      ((nullableToMaybe <$> (js_getResponseXML self)) >>=
          maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseXML Mozilla XMLHttpRequest.responseXML documentation> 
 getResponseXMLUnchecked ::
                         (MonadIO m) => XMLHttpRequest -> m Document
 getResponseXMLUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getResponseXML (self)))
- 
-foreign import javascript unsafe "$1[\"responseType\"] = $2;"
-        js_setResponseType :: XMLHttpRequest -> JSVal -> IO ()
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseType Mozilla XMLHttpRequest.responseType documentation> 
-setResponseType ::
-                (MonadIO m) => XMLHttpRequest -> XMLHttpRequestResponseType -> m ()
-setResponseType self val
-  = liftIO (js_setResponseType (self) (pToJSVal val))
- 
-foreign import javascript unsafe "$1[\"responseType\"]"
-        js_getResponseType :: XMLHttpRequest -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseType Mozilla XMLHttpRequest.responseType documentation> 
-getResponseType ::
-                (MonadIO m) => XMLHttpRequest -> m XMLHttpRequestResponseType
-getResponseType self
-  = liftIO ((js_getResponseType (self)) >>= fromJSValUnchecked)
- 
-foreign import javascript unsafe "$1[\"response\"]" js_getResponse
-        :: XMLHttpRequest -> IO (Nullable GObject)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.response Mozilla XMLHttpRequest.response documentation> 
-getResponse :: (MonadIO m) => XMLHttpRequest -> m (Maybe GObject)
-getResponse self
-  = liftIO (nullableToMaybe <$> (js_getResponse (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.response Mozilla XMLHttpRequest.response documentation> 
-getResponseUnsafe ::
-                  (MonadIO m, HasCallStack) => XMLHttpRequest -> m GObject
-getResponseUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getResponse (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.response Mozilla XMLHttpRequest.response documentation> 
-getResponseUnchecked :: (MonadIO m) => XMLHttpRequest -> m GObject
-getResponseUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_getResponse (self)))
- 
-foreign import javascript unsafe "$1[\"status\"]" js_getStatus ::
-        XMLHttpRequest -> IO Word
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.status Mozilla XMLHttpRequest.status documentation> 
-getStatus :: (MonadIO m) => XMLHttpRequest -> m Word
-getStatus self = liftIO (js_getStatus (self))
- 
-foreign import javascript unsafe "$1[\"statusText\"]"
-        js_getStatusText :: XMLHttpRequest -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.statusText Mozilla XMLHttpRequest.statusText documentation> 
-getStatusText ::
-              (MonadIO m, FromJSString result) => XMLHttpRequest -> m result
-getStatusText self
-  = liftIO (fromJSString <$> (js_getStatusText (self)))
- 
-foreign import javascript unsafe "$1[\"responseURL\"]"
-        js_getResponseURL :: XMLHttpRequest -> IO JSString
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseURL Mozilla XMLHttpRequest.responseURL documentation> 
-getResponseURL ::
-               (MonadIO m, FromJSString result) => XMLHttpRequest -> m result
-getResponseURL self
-  = liftIO (fromJSString <$> (js_getResponseURL (self)))
+  = liftIO (fromJust . nullableToMaybe <$> (js_getResponseXML self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequestEventTarget.hs b/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequestEventTarget.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequestEventTarget.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.XMLHttpRequestEventTarget
+       (loadStart, progress, abortEvent, error, load, timeout, loadEnd,
+        XMLHttpRequestEventTarget(..), gTypeXMLHttpRequestEventTarget,
+        IsXMLHttpRequestEventTarget, toXMLHttpRequestEventTarget)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget.onloadstart Mozilla XMLHttpRequestEventTarget.onloadstart documentation> 
+loadStart ::
+          (IsXMLHttpRequestEventTarget self, IsEventTarget self) =>
+            EventName self ProgressEvent
+loadStart = unsafeEventName (toJSString "loadstart")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget.onprogress Mozilla XMLHttpRequestEventTarget.onprogress documentation> 
+progress ::
+         (IsXMLHttpRequestEventTarget self, IsEventTarget self) =>
+           EventName self XMLHttpRequestProgressEvent
+progress = unsafeEventName (toJSString "progress")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget.onabort Mozilla XMLHttpRequestEventTarget.onabort documentation> 
+abortEvent ::
+           (IsXMLHttpRequestEventTarget self, IsEventTarget self) =>
+             EventName self XMLHttpRequestProgressEvent
+abortEvent = unsafeEventName (toJSString "abort")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget.onerror Mozilla XMLHttpRequestEventTarget.onerror documentation> 
+error ::
+      (IsXMLHttpRequestEventTarget self, IsEventTarget self) =>
+        EventName self XMLHttpRequestProgressEvent
+error = unsafeEventName (toJSString "error")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget.onload Mozilla XMLHttpRequestEventTarget.onload documentation> 
+load ::
+     (IsXMLHttpRequestEventTarget self, IsEventTarget self) =>
+       EventName self XMLHttpRequestProgressEvent
+load = unsafeEventName (toJSString "load")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget.ontimeout Mozilla XMLHttpRequestEventTarget.ontimeout documentation> 
+timeout ::
+        (IsXMLHttpRequestEventTarget self, IsEventTarget self) =>
+          EventName self ProgressEvent
+timeout = unsafeEventName (toJSString "timeout")
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget.onloadend Mozilla XMLHttpRequestEventTarget.onloadend documentation> 
+loadEnd ::
+        (IsXMLHttpRequestEventTarget self, IsEventTarget self) =>
+          EventName self ProgressEvent
+loadEnd = unsafeEventName (toJSString "loadend")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequestProgressEvent.hs b/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequestProgressEvent.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequestProgressEvent.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequestProgressEvent.hs
@@ -11,7 +11,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -31,7 +32,7 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestProgressEvent.position Mozilla XMLHttpRequestProgressEvent.position documentation> 
 getPosition ::
             (MonadIO m) => XMLHttpRequestProgressEvent -> m Word64
-getPosition self = liftIO (round <$> (js_getPosition (self)))
+getPosition self = liftIO (round <$> (js_getPosition self))
  
 foreign import javascript unsafe "$1[\"totalSize\"]"
         js_getTotalSize :: XMLHttpRequestProgressEvent -> IO Double
@@ -39,4 +40,4 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestProgressEvent.totalSize Mozilla XMLHttpRequestProgressEvent.totalSize documentation> 
 getTotalSize ::
              (MonadIO m) => XMLHttpRequestProgressEvent -> m Word64
-getTotalSize self = liftIO (round <$> (js_getTotalSize (self)))
+getTotalSize self = liftIO (round <$> (js_getTotalSize self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequestUpload.hs b/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequestUpload.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/Generated/XMLHttpRequestUpload.hs
+++ /dev/null
@@ -1,51 +0,0 @@
-{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE JavaScriptFFI #-}
--- For HasCallStack compatibility
-{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
-module GHCJS.DOM.JSFFI.Generated.XMLHttpRequestUpload
-       (abort, error, load, loadEnd, loadStart, progress,
-        XMLHttpRequestUpload(..), gTypeXMLHttpRequestUpload)
-       where
-import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
-import qualified Prelude (error)
-import Data.Typeable (Typeable)
-import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
-import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import Control.Monad (void)
-import Control.Monad.IO.Class (MonadIO(..))
-import Data.Int (Int64)
-import Data.Word (Word, Word64)
-import Data.Maybe (fromJust)
-import GHCJS.DOM.Types
-import Control.Applicative ((<$>))
-import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
-import GHCJS.DOM.JSFFI.Generated.Enums
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestUpload.onabort Mozilla XMLHttpRequestUpload.onabort documentation> 
-abort :: EventName XMLHttpRequestUpload XMLHttpRequestProgressEvent
-abort = unsafeEventName (toJSString "abort")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestUpload.onerror Mozilla XMLHttpRequestUpload.onerror documentation> 
-error :: EventName XMLHttpRequestUpload XMLHttpRequestProgressEvent
-error = unsafeEventName (toJSString "error")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestUpload.onload Mozilla XMLHttpRequestUpload.onload documentation> 
-load :: EventName XMLHttpRequestUpload XMLHttpRequestProgressEvent
-load = unsafeEventName (toJSString "load")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestUpload.onloadend Mozilla XMLHttpRequestUpload.onloadend documentation> 
-loadEnd :: EventName XMLHttpRequestUpload ProgressEvent
-loadEnd = unsafeEventName (toJSString "loadend")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestUpload.onloadstart Mozilla XMLHttpRequestUpload.onloadstart documentation> 
-loadStart :: EventName XMLHttpRequestUpload ProgressEvent
-loadStart = unsafeEventName (toJSString "loadstart")
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestUpload.onprogress Mozilla XMLHttpRequestUpload.onprogress documentation> 
-progress ::
-           EventName XMLHttpRequestUpload XMLHttpRequestProgressEvent
-progress = unsafeEventName (toJSString "progress")
diff --git a/src/GHCJS/DOM/JSFFI/Generated/XMLSerializer.hs b/src/GHCJS/DOM/JSFFI/Generated/XMLSerializer.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/XMLSerializer.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/XMLSerializer.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -34,22 +35,18 @@
 newXMLSerializer = liftIO (js_newXMLSerializer)
  
 foreign import javascript unsafe "$1[\"serializeToString\"]($2)"
-        js_serializeToString ::
-        XMLSerializer -> Nullable Node -> IO JSString
+        js_serializeToString :: XMLSerializer -> Node -> IO JSString
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLSerializer.serializeToString Mozilla XMLSerializer.serializeToString documentation> 
 serializeToString ::
                   (MonadIO m, IsNode node, FromJSString result) =>
-                    XMLSerializer -> Maybe node -> m result
+                    XMLSerializer -> node -> m result
 serializeToString self node
   = liftIO
-      (fromJSString <$>
-         (js_serializeToString (self) (maybeToNullable (fmap toNode node))))
+      (fromJSString <$> (js_serializeToString self (toNode node)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLSerializer.serializeToString Mozilla XMLSerializer.serializeToString documentation> 
 serializeToString_ ::
-                   (MonadIO m, IsNode node) => XMLSerializer -> Maybe node -> m ()
+                   (MonadIO m, IsNode node) => XMLSerializer -> node -> m ()
 serializeToString_ self node
-  = liftIO
-      (void
-         (js_serializeToString (self) (maybeToNullable (fmap toNode node))))
+  = liftIO (void (js_serializeToString self (toNode node)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/XPathEvaluator.hs b/src/GHCJS/DOM/JSFFI/Generated/XPathEvaluator.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/XPathEvaluator.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/XPathEvaluator.hs
@@ -5,18 +5,15 @@
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.XPathEvaluator
        (js_newXPathEvaluator, newXPathEvaluator, js_createExpression,
-        createExpression, createExpression_, createExpressionUnsafe,
-        createExpressionUnchecked, js_createNSResolver, createNSResolver,
-        createNSResolver_, createNSResolverUnsafe,
-        createNSResolverUnchecked, js_evaluate, evaluate, evaluate_,
-        evaluateUnsafe, evaluateUnchecked, XPathEvaluator(..),
-        gTypeXPathEvaluator)
+        createExpression, createExpression_, js_createNSResolver,
+        createNSResolver, createNSResolver_, js_evaluate, evaluate,
+        evaluate_, XPathEvaluator(..), gTypeXPathEvaluator)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -25,6 +22,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -40,66 +38,40 @@
 foreign import javascript unsafe "$1[\"createExpression\"]($2, $3)"
         js_createExpression ::
         XPathEvaluator ->
-          JSString ->
-            Nullable XPathNSResolver -> IO (Nullable XPathExpression)
+          Optional JSString -> Optional XPathNSResolver -> IO XPathExpression
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.createExpression Mozilla XPathEvaluator.createExpression documentation> 
 createExpression ::
                  (MonadIO m, ToJSString expression) =>
                    XPathEvaluator ->
-                     expression -> Maybe XPathNSResolver -> m (Maybe XPathExpression)
+                     Maybe expression -> Maybe XPathNSResolver -> m XPathExpression
 createExpression self expression resolver
   = liftIO
-      (nullableToMaybe <$>
-         (js_createExpression (self) (toJSString expression)
-            (maybeToNullable resolver)))
+      (js_createExpression self (toOptionalJSString expression)
+         (maybeToOptional resolver))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.createExpression Mozilla XPathEvaluator.createExpression documentation> 
 createExpression_ ::
                   (MonadIO m, ToJSString expression) =>
-                    XPathEvaluator -> expression -> Maybe XPathNSResolver -> m ()
+                    XPathEvaluator -> Maybe expression -> Maybe XPathNSResolver -> m ()
 createExpression_ self expression resolver
   = liftIO
       (void
-         (js_createExpression (self) (toJSString expression)
-            (maybeToNullable resolver)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.createExpression Mozilla XPathEvaluator.createExpression documentation> 
-createExpressionUnsafe ::
-                       (MonadIO m, ToJSString expression, HasCallStack) =>
-                         XPathEvaluator ->
-                           expression -> Maybe XPathNSResolver -> m XPathExpression
-createExpressionUnsafe self expression resolver
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createExpression (self) (toJSString expression)
-             (maybeToNullable resolver)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.createExpression Mozilla XPathEvaluator.createExpression documentation> 
-createExpressionUnchecked ::
-                          (MonadIO m, ToJSString expression) =>
-                            XPathEvaluator ->
-                              expression -> Maybe XPathNSResolver -> m XPathExpression
-createExpressionUnchecked self expression resolver
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createExpression (self) (toJSString expression)
-            (maybeToNullable resolver)))
+         (js_createExpression self (toOptionalJSString expression)
+            (maybeToOptional resolver)))
  
 foreign import javascript unsafe "$1[\"createNSResolver\"]($2)"
         js_createNSResolver ::
-        XPathEvaluator -> Nullable Node -> IO (Nullable XPathNSResolver)
+        XPathEvaluator -> Optional Node -> IO XPathNSResolver
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.createNSResolver Mozilla XPathEvaluator.createNSResolver documentation> 
 createNSResolver ::
                  (MonadIO m, IsNode nodeResolver) =>
-                   XPathEvaluator -> Maybe nodeResolver -> m (Maybe XPathNSResolver)
+                   XPathEvaluator -> Maybe nodeResolver -> m XPathNSResolver
 createNSResolver self nodeResolver
   = liftIO
-      (nullableToMaybe <$>
-         (js_createNSResolver (self)
-            (maybeToNullable (fmap toNode nodeResolver))))
+      (js_createNSResolver self
+         (maybeToOptional (fmap toNode nodeResolver)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.createNSResolver Mozilla XPathEvaluator.createNSResolver documentation> 
 createNSResolver_ ::
@@ -108,102 +80,45 @@
 createNSResolver_ self nodeResolver
   = liftIO
       (void
-         (js_createNSResolver (self)
-            (maybeToNullable (fmap toNode nodeResolver))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.createNSResolver Mozilla XPathEvaluator.createNSResolver documentation> 
-createNSResolverUnsafe ::
-                       (MonadIO m, IsNode nodeResolver, HasCallStack) =>
-                         XPathEvaluator -> Maybe nodeResolver -> m XPathNSResolver
-createNSResolverUnsafe self nodeResolver
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_createNSResolver (self)
-             (maybeToNullable (fmap toNode nodeResolver))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.createNSResolver Mozilla XPathEvaluator.createNSResolver documentation> 
-createNSResolverUnchecked ::
-                          (MonadIO m, IsNode nodeResolver) =>
-                            XPathEvaluator -> Maybe nodeResolver -> m XPathNSResolver
-createNSResolverUnchecked self nodeResolver
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_createNSResolver (self)
-            (maybeToNullable (fmap toNode nodeResolver))))
+         (js_createNSResolver self
+            (maybeToOptional (fmap toNode nodeResolver))))
  
 foreign import javascript unsafe
         "$1[\"evaluate\"]($2, $3, $4, $5,\n$6)" js_evaluate ::
         XPathEvaluator ->
-          JSString ->
-            Nullable Node ->
-              Nullable XPathNSResolver ->
-                Word -> Nullable XPathResult -> IO (Nullable XPathResult)
+          Optional JSString ->
+            Optional Node ->
+              Optional XPathNSResolver ->
+                Optional Word -> Optional XPathResult -> IO XPathResult
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.evaluate Mozilla XPathEvaluator.evaluate documentation> 
 evaluate ::
          (MonadIO m, ToJSString expression, IsNode contextNode) =>
            XPathEvaluator ->
-             expression ->
+             Maybe expression ->
                Maybe contextNode ->
                  Maybe XPathNSResolver ->
-                   Word -> Maybe XPathResult -> m (Maybe XPathResult)
+                   Maybe Word -> Maybe XPathResult -> m XPathResult
 evaluate self expression contextNode resolver type' inResult
   = liftIO
-      (nullableToMaybe <$>
-         (js_evaluate (self) (toJSString expression)
-            (maybeToNullable (fmap toNode contextNode))
-            (maybeToNullable resolver)
-            type'
-            (maybeToNullable inResult)))
+      (js_evaluate self (toOptionalJSString expression)
+         (maybeToOptional (fmap toNode contextNode))
+         (maybeToOptional resolver)
+         (maybeToOptional type')
+         (maybeToOptional inResult))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.evaluate Mozilla XPathEvaluator.evaluate documentation> 
 evaluate_ ::
           (MonadIO m, ToJSString expression, IsNode contextNode) =>
             XPathEvaluator ->
-              expression ->
+              Maybe expression ->
                 Maybe contextNode ->
-                  Maybe XPathNSResolver -> Word -> Maybe XPathResult -> m ()
+                  Maybe XPathNSResolver -> Maybe Word -> Maybe XPathResult -> m ()
 evaluate_ self expression contextNode resolver type' inResult
   = liftIO
       (void
-         (js_evaluate (self) (toJSString expression)
-            (maybeToNullable (fmap toNode contextNode))
-            (maybeToNullable resolver)
-            type'
-            (maybeToNullable inResult)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.evaluate Mozilla XPathEvaluator.evaluate documentation> 
-evaluateUnsafe ::
-               (MonadIO m, ToJSString expression, IsNode contextNode,
-                HasCallStack) =>
-                 XPathEvaluator ->
-                   expression ->
-                     Maybe contextNode ->
-                       Maybe XPathNSResolver -> Word -> Maybe XPathResult -> m XPathResult
-evaluateUnsafe self expression contextNode resolver type' inResult
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_evaluate (self) (toJSString expression)
-             (maybeToNullable (fmap toNode contextNode))
-             (maybeToNullable resolver)
-             type'
-             (maybeToNullable inResult)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator.evaluate Mozilla XPathEvaluator.evaluate documentation> 
-evaluateUnchecked ::
-                  (MonadIO m, ToJSString expression, IsNode contextNode) =>
-                    XPathEvaluator ->
-                      expression ->
-                        Maybe contextNode ->
-                          Maybe XPathNSResolver -> Word -> Maybe XPathResult -> m XPathResult
-evaluateUnchecked self expression contextNode resolver type'
-  inResult
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_evaluate (self) (toJSString expression)
-            (maybeToNullable (fmap toNode contextNode))
-            (maybeToNullable resolver)
-            type'
-            (maybeToNullable inResult)))
+         (js_evaluate self (toOptionalJSString expression)
+            (maybeToOptional (fmap toNode contextNode))
+            (maybeToOptional resolver)
+            (maybeToOptional type')
+            (maybeToOptional inResult)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/XPathException.hs b/src/GHCJS/DOM/JSFFI/Generated/XPathException.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/JSFFI/Generated/XPathException.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE JavaScriptFFI #-}
+-- For HasCallStack compatibility
+{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
+module GHCJS.DOM.JSFFI.Generated.XPathException
+       (js_toString, toString, toString_, pattern INVALID_EXPRESSION_ERR,
+        pattern TYPE_ERR, js_getCode, getCode, js_getName, getName,
+        js_getMessage, getMessage, XPathException(..), gTypeXPathException)
+       where
+import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
+import qualified Prelude (error)
+import Data.Typeable (Typeable)
+import GHCJS.Types (JSVal(..), JSString)
+import GHCJS.Foreign (jsNull, jsUndefined)
+import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import Control.Monad (void)
+import Control.Monad.IO.Class (MonadIO(..))
+import Data.Int (Int64)
+import Data.Word (Word, Word64)
+import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
+import GHCJS.DOM.Types
+import Control.Applicative ((<$>))
+import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
+import GHCJS.DOM.JSFFI.Generated.Enums
+ 
+foreign import javascript unsafe "$1[\"toString\"]()" js_toString
+        :: XPathException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathException.toString Mozilla XPathException.toString documentation> 
+toString ::
+         (MonadIO m, FromJSString result) => XPathException -> m result
+toString self = liftIO (fromJSString <$> (js_toString self))
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathException.toString Mozilla XPathException.toString documentation> 
+toString_ :: (MonadIO m) => XPathException -> m ()
+toString_ self = liftIO (void (js_toString self))
+pattern INVALID_EXPRESSION_ERR = 51
+pattern TYPE_ERR = 52
+ 
+foreign import javascript unsafe "$1[\"code\"]" js_getCode ::
+        XPathException -> IO Word
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathException.code Mozilla XPathException.code documentation> 
+getCode :: (MonadIO m) => XPathException -> m Word
+getCode self = liftIO (js_getCode self)
+ 
+foreign import javascript unsafe "$1[\"name\"]" js_getName ::
+        XPathException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathException.name Mozilla XPathException.name documentation> 
+getName ::
+        (MonadIO m, FromJSString result) => XPathException -> m result
+getName self = liftIO (fromJSString <$> (js_getName self))
+ 
+foreign import javascript unsafe "$1[\"message\"]" js_getMessage ::
+        XPathException -> IO JSString
+
+-- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathException.message Mozilla XPathException.message documentation> 
+getMessage ::
+           (MonadIO m, FromJSString result) => XPathException -> m result
+getMessage self = liftIO (fromJSString <$> (js_getMessage self))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/XPathExpression.hs b/src/GHCJS/DOM/JSFFI/Generated/XPathExpression.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/XPathExpression.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/XPathExpression.hs
@@ -4,14 +4,14 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.XPathExpression
-       (js_evaluate, evaluate, evaluate_, evaluateUnsafe,
-        evaluateUnchecked, XPathExpression(..), gTypeXPathExpression)
+       (js_evaluate, evaluate, evaluate_, XPathExpression(..),
+        gTypeXPathExpression)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -20,6 +20,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,55 +29,29 @@
 foreign import javascript unsafe "$1[\"evaluate\"]($2, $3, $4)"
         js_evaluate ::
         XPathExpression ->
-          Nullable Node ->
-            Word -> Nullable XPathResult -> IO (Nullable XPathResult)
+          Optional Node ->
+            Optional Word -> Optional XPathResult -> IO XPathResult
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathExpression.evaluate Mozilla XPathExpression.evaluate documentation> 
 evaluate ::
          (MonadIO m, IsNode contextNode) =>
            XPathExpression ->
              Maybe contextNode ->
-               Word -> Maybe XPathResult -> m (Maybe XPathResult)
+               Maybe Word -> Maybe XPathResult -> m XPathResult
 evaluate self contextNode type' inResult
   = liftIO
-      (nullableToMaybe <$>
-         (js_evaluate (self) (maybeToNullable (fmap toNode contextNode))
-            type'
-            (maybeToNullable inResult)))
+      (js_evaluate self (maybeToOptional (fmap toNode contextNode))
+         (maybeToOptional type')
+         (maybeToOptional inResult))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathExpression.evaluate Mozilla XPathExpression.evaluate documentation> 
 evaluate_ ::
           (MonadIO m, IsNode contextNode) =>
             XPathExpression ->
-              Maybe contextNode -> Word -> Maybe XPathResult -> m ()
+              Maybe contextNode -> Maybe Word -> Maybe XPathResult -> m ()
 evaluate_ self contextNode type' inResult
   = liftIO
       (void
-         (js_evaluate (self) (maybeToNullable (fmap toNode contextNode))
-            type'
-            (maybeToNullable inResult)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathExpression.evaluate Mozilla XPathExpression.evaluate documentation> 
-evaluateUnsafe ::
-               (MonadIO m, IsNode contextNode, HasCallStack) =>
-                 XPathExpression ->
-                   Maybe contextNode -> Word -> Maybe XPathResult -> m XPathResult
-evaluateUnsafe self contextNode type' inResult
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_evaluate (self) (maybeToNullable (fmap toNode contextNode))
-             type'
-             (maybeToNullable inResult)))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathExpression.evaluate Mozilla XPathExpression.evaluate documentation> 
-evaluateUnchecked ::
-                  (MonadIO m, IsNode contextNode) =>
-                    XPathExpression ->
-                      Maybe contextNode -> Word -> Maybe XPathResult -> m XPathResult
-evaluateUnchecked self contextNode type' inResult
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_evaluate (self) (maybeToNullable (fmap toNode contextNode))
-            type'
-            (maybeToNullable inResult)))
+         (js_evaluate self (maybeToOptional (fmap toNode contextNode))
+            (maybeToOptional type')
+            (maybeToOptional inResult)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/XPathNSResolver.hs b/src/GHCJS/DOM/JSFFI/Generated/XPathNSResolver.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/XPathNSResolver.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/XPathNSResolver.hs
@@ -12,7 +12,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -21,6 +21,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -28,39 +29,41 @@
  
 foreign import javascript unsafe "$1[\"lookupNamespaceURI\"]($2)"
         js_lookupNamespaceURI ::
-        XPathNSResolver -> JSString -> IO (Nullable JSString)
+        XPathNSResolver -> Optional JSString -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathNSResolver.lookupNamespaceURI Mozilla XPathNSResolver.lookupNamespaceURI documentation> 
 lookupNamespaceURI ::
                    (MonadIO m, ToJSString prefix, FromJSString result) =>
-                     XPathNSResolver -> prefix -> m (Maybe result)
+                     XPathNSResolver -> Maybe prefix -> m (Maybe result)
 lookupNamespaceURI self prefix
   = liftIO
       (fromMaybeJSString <$>
-         (js_lookupNamespaceURI (self) (toJSString prefix)))
+         (js_lookupNamespaceURI self (toOptionalJSString prefix)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathNSResolver.lookupNamespaceURI Mozilla XPathNSResolver.lookupNamespaceURI documentation> 
 lookupNamespaceURI_ ::
-                    (MonadIO m, ToJSString prefix) => XPathNSResolver -> prefix -> m ()
+                    (MonadIO m, ToJSString prefix) =>
+                      XPathNSResolver -> Maybe prefix -> m ()
 lookupNamespaceURI_ self prefix
-  = liftIO (void (js_lookupNamespaceURI (self) (toJSString prefix)))
+  = liftIO
+      (void (js_lookupNamespaceURI self (toOptionalJSString prefix)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathNSResolver.lookupNamespaceURI Mozilla XPathNSResolver.lookupNamespaceURI documentation> 
 lookupNamespaceURIUnsafe ::
                          (MonadIO m, ToJSString prefix, HasCallStack,
                           FromJSString result) =>
-                           XPathNSResolver -> prefix -> m result
+                           XPathNSResolver -> Maybe prefix -> m result
 lookupNamespaceURIUnsafe self prefix
   = liftIO
       ((fromMaybeJSString <$>
-          (js_lookupNamespaceURI (self) (toJSString prefix)))
+          (js_lookupNamespaceURI self (toOptionalJSString prefix)))
          >>= maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathNSResolver.lookupNamespaceURI Mozilla XPathNSResolver.lookupNamespaceURI documentation> 
 lookupNamespaceURIUnchecked ::
                             (MonadIO m, ToJSString prefix, FromJSString result) =>
-                              XPathNSResolver -> prefix -> m result
+                              XPathNSResolver -> Maybe prefix -> m result
 lookupNamespaceURIUnchecked self prefix
   = liftIO
       (fromJust . fromMaybeJSString <$>
-         (js_lookupNamespaceURI (self) (toJSString prefix)))
+         (js_lookupNamespaceURI self (toOptionalJSString prefix)))
diff --git a/src/GHCJS/DOM/JSFFI/Generated/XPathResult.hs b/src/GHCJS/DOM/JSFFI/Generated/XPathResult.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/XPathResult.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/XPathResult.hs
@@ -4,10 +4,9 @@
 -- For HasCallStack compatibility
 {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
 module GHCJS.DOM.JSFFI.Generated.XPathResult
-       (js_iterateNext, iterateNext, iterateNext_, iterateNextUnsafe,
-        iterateNextUnchecked, js_snapshotItem, snapshotItem, snapshotItem_,
-        snapshotItemUnsafe, snapshotItemUnchecked, pattern ANY_TYPE,
-        pattern NUMBER_TYPE, pattern STRING_TYPE, pattern BOOLEAN_TYPE,
+       (js_iterateNext, iterateNext, iterateNext_, js_snapshotItem,
+        snapshotItem, snapshotItem_, pattern ANY_TYPE, pattern NUMBER_TYPE,
+        pattern STRING_TYPE, pattern BOOLEAN_TYPE,
         pattern UNORDERED_NODE_ITERATOR_TYPE,
         pattern ORDERED_NODE_ITERATOR_TYPE,
         pattern UNORDERED_NODE_SNAPSHOT_TYPE,
@@ -16,7 +15,6 @@
         js_getResultType, getResultType, js_getNumberValue, getNumberValue,
         js_getStringValue, getStringValue, js_getBooleanValue,
         getBooleanValue, js_getSingleNodeValue, getSingleNodeValue,
-        getSingleNodeValueUnsafe, getSingleNodeValueUnchecked,
         js_getInvalidIteratorState, getInvalidIteratorState,
         js_getSnapshotLength, getSnapshotLength, XPathResult(..),
         gTypeXPathResult)
@@ -25,7 +23,7 @@
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -34,64 +32,35 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
 import GHCJS.DOM.JSFFI.Generated.Enums
  
 foreign import javascript unsafe "$1[\"iterateNext\"]()"
-        js_iterateNext :: XPathResult -> IO (Nullable Node)
+        js_iterateNext :: XPathResult -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.iterateNext Mozilla XPathResult.iterateNext documentation> 
-iterateNext :: (MonadIO m) => XPathResult -> m (Maybe Node)
-iterateNext self
-  = liftIO (nullableToMaybe <$> (js_iterateNext (self)))
+iterateNext :: (MonadIO m) => XPathResult -> m Node
+iterateNext self = liftIO (js_iterateNext self)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.iterateNext Mozilla XPathResult.iterateNext documentation> 
 iterateNext_ :: (MonadIO m) => XPathResult -> m ()
-iterateNext_ self = liftIO (void (js_iterateNext (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.iterateNext Mozilla XPathResult.iterateNext documentation> 
-iterateNextUnsafe ::
-                  (MonadIO m, HasCallStack) => XPathResult -> m Node
-iterateNextUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_iterateNext (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.iterateNext Mozilla XPathResult.iterateNext documentation> 
-iterateNextUnchecked :: (MonadIO m) => XPathResult -> m Node
-iterateNextUnchecked self
-  = liftIO (fromJust . nullableToMaybe <$> (js_iterateNext (self)))
+iterateNext_ self = liftIO (void (js_iterateNext self))
  
 foreign import javascript unsafe "$1[\"snapshotItem\"]($2)"
-        js_snapshotItem :: XPathResult -> Word -> IO (Nullable Node)
+        js_snapshotItem :: XPathResult -> Optional Word -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.snapshotItem Mozilla XPathResult.snapshotItem documentation> 
-snapshotItem ::
-             (MonadIO m) => XPathResult -> Word -> m (Maybe Node)
+snapshotItem :: (MonadIO m) => XPathResult -> Maybe Word -> m Node
 snapshotItem self index
-  = liftIO (nullableToMaybe <$> (js_snapshotItem (self) index))
+  = liftIO (js_snapshotItem self (maybeToOptional index))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.snapshotItem Mozilla XPathResult.snapshotItem documentation> 
-snapshotItem_ :: (MonadIO m) => XPathResult -> Word -> m ()
+snapshotItem_ :: (MonadIO m) => XPathResult -> Maybe Word -> m ()
 snapshotItem_ self index
-  = liftIO (void (js_snapshotItem (self) index))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.snapshotItem Mozilla XPathResult.snapshotItem documentation> 
-snapshotItemUnsafe ::
-                   (MonadIO m, HasCallStack) => XPathResult -> Word -> m Node
-snapshotItemUnsafe self index
-  = liftIO
-      ((nullableToMaybe <$> (js_snapshotItem (self) index)) >>=
-         maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.snapshotItem Mozilla XPathResult.snapshotItem documentation> 
-snapshotItemUnchecked ::
-                      (MonadIO m) => XPathResult -> Word -> m Node
-snapshotItemUnchecked self index
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_snapshotItem (self) index))
+  = liftIO (void (js_snapshotItem self (maybeToOptional index)))
 pattern ANY_TYPE = 0
 pattern NUMBER_TYPE = 1
 pattern STRING_TYPE = 2
@@ -108,14 +77,14 @@
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.resultType Mozilla XPathResult.resultType documentation> 
 getResultType :: (MonadIO m) => XPathResult -> m Word
-getResultType self = liftIO (js_getResultType (self))
+getResultType self = liftIO (js_getResultType self)
  
 foreign import javascript unsafe "$1[\"numberValue\"]"
         js_getNumberValue :: XPathResult -> IO Double
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.numberValue Mozilla XPathResult.numberValue documentation> 
 getNumberValue :: (MonadIO m) => XPathResult -> m Double
-getNumberValue self = liftIO (js_getNumberValue (self))
+getNumberValue self = liftIO (js_getNumberValue self)
  
 foreign import javascript unsafe "$1[\"stringValue\"]"
         js_getStringValue :: XPathResult -> IO JSString
@@ -124,36 +93,21 @@
 getStringValue ::
                (MonadIO m, FromJSString result) => XPathResult -> m result
 getStringValue self
-  = liftIO (fromJSString <$> (js_getStringValue (self)))
+  = liftIO (fromJSString <$> (js_getStringValue self))
  
 foreign import javascript unsafe "($1[\"booleanValue\"] ? 1 : 0)"
         js_getBooleanValue :: XPathResult -> IO Bool
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.booleanValue Mozilla XPathResult.booleanValue documentation> 
 getBooleanValue :: (MonadIO m) => XPathResult -> m Bool
-getBooleanValue self = liftIO (js_getBooleanValue (self))
+getBooleanValue self = liftIO (js_getBooleanValue self)
  
 foreign import javascript unsafe "$1[\"singleNodeValue\"]"
-        js_getSingleNodeValue :: XPathResult -> IO (Nullable Node)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.singleNodeValue Mozilla XPathResult.singleNodeValue documentation> 
-getSingleNodeValue :: (MonadIO m) => XPathResult -> m (Maybe Node)
-getSingleNodeValue self
-  = liftIO (nullableToMaybe <$> (js_getSingleNodeValue (self)))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.singleNodeValue Mozilla XPathResult.singleNodeValue documentation> 
-getSingleNodeValueUnsafe ::
-                         (MonadIO m, HasCallStack) => XPathResult -> m Node
-getSingleNodeValueUnsafe self
-  = liftIO
-      ((nullableToMaybe <$> (js_getSingleNodeValue (self))) >>=
-         maybe (Prelude.error "Nothing to return") return)
+        js_getSingleNodeValue :: XPathResult -> IO Node
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.singleNodeValue Mozilla XPathResult.singleNodeValue documentation> 
-getSingleNodeValueUnchecked :: (MonadIO m) => XPathResult -> m Node
-getSingleNodeValueUnchecked self
-  = liftIO
-      (fromJust . nullableToMaybe <$> (js_getSingleNodeValue (self)))
+getSingleNodeValue :: (MonadIO m) => XPathResult -> m Node
+getSingleNodeValue self = liftIO (js_getSingleNodeValue self)
  
 foreign import javascript unsafe
         "($1[\"invalidIteratorState\"] ? 1 : 0)" js_getInvalidIteratorState
@@ -162,11 +116,11 @@
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.invalidIteratorState Mozilla XPathResult.invalidIteratorState documentation> 
 getInvalidIteratorState :: (MonadIO m) => XPathResult -> m Bool
 getInvalidIteratorState self
-  = liftIO (js_getInvalidIteratorState (self))
+  = liftIO (js_getInvalidIteratorState self)
  
 foreign import javascript unsafe "$1[\"snapshotLength\"]"
         js_getSnapshotLength :: XPathResult -> IO Word
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XPathResult.snapshotLength Mozilla XPathResult.snapshotLength documentation> 
 getSnapshotLength :: (MonadIO m) => XPathResult -> m Word
-getSnapshotLength self = liftIO (js_getSnapshotLength (self))
+getSnapshotLength self = liftIO (js_getSnapshotLength self)
diff --git a/src/GHCJS/DOM/JSFFI/Generated/XSLTProcessor.hs b/src/GHCJS/DOM/JSFFI/Generated/XSLTProcessor.hs
--- a/src/GHCJS/DOM/JSFFI/Generated/XSLTProcessor.hs
+++ b/src/GHCJS/DOM/JSFFI/Generated/XSLTProcessor.hs
@@ -6,21 +6,18 @@
 module GHCJS.DOM.JSFFI.Generated.XSLTProcessor
        (js_newXSLTProcessor, newXSLTProcessor, js_importStylesheet,
         importStylesheet, js_transformToFragment, transformToFragment,
-        transformToFragment_, transformToFragmentUnsafe,
-        transformToFragmentUnchecked, js_transformToDocument,
-        transformToDocument, transformToDocument_,
-        transformToDocumentUnsafe, transformToDocumentUnchecked,
-        js_setParameter, setParameter, js_getParameter, getParameter,
-        getParameter_, getParameterUnsafe, getParameterUnchecked,
-        js_removeParameter, removeParameter, js_clearParameters,
-        clearParameters, js_reset, reset, XSLTProcessor(..),
-        gTypeXSLTProcessor)
+        transformToFragment_, js_transformToDocument, transformToDocument,
+        transformToDocument_, js_setParameter, setParameter,
+        js_getParameter, getParameter, getParameter_, getParameterUnsafe,
+        getParameterUnchecked, js_removeParameter, removeParameter,
+        js_clearParameters, clearParameters, js_reset, reset,
+        XSLTProcessor(..), gTypeXSLTProcessor)
        where
 import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord)
 import qualified Prelude (error)
 import Data.Typeable (Typeable)
 import GHCJS.Types (JSVal(..), JSString)
-import GHCJS.Foreign (jsNull)
+import GHCJS.Foreign (jsNull, jsUndefined)
 import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..))
 import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
 import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
@@ -29,6 +26,7 @@
 import Data.Int (Int64)
 import Data.Word (Word, Word64)
 import Data.Maybe (fromJust)
+import Data.Traversable (mapM)
 import GHCJS.DOM.Types
 import Control.Applicative ((<$>))
 import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName)
@@ -42,7 +40,7 @@
 newXSLTProcessor = liftIO (js_newXSLTProcessor)
  
 foreign import javascript unsafe "$1[\"importStylesheet\"]($2)"
-        js_importStylesheet :: XSLTProcessor -> Nullable Node -> IO ()
+        js_importStylesheet :: XSLTProcessor -> Optional Node -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.importStylesheet Mozilla XSLTProcessor.importStylesheet documentation> 
 importStylesheet ::
@@ -50,26 +48,22 @@
                    XSLTProcessor -> Maybe stylesheet -> m ()
 importStylesheet self stylesheet
   = liftIO
-      (js_importStylesheet (self)
-         (maybeToNullable (fmap toNode stylesheet)))
+      (js_importStylesheet self
+         (maybeToOptional (fmap toNode stylesheet)))
  
 foreign import javascript unsafe
         "$1[\"transformToFragment\"]($2,\n$3)" js_transformToFragment ::
         XSLTProcessor ->
-          Nullable Node ->
-            Nullable Document -> IO (Nullable DocumentFragment)
+          Optional Node -> Optional Document -> IO DocumentFragment
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.transformToFragment Mozilla XSLTProcessor.transformToFragment documentation> 
 transformToFragment ::
                     (MonadIO m, IsNode source, IsDocument docVal) =>
-                      XSLTProcessor ->
-                        Maybe source -> Maybe docVal -> m (Maybe DocumentFragment)
+                      XSLTProcessor -> Maybe source -> Maybe docVal -> m DocumentFragment
 transformToFragment self source docVal
   = liftIO
-      (nullableToMaybe <$>
-         (js_transformToFragment (self)
-            (maybeToNullable (fmap toNode source))
-            (maybeToNullable (fmap toDocument docVal))))
+      (js_transformToFragment self (maybeToOptional (fmap toNode source))
+         (maybeToOptional (fmap toDocument docVal)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.transformToFragment Mozilla XSLTProcessor.transformToFragment documentation> 
 transformToFragment_ ::
@@ -78,46 +72,21 @@
 transformToFragment_ self source docVal
   = liftIO
       (void
-         (js_transformToFragment (self)
-            (maybeToNullable (fmap toNode source))
-            (maybeToNullable (fmap toDocument docVal))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.transformToFragment Mozilla XSLTProcessor.transformToFragment documentation> 
-transformToFragmentUnsafe ::
-                          (MonadIO m, IsNode source, IsDocument docVal, HasCallStack) =>
-                            XSLTProcessor -> Maybe source -> Maybe docVal -> m DocumentFragment
-transformToFragmentUnsafe self source docVal
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_transformToFragment (self)
-             (maybeToNullable (fmap toNode source))
-             (maybeToNullable (fmap toDocument docVal))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.transformToFragment Mozilla XSLTProcessor.transformToFragment documentation> 
-transformToFragmentUnchecked ::
-                             (MonadIO m, IsNode source, IsDocument docVal) =>
-                               XSLTProcessor -> Maybe source -> Maybe docVal -> m DocumentFragment
-transformToFragmentUnchecked self source docVal
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_transformToFragment (self)
-            (maybeToNullable (fmap toNode source))
-            (maybeToNullable (fmap toDocument docVal))))
+         (js_transformToFragment self (maybeToOptional (fmap toNode source))
+            (maybeToOptional (fmap toDocument docVal))))
  
 foreign import javascript unsafe "$1[\"transformToDocument\"]($2)"
         js_transformToDocument ::
-        XSLTProcessor -> Nullable Node -> IO (Nullable Document)
+        XSLTProcessor -> Optional Node -> IO Document
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.transformToDocument Mozilla XSLTProcessor.transformToDocument documentation> 
 transformToDocument ::
                     (MonadIO m, IsNode source) =>
-                      XSLTProcessor -> Maybe source -> m (Maybe Document)
+                      XSLTProcessor -> Maybe source -> m Document
 transformToDocument self source
   = liftIO
-      (nullableToMaybe <$>
-         (js_transformToDocument (self)
-            (maybeToNullable (fmap toNode source))))
+      (js_transformToDocument self
+         (maybeToOptional (fmap toNode source)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.transformToDocument Mozilla XSLTProcessor.transformToDocument documentation> 
 transformToDocument_ ::
@@ -125,116 +94,100 @@
 transformToDocument_ self source
   = liftIO
       (void
-         (js_transformToDocument (self)
-            (maybeToNullable (fmap toNode source))))
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.transformToDocument Mozilla XSLTProcessor.transformToDocument documentation> 
-transformToDocumentUnsafe ::
-                          (MonadIO m, IsNode source, HasCallStack) =>
-                            XSLTProcessor -> Maybe source -> m Document
-transformToDocumentUnsafe self source
-  = liftIO
-      ((nullableToMaybe <$>
-          (js_transformToDocument (self)
-             (maybeToNullable (fmap toNode source))))
-         >>= maybe (Prelude.error "Nothing to return") return)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.transformToDocument Mozilla XSLTProcessor.transformToDocument documentation> 
-transformToDocumentUnchecked ::
-                             (MonadIO m, IsNode source) =>
-                               XSLTProcessor -> Maybe source -> m Document
-transformToDocumentUnchecked self source
-  = liftIO
-      (fromJust . nullableToMaybe <$>
-         (js_transformToDocument (self)
-            (maybeToNullable (fmap toNode source))))
+         (js_transformToDocument self
+            (maybeToOptional (fmap toNode source))))
  
 foreign import javascript unsafe "$1[\"setParameter\"]($2, $3, $4)"
         js_setParameter ::
-        XSLTProcessor -> JSString -> JSString -> JSString -> IO ()
+        XSLTProcessor ->
+          Optional JSString ->
+            Optional JSString -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.setParameter Mozilla XSLTProcessor.setParameter documentation> 
 setParameter ::
              (MonadIO m, ToJSString namespaceURI, ToJSString localName,
               ToJSString value) =>
-               XSLTProcessor -> namespaceURI -> localName -> value -> m ()
+               XSLTProcessor ->
+                 Maybe namespaceURI -> Maybe localName -> Maybe value -> m ()
 setParameter self namespaceURI localName value
   = liftIO
-      (js_setParameter (self) (toJSString namespaceURI)
-         (toJSString localName)
-         (toJSString value))
+      (js_setParameter self (toOptionalJSString namespaceURI)
+         (toOptionalJSString localName)
+         (toOptionalJSString value))
  
 foreign import javascript unsafe "$1[\"getParameter\"]($2, $3)"
         js_getParameter ::
-        XSLTProcessor -> JSString -> JSString -> IO (Nullable JSString)
+        XSLTProcessor ->
+          Optional JSString -> Optional JSString -> IO (Nullable JSString)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.getParameter Mozilla XSLTProcessor.getParameter documentation> 
 getParameter ::
              (MonadIO m, ToJSString namespaceURI, ToJSString localName,
               FromJSString result) =>
-               XSLTProcessor -> namespaceURI -> localName -> m (Maybe result)
+               XSLTProcessor ->
+                 Maybe namespaceURI -> Maybe localName -> m (Maybe result)
 getParameter self namespaceURI localName
   = liftIO
       (fromMaybeJSString <$>
-         (js_getParameter (self) (toJSString namespaceURI)
-            (toJSString localName)))
+         (js_getParameter self (toOptionalJSString namespaceURI)
+            (toOptionalJSString localName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.getParameter Mozilla XSLTProcessor.getParameter documentation> 
 getParameter_ ::
               (MonadIO m, ToJSString namespaceURI, ToJSString localName) =>
-                XSLTProcessor -> namespaceURI -> localName -> m ()
+                XSLTProcessor -> Maybe namespaceURI -> Maybe localName -> m ()
 getParameter_ self namespaceURI localName
   = liftIO
       (void
-         (js_getParameter (self) (toJSString namespaceURI)
-            (toJSString localName)))
+         (js_getParameter self (toOptionalJSString namespaceURI)
+            (toOptionalJSString localName)))
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.getParameter Mozilla XSLTProcessor.getParameter documentation> 
 getParameterUnsafe ::
                    (MonadIO m, ToJSString namespaceURI, ToJSString localName,
                     HasCallStack, FromJSString result) =>
-                     XSLTProcessor -> namespaceURI -> localName -> m result
+                     XSLTProcessor -> Maybe namespaceURI -> Maybe localName -> m result
 getParameterUnsafe self namespaceURI localName
   = liftIO
       ((fromMaybeJSString <$>
-          (js_getParameter (self) (toJSString namespaceURI)
-             (toJSString localName)))
+          (js_getParameter self (toOptionalJSString namespaceURI)
+             (toOptionalJSString localName)))
          >>= maybe (Prelude.error "Nothing to return") return)
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.getParameter Mozilla XSLTProcessor.getParameter documentation> 
 getParameterUnchecked ::
                       (MonadIO m, ToJSString namespaceURI, ToJSString localName,
                        FromJSString result) =>
-                        XSLTProcessor -> namespaceURI -> localName -> m result
+                        XSLTProcessor -> Maybe namespaceURI -> Maybe localName -> m result
 getParameterUnchecked self namespaceURI localName
   = liftIO
       (fromJust . fromMaybeJSString <$>
-         (js_getParameter (self) (toJSString namespaceURI)
-            (toJSString localName)))
+         (js_getParameter self (toOptionalJSString namespaceURI)
+            (toOptionalJSString localName)))
  
 foreign import javascript unsafe "$1[\"removeParameter\"]($2, $3)"
         js_removeParameter ::
-        XSLTProcessor -> JSString -> JSString -> IO ()
+        XSLTProcessor -> Optional JSString -> Optional JSString -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.removeParameter Mozilla XSLTProcessor.removeParameter documentation> 
 removeParameter ::
                 (MonadIO m, ToJSString namespaceURI, ToJSString localName) =>
-                  XSLTProcessor -> namespaceURI -> localName -> m ()
+                  XSLTProcessor -> Maybe namespaceURI -> Maybe localName -> m ()
 removeParameter self namespaceURI localName
   = liftIO
-      (js_removeParameter (self) (toJSString namespaceURI)
-         (toJSString localName))
+      (js_removeParameter self (toOptionalJSString namespaceURI)
+         (toOptionalJSString localName))
  
 foreign import javascript unsafe "$1[\"clearParameters\"]()"
         js_clearParameters :: XSLTProcessor -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.clearParameters Mozilla XSLTProcessor.clearParameters documentation> 
 clearParameters :: (MonadIO m) => XSLTProcessor -> m ()
-clearParameters self = liftIO (js_clearParameters (self))
+clearParameters self = liftIO (js_clearParameters self)
  
 foreign import javascript unsafe "$1[\"reset\"]()" js_reset ::
         XSLTProcessor -> IO ()
 
 -- | <https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor.reset Mozilla XSLTProcessor.reset documentation> 
 reset :: (MonadIO m) => XSLTProcessor -> m ()
-reset self = liftIO (js_reset (self))
+reset self = liftIO (js_reset self)
diff --git a/src/GHCJS/DOM/JSFFI/MediaStreamTrack.hs b/src/GHCJS/DOM/JSFFI/MediaStreamTrack.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/MediaStreamTrack.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
-module GHCJS.DOM.JSFFI.MediaStreamTrack (
-    module Generated
-  , js_getSources
-  , getSources
-) where
-
-import Control.Monad.IO.Class (MonadIO(..))
-
-import GHCJS.Types (JSVal)
-import GHCJS.Marshal (fromJSValUnchecked)
-import GHCJS.DOM.Types
-
-import GHCJS.DOM.JSFFI.Generated.MediaStreamTrack as Generated hiding (js_getSources, getSources)
-
-foreign import javascript interruptible "$1[\"getSources\"]($c);"
-        js_getSources :: MediaStreamTrack -> IO JSVal
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.getSources Mozilla MediaStreamTrack.getSources documentation>
-getSources :: (MonadIO m, IsMediaStreamTrack self) => self -> m [Maybe SourceInfo]
-getSources self = liftIO $
-      js_getSources (toMediaStreamTrack self) >>= fromJSValUnchecked
-
-
diff --git a/src/GHCJS/DOM/JSFFI/RTCPeerConnection.hs b/src/GHCJS/DOM/JSFFI/RTCPeerConnection.hs
deleted file mode 100644
--- a/src/GHCJS/DOM/JSFFI/RTCPeerConnection.hs
+++ /dev/null
@@ -1,119 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI, GHCForeignImportPrim,
-             UnboxedTuples, MagicHash, UnliftedFFITypes, LambdaCase #-}
-module GHCJS.DOM.JSFFI.RTCPeerConnection (
-    module Generated
-  , js_createOffer
-  , createOffer'
-  , createOffer
-  , js_createAnswer
-  , createAnswer'
-  , createAnswer
-  , js_setLocalDescription
-  , setLocalDescription'
-  , setLocalDescription
-  , js_setRemoteDescription
-  , setRemoteDescription'
-  , setRemoteDescription
-  , js_addIceCandidate
-  , addIceCandidate'
-  , addIceCandidate
-  , js_getStats
-  , getStats'
-  , getStats
-) where
-
-import GHC.Base (IO(..))
-import GHC.Prim (RealWorld, State#, ByteArray#)
-
-import Control.Monad.IO.Class (MonadIO(..))
-
-import GHCJS.Prim (JSVal(..))
-import GHCJS.DOM.Types
-
-import GHCJS.DOM.JSFFI.DOMError (throwDOMErrorException)
-import GHCJS.DOM.JSFFI.Generated.RTCPeerConnection as Generated hiding (
-    js_createOffer, createOffer
-  , js_createAnswer, createAnswer
-  , js_setLocalDescription, setLocalDescription
-  , js_setRemoteDescription, setRemoteDescription
-  , js_addIceCandidate, addIceCandidate
-  , js_getStats, getStats)
-
-foreign import javascript interruptible
-    "$1[\"createOffer\"](function(d) { $c(true, d); }, function(e) { $c(false, e); }, $2);" js_createOffer ::
-    RTCPeerConnection -> Nullable Dictionary -> State# RealWorld -> (# State# RealWorld, Bool, ByteArray# #)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection#createOffer Mozilla webkitRTCPeerConnection.createOffer documentation>
-createOffer' :: MonadIO m => RTCPeerConnection -> Maybe Dictionary -> m (Either DOMError RTCSessionDescription)
-createOffer' self offerOptions = liftIO . IO $ \s# ->
-    case js_createOffer self (maybeToNullable offerOptions) s# of
-        (# s2#, False, error #) -> (# s2#, Left  (DOMError              (JSVal error)) #)
-        (# s2#, True,  d     #) -> (# s2#, Right (RTCSessionDescription (JSVal d    )) #)
-
-createOffer :: MonadIO m => RTCPeerConnection -> Maybe Dictionary -> m RTCSessionDescription
-createOffer self offerOptions = createOffer' self offerOptions >>= either throwDOMErrorException return
-
-foreign import javascript interruptible
-    "$1[\"createAnswer\"](function(d) { $c(true, d); }, function(e) { $c(false, e); }, $2);" js_createAnswer ::
-    RTCPeerConnection -> Nullable Dictionary -> State# RealWorld -> (# State# RealWorld, Bool, ByteArray# #)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection#createAnswer Mozilla webkitRTCPeerConnection.createAnswer documentation>
-createAnswer' :: MonadIO m => RTCPeerConnection -> Maybe Dictionary -> m (Either DOMError RTCSessionDescription)
-createAnswer' self answerOptions = liftIO . IO $ \s# ->
-    case js_createAnswer self (maybeToNullable answerOptions) s# of
-        (# s2#, False, error #) -> (# s2#, Left  (DOMError              (JSVal error)) #)
-        (# s2#, True,  d     #) -> (# s2#, Right (RTCSessionDescription (JSVal d    )) #)
-
-createAnswer :: MonadIO m => RTCPeerConnection -> Maybe Dictionary -> m RTCSessionDescription
-createAnswer self answerOptions = createAnswer' self answerOptions >>= either throwDOMErrorException return
-
-foreign import javascript interruptible
-    "$1[\"setLocalDescription\"]($2, function() { $c(null); }, function(e) { $c(e); });" js_setLocalDescription ::
-    RTCPeerConnection -> RTCSessionDescription -> IO (Nullable DOMError)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection#setLocalDescription Mozilla webkitRTCPeerConnection.setLocalDescription documentation>
-setLocalDescription' :: MonadIO m => RTCPeerConnection -> RTCSessionDescription -> m (Maybe DOMError)
-setLocalDescription' self description = liftIO $ nullableToMaybe <$>
-    js_setLocalDescription self description
-
-setLocalDescription :: MonadIO m => RTCPeerConnection -> RTCSessionDescription -> m ()
-setLocalDescription self description = setLocalDescription' self description >>= maybe (return ()) throwDOMErrorException
-
-foreign import javascript interruptible
-    "$1[\"setRemoteDescription\"]($2, function() { $c(null); }, function(e) { $c(e); });" js_setRemoteDescription ::
-    RTCPeerConnection -> RTCSessionDescription -> IO (Nullable DOMError)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection#setRemoteDescription Mozilla webkitRTCPeerConnection.setRemoteDescription documentation>
-setRemoteDescription' :: MonadIO m => RTCPeerConnection -> RTCSessionDescription -> m (Maybe DOMError)
-setRemoteDescription' self description = liftIO $ nullableToMaybe <$>
-    js_setRemoteDescription self description
-
-setRemoteDescription :: MonadIO m => RTCPeerConnection -> RTCSessionDescription -> m ()
-setRemoteDescription self description = setRemoteDescription' self description >>= maybe (return ())throwDOMErrorException
-
-foreign import javascript interruptible
-    "$1[\"addIceCandidate\"]($2, function() { $c(null); }, function(e) { $c(e); });" js_addIceCandidate ::
-    RTCPeerConnection -> RTCIceCandidate -> IO (Nullable DOMError)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection#addIceCandidate Mozilla webkitRTCPeerConnection.addIceCandidate documentation>
-addIceCandidate' :: MonadIO m => RTCPeerConnection -> RTCIceCandidate -> m (Maybe DOMError)
-addIceCandidate' self candidate = liftIO $ nullableToMaybe <$>
-    js_addIceCandidate self candidate
-
-addIceCandidate :: MonadIO m => RTCPeerConnection -> RTCIceCandidate -> m ()
-addIceCandidate self candidate = addIceCandidate' self candidate >>= maybe (return ()) throwDOMErrorException
-
-foreign import javascript interruptible
-    "$1[\"getStats\"]($2, function(s) { $c(true, s); }, function(e) { $c(false, e); });" js_getStats ::
-    RTCPeerConnection -> Nullable MediaStreamTrack -> State# RealWorld -> (# State# RealWorld, Bool, ByteArray# #)
-
--- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection#getStats Mozilla webkitRTCPeerConnection.getStats documentation>
-getStats' :: (MonadIO m, IsMediaStreamTrack selector) => RTCPeerConnection -> Maybe selector -> m (Either DOMError RTCStatsResponse)
-getStats' self selector = liftIO . IO $ \s# ->
-    case js_getStats self (maybeToNullable $ fmap toMediaStreamTrack selector) s# of
-        (# s2#, False, error #) -> (# s2#, Left  (DOMError         (JSVal error)) #)
-        (# s2#, True,  stats #) -> (# s2#, Right (RTCStatsResponse (JSVal stats)) #)
-
-getStats :: (MonadIO m, IsMediaStreamTrack selector) => RTCPeerConnection -> Maybe selector -> m RTCStatsResponse
-getStats self selector = getStats' self selector >>= either throwDOMErrorException return
-
diff --git a/src/GHCJS/DOM/JSFFI/XMLHttpRequest.hs b/src/GHCJS/DOM/JSFFI/XMLHttpRequest.hs
--- a/src/GHCJS/DOM/JSFFI/XMLHttpRequest.hs
+++ b/src/GHCJS/DOM/JSFFI/XMLHttpRequest.hs
@@ -20,6 +20,7 @@
 import GHCJS.DOM.Types
 
 import GHCJS.DOM.JSFFI.Generated.XMLHttpRequest as Generated hiding (js_send, send)
+import GHCJS.DOM.JSFFI.Generated.XMLHttpRequestEventTarget as Generated
 
 data XHRError = XHRError
               | XHRAborted
diff --git a/src/GHCJS/DOM/Types.hs b/src/GHCJS/DOM/Types.hs
--- a/src/GHCJS/DOM/Types.hs
+++ b/src/GHCJS/DOM/Types.hs
@@ -19,20645 +19,29399 @@
   -- * Nullable
   , Nullable(..), nullableToMaybe, maybeToNullable
 
-  -- * DOM String
-  , DOMString(..), ToDOMString(..), FromDOMString(..), IsDOMString
-
-  -- * Object
-  , maybeJSNullOrUndefined, GType(..)
-  , GObject(..), IsGObject, toGObject, gTypeGObject, isA, objectToString
-  , castTo, unsafeCastTo, uncheckedCastTo
-  , js_eq, strictEqual
-
-  -- * Callbacks
-  , AudioBufferCallback(..)
-  , DatabaseCallback(..)
-  , MediaQueryListListener(..)
-  , MediaStreamTrackSourcesCallback(..)
-  , NavigatorUserMediaErrorCallback(..)
-  , NavigatorUserMediaSuccessCallback(..)
-  , NotificationPermissionCallback(..)
-  , PositionCallback(..)
-  , PositionErrorCallback(..)
-  , RequestAnimationFrameCallback(..)
-  , RTCPeerConnectionErrorCallback(..)
-  , RTCSessionDescriptionCallback(..)
-  , RTCStatsCallback(..)
-  , SQLStatementCallback(..)
-  , SQLStatementErrorCallback(..)
-  , SQLTransactionCallback(..)
-  , SQLTransactionErrorCallback(..)
-  , StorageErrorCallback(..)
-  , StorageQuotaCallback(..)
-  , StorageUsageCallback(..)
-  , StringCallback(..)
-  , VoidCallback(..)
-
-  -- * Dictionaries
-  , Dictionary(Dictionary), unDictionary, IsDictionary, toDictionary
-  , BlobPropertyBag(BlobPropertyBag), unBlobPropertyBag, IsBlobPropertyBag, toBlobPropertyBag
-
-  -- * Mutation Callback
-  , MutationCallback(MutationCallback), unMutationCallback, IsMutationCallback, toMutationCallback
-
-  -- * Promise
-  , Promise(Promise), unPromise, IsPromise, toPromise, gTypePromise
-
-  -- * Date
-  , Date(Date), unDate, IsDate, toDate, gTypeDate
-
-  -- * Arrays
-  , Array(Array), unArray, IsArray, toArray, gTypeArray
-  , ObjectArray(ObjectArray), unObjectArray, IsObjectArray, toObjectArray
-  , ArrayBuffer(ArrayBuffer), unArrayBuffer, IsArrayBuffer, toArrayBuffer, gTypeArrayBuffer
-  , ArrayBufferView(ArrayBufferView), unArrayBufferView, IsArrayBufferView, toArrayBufferView
-  , Float32Array(Float32Array), unFloat32Array, IsFloat32Array, toFloat32Array, gTypeFloat32Array
-  , Float64Array(Float64Array), unFloat64Array, IsFloat64Array, toFloat64Array, gTypeFloat64Array
-  , Uint8Array(Uint8Array), unUint8Array, IsUint8Array, toUint8Array, gTypeUint8Array
-  , Uint8ClampedArray(Uint8ClampedArray), unUint8ClampedArray, IsUint8ClampedArray, toUint8ClampedArray, gTypeUint8ClampedArray
-  , Uint16Array(Uint16Array), unUint16Array, IsUint16Array, toUint16Array, gTypeUint16Array
-  , Uint32Array(Uint32Array), unUint32Array, IsUint32Array, toUint32Array, gTypeUint32Array
-  , Int8Array(Int8Array), unInt8Array, IsInt8Array, toInt8Array, gTypeInt8Array
-  , Int16Array(Int16Array), unInt16Array, IsInt16Array, toInt16Array, gTypeInt16Array
-  , Int32Array(Int32Array), unInt32Array, IsInt32Array, toInt32Array, gTypeInt32Array
-
-  -- * Geolocation
-  , SerializedScriptValue(SerializedScriptValue), unSerializedScriptValue, IsSerializedScriptValue, toSerializedScriptValue
-  , PositionOptions(PositionOptions), unPositionOptions, IsPositionOptions, toPositionOptions
-  , Acceleration(Acceleration), unAcceleration, IsAcceleration, toAcceleration
-  , RotationRate(RotationRate), unRotationRate, IsRotationRate, toRotationRate
-
-  -- * Crypto
-  , Algorithm(Algorithm), unAlgorithm, IsAlgorithm, toAlgorithm
-  , CryptoOperationData(CryptoOperationData), unCryptoOperationData, IsCryptoOperationData, toCryptoOperationData
-
-  -- * CanvasStyle (fill & stroke style)
-  , CanvasStyle(CanvasStyle), unCanvasStyle, IsCanvasStyle, toCanvasStyle
-
-  , DOMException(DOMException), unDOMException, IsDOMException, toDOMException
-
-  -- * WebGL typedefs
-  , GLenum(..), GLboolean(..), GLbitfield(..), GLbyte(..), GLshort(..), GLint(..), GLsizei(..)
-  , GLintptr(..), GLsizeiptr(..), GLubyte(..), GLushort(..), GLuint(..), GLfloat(..), GLclampf(..)
-  , GLint64, GLuint64
-
-  -- * Used for better error messages
-  , HasCallStack
-
-  -- * Interface types from IDL files
-
--- AUTO GENERATION STARTS HERE
-  , ANGLEInstancedArrays(ANGLEInstancedArrays), unANGLEInstancedArrays, gTypeANGLEInstancedArrays
-  , AbstractView(AbstractView), unAbstractView, gTypeAbstractView
-  , AbstractWorker(AbstractWorker), unAbstractWorker, gTypeAbstractWorker
-  , AllAudioCapabilities(AllAudioCapabilities), unAllAudioCapabilities, gTypeAllAudioCapabilities
-  , AllVideoCapabilities(AllVideoCapabilities), unAllVideoCapabilities, gTypeAllVideoCapabilities
-  , AnalyserNode(AnalyserNode), unAnalyserNode, gTypeAnalyserNode
-  , AnimationEvent(AnimationEvent), unAnimationEvent, gTypeAnimationEvent
-  , ApplicationCache(ApplicationCache), unApplicationCache, gTypeApplicationCache
-  , Attr(Attr), unAttr, gTypeAttr
-  , AudioBuffer(AudioBuffer), unAudioBuffer, gTypeAudioBuffer
-  , AudioBufferSourceNode(AudioBufferSourceNode), unAudioBufferSourceNode, gTypeAudioBufferSourceNode
-  , AudioContext(AudioContext), unAudioContext, IsAudioContext, toAudioContext, gTypeAudioContext
-  , AudioDestinationNode(AudioDestinationNode), unAudioDestinationNode, gTypeAudioDestinationNode
-  , AudioListener(AudioListener), unAudioListener, gTypeAudioListener
-  , AudioNode(AudioNode), unAudioNode, IsAudioNode, toAudioNode, gTypeAudioNode
-  , AudioParam(AudioParam), unAudioParam, gTypeAudioParam
-  , AudioProcessingEvent(AudioProcessingEvent), unAudioProcessingEvent, gTypeAudioProcessingEvent
-  , AudioStreamTrack(AudioStreamTrack), unAudioStreamTrack, gTypeAudioStreamTrack
-  , AudioTrack(AudioTrack), unAudioTrack, gTypeAudioTrack
-  , AudioTrackList(AudioTrackList), unAudioTrackList, gTypeAudioTrackList
-  , AutocompleteErrorEvent(AutocompleteErrorEvent), unAutocompleteErrorEvent, gTypeAutocompleteErrorEvent
-  , BarProp(BarProp), unBarProp, gTypeBarProp
-  , BatteryManager(BatteryManager), unBatteryManager, gTypeBatteryManager
-  , BeforeLoadEvent(BeforeLoadEvent), unBeforeLoadEvent, gTypeBeforeLoadEvent
-  , BeforeUnloadEvent(BeforeUnloadEvent), unBeforeUnloadEvent, gTypeBeforeUnloadEvent
-  , BiquadFilterNode(BiquadFilterNode), unBiquadFilterNode, gTypeBiquadFilterNode
-  , Blob(Blob), unBlob, IsBlob, toBlob, gTypeBlob
-  , CDATASection(CDATASection), unCDATASection, gTypeCDATASection
-  , CSS(CSS), unCSS, gTypeCSS
-  , CSSCharsetRule(CSSCharsetRule), unCSSCharsetRule, gTypeCSSCharsetRule
-  , CSSFontFaceLoadEvent(CSSFontFaceLoadEvent), unCSSFontFaceLoadEvent, gTypeCSSFontFaceLoadEvent
-  , CSSFontFaceRule(CSSFontFaceRule), unCSSFontFaceRule, gTypeCSSFontFaceRule
-  , CSSImportRule(CSSImportRule), unCSSImportRule, gTypeCSSImportRule
-  , CSSKeyframeRule(CSSKeyframeRule), unCSSKeyframeRule, gTypeCSSKeyframeRule
-  , CSSKeyframesRule(CSSKeyframesRule), unCSSKeyframesRule, gTypeCSSKeyframesRule
-  , CSSMediaRule(CSSMediaRule), unCSSMediaRule, gTypeCSSMediaRule
-  , CSSPageRule(CSSPageRule), unCSSPageRule, gTypeCSSPageRule
-  , CSSPrimitiveValue(CSSPrimitiveValue), unCSSPrimitiveValue, gTypeCSSPrimitiveValue
-  , CSSRule(CSSRule), unCSSRule, IsCSSRule, toCSSRule, gTypeCSSRule
-  , CSSRuleList(CSSRuleList), unCSSRuleList, gTypeCSSRuleList
-  , CSSStyleDeclaration(CSSStyleDeclaration), unCSSStyleDeclaration, gTypeCSSStyleDeclaration
-  , CSSStyleRule(CSSStyleRule), unCSSStyleRule, gTypeCSSStyleRule
-  , CSSStyleSheet(CSSStyleSheet), unCSSStyleSheet, gTypeCSSStyleSheet
-  , CSSSupportsRule(CSSSupportsRule), unCSSSupportsRule, gTypeCSSSupportsRule
-  , CSSUnknownRule(CSSUnknownRule), unCSSUnknownRule, gTypeCSSUnknownRule
-  , CSSValue(CSSValue), unCSSValue, IsCSSValue, toCSSValue, gTypeCSSValue
-  , CSSValueList(CSSValueList), unCSSValueList, IsCSSValueList, toCSSValueList, gTypeCSSValueList
-  , CanvasGradient(CanvasGradient), unCanvasGradient, gTypeCanvasGradient
-  , CanvasPattern(CanvasPattern), unCanvasPattern, gTypeCanvasPattern
-  , CanvasProxy(CanvasProxy), unCanvasProxy, gTypeCanvasProxy
-  , CanvasRenderingContext(CanvasRenderingContext), unCanvasRenderingContext, IsCanvasRenderingContext, toCanvasRenderingContext, gTypeCanvasRenderingContext
-  , CanvasRenderingContext2D(CanvasRenderingContext2D), unCanvasRenderingContext2D, gTypeCanvasRenderingContext2D
-  , CapabilityRange(CapabilityRange), unCapabilityRange, gTypeCapabilityRange
-  , ChannelMergerNode(ChannelMergerNode), unChannelMergerNode, gTypeChannelMergerNode
-  , ChannelSplitterNode(ChannelSplitterNode), unChannelSplitterNode, gTypeChannelSplitterNode
-  , CharacterData(CharacterData), unCharacterData, IsCharacterData, toCharacterData, gTypeCharacterData
-  , ChildNode(ChildNode), unChildNode, gTypeChildNode
-  , ClientRect(ClientRect), unClientRect, gTypeClientRect
-  , ClientRectList(ClientRectList), unClientRectList, gTypeClientRectList
-  , CloseEvent(CloseEvent), unCloseEvent, gTypeCloseEvent
-  , CommandLineAPIHost(CommandLineAPIHost), unCommandLineAPIHost, gTypeCommandLineAPIHost
-  , Comment(Comment), unComment, gTypeComment
-  , CompositionEvent(CompositionEvent), unCompositionEvent, gTypeCompositionEvent
-  , ConvolverNode(ConvolverNode), unConvolverNode, gTypeConvolverNode
-  , Coordinates(Coordinates), unCoordinates, gTypeCoordinates
-  , Counter(Counter), unCounter, gTypeCounter
-  , Crypto(Crypto), unCrypto, gTypeCrypto
-  , CryptoKey(CryptoKey), unCryptoKey, gTypeCryptoKey
-  , CryptoKeyPair(CryptoKeyPair), unCryptoKeyPair, gTypeCryptoKeyPair
-  , CustomEvent(CustomEvent), unCustomEvent, gTypeCustomEvent
-  , DOMError(DOMError), unDOMError, IsDOMError, toDOMError, gTypeDOMError
-  , DOMImplementation(DOMImplementation), unDOMImplementation, gTypeDOMImplementation
-  , DOMNamedFlowCollection(DOMNamedFlowCollection), unDOMNamedFlowCollection, gTypeDOMNamedFlowCollection
-  , DOMParser(DOMParser), unDOMParser, gTypeDOMParser
-  , DOMSettableTokenList(DOMSettableTokenList), unDOMSettableTokenList, gTypeDOMSettableTokenList
-  , DOMStringList(DOMStringList), unDOMStringList, gTypeDOMStringList
-  , DOMStringMap(DOMStringMap), unDOMStringMap, gTypeDOMStringMap
-  , DOMTokenList(DOMTokenList), unDOMTokenList, IsDOMTokenList, toDOMTokenList, gTypeDOMTokenList
-  , DataCue(DataCue), unDataCue, gTypeDataCue
-  , DataTransfer(DataTransfer), unDataTransfer, gTypeDataTransfer
-  , DataTransferItem(DataTransferItem), unDataTransferItem, gTypeDataTransferItem
-  , DataTransferItemList(DataTransferItemList), unDataTransferItemList, gTypeDataTransferItemList
-  , Database(Database), unDatabase, gTypeDatabase
-  , DedicatedWorkerGlobalScope(DedicatedWorkerGlobalScope), unDedicatedWorkerGlobalScope, gTypeDedicatedWorkerGlobalScope
-  , DelayNode(DelayNode), unDelayNode, gTypeDelayNode
-  , DeviceMotionEvent(DeviceMotionEvent), unDeviceMotionEvent, gTypeDeviceMotionEvent
-  , DeviceOrientationEvent(DeviceOrientationEvent), unDeviceOrientationEvent, gTypeDeviceOrientationEvent
-  , DeviceProximityEvent(DeviceProximityEvent), unDeviceProximityEvent, gTypeDeviceProximityEvent
-  , Document(Document), unDocument, IsDocument, toDocument, gTypeDocument
-  , DocumentFragment(DocumentFragment), unDocumentFragment, gTypeDocumentFragment
-  , DocumentType(DocumentType), unDocumentType, gTypeDocumentType
-  , DynamicsCompressorNode(DynamicsCompressorNode), unDynamicsCompressorNode, gTypeDynamicsCompressorNode
-  , EXTBlendMinMax(EXTBlendMinMax), unEXTBlendMinMax, gTypeEXTBlendMinMax
-  , EXTFragDepth(EXTFragDepth), unEXTFragDepth, gTypeEXTFragDepth
-  , EXTShaderTextureLOD(EXTShaderTextureLOD), unEXTShaderTextureLOD, gTypeEXTShaderTextureLOD
-  , EXTTextureFilterAnisotropic(EXTTextureFilterAnisotropic), unEXTTextureFilterAnisotropic, gTypeEXTTextureFilterAnisotropic
-  , EXTsRGB(EXTsRGB), unEXTsRGB, gTypeEXTsRGB
-  , Element(Element), unElement, IsElement, toElement, gTypeElement
-  , Entity(Entity), unEntity, gTypeEntity
-  , EntityReference(EntityReference), unEntityReference, gTypeEntityReference
-  , ErrorEvent(ErrorEvent), unErrorEvent, gTypeErrorEvent
-  , Event(Event), unEvent, IsEvent, toEvent, gTypeEvent
-  , EventListener(EventListener), unEventListener, gTypeEventListener
-  , EventSource(EventSource), unEventSource, gTypeEventSource
-  , EventTarget(EventTarget), unEventTarget, IsEventTarget, toEventTarget, gTypeEventTarget
-  , File(File), unFile, gTypeFile
-  , FileError(FileError), unFileError, gTypeFileError
-  , FileList(FileList), unFileList, gTypeFileList
-  , FileReader(FileReader), unFileReader, gTypeFileReader
-  , FileReaderSync(FileReaderSync), unFileReaderSync, gTypeFileReaderSync
-  , FocusEvent(FocusEvent), unFocusEvent, gTypeFocusEvent
-  , FontLoader(FontLoader), unFontLoader, gTypeFontLoader
-  , FormData(FormData), unFormData, gTypeFormData
-  , GainNode(GainNode), unGainNode, gTypeGainNode
-  , Gamepad(Gamepad), unGamepad, gTypeGamepad
-  , GamepadButton(GamepadButton), unGamepadButton, gTypeGamepadButton
-  , GamepadEvent(GamepadEvent), unGamepadEvent, gTypeGamepadEvent
-  , Geolocation(Geolocation), unGeolocation, gTypeGeolocation
-  , Geoposition(Geoposition), unGeoposition, gTypeGeoposition
-  , HTMLAllCollection(HTMLAllCollection), unHTMLAllCollection, gTypeHTMLAllCollection
-  , HTMLAnchorElement(HTMLAnchorElement), unHTMLAnchorElement, gTypeHTMLAnchorElement
-  , HTMLAppletElement(HTMLAppletElement), unHTMLAppletElement, gTypeHTMLAppletElement
-  , HTMLAreaElement(HTMLAreaElement), unHTMLAreaElement, gTypeHTMLAreaElement
-  , HTMLAudioElement(HTMLAudioElement), unHTMLAudioElement, gTypeHTMLAudioElement
-  , HTMLBRElement(HTMLBRElement), unHTMLBRElement, gTypeHTMLBRElement
-  , HTMLBaseElement(HTMLBaseElement), unHTMLBaseElement, gTypeHTMLBaseElement
-  , HTMLBaseFontElement(HTMLBaseFontElement), unHTMLBaseFontElement, gTypeHTMLBaseFontElement
-  , HTMLBodyElement(HTMLBodyElement), unHTMLBodyElement, gTypeHTMLBodyElement
-  , HTMLButtonElement(HTMLButtonElement), unHTMLButtonElement, gTypeHTMLButtonElement
-  , HTMLCanvasElement(HTMLCanvasElement), unHTMLCanvasElement, gTypeHTMLCanvasElement
-  , HTMLCollection(HTMLCollection), unHTMLCollection, IsHTMLCollection, toHTMLCollection, gTypeHTMLCollection
-  , HTMLDListElement(HTMLDListElement), unHTMLDListElement, gTypeHTMLDListElement
-  , HTMLDataListElement(HTMLDataListElement), unHTMLDataListElement, gTypeHTMLDataListElement
-  , HTMLDetailsElement(HTMLDetailsElement), unHTMLDetailsElement, gTypeHTMLDetailsElement
-  , HTMLDirectoryElement(HTMLDirectoryElement), unHTMLDirectoryElement, gTypeHTMLDirectoryElement
-  , HTMLDivElement(HTMLDivElement), unHTMLDivElement, gTypeHTMLDivElement
-  , HTMLDocument(HTMLDocument), unHTMLDocument, gTypeHTMLDocument
-  , HTMLElement(HTMLElement), unHTMLElement, IsHTMLElement, toHTMLElement, gTypeHTMLElement
-  , HTMLEmbedElement(HTMLEmbedElement), unHTMLEmbedElement, gTypeHTMLEmbedElement
-  , HTMLFieldSetElement(HTMLFieldSetElement), unHTMLFieldSetElement, gTypeHTMLFieldSetElement
-  , HTMLFontElement(HTMLFontElement), unHTMLFontElement, gTypeHTMLFontElement
-  , HTMLFormControlsCollection(HTMLFormControlsCollection), unHTMLFormControlsCollection, gTypeHTMLFormControlsCollection
-  , HTMLFormElement(HTMLFormElement), unHTMLFormElement, gTypeHTMLFormElement
-  , HTMLFrameElement(HTMLFrameElement), unHTMLFrameElement, gTypeHTMLFrameElement
-  , HTMLFrameSetElement(HTMLFrameSetElement), unHTMLFrameSetElement, gTypeHTMLFrameSetElement
-  , HTMLHRElement(HTMLHRElement), unHTMLHRElement, gTypeHTMLHRElement
-  , HTMLHeadElement(HTMLHeadElement), unHTMLHeadElement, gTypeHTMLHeadElement
-  , HTMLHeadingElement(HTMLHeadingElement), unHTMLHeadingElement, gTypeHTMLHeadingElement
-  , HTMLHtmlElement(HTMLHtmlElement), unHTMLHtmlElement, gTypeHTMLHtmlElement
-  , HTMLIFrameElement(HTMLIFrameElement), unHTMLIFrameElement, gTypeHTMLIFrameElement
-  , HTMLImageElement(HTMLImageElement), unHTMLImageElement, gTypeHTMLImageElement
-  , HTMLInputElement(HTMLInputElement), unHTMLInputElement, gTypeHTMLInputElement
-  , HTMLKeygenElement(HTMLKeygenElement), unHTMLKeygenElement, gTypeHTMLKeygenElement
-  , HTMLLIElement(HTMLLIElement), unHTMLLIElement, gTypeHTMLLIElement
-  , HTMLLabelElement(HTMLLabelElement), unHTMLLabelElement, gTypeHTMLLabelElement
-  , HTMLLegendElement(HTMLLegendElement), unHTMLLegendElement, gTypeHTMLLegendElement
-  , HTMLLinkElement(HTMLLinkElement), unHTMLLinkElement, gTypeHTMLLinkElement
-  , HTMLMapElement(HTMLMapElement), unHTMLMapElement, gTypeHTMLMapElement
-  , HTMLMarqueeElement(HTMLMarqueeElement), unHTMLMarqueeElement, gTypeHTMLMarqueeElement
-  , HTMLMediaElement(HTMLMediaElement), unHTMLMediaElement, IsHTMLMediaElement, toHTMLMediaElement, gTypeHTMLMediaElement
-  , HTMLMenuElement(HTMLMenuElement), unHTMLMenuElement, gTypeHTMLMenuElement
-  , HTMLMetaElement(HTMLMetaElement), unHTMLMetaElement, gTypeHTMLMetaElement
-  , HTMLMeterElement(HTMLMeterElement), unHTMLMeterElement, gTypeHTMLMeterElement
-  , HTMLModElement(HTMLModElement), unHTMLModElement, gTypeHTMLModElement
-  , HTMLOListElement(HTMLOListElement), unHTMLOListElement, gTypeHTMLOListElement
-  , HTMLObjectElement(HTMLObjectElement), unHTMLObjectElement, gTypeHTMLObjectElement
-  , HTMLOptGroupElement(HTMLOptGroupElement), unHTMLOptGroupElement, gTypeHTMLOptGroupElement
-  , HTMLOptionElement(HTMLOptionElement), unHTMLOptionElement, gTypeHTMLOptionElement
-  , HTMLOptionsCollection(HTMLOptionsCollection), unHTMLOptionsCollection, gTypeHTMLOptionsCollection
-  , HTMLOutputElement(HTMLOutputElement), unHTMLOutputElement, gTypeHTMLOutputElement
-  , HTMLParagraphElement(HTMLParagraphElement), unHTMLParagraphElement, gTypeHTMLParagraphElement
-  , HTMLParamElement(HTMLParamElement), unHTMLParamElement, gTypeHTMLParamElement
-  , HTMLPreElement(HTMLPreElement), unHTMLPreElement, gTypeHTMLPreElement
-  , HTMLProgressElement(HTMLProgressElement), unHTMLProgressElement, gTypeHTMLProgressElement
-  , HTMLQuoteElement(HTMLQuoteElement), unHTMLQuoteElement, gTypeHTMLQuoteElement
-  , HTMLScriptElement(HTMLScriptElement), unHTMLScriptElement, gTypeHTMLScriptElement
-  , HTMLSelectElement(HTMLSelectElement), unHTMLSelectElement, gTypeHTMLSelectElement
-  , HTMLSourceElement(HTMLSourceElement), unHTMLSourceElement, gTypeHTMLSourceElement
-  , HTMLSpanElement(HTMLSpanElement), unHTMLSpanElement, gTypeHTMLSpanElement
-  , HTMLStyleElement(HTMLStyleElement), unHTMLStyleElement, gTypeHTMLStyleElement
-  , HTMLTableCaptionElement(HTMLTableCaptionElement), unHTMLTableCaptionElement, gTypeHTMLTableCaptionElement
-  , HTMLTableCellElement(HTMLTableCellElement), unHTMLTableCellElement, gTypeHTMLTableCellElement
-  , HTMLTableColElement(HTMLTableColElement), unHTMLTableColElement, gTypeHTMLTableColElement
-  , HTMLTableElement(HTMLTableElement), unHTMLTableElement, gTypeHTMLTableElement
-  , HTMLTableRowElement(HTMLTableRowElement), unHTMLTableRowElement, gTypeHTMLTableRowElement
-  , HTMLTableSectionElement(HTMLTableSectionElement), unHTMLTableSectionElement, gTypeHTMLTableSectionElement
-  , HTMLTemplateElement(HTMLTemplateElement), unHTMLTemplateElement, gTypeHTMLTemplateElement
-  , HTMLTextAreaElement(HTMLTextAreaElement), unHTMLTextAreaElement, gTypeHTMLTextAreaElement
-  , HTMLTitleElement(HTMLTitleElement), unHTMLTitleElement, gTypeHTMLTitleElement
-  , HTMLTrackElement(HTMLTrackElement), unHTMLTrackElement, gTypeHTMLTrackElement
-  , HTMLUListElement(HTMLUListElement), unHTMLUListElement, gTypeHTMLUListElement
-  , HTMLUnknownElement(HTMLUnknownElement), unHTMLUnknownElement, gTypeHTMLUnknownElement
-  , HTMLVideoElement(HTMLVideoElement), unHTMLVideoElement, gTypeHTMLVideoElement
-  , HashChangeEvent(HashChangeEvent), unHashChangeEvent, gTypeHashChangeEvent
-  , History(History), unHistory, gTypeHistory
-  , IDBAny(IDBAny), unIDBAny, gTypeIDBAny
-  , IDBCursor(IDBCursor), unIDBCursor, IsIDBCursor, toIDBCursor, gTypeIDBCursor
-  , IDBCursorWithValue(IDBCursorWithValue), unIDBCursorWithValue, gTypeIDBCursorWithValue
-  , IDBDatabase(IDBDatabase), unIDBDatabase, gTypeIDBDatabase
-  , IDBFactory(IDBFactory), unIDBFactory, gTypeIDBFactory
-  , IDBIndex(IDBIndex), unIDBIndex, gTypeIDBIndex
-  , IDBKeyRange(IDBKeyRange), unIDBKeyRange, gTypeIDBKeyRange
-  , IDBObjectStore(IDBObjectStore), unIDBObjectStore, gTypeIDBObjectStore
-  , IDBOpenDBRequest(IDBOpenDBRequest), unIDBOpenDBRequest, gTypeIDBOpenDBRequest
-  , IDBRequest(IDBRequest), unIDBRequest, IsIDBRequest, toIDBRequest, gTypeIDBRequest
-  , IDBTransaction(IDBTransaction), unIDBTransaction, gTypeIDBTransaction
-  , IDBVersionChangeEvent(IDBVersionChangeEvent), unIDBVersionChangeEvent, gTypeIDBVersionChangeEvent
-  , ImageData(ImageData), unImageData, gTypeImageData
-  , InspectorFrontendHost(InspectorFrontendHost), unInspectorFrontendHost, gTypeInspectorFrontendHost
-  , InternalSettings(InternalSettings), unInternalSettings, gTypeInternalSettings
-  , Internals(Internals), unInternals, gTypeInternals
-  , KeyboardEvent(KeyboardEvent), unKeyboardEvent, gTypeKeyboardEvent
-  , Location(Location), unLocation, gTypeLocation
-  , MallocStatistics(MallocStatistics), unMallocStatistics, gTypeMallocStatistics
-  , MediaController(MediaController), unMediaController, gTypeMediaController
-  , MediaControlsHost(MediaControlsHost), unMediaControlsHost, gTypeMediaControlsHost
-  , MediaElementAudioSourceNode(MediaElementAudioSourceNode), unMediaElementAudioSourceNode, gTypeMediaElementAudioSourceNode
-  , MediaError(MediaError), unMediaError, gTypeMediaError
-  , MediaKeyError(MediaKeyError), unMediaKeyError, gTypeMediaKeyError
-  , MediaKeyEvent(MediaKeyEvent), unMediaKeyEvent, gTypeMediaKeyEvent
-  , MediaKeyMessageEvent(MediaKeyMessageEvent), unMediaKeyMessageEvent, gTypeMediaKeyMessageEvent
-  , MediaKeyNeededEvent(MediaKeyNeededEvent), unMediaKeyNeededEvent, gTypeMediaKeyNeededEvent
-  , MediaKeySession(MediaKeySession), unMediaKeySession, gTypeMediaKeySession
-  , MediaKeys(MediaKeys), unMediaKeys, gTypeMediaKeys
-  , MediaList(MediaList), unMediaList, gTypeMediaList
-  , MediaQueryList(MediaQueryList), unMediaQueryList, gTypeMediaQueryList
-  , MediaSource(MediaSource), unMediaSource, gTypeMediaSource
-  , MediaSourceStates(MediaSourceStates), unMediaSourceStates, gTypeMediaSourceStates
-  , MediaStream(MediaStream), unMediaStream, gTypeMediaStream
-  , MediaStreamAudioDestinationNode(MediaStreamAudioDestinationNode), unMediaStreamAudioDestinationNode, gTypeMediaStreamAudioDestinationNode
-  , MediaStreamAudioSourceNode(MediaStreamAudioSourceNode), unMediaStreamAudioSourceNode, gTypeMediaStreamAudioSourceNode
-  , MediaStreamCapabilities(MediaStreamCapabilities), unMediaStreamCapabilities, IsMediaStreamCapabilities, toMediaStreamCapabilities, gTypeMediaStreamCapabilities
-  , MediaStreamEvent(MediaStreamEvent), unMediaStreamEvent, gTypeMediaStreamEvent
-  , MediaStreamTrack(MediaStreamTrack), unMediaStreamTrack, IsMediaStreamTrack, toMediaStreamTrack, gTypeMediaStreamTrack
-  , MediaStreamTrackEvent(MediaStreamTrackEvent), unMediaStreamTrackEvent, gTypeMediaStreamTrackEvent
-  , MediaTrackConstraint(MediaTrackConstraint), unMediaTrackConstraint, gTypeMediaTrackConstraint
-  , MediaTrackConstraintSet(MediaTrackConstraintSet), unMediaTrackConstraintSet, gTypeMediaTrackConstraintSet
-  , MediaTrackConstraints(MediaTrackConstraints), unMediaTrackConstraints, gTypeMediaTrackConstraints
-  , MemoryInfo(MemoryInfo), unMemoryInfo, gTypeMemoryInfo
-  , MessageChannel(MessageChannel), unMessageChannel, gTypeMessageChannel
-  , MessageEvent(MessageEvent), unMessageEvent, gTypeMessageEvent
-  , MessagePort(MessagePort), unMessagePort, gTypeMessagePort
-  , MimeType(MimeType), unMimeType, gTypeMimeType
-  , MimeTypeArray(MimeTypeArray), unMimeTypeArray, gTypeMimeTypeArray
-  , MouseEvent(MouseEvent), unMouseEvent, IsMouseEvent, toMouseEvent, gTypeMouseEvent
-  , MutationEvent(MutationEvent), unMutationEvent, gTypeMutationEvent
-  , MutationObserver(MutationObserver), unMutationObserver, gTypeMutationObserver
-  , MutationRecord(MutationRecord), unMutationRecord, gTypeMutationRecord
-  , NamedNodeMap(NamedNodeMap), unNamedNodeMap, gTypeNamedNodeMap
-  , Navigator(Navigator), unNavigator, gTypeNavigator
-  , NavigatorUserMediaError(NavigatorUserMediaError), unNavigatorUserMediaError, gTypeNavigatorUserMediaError
-  , Node(Node), unNode, IsNode, toNode, gTypeNode
-  , NodeFilter(NodeFilter), unNodeFilter, gTypeNodeFilter
-  , NodeIterator(NodeIterator), unNodeIterator, gTypeNodeIterator
-  , NodeList(NodeList), unNodeList, IsNodeList, toNodeList, gTypeNodeList
-  , Notification(Notification), unNotification, gTypeNotification
-  , NotificationCenter(NotificationCenter), unNotificationCenter, gTypeNotificationCenter
-  , OESElementIndexUint(OESElementIndexUint), unOESElementIndexUint, gTypeOESElementIndexUint
-  , OESStandardDerivatives(OESStandardDerivatives), unOESStandardDerivatives, gTypeOESStandardDerivatives
-  , OESTextureFloat(OESTextureFloat), unOESTextureFloat, gTypeOESTextureFloat
-  , OESTextureFloatLinear(OESTextureFloatLinear), unOESTextureFloatLinear, gTypeOESTextureFloatLinear
-  , OESTextureHalfFloat(OESTextureHalfFloat), unOESTextureHalfFloat, gTypeOESTextureHalfFloat
-  , OESTextureHalfFloatLinear(OESTextureHalfFloatLinear), unOESTextureHalfFloatLinear, gTypeOESTextureHalfFloatLinear
-  , OESVertexArrayObject(OESVertexArrayObject), unOESVertexArrayObject, gTypeOESVertexArrayObject
-  , OfflineAudioCompletionEvent(OfflineAudioCompletionEvent), unOfflineAudioCompletionEvent, gTypeOfflineAudioCompletionEvent
-  , OfflineAudioContext(OfflineAudioContext), unOfflineAudioContext, gTypeOfflineAudioContext
-  , OscillatorNode(OscillatorNode), unOscillatorNode, gTypeOscillatorNode
-  , OverflowEvent(OverflowEvent), unOverflowEvent, gTypeOverflowEvent
-  , PageTransitionEvent(PageTransitionEvent), unPageTransitionEvent, gTypePageTransitionEvent
-  , PannerNode(PannerNode), unPannerNode, gTypePannerNode
-  , Path2D(Path2D), unPath2D, gTypePath2D
-  , Performance(Performance), unPerformance, gTypePerformance
-  , PerformanceEntry(PerformanceEntry), unPerformanceEntry, IsPerformanceEntry, toPerformanceEntry, gTypePerformanceEntry
-  , PerformanceEntryList(PerformanceEntryList), unPerformanceEntryList, gTypePerformanceEntryList
-  , PerformanceMark(PerformanceMark), unPerformanceMark, gTypePerformanceMark
-  , PerformanceMeasure(PerformanceMeasure), unPerformanceMeasure, gTypePerformanceMeasure
-  , PerformanceNavigation(PerformanceNavigation), unPerformanceNavigation, gTypePerformanceNavigation
-  , PerformanceResourceTiming(PerformanceResourceTiming), unPerformanceResourceTiming, gTypePerformanceResourceTiming
-  , PerformanceTiming(PerformanceTiming), unPerformanceTiming, gTypePerformanceTiming
-  , PeriodicWave(PeriodicWave), unPeriodicWave, gTypePeriodicWave
-  , Plugin(Plugin), unPlugin, gTypePlugin
-  , PluginArray(PluginArray), unPluginArray, gTypePluginArray
-  , PopStateEvent(PopStateEvent), unPopStateEvent, gTypePopStateEvent
-  , PositionError(PositionError), unPositionError, gTypePositionError
-  , ProcessingInstruction(ProcessingInstruction), unProcessingInstruction, gTypeProcessingInstruction
-  , ProgressEvent(ProgressEvent), unProgressEvent, IsProgressEvent, toProgressEvent, gTypeProgressEvent
-  , QuickTimePluginReplacement(QuickTimePluginReplacement), unQuickTimePluginReplacement, gTypeQuickTimePluginReplacement
-  , RGBColor(RGBColor), unRGBColor, gTypeRGBColor
-  , RTCConfiguration(RTCConfiguration), unRTCConfiguration, gTypeRTCConfiguration
-  , RTCDTMFSender(RTCDTMFSender), unRTCDTMFSender, gTypeRTCDTMFSender
-  , RTCDTMFToneChangeEvent(RTCDTMFToneChangeEvent), unRTCDTMFToneChangeEvent, gTypeRTCDTMFToneChangeEvent
-  , RTCDataChannel(RTCDataChannel), unRTCDataChannel, gTypeRTCDataChannel
-  , RTCDataChannelEvent(RTCDataChannelEvent), unRTCDataChannelEvent, gTypeRTCDataChannelEvent
-  , RTCIceCandidate(RTCIceCandidate), unRTCIceCandidate, gTypeRTCIceCandidate
-  , RTCIceCandidateEvent(RTCIceCandidateEvent), unRTCIceCandidateEvent, gTypeRTCIceCandidateEvent
-  , RTCIceServer(RTCIceServer), unRTCIceServer, gTypeRTCIceServer
-  , RTCPeerConnection(RTCPeerConnection), unRTCPeerConnection, gTypeRTCPeerConnection
-  , RTCSessionDescription(RTCSessionDescription), unRTCSessionDescription, gTypeRTCSessionDescription
-  , RTCStatsReport(RTCStatsReport), unRTCStatsReport, gTypeRTCStatsReport
-  , RTCStatsResponse(RTCStatsResponse), unRTCStatsResponse, gTypeRTCStatsResponse
-  , RadioNodeList(RadioNodeList), unRadioNodeList, gTypeRadioNodeList
-  , Range(Range), unRange, gTypeRange
-  , ReadableStream(ReadableStream), unReadableStream, gTypeReadableStream
-  , Rect(Rect), unRect, gTypeRect
-  , SQLError(SQLError), unSQLError, gTypeSQLError
-  , SQLResultSet(SQLResultSet), unSQLResultSet, gTypeSQLResultSet
-  , SQLResultSetRowList(SQLResultSetRowList), unSQLResultSetRowList, gTypeSQLResultSetRowList
-  , SQLTransaction(SQLTransaction), unSQLTransaction, gTypeSQLTransaction
-  , SVGAElement(SVGAElement), unSVGAElement, gTypeSVGAElement
-  , SVGAltGlyphDefElement(SVGAltGlyphDefElement), unSVGAltGlyphDefElement, gTypeSVGAltGlyphDefElement
-  , SVGAltGlyphElement(SVGAltGlyphElement), unSVGAltGlyphElement, gTypeSVGAltGlyphElement
-  , SVGAltGlyphItemElement(SVGAltGlyphItemElement), unSVGAltGlyphItemElement, gTypeSVGAltGlyphItemElement
-  , SVGAngle(SVGAngle), unSVGAngle, gTypeSVGAngle
-  , SVGAnimateColorElement(SVGAnimateColorElement), unSVGAnimateColorElement, gTypeSVGAnimateColorElement
-  , SVGAnimateElement(SVGAnimateElement), unSVGAnimateElement, gTypeSVGAnimateElement
-  , SVGAnimateMotionElement(SVGAnimateMotionElement), unSVGAnimateMotionElement, gTypeSVGAnimateMotionElement
-  , SVGAnimateTransformElement(SVGAnimateTransformElement), unSVGAnimateTransformElement, gTypeSVGAnimateTransformElement
-  , SVGAnimatedAngle(SVGAnimatedAngle), unSVGAnimatedAngle, gTypeSVGAnimatedAngle
-  , SVGAnimatedBoolean(SVGAnimatedBoolean), unSVGAnimatedBoolean, gTypeSVGAnimatedBoolean
-  , SVGAnimatedEnumeration(SVGAnimatedEnumeration), unSVGAnimatedEnumeration, gTypeSVGAnimatedEnumeration
-  , SVGAnimatedInteger(SVGAnimatedInteger), unSVGAnimatedInteger, gTypeSVGAnimatedInteger
-  , SVGAnimatedLength(SVGAnimatedLength), unSVGAnimatedLength, gTypeSVGAnimatedLength
-  , SVGAnimatedLengthList(SVGAnimatedLengthList), unSVGAnimatedLengthList, gTypeSVGAnimatedLengthList
-  , SVGAnimatedNumber(SVGAnimatedNumber), unSVGAnimatedNumber, gTypeSVGAnimatedNumber
-  , SVGAnimatedNumberList(SVGAnimatedNumberList), unSVGAnimatedNumberList, gTypeSVGAnimatedNumberList
-  , SVGAnimatedPreserveAspectRatio(SVGAnimatedPreserveAspectRatio), unSVGAnimatedPreserveAspectRatio, gTypeSVGAnimatedPreserveAspectRatio
-  , SVGAnimatedRect(SVGAnimatedRect), unSVGAnimatedRect, gTypeSVGAnimatedRect
-  , SVGAnimatedString(SVGAnimatedString), unSVGAnimatedString, gTypeSVGAnimatedString
-  , SVGAnimatedTransformList(SVGAnimatedTransformList), unSVGAnimatedTransformList, gTypeSVGAnimatedTransformList
-  , SVGAnimationElement(SVGAnimationElement), unSVGAnimationElement, IsSVGAnimationElement, toSVGAnimationElement, gTypeSVGAnimationElement
-  , SVGCircleElement(SVGCircleElement), unSVGCircleElement, gTypeSVGCircleElement
-  , SVGClipPathElement(SVGClipPathElement), unSVGClipPathElement, gTypeSVGClipPathElement
-  , SVGColor(SVGColor), unSVGColor, IsSVGColor, toSVGColor, gTypeSVGColor
-  , SVGComponentTransferFunctionElement(SVGComponentTransferFunctionElement), unSVGComponentTransferFunctionElement, IsSVGComponentTransferFunctionElement, toSVGComponentTransferFunctionElement, gTypeSVGComponentTransferFunctionElement
-  , SVGCursorElement(SVGCursorElement), unSVGCursorElement, gTypeSVGCursorElement
-  , SVGDefsElement(SVGDefsElement), unSVGDefsElement, gTypeSVGDefsElement
-  , SVGDescElement(SVGDescElement), unSVGDescElement, gTypeSVGDescElement
-  , SVGDocument(SVGDocument), unSVGDocument, gTypeSVGDocument
-  , SVGElement(SVGElement), unSVGElement, IsSVGElement, toSVGElement, gTypeSVGElement
-  , SVGEllipseElement(SVGEllipseElement), unSVGEllipseElement, gTypeSVGEllipseElement
-  , SVGExternalResourcesRequired(SVGExternalResourcesRequired), unSVGExternalResourcesRequired, gTypeSVGExternalResourcesRequired
-  , SVGFEBlendElement(SVGFEBlendElement), unSVGFEBlendElement, gTypeSVGFEBlendElement
-  , SVGFEColorMatrixElement(SVGFEColorMatrixElement), unSVGFEColorMatrixElement, gTypeSVGFEColorMatrixElement
-  , SVGFEComponentTransferElement(SVGFEComponentTransferElement), unSVGFEComponentTransferElement, gTypeSVGFEComponentTransferElement
-  , SVGFECompositeElement(SVGFECompositeElement), unSVGFECompositeElement, gTypeSVGFECompositeElement
-  , SVGFEConvolveMatrixElement(SVGFEConvolveMatrixElement), unSVGFEConvolveMatrixElement, gTypeSVGFEConvolveMatrixElement
-  , SVGFEDiffuseLightingElement(SVGFEDiffuseLightingElement), unSVGFEDiffuseLightingElement, gTypeSVGFEDiffuseLightingElement
-  , SVGFEDisplacementMapElement(SVGFEDisplacementMapElement), unSVGFEDisplacementMapElement, gTypeSVGFEDisplacementMapElement
-  , SVGFEDistantLightElement(SVGFEDistantLightElement), unSVGFEDistantLightElement, gTypeSVGFEDistantLightElement
-  , SVGFEDropShadowElement(SVGFEDropShadowElement), unSVGFEDropShadowElement, gTypeSVGFEDropShadowElement
-  , SVGFEFloodElement(SVGFEFloodElement), unSVGFEFloodElement, gTypeSVGFEFloodElement
-  , SVGFEFuncAElement(SVGFEFuncAElement), unSVGFEFuncAElement, gTypeSVGFEFuncAElement
-  , SVGFEFuncBElement(SVGFEFuncBElement), unSVGFEFuncBElement, gTypeSVGFEFuncBElement
-  , SVGFEFuncGElement(SVGFEFuncGElement), unSVGFEFuncGElement, gTypeSVGFEFuncGElement
-  , SVGFEFuncRElement(SVGFEFuncRElement), unSVGFEFuncRElement, gTypeSVGFEFuncRElement
-  , SVGFEGaussianBlurElement(SVGFEGaussianBlurElement), unSVGFEGaussianBlurElement, gTypeSVGFEGaussianBlurElement
-  , SVGFEImageElement(SVGFEImageElement), unSVGFEImageElement, gTypeSVGFEImageElement
-  , SVGFEMergeElement(SVGFEMergeElement), unSVGFEMergeElement, gTypeSVGFEMergeElement
-  , SVGFEMergeNodeElement(SVGFEMergeNodeElement), unSVGFEMergeNodeElement, gTypeSVGFEMergeNodeElement
-  , SVGFEMorphologyElement(SVGFEMorphologyElement), unSVGFEMorphologyElement, gTypeSVGFEMorphologyElement
-  , SVGFEOffsetElement(SVGFEOffsetElement), unSVGFEOffsetElement, gTypeSVGFEOffsetElement
-  , SVGFEPointLightElement(SVGFEPointLightElement), unSVGFEPointLightElement, gTypeSVGFEPointLightElement
-  , SVGFESpecularLightingElement(SVGFESpecularLightingElement), unSVGFESpecularLightingElement, gTypeSVGFESpecularLightingElement
-  , SVGFESpotLightElement(SVGFESpotLightElement), unSVGFESpotLightElement, gTypeSVGFESpotLightElement
-  , SVGFETileElement(SVGFETileElement), unSVGFETileElement, gTypeSVGFETileElement
-  , SVGFETurbulenceElement(SVGFETurbulenceElement), unSVGFETurbulenceElement, gTypeSVGFETurbulenceElement
-  , SVGFilterElement(SVGFilterElement), unSVGFilterElement, gTypeSVGFilterElement
-  , SVGFilterPrimitiveStandardAttributes(SVGFilterPrimitiveStandardAttributes), unSVGFilterPrimitiveStandardAttributes, gTypeSVGFilterPrimitiveStandardAttributes
-  , SVGFitToViewBox(SVGFitToViewBox), unSVGFitToViewBox, gTypeSVGFitToViewBox
-  , SVGFontElement(SVGFontElement), unSVGFontElement, gTypeSVGFontElement
-  , SVGFontFaceElement(SVGFontFaceElement), unSVGFontFaceElement, gTypeSVGFontFaceElement
-  , SVGFontFaceFormatElement(SVGFontFaceFormatElement), unSVGFontFaceFormatElement, gTypeSVGFontFaceFormatElement
-  , SVGFontFaceNameElement(SVGFontFaceNameElement), unSVGFontFaceNameElement, gTypeSVGFontFaceNameElement
-  , SVGFontFaceSrcElement(SVGFontFaceSrcElement), unSVGFontFaceSrcElement, gTypeSVGFontFaceSrcElement
-  , SVGFontFaceUriElement(SVGFontFaceUriElement), unSVGFontFaceUriElement, gTypeSVGFontFaceUriElement
-  , SVGForeignObjectElement(SVGForeignObjectElement), unSVGForeignObjectElement, gTypeSVGForeignObjectElement
-  , SVGGElement(SVGGElement), unSVGGElement, gTypeSVGGElement
-  , SVGGlyphElement(SVGGlyphElement), unSVGGlyphElement, gTypeSVGGlyphElement
-  , SVGGlyphRefElement(SVGGlyphRefElement), unSVGGlyphRefElement, gTypeSVGGlyphRefElement
-  , SVGGradientElement(SVGGradientElement), unSVGGradientElement, IsSVGGradientElement, toSVGGradientElement, gTypeSVGGradientElement
-  , SVGGraphicsElement(SVGGraphicsElement), unSVGGraphicsElement, IsSVGGraphicsElement, toSVGGraphicsElement, gTypeSVGGraphicsElement
-  , SVGHKernElement(SVGHKernElement), unSVGHKernElement, gTypeSVGHKernElement
-  , SVGImageElement(SVGImageElement), unSVGImageElement, gTypeSVGImageElement
-  , SVGLength(SVGLength), unSVGLength, gTypeSVGLength
-  , SVGLengthList(SVGLengthList), unSVGLengthList, gTypeSVGLengthList
-  , SVGLineElement(SVGLineElement), unSVGLineElement, gTypeSVGLineElement
-  , SVGLinearGradientElement(SVGLinearGradientElement), unSVGLinearGradientElement, gTypeSVGLinearGradientElement
-  , SVGMPathElement(SVGMPathElement), unSVGMPathElement, gTypeSVGMPathElement
-  , SVGMarkerElement(SVGMarkerElement), unSVGMarkerElement, gTypeSVGMarkerElement
-  , SVGMaskElement(SVGMaskElement), unSVGMaskElement, gTypeSVGMaskElement
-  , SVGMatrix(SVGMatrix), unSVGMatrix, gTypeSVGMatrix
-  , SVGMetadataElement(SVGMetadataElement), unSVGMetadataElement, gTypeSVGMetadataElement
-  , SVGMissingGlyphElement(SVGMissingGlyphElement), unSVGMissingGlyphElement, gTypeSVGMissingGlyphElement
-  , SVGNumber(SVGNumber), unSVGNumber, gTypeSVGNumber
-  , SVGNumberList(SVGNumberList), unSVGNumberList, gTypeSVGNumberList
-  , SVGPaint(SVGPaint), unSVGPaint, gTypeSVGPaint
-  , SVGPathElement(SVGPathElement), unSVGPathElement, gTypeSVGPathElement
-  , SVGPathSeg(SVGPathSeg), unSVGPathSeg, IsSVGPathSeg, toSVGPathSeg, gTypeSVGPathSeg
-  , SVGPathSegArcAbs(SVGPathSegArcAbs), unSVGPathSegArcAbs, gTypeSVGPathSegArcAbs
-  , SVGPathSegArcRel(SVGPathSegArcRel), unSVGPathSegArcRel, gTypeSVGPathSegArcRel
-  , SVGPathSegClosePath(SVGPathSegClosePath), unSVGPathSegClosePath, gTypeSVGPathSegClosePath
-  , SVGPathSegCurvetoCubicAbs(SVGPathSegCurvetoCubicAbs), unSVGPathSegCurvetoCubicAbs, gTypeSVGPathSegCurvetoCubicAbs
-  , SVGPathSegCurvetoCubicRel(SVGPathSegCurvetoCubicRel), unSVGPathSegCurvetoCubicRel, gTypeSVGPathSegCurvetoCubicRel
-  , SVGPathSegCurvetoCubicSmoothAbs(SVGPathSegCurvetoCubicSmoothAbs), unSVGPathSegCurvetoCubicSmoothAbs, gTypeSVGPathSegCurvetoCubicSmoothAbs
-  , SVGPathSegCurvetoCubicSmoothRel(SVGPathSegCurvetoCubicSmoothRel), unSVGPathSegCurvetoCubicSmoothRel, gTypeSVGPathSegCurvetoCubicSmoothRel
-  , SVGPathSegCurvetoQuadraticAbs(SVGPathSegCurvetoQuadraticAbs), unSVGPathSegCurvetoQuadraticAbs, gTypeSVGPathSegCurvetoQuadraticAbs
-  , SVGPathSegCurvetoQuadraticRel(SVGPathSegCurvetoQuadraticRel), unSVGPathSegCurvetoQuadraticRel, gTypeSVGPathSegCurvetoQuadraticRel
-  , SVGPathSegCurvetoQuadraticSmoothAbs(SVGPathSegCurvetoQuadraticSmoothAbs), unSVGPathSegCurvetoQuadraticSmoothAbs, gTypeSVGPathSegCurvetoQuadraticSmoothAbs
-  , SVGPathSegCurvetoQuadraticSmoothRel(SVGPathSegCurvetoQuadraticSmoothRel), unSVGPathSegCurvetoQuadraticSmoothRel, gTypeSVGPathSegCurvetoQuadraticSmoothRel
-  , SVGPathSegLinetoAbs(SVGPathSegLinetoAbs), unSVGPathSegLinetoAbs, gTypeSVGPathSegLinetoAbs
-  , SVGPathSegLinetoHorizontalAbs(SVGPathSegLinetoHorizontalAbs), unSVGPathSegLinetoHorizontalAbs, gTypeSVGPathSegLinetoHorizontalAbs
-  , SVGPathSegLinetoHorizontalRel(SVGPathSegLinetoHorizontalRel), unSVGPathSegLinetoHorizontalRel, gTypeSVGPathSegLinetoHorizontalRel
-  , SVGPathSegLinetoRel(SVGPathSegLinetoRel), unSVGPathSegLinetoRel, gTypeSVGPathSegLinetoRel
-  , SVGPathSegLinetoVerticalAbs(SVGPathSegLinetoVerticalAbs), unSVGPathSegLinetoVerticalAbs, gTypeSVGPathSegLinetoVerticalAbs
-  , SVGPathSegLinetoVerticalRel(SVGPathSegLinetoVerticalRel), unSVGPathSegLinetoVerticalRel, gTypeSVGPathSegLinetoVerticalRel
-  , SVGPathSegList(SVGPathSegList), unSVGPathSegList, gTypeSVGPathSegList
-  , SVGPathSegMovetoAbs(SVGPathSegMovetoAbs), unSVGPathSegMovetoAbs, gTypeSVGPathSegMovetoAbs
-  , SVGPathSegMovetoRel(SVGPathSegMovetoRel), unSVGPathSegMovetoRel, gTypeSVGPathSegMovetoRel
-  , SVGPatternElement(SVGPatternElement), unSVGPatternElement, gTypeSVGPatternElement
-  , SVGPoint(SVGPoint), unSVGPoint, gTypeSVGPoint
-  , SVGPointList(SVGPointList), unSVGPointList, gTypeSVGPointList
-  , SVGPolygonElement(SVGPolygonElement), unSVGPolygonElement, gTypeSVGPolygonElement
-  , SVGPolylineElement(SVGPolylineElement), unSVGPolylineElement, gTypeSVGPolylineElement
-  , SVGPreserveAspectRatio(SVGPreserveAspectRatio), unSVGPreserveAspectRatio, gTypeSVGPreserveAspectRatio
-  , SVGRadialGradientElement(SVGRadialGradientElement), unSVGRadialGradientElement, gTypeSVGRadialGradientElement
-  , SVGRect(SVGRect), unSVGRect, gTypeSVGRect
-  , SVGRectElement(SVGRectElement), unSVGRectElement, gTypeSVGRectElement
-  , SVGRenderingIntent(SVGRenderingIntent), unSVGRenderingIntent, gTypeSVGRenderingIntent
-  , SVGSVGElement(SVGSVGElement), unSVGSVGElement, gTypeSVGSVGElement
-  , SVGScriptElement(SVGScriptElement), unSVGScriptElement, gTypeSVGScriptElement
-  , SVGSetElement(SVGSetElement), unSVGSetElement, gTypeSVGSetElement
-  , SVGStopElement(SVGStopElement), unSVGStopElement, gTypeSVGStopElement
-  , SVGStringList(SVGStringList), unSVGStringList, gTypeSVGStringList
-  , SVGStyleElement(SVGStyleElement), unSVGStyleElement, gTypeSVGStyleElement
-  , SVGSwitchElement(SVGSwitchElement), unSVGSwitchElement, gTypeSVGSwitchElement
-  , SVGSymbolElement(SVGSymbolElement), unSVGSymbolElement, gTypeSVGSymbolElement
-  , SVGTRefElement(SVGTRefElement), unSVGTRefElement, gTypeSVGTRefElement
-  , SVGTSpanElement(SVGTSpanElement), unSVGTSpanElement, gTypeSVGTSpanElement
-  , SVGTests(SVGTests), unSVGTests, gTypeSVGTests
-  , SVGTextContentElement(SVGTextContentElement), unSVGTextContentElement, IsSVGTextContentElement, toSVGTextContentElement, gTypeSVGTextContentElement
-  , SVGTextElement(SVGTextElement), unSVGTextElement, gTypeSVGTextElement
-  , SVGTextPathElement(SVGTextPathElement), unSVGTextPathElement, gTypeSVGTextPathElement
-  , SVGTextPositioningElement(SVGTextPositioningElement), unSVGTextPositioningElement, IsSVGTextPositioningElement, toSVGTextPositioningElement, gTypeSVGTextPositioningElement
-  , SVGTitleElement(SVGTitleElement), unSVGTitleElement, gTypeSVGTitleElement
-  , SVGTransform(SVGTransform), unSVGTransform, gTypeSVGTransform
-  , SVGTransformList(SVGTransformList), unSVGTransformList, gTypeSVGTransformList
-  , SVGURIReference(SVGURIReference), unSVGURIReference, gTypeSVGURIReference
-  , SVGUnitTypes(SVGUnitTypes), unSVGUnitTypes, gTypeSVGUnitTypes
-  , SVGUseElement(SVGUseElement), unSVGUseElement, gTypeSVGUseElement
-  , SVGVKernElement(SVGVKernElement), unSVGVKernElement, gTypeSVGVKernElement
-  , SVGViewElement(SVGViewElement), unSVGViewElement, gTypeSVGViewElement
-  , SVGViewSpec(SVGViewSpec), unSVGViewSpec, gTypeSVGViewSpec
-  , SVGZoomAndPan(SVGZoomAndPan), unSVGZoomAndPan, gTypeSVGZoomAndPan
-  , SVGZoomEvent(SVGZoomEvent), unSVGZoomEvent, gTypeSVGZoomEvent
-  , Screen(Screen), unScreen, gTypeScreen
-  , ScriptProcessorNode(ScriptProcessorNode), unScriptProcessorNode, gTypeScriptProcessorNode
-  , ScriptProfile(ScriptProfile), unScriptProfile, gTypeScriptProfile
-  , ScriptProfileNode(ScriptProfileNode), unScriptProfileNode, gTypeScriptProfileNode
-  , SecurityPolicy(SecurityPolicy), unSecurityPolicy, gTypeSecurityPolicy
-  , SecurityPolicyViolationEvent(SecurityPolicyViolationEvent), unSecurityPolicyViolationEvent, gTypeSecurityPolicyViolationEvent
-  , Selection(Selection), unSelection, gTypeSelection
-  , SourceBuffer(SourceBuffer), unSourceBuffer, gTypeSourceBuffer
-  , SourceBufferList(SourceBufferList), unSourceBufferList, gTypeSourceBufferList
-  , SourceInfo(SourceInfo), unSourceInfo, gTypeSourceInfo
-  , SpeechSynthesis(SpeechSynthesis), unSpeechSynthesis, gTypeSpeechSynthesis
-  , SpeechSynthesisEvent(SpeechSynthesisEvent), unSpeechSynthesisEvent, gTypeSpeechSynthesisEvent
-  , SpeechSynthesisUtterance(SpeechSynthesisUtterance), unSpeechSynthesisUtterance, gTypeSpeechSynthesisUtterance
-  , SpeechSynthesisVoice(SpeechSynthesisVoice), unSpeechSynthesisVoice, gTypeSpeechSynthesisVoice
-  , Storage(Storage), unStorage, gTypeStorage
-  , StorageEvent(StorageEvent), unStorageEvent, gTypeStorageEvent
-  , StorageInfo(StorageInfo), unStorageInfo, gTypeStorageInfo
-  , StorageQuota(StorageQuota), unStorageQuota, gTypeStorageQuota
-  , StyleMedia(StyleMedia), unStyleMedia, gTypeStyleMedia
-  , StyleSheet(StyleSheet), unStyleSheet, IsStyleSheet, toStyleSheet, gTypeStyleSheet
-  , StyleSheetList(StyleSheetList), unStyleSheetList, gTypeStyleSheetList
-  , SubtleCrypto(SubtleCrypto), unSubtleCrypto, gTypeSubtleCrypto
-  , Text(Text), unText, IsText, toText, gTypeText
-  , TextEvent(TextEvent), unTextEvent, gTypeTextEvent
-  , TextMetrics(TextMetrics), unTextMetrics, gTypeTextMetrics
-  , TextTrack(TextTrack), unTextTrack, gTypeTextTrack
-  , TextTrackCue(TextTrackCue), unTextTrackCue, IsTextTrackCue, toTextTrackCue, gTypeTextTrackCue
-  , TextTrackCueList(TextTrackCueList), unTextTrackCueList, gTypeTextTrackCueList
-  , TextTrackList(TextTrackList), unTextTrackList, gTypeTextTrackList
-  , TimeRanges(TimeRanges), unTimeRanges, gTypeTimeRanges
-  , Touch(Touch), unTouch, gTypeTouch
-  , TouchEvent(TouchEvent), unTouchEvent, gTypeTouchEvent
-  , TouchList(TouchList), unTouchList, gTypeTouchList
-  , TrackEvent(TrackEvent), unTrackEvent, gTypeTrackEvent
-  , TransitionEvent(TransitionEvent), unTransitionEvent, gTypeTransitionEvent
-  , TreeWalker(TreeWalker), unTreeWalker, gTypeTreeWalker
-  , TypeConversions(TypeConversions), unTypeConversions, gTypeTypeConversions
-  , UIEvent(UIEvent), unUIEvent, IsUIEvent, toUIEvent, gTypeUIEvent
-  , UIRequestEvent(UIRequestEvent), unUIRequestEvent, gTypeUIRequestEvent
-  , URL(URL), unURL, gTypeURL
-  , URLUtils(URLUtils), unURLUtils, gTypeURLUtils
-  , UserMessageHandler(UserMessageHandler), unUserMessageHandler, gTypeUserMessageHandler
-  , UserMessageHandlersNamespace(UserMessageHandlersNamespace), unUserMessageHandlersNamespace, gTypeUserMessageHandlersNamespace
-  , VTTCue(VTTCue), unVTTCue, gTypeVTTCue
-  , VTTRegion(VTTRegion), unVTTRegion, gTypeVTTRegion
-  , VTTRegionList(VTTRegionList), unVTTRegionList, gTypeVTTRegionList
-  , ValidityState(ValidityState), unValidityState, gTypeValidityState
-  , VideoPlaybackQuality(VideoPlaybackQuality), unVideoPlaybackQuality, gTypeVideoPlaybackQuality
-  , VideoStreamTrack(VideoStreamTrack), unVideoStreamTrack, gTypeVideoStreamTrack
-  , VideoTrack(VideoTrack), unVideoTrack, gTypeVideoTrack
-  , VideoTrackList(VideoTrackList), unVideoTrackList, gTypeVideoTrackList
-  , WaveShaperNode(WaveShaperNode), unWaveShaperNode, gTypeWaveShaperNode
-  , WebGL2RenderingContext(WebGL2RenderingContext), unWebGL2RenderingContext, gTypeWebGL2RenderingContext
-  , WebGLActiveInfo(WebGLActiveInfo), unWebGLActiveInfo, gTypeWebGLActiveInfo
-  , WebGLBuffer(WebGLBuffer), unWebGLBuffer, gTypeWebGLBuffer
-  , WebGLCompressedTextureATC(WebGLCompressedTextureATC), unWebGLCompressedTextureATC, gTypeWebGLCompressedTextureATC
-  , WebGLCompressedTexturePVRTC(WebGLCompressedTexturePVRTC), unWebGLCompressedTexturePVRTC, gTypeWebGLCompressedTexturePVRTC
-  , WebGLCompressedTextureS3TC(WebGLCompressedTextureS3TC), unWebGLCompressedTextureS3TC, gTypeWebGLCompressedTextureS3TC
-  , WebGLContextAttributes(WebGLContextAttributes), unWebGLContextAttributes, gTypeWebGLContextAttributes
-  , WebGLContextEvent(WebGLContextEvent), unWebGLContextEvent, gTypeWebGLContextEvent
-  , WebGLDebugRendererInfo(WebGLDebugRendererInfo), unWebGLDebugRendererInfo, gTypeWebGLDebugRendererInfo
-  , WebGLDebugShaders(WebGLDebugShaders), unWebGLDebugShaders, gTypeWebGLDebugShaders
-  , WebGLDepthTexture(WebGLDepthTexture), unWebGLDepthTexture, gTypeWebGLDepthTexture
-  , WebGLDrawBuffers(WebGLDrawBuffers), unWebGLDrawBuffers, gTypeWebGLDrawBuffers
-  , WebGLFramebuffer(WebGLFramebuffer), unWebGLFramebuffer, gTypeWebGLFramebuffer
-  , WebGLLoseContext(WebGLLoseContext), unWebGLLoseContext, gTypeWebGLLoseContext
-  , WebGLProgram(WebGLProgram), unWebGLProgram, gTypeWebGLProgram
-  , WebGLQuery(WebGLQuery), unWebGLQuery, gTypeWebGLQuery
-  , WebGLRenderbuffer(WebGLRenderbuffer), unWebGLRenderbuffer, gTypeWebGLRenderbuffer
-  , WebGLRenderingContext(WebGLRenderingContext), unWebGLRenderingContext, gTypeWebGLRenderingContext
-  , WebGLRenderingContextBase(WebGLRenderingContextBase), unWebGLRenderingContextBase, IsWebGLRenderingContextBase, toWebGLRenderingContextBase, gTypeWebGLRenderingContextBase
-  , WebGLSampler(WebGLSampler), unWebGLSampler, gTypeWebGLSampler
-  , WebGLShader(WebGLShader), unWebGLShader, gTypeWebGLShader
-  , WebGLShaderPrecisionFormat(WebGLShaderPrecisionFormat), unWebGLShaderPrecisionFormat, gTypeWebGLShaderPrecisionFormat
-  , WebGLSync(WebGLSync), unWebGLSync, gTypeWebGLSync
-  , WebGLTexture(WebGLTexture), unWebGLTexture, gTypeWebGLTexture
-  , WebGLTransformFeedback(WebGLTransformFeedback), unWebGLTransformFeedback, gTypeWebGLTransformFeedback
-  , WebGLUniformLocation(WebGLUniformLocation), unWebGLUniformLocation, gTypeWebGLUniformLocation
-  , WebGLVertexArrayObject(WebGLVertexArrayObject), unWebGLVertexArrayObject, gTypeWebGLVertexArrayObject
-  , WebGLVertexArrayObjectOES(WebGLVertexArrayObjectOES), unWebGLVertexArrayObjectOES, gTypeWebGLVertexArrayObjectOES
-  , WebKitAnimationEvent(WebKitAnimationEvent), unWebKitAnimationEvent, gTypeWebKitAnimationEvent
-  , WebKitCSSFilterValue(WebKitCSSFilterValue), unWebKitCSSFilterValue, gTypeWebKitCSSFilterValue
-  , WebKitCSSMatrix(WebKitCSSMatrix), unWebKitCSSMatrix, gTypeWebKitCSSMatrix
-  , WebKitCSSRegionRule(WebKitCSSRegionRule), unWebKitCSSRegionRule, gTypeWebKitCSSRegionRule
-  , WebKitCSSTransformValue(WebKitCSSTransformValue), unWebKitCSSTransformValue, gTypeWebKitCSSTransformValue
-  , WebKitCSSViewportRule(WebKitCSSViewportRule), unWebKitCSSViewportRule, gTypeWebKitCSSViewportRule
-  , WebKitNamedFlow(WebKitNamedFlow), unWebKitNamedFlow, gTypeWebKitNamedFlow
-  , WebKitNamespace(WebKitNamespace), unWebKitNamespace, gTypeWebKitNamespace
-  , WebKitPlaybackTargetAvailabilityEvent(WebKitPlaybackTargetAvailabilityEvent), unWebKitPlaybackTargetAvailabilityEvent, gTypeWebKitPlaybackTargetAvailabilityEvent
-  , WebKitPoint(WebKitPoint), unWebKitPoint, gTypeWebKitPoint
-  , WebKitTransitionEvent(WebKitTransitionEvent), unWebKitTransitionEvent, gTypeWebKitTransitionEvent
-  , WebSocket(WebSocket), unWebSocket, gTypeWebSocket
-  , WheelEvent(WheelEvent), unWheelEvent, gTypeWheelEvent
-  , Window(Window), unWindow, gTypeWindow
-  , WindowBase64(WindowBase64), unWindowBase64, gTypeWindowBase64
-  , WindowTimers(WindowTimers), unWindowTimers, gTypeWindowTimers
-  , Worker(Worker), unWorker, gTypeWorker
-  , WorkerGlobalScope(WorkerGlobalScope), unWorkerGlobalScope, IsWorkerGlobalScope, toWorkerGlobalScope, gTypeWorkerGlobalScope
-  , WorkerLocation(WorkerLocation), unWorkerLocation, gTypeWorkerLocation
-  , WorkerNavigator(WorkerNavigator), unWorkerNavigator, gTypeWorkerNavigator
-  , XMLHttpRequest(XMLHttpRequest), unXMLHttpRequest, gTypeXMLHttpRequest
-  , XMLHttpRequestProgressEvent(XMLHttpRequestProgressEvent), unXMLHttpRequestProgressEvent, gTypeXMLHttpRequestProgressEvent
-  , XMLHttpRequestUpload(XMLHttpRequestUpload), unXMLHttpRequestUpload, gTypeXMLHttpRequestUpload
-  , XMLSerializer(XMLSerializer), unXMLSerializer, gTypeXMLSerializer
-  , XPathEvaluator(XPathEvaluator), unXPathEvaluator, gTypeXPathEvaluator
-  , XPathExpression(XPathExpression), unXPathExpression, gTypeXPathExpression
-  , XPathNSResolver(XPathNSResolver), unXPathNSResolver, gTypeXPathNSResolver
-  , XPathResult(XPathResult), unXPathResult, gTypeXPathResult
-  , XSLTProcessor(XSLTProcessor), unXSLTProcessor, 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(..), nullRef, isNull, isUndefined, JSString(..))
-import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
-import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
-import GHCJS.Nullable (Nullable(..), nullableToMaybe, maybeToNullable)
-import GHCJS.Foreign.Callback.Internal (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 ((<>))
-#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
-
-propagateGError = id
-
-newtype GType = GType JSVal
-
-foreign import javascript unsafe "$r = $1.name;" gTypeToString :: GType -> JSString
-
-foreign import javascript unsafe
-  "$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 $1 $2"
-    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. (IsGObject obj, 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, IsGObject obj, 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 srcType  = textFromJSString . gTypeToString $ typeGType obj
-          destType = textFromJSString . gTypeToString $ typeGType (undefined :: obj')
-      error $ "unsafeCastTo :: invalid conversion from " <> T.unpack srcType <> " 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 :: (IsGObject obj, 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 }
-
-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[\"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
-
-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 #-}
-
-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
-
-type ToDOMString s = ToJSString s
-type FromDOMString s = FromJSString s
-type IsDOMString s = (ToDOMString s, FromDOMString s)
-
--- Callbacks
-newtype AudioBufferCallback = AudioBufferCallback (Callback (JSVal -> IO ()))
-instance PToJSVal AudioBufferCallback where pToJSVal (AudioBufferCallback (Callback r)) = r
-newtype DatabaseCallback = DatabaseCallback (Callback (JSVal -> IO ()))
-instance PToJSVal DatabaseCallback where pToJSVal (DatabaseCallback (Callback r)) = r
-newtype MediaQueryListListener = MediaQueryListListener (Callback (JSVal -> IO ()))
-instance PToJSVal MediaQueryListListener where pToJSVal (MediaQueryListListener (Callback r)) = r
-newtype MediaStreamTrackSourcesCallback = MediaStreamTrackSourcesCallback (Callback (JSVal -> IO ()))
-instance PToJSVal MediaStreamTrackSourcesCallback where pToJSVal (MediaStreamTrackSourcesCallback (Callback r)) = r
-newtype NavigatorUserMediaErrorCallback = NavigatorUserMediaErrorCallback (Callback (JSVal -> IO ()))
-instance PToJSVal NavigatorUserMediaErrorCallback where pToJSVal (NavigatorUserMediaErrorCallback (Callback r)) = r
-newtype NavigatorUserMediaSuccessCallback = NavigatorUserMediaSuccessCallback (Callback (JSVal -> IO ()))
-instance PToJSVal NavigatorUserMediaSuccessCallback where pToJSVal (NavigatorUserMediaSuccessCallback (Callback r)) = r
-newtype NotificationPermissionCallback permissions = NotificationPermissionCallback (Callback (JSVal -> IO ()))
-instance PToJSVal (NotificationPermissionCallback permissions) where pToJSVal (NotificationPermissionCallback (Callback r)) = r
-newtype PositionCallback = PositionCallback (Callback (JSVal -> IO ()))
-instance PToJSVal PositionCallback where pToJSVal (PositionCallback (Callback r)) = r
-newtype PositionErrorCallback = PositionErrorCallback (Callback (JSVal -> IO ()))
-instance PToJSVal PositionErrorCallback where pToJSVal (PositionErrorCallback (Callback r)) = r
-newtype RequestAnimationFrameCallback = RequestAnimationFrameCallback (Callback (JSVal -> IO ()))
-instance PToJSVal RequestAnimationFrameCallback where pToJSVal (RequestAnimationFrameCallback (Callback r)) = r
-newtype RTCPeerConnectionErrorCallback = RTCPeerConnectionErrorCallback (Callback (JSVal -> IO ()))
-instance PToJSVal RTCPeerConnectionErrorCallback where pToJSVal (RTCPeerConnectionErrorCallback (Callback r)) = r
-newtype RTCSessionDescriptionCallback = RTCSessionDescriptionCallback (Callback (JSVal -> IO ()))
-instance PToJSVal RTCSessionDescriptionCallback where pToJSVal (RTCSessionDescriptionCallback (Callback r)) = r
-newtype RTCStatsCallback = RTCStatsCallback (Callback (JSVal -> IO ()))
-instance PToJSVal RTCStatsCallback where pToJSVal (RTCStatsCallback (Callback r)) = r
-newtype SQLStatementCallback = SQLStatementCallback (Callback (JSVal -> JSVal -> IO ()))
-instance PToJSVal SQLStatementCallback where pToJSVal (SQLStatementCallback (Callback r)) = r
-newtype SQLStatementErrorCallback = SQLStatementErrorCallback (Callback (JSVal -> JSVal -> IO ()))
-instance PToJSVal SQLStatementErrorCallback where pToJSVal (SQLStatementErrorCallback (Callback r)) = r
-newtype SQLTransactionCallback = SQLTransactionCallback (Callback (JSVal -> IO ()))
-instance PToJSVal SQLTransactionCallback where pToJSVal (SQLTransactionCallback (Callback r)) = r
-newtype SQLTransactionErrorCallback = SQLTransactionErrorCallback (Callback (JSVal -> IO ()))
-instance PToJSVal SQLTransactionErrorCallback where pToJSVal (SQLTransactionErrorCallback (Callback r)) = r
-newtype StorageErrorCallback = StorageErrorCallback (Callback (JSVal -> IO ()))
-instance PToJSVal StorageErrorCallback where pToJSVal (StorageErrorCallback (Callback r)) = r
-newtype StorageQuotaCallback = StorageQuotaCallback (Callback (JSVal -> IO ()))
-instance PToJSVal StorageQuotaCallback where pToJSVal (StorageQuotaCallback (Callback r)) = r
-newtype StorageUsageCallback = StorageUsageCallback (Callback (JSVal -> JSVal -> IO ()))
-instance PToJSVal StorageUsageCallback where pToJSVal (StorageUsageCallback (Callback r)) = r
-newtype StringCallback s = StringCallback (Callback (JSVal -> IO ()))
-instance PToJSVal (StringCallback s) where pToJSVal (StringCallback (Callback r)) = r
-newtype VoidCallback = VoidCallback (Callback (IO ()))
-instance PToJSVal VoidCallback where pToJSVal (VoidCallback (Callback r)) = r
-
--- Custom types
-newtype SerializedScriptValue = SerializedScriptValue { unSerializedScriptValue :: JSVal }
-
-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 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 #-}
-
-class IsGObject o => IsPositionOptions o
-toPositionOptions :: IsPositionOptions o => o -> PositionOptions
-toPositionOptions = PositionOptions . coerce
-
-instance IsPositionOptions PositionOptions
-instance IsGObject PositionOptions where
-  typeGType _ = error "Unable to get the JavaScript type of PositionOptions"
-
-newtype Dictionary = Dictionary { unDictionary :: JSVal }
-
-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 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 #-}
-
-class IsGObject o => IsBlobPropertyBag o
-toBlobPropertyBag :: IsBlobPropertyBag o => o -> BlobPropertyBag
-toBlobPropertyBag = BlobPropertyBag . coerce
-
-instance IsBlobPropertyBag BlobPropertyBag
-instance IsGObject BlobPropertyBag where
-  typeGType _ = error "Unable to get the JavaScript type of BlobPropertyBag"
-
-newtype MutationCallback = MutationCallback { unMutationCallback :: JSVal }
-
-instance Eq MutationCallback where
-  (MutationCallback a) == (MutationCallback b) = js_eq a b
-
-instance PToJSVal MutationCallback where
-  pToJSVal = unMutationCallback
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MutationCallback where
-  pFromJSVal = MutationCallback
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MutationCallback where
-  toJSVal = return . unMutationCallback
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MutationCallback where
-  fromJSVal = return . fmap MutationCallback . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsMutationCallback o
-toMutationCallback :: IsMutationCallback o => o -> MutationCallback
-toMutationCallback = MutationCallback . coerce
-
-instance IsMutationCallback MutationCallback
-instance IsGObject MutationCallback where
-  typeGType _ = error "Unable to get the JavaScript type of MutationCallback"
-
-newtype Promise = Promise { unPromise :: JSVal }
-
-instance Eq Promise where
-  (Promise a) == (Promise b) = js_eq a b
-
-instance PToJSVal Promise where
-  pToJSVal = unPromise
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal Promise where
-  pFromJSVal = Promise
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal Promise where
-  toJSVal = return . unPromise
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal Promise where
-  fromJSVal = return . fmap Promise . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsPromise o
-toPromise :: IsPromise o => o -> Promise
-toPromise = Promise . coerce
-
-instance IsPromise Promise
-instance IsGObject Promise where
-  typeGType _ = gTypePromise
-
-foreign import javascript unsafe "window[\"Promise\"]" gTypePromise :: GType
-
-newtype ArrayBuffer = ArrayBuffer { unArrayBuffer :: JSVal }
-
-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 }
-
-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 }
-
-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 }
-
-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 }
-
-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 }
-
-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 }
-
-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 }
-
-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 }
-
-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 }
-
-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 }
-
-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 }
-
-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 }
-
-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 }
-
-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
-
-newtype Acceleration = Acceleration { unAcceleration :: JSVal }
-
-instance Eq Acceleration where
-  (Acceleration a) == (Acceleration b) = js_eq a b
-
-instance PToJSVal Acceleration where
-  pToJSVal = unAcceleration
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal Acceleration where
-  pFromJSVal = Acceleration
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal Acceleration where
-  toJSVal = return . unAcceleration
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal Acceleration where
-  fromJSVal = return . fmap Acceleration . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsAcceleration o
-toAcceleration :: IsAcceleration o => o -> Acceleration
-toAcceleration = Acceleration . coerce
-
-instance IsAcceleration Acceleration
-instance IsGObject Acceleration where
-  typeGType _ = error "Unable to get the JavaScript type of Acceleration"
-
-newtype RotationRate = RotationRate { unRotationRate :: JSVal }
-
-instance Eq RotationRate where
-  (RotationRate a) == (RotationRate b) = js_eq a b
-
-instance PToJSVal RotationRate where
-  pToJSVal = unRotationRate
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal RotationRate where
-  pFromJSVal = RotationRate
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal RotationRate where
-  toJSVal = return . unRotationRate
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal RotationRate where
-  fromJSVal = return . fmap RotationRate . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsRotationRate o
-toRotationRate :: IsRotationRate o => o -> RotationRate
-toRotationRate = RotationRate . coerce
-
-instance IsRotationRate RotationRate
-instance IsGObject RotationRate where
-  typeGType _ = error "Unable to get the JavaScript type of RotationRate"
-
-newtype Algorithm = Algorithm { unAlgorithm :: JSVal }
-
-instance Eq Algorithm where
-  (Algorithm a) == (Algorithm b) = js_eq a b
-
-instance PToJSVal Algorithm where
-  pToJSVal = unAlgorithm
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal Algorithm where
-  pFromJSVal = Algorithm
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal Algorithm where
-  toJSVal = return . unAlgorithm
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal Algorithm where
-  fromJSVal = return . fmap Algorithm . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsAlgorithm o
-toAlgorithm :: IsAlgorithm o => o -> Algorithm
-toAlgorithm = Algorithm . coerce
-
-instance IsAlgorithm Algorithm
-instance IsGObject Algorithm where
-  typeGType _ = error "Unable to get the JavaScript type of Algorithm"
-
-newtype CryptoOperationData = CryptoOperationData { unCryptoOperationData :: JSVal }
-
-instance Eq CryptoOperationData where
-  (CryptoOperationData a) == (CryptoOperationData b) = js_eq a b
-
-instance PToJSVal CryptoOperationData where
-  pToJSVal = unCryptoOperationData
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CryptoOperationData where
-  pFromJSVal = CryptoOperationData
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CryptoOperationData where
-  toJSVal = return . unCryptoOperationData
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CryptoOperationData where
-  fromJSVal = return . fmap CryptoOperationData . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsCryptoOperationData o
-toCryptoOperationData :: IsCryptoOperationData o => o -> CryptoOperationData
-toCryptoOperationData = CryptoOperationData . coerce
-
-instance IsCryptoOperationData CryptoOperationData
-instance IsGObject CryptoOperationData where
-  typeGType _ = error "Unable to get the JavaScript type of CryptoOperationData"
-instance IsCryptoOperationData ArrayBuffer
-instance IsCryptoOperationData ArrayBufferView
-
-newtype CanvasStyle = CanvasStyle { unCanvasStyle :: JSVal }
-
-instance Eq CanvasStyle where
-  (CanvasStyle a) == (CanvasStyle b) = js_eq a b
-
-instance PToJSVal CanvasStyle where
-  pToJSVal = unCanvasStyle
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CanvasStyle where
-  pFromJSVal = CanvasStyle
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CanvasStyle where
-  toJSVal = return . unCanvasStyle
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CanvasStyle where
-  fromJSVal = return . fmap CanvasStyle . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsCanvasStyle o
-toCanvasStyle :: IsCanvasStyle o => o -> CanvasStyle
-toCanvasStyle = CanvasStyle . coerce
-
-instance IsCanvasStyle CanvasStyle
-instance IsGObject CanvasStyle where
-  typeGType _ = error "Unable to get the JavaScript type of CanvasStyle"
-instance IsCanvasStyle CanvasGradient
-instance IsCanvasStyle CanvasPattern
-
-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 #-}
-
-class IsGObject o => IsDOMException o
-toDOMException :: IsDOMException o => o -> DOMException
-toDOMException = DOMException . coerce
-
-instance IsDOMException DOMException
-instance IsGObject DOMException where
-  typeGType _ = error "Unable to get the JavaScript type of DOMException"
-
-type GLenum = Word32
-type GLboolean = Bool
-type GLbitfield = Word32
-type GLbyte = Int8
-type GLshort = Int16
-type GLint = Int32
-type GLint64 = Int64
-type GLsizei = Int32
-type GLintptr = Int64
-type GLsizeiptr = Int64
-type GLubyte = Word8
-type GLushort = Word16
-type GLuint = Word32
-type GLuint64 = Word64
-type GLfloat = Double
-type GLclampf = Double
-
--- AUTO GENERATION STARTS HERE
--- The remainder of this file is generated from IDL files using domconv-webkit-jsffi
--- | Functions for this inteface are in "GHCJS.DOM.ANGLEInstancedArrays".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ANGLEInstancedArrays Mozilla ANGLEInstancedArrays documentation>
-newtype ANGLEInstancedArrays = ANGLEInstancedArrays { unANGLEInstancedArrays :: JSVal }
-
-instance Eq (ANGLEInstancedArrays) where
-  (ANGLEInstancedArrays a) == (ANGLEInstancedArrays b) = js_eq a b
-
-instance PToJSVal ANGLEInstancedArrays where
-  pToJSVal = unANGLEInstancedArrays
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal ANGLEInstancedArrays where
-  pFromJSVal = ANGLEInstancedArrays
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal ANGLEInstancedArrays where
-  toJSVal = return . unANGLEInstancedArrays
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal ANGLEInstancedArrays where
-  fromJSVal = return . fmap ANGLEInstancedArrays . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject ANGLEInstancedArrays where
-  typeGType _ = gTypeANGLEInstancedArrays
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ANGLEInstancedArrays\"]" gTypeANGLEInstancedArrays :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AbstractView".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AbstractView Mozilla AbstractView documentation>
-newtype AbstractView = AbstractView { unAbstractView :: JSVal }
-
-instance Eq (AbstractView) where
-  (AbstractView a) == (AbstractView b) = js_eq a b
-
-instance PToJSVal AbstractView where
-  pToJSVal = unAbstractView
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal AbstractView where
-  pFromJSVal = AbstractView
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal AbstractView where
-  toJSVal = return . unAbstractView
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal AbstractView where
-  fromJSVal = return . fmap AbstractView . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject AbstractView where
-  typeGType _ = gTypeAbstractView
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AbstractView\"]" gTypeAbstractView :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AbstractWorker".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AbstractWorker Mozilla AbstractWorker documentation>
-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 #-}
-
-instance IsGObject AbstractWorker where
-  typeGType _ = gTypeAbstractWorker
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AbstractWorker\"]" gTypeAbstractWorker :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AllAudioCapabilities".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.MediaStreamCapabilities"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AllAudioCapabilities Mozilla AllAudioCapabilities documentation>
-newtype AllAudioCapabilities = AllAudioCapabilities { unAllAudioCapabilities :: JSVal }
-
-instance Eq (AllAudioCapabilities) where
-  (AllAudioCapabilities a) == (AllAudioCapabilities b) = js_eq a b
-
-instance PToJSVal AllAudioCapabilities where
-  pToJSVal = unAllAudioCapabilities
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal AllAudioCapabilities where
-  pFromJSVal = AllAudioCapabilities
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal AllAudioCapabilities where
-  toJSVal = return . unAllAudioCapabilities
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal AllAudioCapabilities where
-  fromJSVal = return . fmap AllAudioCapabilities . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsMediaStreamCapabilities AllAudioCapabilities
-instance IsGObject AllAudioCapabilities where
-  typeGType _ = gTypeAllAudioCapabilities
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AllAudioCapabilities\"]" gTypeAllAudioCapabilities :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AllVideoCapabilities".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.MediaStreamCapabilities"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AllVideoCapabilities Mozilla AllVideoCapabilities documentation>
-newtype AllVideoCapabilities = AllVideoCapabilities { unAllVideoCapabilities :: JSVal }
-
-instance Eq (AllVideoCapabilities) where
-  (AllVideoCapabilities a) == (AllVideoCapabilities b) = js_eq a b
-
-instance PToJSVal AllVideoCapabilities where
-  pToJSVal = unAllVideoCapabilities
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal AllVideoCapabilities where
-  pFromJSVal = AllVideoCapabilities
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal AllVideoCapabilities where
-  toJSVal = return . unAllVideoCapabilities
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal AllVideoCapabilities where
-  fromJSVal = return . fmap AllVideoCapabilities . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsMediaStreamCapabilities AllVideoCapabilities
-instance IsGObject AllVideoCapabilities where
-  typeGType _ = gTypeAllVideoCapabilities
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AllVideoCapabilities\"]" gTypeAllVideoCapabilities :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AnalyserNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode Mozilla AnalyserNode documentation>
-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 #-}
-
-instance IsAudioNode AnalyserNode
-instance IsEventTarget AnalyserNode
-instance IsGObject AnalyserNode where
-  typeGType _ = gTypeAnalyserNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AnalyserNode\"]" gTypeAnalyserNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AnimationEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent Mozilla AnimationEvent documentation>
-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 #-}
-
-instance IsEvent AnimationEvent
-instance IsGObject AnimationEvent where
-  typeGType _ = gTypeAnimationEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AnimationEvent\"]" gTypeAnimationEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ApplicationCache".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ApplicationCache Mozilla ApplicationCache documentation>
-newtype ApplicationCache = ApplicationCache { unApplicationCache :: JSVal }
-
-instance Eq (ApplicationCache) where
-  (ApplicationCache a) == (ApplicationCache b) = js_eq a b
-
-instance PToJSVal ApplicationCache where
-  pToJSVal = unApplicationCache
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal ApplicationCache where
-  pFromJSVal = ApplicationCache
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal ApplicationCache where
-  toJSVal = return . unApplicationCache
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal ApplicationCache where
-  fromJSVal = return . fmap ApplicationCache . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEventTarget ApplicationCache
-instance IsGObject ApplicationCache where
-  typeGType _ = gTypeApplicationCache
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ApplicationCache\"]" gTypeApplicationCache :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Attr".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Attr Mozilla Attr documentation>
-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 #-}
-
-instance IsNode Attr
-instance IsEventTarget Attr
-instance IsGObject Attr where
-  typeGType _ = gTypeAttr
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Attr\"]" gTypeAttr :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AudioBuffer".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer Mozilla AudioBuffer documentation>
-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 #-}
-
-instance IsGObject AudioBuffer where
-  typeGType _ = gTypeAudioBuffer
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AudioBuffer\"]" gTypeAudioBuffer :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AudioBufferSourceNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode Mozilla AudioBufferSourceNode documentation>
-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 #-}
-
-instance IsAudioNode AudioBufferSourceNode
-instance IsEventTarget AudioBufferSourceNode
-instance IsGObject AudioBufferSourceNode where
-  typeGType _ = gTypeAudioBufferSourceNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AudioBufferSourceNode\"]" gTypeAudioBufferSourceNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AudioContext".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext Mozilla AudioContext documentation>
-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 #-}
-
-class IsEventTarget o => IsAudioContext o
-toAudioContext :: IsAudioContext o => o -> AudioContext
-toAudioContext = AudioContext . coerce
-
-instance IsAudioContext AudioContext
-instance IsEventTarget AudioContext
-instance IsGObject AudioContext where
-  typeGType _ = gTypeAudioContext
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AudioContext\"]" gTypeAudioContext :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AudioDestinationNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AudioDestinationNode Mozilla AudioDestinationNode documentation>
-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 #-}
-
-instance IsAudioNode AudioDestinationNode
-instance IsEventTarget AudioDestinationNode
-instance IsGObject AudioDestinationNode where
-  typeGType _ = gTypeAudioDestinationNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AudioDestinationNode\"]" gTypeAudioDestinationNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AudioListener".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AudioListener Mozilla AudioListener documentation>
-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 #-}
-
-instance IsGObject AudioListener where
-  typeGType _ = gTypeAudioListener
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AudioListener\"]" gTypeAudioListener :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AudioNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AudioNode Mozilla AudioNode documentation>
-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 #-}
-
-class IsEventTarget o => IsAudioNode o
-toAudioNode :: IsAudioNode o => o -> AudioNode
-toAudioNode = AudioNode . coerce
-
-instance IsAudioNode AudioNode
-instance IsEventTarget AudioNode
-instance IsGObject AudioNode where
-  typeGType _ = gTypeAudioNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AudioNode\"]" gTypeAudioNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AudioParam".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam Mozilla AudioParam documentation>
-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 #-}
-
-instance IsGObject AudioParam where
-  typeGType _ = gTypeAudioParam
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AudioParam\"]" gTypeAudioParam :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AudioProcessingEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent Mozilla AudioProcessingEvent documentation>
-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 #-}
-
-instance IsEvent AudioProcessingEvent
-instance IsGObject AudioProcessingEvent where
-  typeGType _ = gTypeAudioProcessingEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AudioProcessingEvent\"]" gTypeAudioProcessingEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AudioStreamTrack".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.MediaStreamTrack"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AudioStreamTrack Mozilla AudioStreamTrack documentation>
-newtype AudioStreamTrack = AudioStreamTrack { unAudioStreamTrack :: JSVal }
-
-instance Eq (AudioStreamTrack) where
-  (AudioStreamTrack a) == (AudioStreamTrack b) = js_eq a b
-
-instance PToJSVal AudioStreamTrack where
-  pToJSVal = unAudioStreamTrack
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal AudioStreamTrack where
-  pFromJSVal = AudioStreamTrack
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal AudioStreamTrack where
-  toJSVal = return . unAudioStreamTrack
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal AudioStreamTrack where
-  fromJSVal = return . fmap AudioStreamTrack . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsMediaStreamTrack AudioStreamTrack
-instance IsEventTarget AudioStreamTrack
-instance IsGObject AudioStreamTrack where
-  typeGType _ = gTypeAudioStreamTrack
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AudioStreamTrack\"]" gTypeAudioStreamTrack :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AudioTrack".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack Mozilla AudioTrack documentation>
-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 #-}
-
-instance IsGObject AudioTrack where
-  typeGType _ = gTypeAudioTrack
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AudioTrack\"]" gTypeAudioTrack :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AudioTrackList".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList Mozilla AudioTrackList documentation>
-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 #-}
-
-instance IsEventTarget AudioTrackList
-instance IsGObject AudioTrackList where
-  typeGType _ = gTypeAudioTrackList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AudioTrackList\"]" gTypeAudioTrackList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.AutocompleteErrorEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/AutocompleteErrorEvent Mozilla AutocompleteErrorEvent documentation>
-newtype AutocompleteErrorEvent = AutocompleteErrorEvent { unAutocompleteErrorEvent :: JSVal }
-
-instance Eq (AutocompleteErrorEvent) where
-  (AutocompleteErrorEvent a) == (AutocompleteErrorEvent b) = js_eq a b
-
-instance PToJSVal AutocompleteErrorEvent where
-  pToJSVal = unAutocompleteErrorEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal AutocompleteErrorEvent where
-  pFromJSVal = AutocompleteErrorEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal AutocompleteErrorEvent where
-  toJSVal = return . unAutocompleteErrorEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal AutocompleteErrorEvent where
-  fromJSVal = return . fmap AutocompleteErrorEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent AutocompleteErrorEvent
-instance IsGObject AutocompleteErrorEvent where
-  typeGType _ = gTypeAutocompleteErrorEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"AutocompleteErrorEvent\"]" gTypeAutocompleteErrorEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.BarProp".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/BarProp Mozilla BarProp documentation>
-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 #-}
-
-instance IsGObject BarProp where
-  typeGType _ = gTypeBarProp
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"BarProp\"]" gTypeBarProp :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.BatteryManager".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager Mozilla BatteryManager documentation>
-newtype BatteryManager = BatteryManager { unBatteryManager :: JSVal }
-
-instance Eq (BatteryManager) where
-  (BatteryManager a) == (BatteryManager b) = js_eq a b
-
-instance PToJSVal BatteryManager where
-  pToJSVal = unBatteryManager
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal BatteryManager where
-  pFromJSVal = BatteryManager
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal BatteryManager where
-  toJSVal = return . unBatteryManager
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal BatteryManager where
-  fromJSVal = return . fmap BatteryManager . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEventTarget BatteryManager
-instance IsGObject BatteryManager where
-  typeGType _ = gTypeBatteryManager
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"BatteryManager\"]" gTypeBatteryManager :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.BeforeLoadEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/BeforeLoadEvent Mozilla BeforeLoadEvent documentation>
-newtype BeforeLoadEvent = BeforeLoadEvent { unBeforeLoadEvent :: JSVal }
-
-instance Eq (BeforeLoadEvent) where
-  (BeforeLoadEvent a) == (BeforeLoadEvent b) = js_eq a b
-
-instance PToJSVal BeforeLoadEvent where
-  pToJSVal = unBeforeLoadEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal BeforeLoadEvent where
-  pFromJSVal = BeforeLoadEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal BeforeLoadEvent where
-  toJSVal = return . unBeforeLoadEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal BeforeLoadEvent where
-  fromJSVal = return . fmap BeforeLoadEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent BeforeLoadEvent
-instance IsGObject BeforeLoadEvent where
-  typeGType _ = gTypeBeforeLoadEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"BeforeLoadEvent\"]" gTypeBeforeLoadEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.BeforeUnloadEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/BeforeUnloadEvent Mozilla BeforeUnloadEvent documentation>
-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 #-}
-
-instance IsEvent BeforeUnloadEvent
-instance IsGObject BeforeUnloadEvent where
-  typeGType _ = gTypeBeforeUnloadEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"BeforeUnloadEvent\"]" gTypeBeforeUnloadEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.BiquadFilterNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode Mozilla BiquadFilterNode documentation>
-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 #-}
-
-instance IsAudioNode BiquadFilterNode
-instance IsEventTarget BiquadFilterNode
-instance IsGObject BiquadFilterNode where
-  typeGType _ = gTypeBiquadFilterNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"BiquadFilterNode\"]" gTypeBiquadFilterNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Blob".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Blob Mozilla Blob documentation>
-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 #-}
-
-class IsGObject o => IsBlob o
-toBlob :: IsBlob o => o -> Blob
-toBlob = Blob . coerce
-
-instance IsBlob Blob
-instance IsGObject Blob where
-  typeGType _ = gTypeBlob
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Blob\"]" gTypeBlob :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CDATASection".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Text"
---     * "GHCJS.DOM.CharacterData"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CDATASection Mozilla CDATASection documentation>
-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 #-}
-
-instance IsText CDATASection
-instance IsCharacterData CDATASection
-instance IsNode CDATASection
-instance IsEventTarget CDATASection
-instance IsGObject CDATASection where
-  typeGType _ = gTypeCDATASection
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CDATASection\"]" gTypeCDATASection :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSS".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSS Mozilla CSS documentation>
-newtype CSS = CSS { unCSS :: JSVal }
-
-instance Eq (CSS) where
-  (CSS a) == (CSS b) = js_eq a b
-
-instance PToJSVal CSS where
-  pToJSVal = unCSS
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CSS where
-  pFromJSVal = CSS
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CSS where
-  toJSVal = return . unCSS
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CSS where
-  fromJSVal = return . fmap CSS . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject CSS where
-  typeGType _ = gTypeCSS
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSS\"]" gTypeCSS :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSCharsetRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSCharsetRule Mozilla CSSCharsetRule documentation>
-newtype CSSCharsetRule = CSSCharsetRule { unCSSCharsetRule :: JSVal }
-
-instance Eq (CSSCharsetRule) where
-  (CSSCharsetRule a) == (CSSCharsetRule b) = js_eq a b
-
-instance PToJSVal CSSCharsetRule where
-  pToJSVal = unCSSCharsetRule
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CSSCharsetRule where
-  pFromJSVal = CSSCharsetRule
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CSSCharsetRule where
-  toJSVal = return . unCSSCharsetRule
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CSSCharsetRule where
-  fromJSVal = return . fmap CSSCharsetRule . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsCSSRule CSSCharsetRule
-instance IsGObject CSSCharsetRule where
-  typeGType _ = gTypeCSSCharsetRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSCharsetRule\"]" gTypeCSSCharsetRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSFontFaceLoadEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceLoadEvent Mozilla CSSFontFaceLoadEvent documentation>
-newtype CSSFontFaceLoadEvent = CSSFontFaceLoadEvent { unCSSFontFaceLoadEvent :: JSVal }
-
-instance Eq (CSSFontFaceLoadEvent) where
-  (CSSFontFaceLoadEvent a) == (CSSFontFaceLoadEvent b) = js_eq a b
-
-instance PToJSVal CSSFontFaceLoadEvent where
-  pToJSVal = unCSSFontFaceLoadEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CSSFontFaceLoadEvent where
-  pFromJSVal = CSSFontFaceLoadEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CSSFontFaceLoadEvent where
-  toJSVal = return . unCSSFontFaceLoadEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CSSFontFaceLoadEvent where
-  fromJSVal = return . fmap CSSFontFaceLoadEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent CSSFontFaceLoadEvent
-instance IsGObject CSSFontFaceLoadEvent where
-  typeGType _ = gTypeCSSFontFaceLoadEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSFontFaceLoadEvent\"]" gTypeCSSFontFaceLoadEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSFontFaceRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceRule Mozilla CSSFontFaceRule documentation>
-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 #-}
-
-instance IsCSSRule CSSFontFaceRule
-instance IsGObject CSSFontFaceRule where
-  typeGType _ = gTypeCSSFontFaceRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSFontFaceRule\"]" gTypeCSSFontFaceRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSImportRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule Mozilla CSSImportRule documentation>
-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 #-}
-
-instance IsCSSRule CSSImportRule
-instance IsGObject CSSImportRule where
-  typeGType _ = gTypeCSSImportRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSImportRule\"]" gTypeCSSImportRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSKeyframeRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule Mozilla CSSKeyframeRule documentation>
-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 #-}
-
-instance IsCSSRule CSSKeyframeRule
-instance IsGObject CSSKeyframeRule where
-  typeGType _ = gTypeCSSKeyframeRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSKeyframeRule\"]" gTypeCSSKeyframeRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSKeyframesRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule Mozilla CSSKeyframesRule documentation>
-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 #-}
-
-instance IsCSSRule CSSKeyframesRule
-instance IsGObject CSSKeyframesRule where
-  typeGType _ = gTypeCSSKeyframesRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSKeyframesRule\"]" gTypeCSSKeyframesRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSMediaRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule Mozilla CSSMediaRule documentation>
-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 #-}
-
-instance IsCSSRule CSSMediaRule
-instance IsGObject CSSMediaRule where
-  typeGType _ = gTypeCSSMediaRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSMediaRule\"]" gTypeCSSMediaRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSPageRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule Mozilla CSSPageRule documentation>
-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 #-}
-
-instance IsCSSRule CSSPageRule
-instance IsGObject CSSPageRule where
-  typeGType _ = gTypeCSSPageRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSPageRule\"]" gTypeCSSPageRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSPrimitiveValue".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSValue"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue Mozilla CSSPrimitiveValue documentation>
-newtype CSSPrimitiveValue = CSSPrimitiveValue { unCSSPrimitiveValue :: JSVal }
-
-instance Eq (CSSPrimitiveValue) where
-  (CSSPrimitiveValue a) == (CSSPrimitiveValue b) = js_eq a b
-
-instance PToJSVal CSSPrimitiveValue where
-  pToJSVal = unCSSPrimitiveValue
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CSSPrimitiveValue where
-  pFromJSVal = CSSPrimitiveValue
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CSSPrimitiveValue where
-  toJSVal = return . unCSSPrimitiveValue
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CSSPrimitiveValue where
-  fromJSVal = return . fmap CSSPrimitiveValue . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsCSSValue CSSPrimitiveValue
-instance IsGObject CSSPrimitiveValue where
-  typeGType _ = gTypeCSSPrimitiveValue
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSPrimitiveValue\"]" gTypeCSSPrimitiveValue :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSRule".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSRule Mozilla CSSRule documentation>
-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 #-}
-
-class IsGObject o => IsCSSRule o
-toCSSRule :: IsCSSRule o => o -> CSSRule
-toCSSRule = CSSRule . coerce
-
-instance IsCSSRule CSSRule
-instance IsGObject CSSRule where
-  typeGType _ = gTypeCSSRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSRule\"]" gTypeCSSRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSRuleList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList Mozilla CSSRuleList documentation>
-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 #-}
-
-instance IsGObject CSSRuleList where
-  typeGType _ = gTypeCSSRuleList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSRuleList\"]" gTypeCSSRuleList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSStyleDeclaration".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration Mozilla CSSStyleDeclaration documentation>
-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 #-}
-
-instance IsGObject CSSStyleDeclaration where
-  typeGType _ = gTypeCSSStyleDeclaration
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSStyleDeclaration\"]" gTypeCSSStyleDeclaration :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSStyleRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule Mozilla CSSStyleRule documentation>
-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 #-}
-
-instance IsCSSRule CSSStyleRule
-instance IsGObject CSSStyleRule where
-  typeGType _ = gTypeCSSStyleRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSStyleRule\"]" gTypeCSSStyleRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSStyleSheet".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.StyleSheet"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet Mozilla CSSStyleSheet documentation>
-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 #-}
-
-instance IsStyleSheet CSSStyleSheet
-instance IsGObject CSSStyleSheet where
-  typeGType _ = gTypeCSSStyleSheet
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSStyleSheet\"]" gTypeCSSStyleSheet :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSSupportsRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule Mozilla CSSSupportsRule documentation>
-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 #-}
-
-instance IsCSSRule CSSSupportsRule
-instance IsGObject CSSSupportsRule where
-  typeGType _ = gTypeCSSSupportsRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSSupportsRule\"]" gTypeCSSSupportsRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSUnknownRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSUnknownRule Mozilla CSSUnknownRule documentation>
-newtype CSSUnknownRule = CSSUnknownRule { unCSSUnknownRule :: JSVal }
-
-instance Eq (CSSUnknownRule) where
-  (CSSUnknownRule a) == (CSSUnknownRule b) = js_eq a b
-
-instance PToJSVal CSSUnknownRule where
-  pToJSVal = unCSSUnknownRule
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CSSUnknownRule where
-  pFromJSVal = CSSUnknownRule
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CSSUnknownRule where
-  toJSVal = return . unCSSUnknownRule
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CSSUnknownRule where
-  fromJSVal = return . fmap CSSUnknownRule . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsCSSRule CSSUnknownRule
-instance IsGObject CSSUnknownRule where
-  typeGType _ = gTypeCSSUnknownRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSUnknownRule\"]" gTypeCSSUnknownRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSValue".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSValue Mozilla CSSValue documentation>
-newtype CSSValue = CSSValue { unCSSValue :: JSVal }
-
-instance Eq (CSSValue) where
-  (CSSValue a) == (CSSValue b) = js_eq a b
-
-instance PToJSVal CSSValue where
-  pToJSVal = unCSSValue
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CSSValue where
-  pFromJSVal = CSSValue
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CSSValue where
-  toJSVal = return . unCSSValue
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CSSValue where
-  fromJSVal = return . fmap CSSValue . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsCSSValue o
-toCSSValue :: IsCSSValue o => o -> CSSValue
-toCSSValue = CSSValue . coerce
-
-instance IsCSSValue CSSValue
-instance IsGObject CSSValue where
-  typeGType _ = gTypeCSSValue
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSValue\"]" gTypeCSSValue :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CSSValueList".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSValue"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CSSValueList Mozilla CSSValueList documentation>
-newtype CSSValueList = CSSValueList { unCSSValueList :: JSVal }
-
-instance Eq (CSSValueList) where
-  (CSSValueList a) == (CSSValueList b) = js_eq a b
-
-instance PToJSVal CSSValueList where
-  pToJSVal = unCSSValueList
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CSSValueList where
-  pFromJSVal = CSSValueList
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CSSValueList where
-  toJSVal = return . unCSSValueList
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CSSValueList where
-  fromJSVal = return . fmap CSSValueList . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsCSSValue o => IsCSSValueList o
-toCSSValueList :: IsCSSValueList o => o -> CSSValueList
-toCSSValueList = CSSValueList . coerce
-
-instance IsCSSValueList CSSValueList
-instance IsCSSValue CSSValueList
-instance IsGObject CSSValueList where
-  typeGType _ = gTypeCSSValueList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CSSValueList\"]" gTypeCSSValueList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CanvasGradient".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasGradient Mozilla CanvasGradient documentation>
-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 #-}
-
-instance IsGObject CanvasGradient where
-  typeGType _ = gTypeCanvasGradient
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CanvasGradient\"]" gTypeCanvasGradient :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CanvasPattern".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPattern Mozilla CanvasPattern documentation>
-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 #-}
-
-instance IsGObject CanvasPattern where
-  typeGType _ = gTypeCanvasPattern
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CanvasPattern\"]" gTypeCanvasPattern :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CanvasProxy".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasProxy Mozilla CanvasProxy documentation>
-newtype CanvasProxy = CanvasProxy { unCanvasProxy :: JSVal }
-
-instance Eq (CanvasProxy) where
-  (CanvasProxy a) == (CanvasProxy b) = js_eq a b
-
-instance PToJSVal CanvasProxy where
-  pToJSVal = unCanvasProxy
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CanvasProxy where
-  pFromJSVal = CanvasProxy
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CanvasProxy where
-  toJSVal = return . unCanvasProxy
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CanvasProxy where
-  fromJSVal = return . fmap CanvasProxy . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject CanvasProxy where
-  typeGType _ = gTypeCanvasProxy
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CanvasProxy\"]" gTypeCanvasProxy :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CanvasRenderingContext".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext Mozilla CanvasRenderingContext documentation>
-newtype CanvasRenderingContext = CanvasRenderingContext { unCanvasRenderingContext :: JSVal }
-
-instance Eq (CanvasRenderingContext) where
-  (CanvasRenderingContext a) == (CanvasRenderingContext b) = js_eq a b
-
-instance PToJSVal CanvasRenderingContext where
-  pToJSVal = unCanvasRenderingContext
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CanvasRenderingContext where
-  pFromJSVal = CanvasRenderingContext
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CanvasRenderingContext where
-  toJSVal = return . unCanvasRenderingContext
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CanvasRenderingContext where
-  fromJSVal = return . fmap CanvasRenderingContext . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsCanvasRenderingContext o
-toCanvasRenderingContext :: IsCanvasRenderingContext o => o -> CanvasRenderingContext
-toCanvasRenderingContext = CanvasRenderingContext . coerce
-
-instance IsCanvasRenderingContext CanvasRenderingContext
-instance IsGObject CanvasRenderingContext where
-  typeGType _ = gTypeCanvasRenderingContext
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CanvasRenderingContext\"]" gTypeCanvasRenderingContext :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CanvasRenderingContext2D".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CanvasRenderingContext"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D Mozilla CanvasRenderingContext2D documentation>
-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 #-}
-
-instance IsCanvasRenderingContext CanvasRenderingContext2D
-instance IsGObject CanvasRenderingContext2D where
-  typeGType _ = gTypeCanvasRenderingContext2D
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CanvasRenderingContext2D\"]" gTypeCanvasRenderingContext2D :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CapabilityRange".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CapabilityRange Mozilla CapabilityRange documentation>
-newtype CapabilityRange = CapabilityRange { unCapabilityRange :: JSVal }
-
-instance Eq (CapabilityRange) where
-  (CapabilityRange a) == (CapabilityRange b) = js_eq a b
-
-instance PToJSVal CapabilityRange where
-  pToJSVal = unCapabilityRange
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CapabilityRange where
-  pFromJSVal = CapabilityRange
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CapabilityRange where
-  toJSVal = return . unCapabilityRange
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CapabilityRange where
-  fromJSVal = return . fmap CapabilityRange . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject CapabilityRange where
-  typeGType _ = gTypeCapabilityRange
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CapabilityRange\"]" gTypeCapabilityRange :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ChannelMergerNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ChannelMergerNode Mozilla ChannelMergerNode documentation>
-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 #-}
-
-instance IsAudioNode ChannelMergerNode
-instance IsEventTarget ChannelMergerNode
-instance IsGObject ChannelMergerNode where
-  typeGType _ = gTypeChannelMergerNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ChannelMergerNode\"]" gTypeChannelMergerNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ChannelSplitterNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ChannelSplitterNode Mozilla ChannelSplitterNode documentation>
-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 #-}
-
-instance IsAudioNode ChannelSplitterNode
-instance IsEventTarget ChannelSplitterNode
-instance IsGObject ChannelSplitterNode where
-  typeGType _ = gTypeChannelSplitterNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ChannelSplitterNode\"]" gTypeChannelSplitterNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CharacterData".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CharacterData Mozilla CharacterData documentation>
-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 #-}
-
-class IsNode o => IsCharacterData o
-toCharacterData :: IsCharacterData o => o -> CharacterData
-toCharacterData = CharacterData . coerce
-
-instance IsCharacterData CharacterData
-instance IsNode CharacterData
-instance IsEventTarget CharacterData
-instance IsGObject CharacterData where
-  typeGType _ = gTypeCharacterData
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CharacterData\"]" gTypeCharacterData :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ChildNode".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ChildNode Mozilla ChildNode documentation>
-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 #-}
-
-instance IsGObject ChildNode where
-  typeGType _ = gTypeChildNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ChildNode\"]" gTypeChildNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ClientRect".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ClientRect Mozilla ClientRect documentation>
-newtype ClientRect = ClientRect { unClientRect :: JSVal }
-
-instance Eq (ClientRect) where
-  (ClientRect a) == (ClientRect b) = js_eq a b
-
-instance PToJSVal ClientRect where
-  pToJSVal = unClientRect
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal ClientRect where
-  pFromJSVal = ClientRect
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal ClientRect where
-  toJSVal = return . unClientRect
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal ClientRect where
-  fromJSVal = return . fmap ClientRect . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject ClientRect where
-  typeGType _ = gTypeClientRect
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ClientRect\"]" gTypeClientRect :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ClientRectList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ClientRectList Mozilla ClientRectList documentation>
-newtype ClientRectList = ClientRectList { unClientRectList :: JSVal }
-
-instance Eq (ClientRectList) where
-  (ClientRectList a) == (ClientRectList b) = js_eq a b
-
-instance PToJSVal ClientRectList where
-  pToJSVal = unClientRectList
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal ClientRectList where
-  pFromJSVal = ClientRectList
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal ClientRectList where
-  toJSVal = return . unClientRectList
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal ClientRectList where
-  fromJSVal = return . fmap ClientRectList . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject ClientRectList where
-  typeGType _ = gTypeClientRectList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ClientRectList\"]" gTypeClientRectList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CloseEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent Mozilla CloseEvent documentation>
-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 #-}
-
-instance IsEvent CloseEvent
-instance IsGObject CloseEvent where
-  typeGType _ = gTypeCloseEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CloseEvent\"]" gTypeCloseEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CommandLineAPIHost".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost Mozilla CommandLineAPIHost documentation>
-newtype CommandLineAPIHost = CommandLineAPIHost { unCommandLineAPIHost :: JSVal }
-
-instance Eq (CommandLineAPIHost) where
-  (CommandLineAPIHost a) == (CommandLineAPIHost b) = js_eq a b
-
-instance PToJSVal CommandLineAPIHost where
-  pToJSVal = unCommandLineAPIHost
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal CommandLineAPIHost where
-  pFromJSVal = CommandLineAPIHost
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal CommandLineAPIHost where
-  toJSVal = return . unCommandLineAPIHost
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal CommandLineAPIHost where
-  fromJSVal = return . fmap CommandLineAPIHost . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject CommandLineAPIHost where
-  typeGType _ = gTypeCommandLineAPIHost
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CommandLineAPIHost\"]" gTypeCommandLineAPIHost :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Comment".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CharacterData"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Comment Mozilla Comment documentation>
-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 #-}
-
-instance IsCharacterData Comment
-instance IsNode Comment
-instance IsEventTarget Comment
-instance IsGObject Comment where
-  typeGType _ = gTypeComment
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Comment\"]" gTypeComment :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CompositionEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.UIEvent"
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent Mozilla CompositionEvent documentation>
-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 #-}
-
-instance IsUIEvent CompositionEvent
-instance IsEvent CompositionEvent
-instance IsGObject CompositionEvent where
-  typeGType _ = gTypeCompositionEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CompositionEvent\"]" gTypeCompositionEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ConvolverNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode Mozilla ConvolverNode documentation>
-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 #-}
-
-instance IsAudioNode ConvolverNode
-instance IsEventTarget ConvolverNode
-instance IsGObject ConvolverNode where
-  typeGType _ = gTypeConvolverNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ConvolverNode\"]" gTypeConvolverNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Coordinates".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates Mozilla Coordinates documentation>
-newtype Coordinates = Coordinates { unCoordinates :: JSVal }
-
-instance Eq (Coordinates) where
-  (Coordinates a) == (Coordinates b) = js_eq a b
-
-instance PToJSVal Coordinates where
-  pToJSVal = unCoordinates
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal Coordinates where
-  pFromJSVal = Coordinates
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal Coordinates where
-  toJSVal = return . unCoordinates
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal Coordinates where
-  fromJSVal = return . fmap Coordinates . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject Coordinates where
-  typeGType _ = gTypeCoordinates
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Coordinates\"]" gTypeCoordinates :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Counter".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Counter Mozilla Counter documentation>
-newtype Counter = Counter { unCounter :: JSVal }
-
-instance Eq (Counter) where
-  (Counter a) == (Counter b) = js_eq a b
-
-instance PToJSVal Counter where
-  pToJSVal = unCounter
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal Counter where
-  pFromJSVal = Counter
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal Counter where
-  toJSVal = return . unCounter
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal Counter where
-  fromJSVal = return . fmap Counter . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject Counter where
-  typeGType _ = gTypeCounter
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Counter\"]" gTypeCounter :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Crypto".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Crypto Mozilla Crypto documentation>
-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 #-}
-
-instance IsGObject Crypto where
-  typeGType _ = gTypeCrypto
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Crypto\"]" gTypeCrypto :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CryptoKey".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey Mozilla CryptoKey documentation>
-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 #-}
-
-instance IsGObject CryptoKey where
-  typeGType _ = gTypeCryptoKey
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CryptoKey\"]" gTypeCryptoKey :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CryptoKeyPair".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKeyPair Mozilla CryptoKeyPair documentation>
-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 #-}
-
-instance IsGObject CryptoKeyPair where
-  typeGType _ = gTypeCryptoKeyPair
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CryptoKeyPair\"]" gTypeCryptoKeyPair :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.CustomEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent Mozilla CustomEvent documentation>
-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 #-}
-
-instance IsEvent CustomEvent
-instance IsGObject CustomEvent where
-  typeGType _ = gTypeCustomEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"CustomEvent\"]" gTypeCustomEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DOMError".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DOMError Mozilla DOMError documentation>
-newtype DOMError = DOMError { unDOMError :: JSVal }
-
-instance Eq (DOMError) where
-  (DOMError a) == (DOMError b) = js_eq a b
-
-instance PToJSVal DOMError where
-  pToJSVal = unDOMError
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal DOMError where
-  pFromJSVal = DOMError
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal DOMError where
-  toJSVal = return . unDOMError
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal DOMError where
-  fromJSVal = return . fmap DOMError . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsDOMError o
-toDOMError :: IsDOMError o => o -> DOMError
-toDOMError = DOMError . coerce
-
-instance IsDOMError DOMError
-instance IsGObject DOMError where
-  typeGType _ = gTypeDOMError
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DOMError\"]" gTypeDOMError :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DOMImplementation".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation Mozilla DOMImplementation documentation>
-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 #-}
-
-instance IsGObject DOMImplementation where
-  typeGType _ = gTypeDOMImplementation
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DOMImplementation\"]" gTypeDOMImplementation :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DOMNamedFlowCollection".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection Mozilla WebKitNamedFlowCollection documentation>
-newtype DOMNamedFlowCollection = DOMNamedFlowCollection { unDOMNamedFlowCollection :: JSVal }
-
-instance Eq (DOMNamedFlowCollection) where
-  (DOMNamedFlowCollection a) == (DOMNamedFlowCollection b) = js_eq a b
-
-instance PToJSVal DOMNamedFlowCollection where
-  pToJSVal = unDOMNamedFlowCollection
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal DOMNamedFlowCollection where
-  pFromJSVal = DOMNamedFlowCollection
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal DOMNamedFlowCollection where
-  toJSVal = return . unDOMNamedFlowCollection
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal DOMNamedFlowCollection where
-  fromJSVal = return . fmap DOMNamedFlowCollection . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject DOMNamedFlowCollection where
-  typeGType _ = gTypeDOMNamedFlowCollection
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitNamedFlowCollection\"]" gTypeDOMNamedFlowCollection :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DOMParser".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DOMParser Mozilla DOMParser documentation>
-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 #-}
-
-instance IsGObject DOMParser where
-  typeGType _ = gTypeDOMParser
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DOMParser\"]" gTypeDOMParser :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DOMSettableTokenList".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.DOMTokenList"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DOMSettableTokenList Mozilla DOMSettableTokenList documentation>
-newtype DOMSettableTokenList = DOMSettableTokenList { unDOMSettableTokenList :: JSVal }
-
-instance Eq (DOMSettableTokenList) where
-  (DOMSettableTokenList a) == (DOMSettableTokenList b) = js_eq a b
-
-instance PToJSVal DOMSettableTokenList where
-  pToJSVal = unDOMSettableTokenList
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal DOMSettableTokenList where
-  pFromJSVal = DOMSettableTokenList
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal DOMSettableTokenList where
-  toJSVal = return . unDOMSettableTokenList
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal DOMSettableTokenList where
-  fromJSVal = return . fmap DOMSettableTokenList . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsDOMTokenList DOMSettableTokenList
-instance IsGObject DOMSettableTokenList where
-  typeGType _ = gTypeDOMSettableTokenList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DOMSettableTokenList\"]" gTypeDOMSettableTokenList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DOMStringList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringList Mozilla DOMStringList documentation>
-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 #-}
-
-instance IsGObject DOMStringList where
-  typeGType _ = gTypeDOMStringList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DOMStringList\"]" gTypeDOMStringList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DOMStringMap".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringMap Mozilla DOMStringMap documentation>
-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 #-}
-
-instance IsGObject DOMStringMap where
-  typeGType _ = gTypeDOMStringMap
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DOMStringMap\"]" gTypeDOMStringMap :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DOMTokenList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList Mozilla DOMTokenList documentation>
-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 #-}
-
-class IsGObject o => IsDOMTokenList o
-toDOMTokenList :: IsDOMTokenList o => o -> DOMTokenList
-toDOMTokenList = DOMTokenList . coerce
-
-instance IsDOMTokenList DOMTokenList
-instance IsGObject DOMTokenList where
-  typeGType _ = gTypeDOMTokenList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DOMTokenList\"]" gTypeDOMTokenList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DataCue".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.TextTrackCue"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue Mozilla WebKitDataCue documentation>
-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 #-}
-
-instance IsTextTrackCue DataCue
-instance IsEventTarget DataCue
-instance IsGObject DataCue where
-  typeGType _ = gTypeDataCue
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitDataCue\"]" gTypeDataCue :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DataTransfer".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer Mozilla DataTransfer documentation>
-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 #-}
-
-instance IsGObject DataTransfer where
-  typeGType _ = gTypeDataTransfer
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DataTransfer\"]" gTypeDataTransfer :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DataTransferItem".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem Mozilla DataTransferItem documentation>
-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 #-}
-
-instance IsGObject DataTransferItem where
-  typeGType _ = gTypeDataTransferItem
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DataTransferItem\"]" gTypeDataTransferItem :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DataTransferItemList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList Mozilla DataTransferItemList documentation>
-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 #-}
-
-instance IsGObject DataTransferItemList where
-  typeGType _ = gTypeDataTransferItemList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DataTransferItemList\"]" gTypeDataTransferItemList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Database".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Database Mozilla Database documentation>
-newtype Database = Database { unDatabase :: JSVal }
-
-instance Eq (Database) where
-  (Database a) == (Database b) = js_eq a b
-
-instance PToJSVal Database where
-  pToJSVal = unDatabase
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal Database where
-  pFromJSVal = Database
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal Database where
-  toJSVal = return . unDatabase
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal Database where
-  fromJSVal = return . fmap Database . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject Database where
-  typeGType _ = gTypeDatabase
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Database\"]" gTypeDatabase :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DedicatedWorkerGlobalScope".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.WorkerGlobalScope"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope Mozilla DedicatedWorkerGlobalScope documentation>
-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 #-}
-
-instance IsWorkerGlobalScope DedicatedWorkerGlobalScope
-instance IsEventTarget DedicatedWorkerGlobalScope
-instance IsGObject DedicatedWorkerGlobalScope where
-  typeGType _ = gTypeDedicatedWorkerGlobalScope
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DedicatedWorkerGlobalScope\"]" gTypeDedicatedWorkerGlobalScope :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DelayNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DelayNode Mozilla DelayNode documentation>
-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 #-}
-
-instance IsAudioNode DelayNode
-instance IsEventTarget DelayNode
-instance IsGObject DelayNode where
-  typeGType _ = gTypeDelayNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DelayNode\"]" gTypeDelayNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DeviceMotionEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent Mozilla DeviceMotionEvent documentation>
-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 #-}
-
-instance IsEvent DeviceMotionEvent
-instance IsGObject DeviceMotionEvent where
-  typeGType _ = gTypeDeviceMotionEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DeviceMotionEvent\"]" gTypeDeviceMotionEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DeviceOrientationEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent Mozilla DeviceOrientationEvent documentation>
-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 #-}
-
-instance IsEvent DeviceOrientationEvent
-instance IsGObject DeviceOrientationEvent where
-  typeGType _ = gTypeDeviceOrientationEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DeviceOrientationEvent\"]" gTypeDeviceOrientationEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DeviceProximityEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DeviceProximityEvent Mozilla DeviceProximityEvent documentation>
-newtype DeviceProximityEvent = DeviceProximityEvent { unDeviceProximityEvent :: JSVal }
-
-instance Eq (DeviceProximityEvent) where
-  (DeviceProximityEvent a) == (DeviceProximityEvent b) = js_eq a b
-
-instance PToJSVal DeviceProximityEvent where
-  pToJSVal = unDeviceProximityEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal DeviceProximityEvent where
-  pFromJSVal = DeviceProximityEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal DeviceProximityEvent where
-  toJSVal = return . unDeviceProximityEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal DeviceProximityEvent where
-  fromJSVal = return . fmap DeviceProximityEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent DeviceProximityEvent
-instance IsGObject DeviceProximityEvent where
-  typeGType _ = gTypeDeviceProximityEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DeviceProximityEvent\"]" gTypeDeviceProximityEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Document".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Document Mozilla Document documentation>
-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 #-}
-
-class IsNode o => IsDocument o
-toDocument :: IsDocument o => o -> Document
-toDocument = Document . coerce
-
-instance IsDocument Document
-instance IsNode Document
-instance IsEventTarget Document
-instance IsGObject Document where
-  typeGType _ = gTypeDocument
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Document\"]" gTypeDocument :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DocumentFragment".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment Mozilla DocumentFragment documentation>
-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 #-}
-
-instance IsNode DocumentFragment
-instance IsEventTarget DocumentFragment
-instance IsGObject DocumentFragment where
-  typeGType _ = gTypeDocumentFragment
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DocumentFragment\"]" gTypeDocumentFragment :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DocumentType".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType Mozilla DocumentType documentation>
-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 #-}
-
-instance IsNode DocumentType
-instance IsEventTarget DocumentType
-instance IsGObject DocumentType where
-  typeGType _ = gTypeDocumentType
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DocumentType\"]" gTypeDocumentType :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.DynamicsCompressorNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode Mozilla DynamicsCompressorNode documentation>
-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 #-}
-
-instance IsAudioNode DynamicsCompressorNode
-instance IsEventTarget DynamicsCompressorNode
-instance IsGObject DynamicsCompressorNode where
-  typeGType _ = gTypeDynamicsCompressorNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"DynamicsCompressorNode\"]" gTypeDynamicsCompressorNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.EXTBlendMinMax".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/EXTBlendMinMax Mozilla EXTBlendMinMax documentation>
-newtype EXTBlendMinMax = EXTBlendMinMax { unEXTBlendMinMax :: JSVal }
-
-instance Eq (EXTBlendMinMax) where
-  (EXTBlendMinMax a) == (EXTBlendMinMax b) = js_eq a b
-
-instance PToJSVal EXTBlendMinMax where
-  pToJSVal = unEXTBlendMinMax
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal EXTBlendMinMax where
-  pFromJSVal = EXTBlendMinMax
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal EXTBlendMinMax where
-  toJSVal = return . unEXTBlendMinMax
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal EXTBlendMinMax where
-  fromJSVal = return . fmap EXTBlendMinMax . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject EXTBlendMinMax where
-  typeGType _ = gTypeEXTBlendMinMax
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"EXTBlendMinMax\"]" gTypeEXTBlendMinMax :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.EXTFragDepth".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/EXTFragDepth Mozilla EXTFragDepth documentation>
-newtype EXTFragDepth = EXTFragDepth { unEXTFragDepth :: JSVal }
-
-instance Eq (EXTFragDepth) where
-  (EXTFragDepth a) == (EXTFragDepth b) = js_eq a b
-
-instance PToJSVal EXTFragDepth where
-  pToJSVal = unEXTFragDepth
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal EXTFragDepth where
-  pFromJSVal = EXTFragDepth
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal EXTFragDepth where
-  toJSVal = return . unEXTFragDepth
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal EXTFragDepth where
-  fromJSVal = return . fmap EXTFragDepth . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject EXTFragDepth where
-  typeGType _ = gTypeEXTFragDepth
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"EXTFragDepth\"]" gTypeEXTFragDepth :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.EXTShaderTextureLOD".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/EXTShaderTextureLOD Mozilla EXTShaderTextureLOD documentation>
-newtype EXTShaderTextureLOD = EXTShaderTextureLOD { unEXTShaderTextureLOD :: JSVal }
-
-instance Eq (EXTShaderTextureLOD) where
-  (EXTShaderTextureLOD a) == (EXTShaderTextureLOD b) = js_eq a b
-
-instance PToJSVal EXTShaderTextureLOD where
-  pToJSVal = unEXTShaderTextureLOD
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal EXTShaderTextureLOD where
-  pFromJSVal = EXTShaderTextureLOD
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal EXTShaderTextureLOD where
-  toJSVal = return . unEXTShaderTextureLOD
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal EXTShaderTextureLOD where
-  fromJSVal = return . fmap EXTShaderTextureLOD . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject EXTShaderTextureLOD where
-  typeGType _ = gTypeEXTShaderTextureLOD
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"EXTShaderTextureLOD\"]" gTypeEXTShaderTextureLOD :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.EXTTextureFilterAnisotropic".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/EXTTextureFilterAnisotropic Mozilla EXTTextureFilterAnisotropic documentation>
-newtype EXTTextureFilterAnisotropic = EXTTextureFilterAnisotropic { unEXTTextureFilterAnisotropic :: JSVal }
-
-instance Eq (EXTTextureFilterAnisotropic) where
-  (EXTTextureFilterAnisotropic a) == (EXTTextureFilterAnisotropic b) = js_eq a b
-
-instance PToJSVal EXTTextureFilterAnisotropic where
-  pToJSVal = unEXTTextureFilterAnisotropic
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal EXTTextureFilterAnisotropic where
-  pFromJSVal = EXTTextureFilterAnisotropic
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal EXTTextureFilterAnisotropic where
-  toJSVal = return . unEXTTextureFilterAnisotropic
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal EXTTextureFilterAnisotropic where
-  fromJSVal = return . fmap EXTTextureFilterAnisotropic . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject EXTTextureFilterAnisotropic where
-  typeGType _ = gTypeEXTTextureFilterAnisotropic
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"EXTTextureFilterAnisotropic\"]" gTypeEXTTextureFilterAnisotropic :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.EXTsRGB".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/EXTsRGB Mozilla EXTsRGB documentation>
-newtype EXTsRGB = EXTsRGB { unEXTsRGB :: JSVal }
-
-instance Eq (EXTsRGB) where
-  (EXTsRGB a) == (EXTsRGB b) = js_eq a b
-
-instance PToJSVal EXTsRGB where
-  pToJSVal = unEXTsRGB
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal EXTsRGB where
-  pFromJSVal = EXTsRGB
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal EXTsRGB where
-  toJSVal = return . unEXTsRGB
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal EXTsRGB where
-  fromJSVal = return . fmap EXTsRGB . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject EXTsRGB where
-  typeGType _ = gTypeEXTsRGB
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"EXTsRGB\"]" gTypeEXTsRGB :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Element".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Element Mozilla Element documentation>
-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 #-}
-
-class IsNode o => IsElement o
-toElement :: IsElement o => o -> Element
-toElement = Element . coerce
-
-instance IsElement Element
-instance IsNode Element
-instance IsEventTarget Element
-instance IsGObject Element where
-  typeGType _ = gTypeElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Element\"]" gTypeElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Entity".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Entity Mozilla Entity documentation>
-newtype Entity = Entity { unEntity :: JSVal }
-
-instance Eq (Entity) where
-  (Entity a) == (Entity b) = js_eq a b
-
-instance PToJSVal Entity where
-  pToJSVal = unEntity
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal Entity where
-  pFromJSVal = Entity
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal Entity where
-  toJSVal = return . unEntity
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal Entity where
-  fromJSVal = return . fmap Entity . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsNode Entity
-instance IsEventTarget Entity
-instance IsGObject Entity where
-  typeGType _ = gTypeEntity
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Entity\"]" gTypeEntity :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.EntityReference".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/EntityReference Mozilla EntityReference documentation>
-newtype EntityReference = EntityReference { unEntityReference :: JSVal }
-
-instance Eq (EntityReference) where
-  (EntityReference a) == (EntityReference b) = js_eq a b
-
-instance PToJSVal EntityReference where
-  pToJSVal = unEntityReference
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal EntityReference where
-  pFromJSVal = EntityReference
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal EntityReference where
-  toJSVal = return . unEntityReference
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal EntityReference where
-  fromJSVal = return . fmap EntityReference . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsNode EntityReference
-instance IsEventTarget EntityReference
-instance IsGObject EntityReference where
-  typeGType _ = gTypeEntityReference
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"EntityReference\"]" gTypeEntityReference :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ErrorEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent Mozilla ErrorEvent documentation>
-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 #-}
-
-instance IsEvent ErrorEvent
-instance IsGObject ErrorEvent where
-  typeGType _ = gTypeErrorEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ErrorEvent\"]" gTypeErrorEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Event".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Event Mozilla Event documentation>
-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 #-}
-
-class IsGObject o => IsEvent o
-toEvent :: IsEvent o => o -> Event
-toEvent = Event . coerce
-
-instance IsEvent Event
-instance IsGObject Event where
-  typeGType _ = gTypeEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Event\"]" gTypeEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.EventListener".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/EventListener Mozilla EventListener documentation>
-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 #-}
-
-instance IsGObject EventListener where
-  typeGType _ = gTypeEventListener
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"EventListener\"]" gTypeEventListener :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.EventSource".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/EventSource Mozilla EventSource documentation>
-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 #-}
-
-instance IsEventTarget EventSource
-instance IsGObject EventSource where
-  typeGType _ = gTypeEventSource
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"EventSource\"]" gTypeEventSource :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.EventTarget".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/EventTarget Mozilla EventTarget documentation>
-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 #-}
-
-class IsGObject o => IsEventTarget o
-toEventTarget :: IsEventTarget o => o -> EventTarget
-toEventTarget = EventTarget . coerce
-
-instance IsEventTarget EventTarget
-instance IsGObject EventTarget where
-  typeGType _ = gTypeEventTarget
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"EventTarget\"]" gTypeEventTarget :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.File".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Blob"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/File Mozilla File documentation>
-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 #-}
-
-instance IsBlob File
-instance IsGObject File where
-  typeGType _ = gTypeFile
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"File\"]" gTypeFile :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.FileError".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/FileError Mozilla FileError documentation>
-newtype FileError = FileError { unFileError :: JSVal }
-
-instance Eq (FileError) where
-  (FileError a) == (FileError b) = js_eq a b
-
-instance PToJSVal FileError where
-  pToJSVal = unFileError
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal FileError where
-  pFromJSVal = FileError
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal FileError where
-  toJSVal = return . unFileError
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal FileError where
-  fromJSVal = return . fmap FileError . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject FileError where
-  typeGType _ = gTypeFileError
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"FileError\"]" gTypeFileError :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.FileList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/FileList Mozilla FileList documentation>
-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 #-}
-
-instance IsGObject FileList where
-  typeGType _ = gTypeFileList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"FileList\"]" gTypeFileList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.FileReader".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/FileReader Mozilla FileReader documentation>
-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 #-}
-
-instance IsEventTarget FileReader
-instance IsGObject FileReader where
-  typeGType _ = gTypeFileReader
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"FileReader\"]" gTypeFileReader :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.FileReaderSync".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync Mozilla FileReaderSync documentation>
-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 #-}
-
-instance IsGObject FileReaderSync where
-  typeGType _ = gTypeFileReaderSync
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"FileReaderSync\"]" gTypeFileReaderSync :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.FocusEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.UIEvent"
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent Mozilla FocusEvent documentation>
-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 #-}
-
-instance IsUIEvent FocusEvent
-instance IsEvent FocusEvent
-instance IsGObject FocusEvent where
-  typeGType _ = gTypeFocusEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"FocusEvent\"]" gTypeFocusEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.FontLoader".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/FontLoader Mozilla FontLoader documentation>
-newtype FontLoader = FontLoader { unFontLoader :: JSVal }
-
-instance Eq (FontLoader) where
-  (FontLoader a) == (FontLoader b) = js_eq a b
-
-instance PToJSVal FontLoader where
-  pToJSVal = unFontLoader
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal FontLoader where
-  pFromJSVal = FontLoader
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal FontLoader where
-  toJSVal = return . unFontLoader
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal FontLoader where
-  fromJSVal = return . fmap FontLoader . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEventTarget FontLoader
-instance IsGObject FontLoader where
-  typeGType _ = gTypeFontLoader
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"FontLoader\"]" gTypeFontLoader :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.FormData".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/FormData Mozilla FormData documentation>
-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 #-}
-
-instance IsGObject FormData where
-  typeGType _ = gTypeFormData
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"FormData\"]" gTypeFormData :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.GainNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/GainNode Mozilla GainNode documentation>
-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 #-}
-
-instance IsAudioNode GainNode
-instance IsEventTarget GainNode
-instance IsGObject GainNode where
-  typeGType _ = gTypeGainNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"GainNode\"]" gTypeGainNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Gamepad".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Gamepad Mozilla Gamepad documentation>
-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 #-}
-
-instance IsGObject Gamepad where
-  typeGType _ = gTypeGamepad
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Gamepad\"]" gTypeGamepad :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.GamepadButton".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton Mozilla GamepadButton documentation>
-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 #-}
-
-instance IsGObject GamepadButton where
-  typeGType _ = gTypeGamepadButton
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"GamepadButton\"]" gTypeGamepadButton :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.GamepadEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent Mozilla GamepadEvent documentation>
-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 #-}
-
-instance IsEvent GamepadEvent
-instance IsGObject GamepadEvent where
-  typeGType _ = gTypeGamepadEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"GamepadEvent\"]" gTypeGamepadEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Geolocation".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Geolocation Mozilla Geolocation documentation>
-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 #-}
-
-instance IsGObject Geolocation where
-  typeGType _ = gTypeGeolocation
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Geolocation\"]" gTypeGeolocation :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Geoposition".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Geoposition Mozilla Geoposition documentation>
-newtype Geoposition = Geoposition { unGeoposition :: JSVal }
-
-instance Eq (Geoposition) where
-  (Geoposition a) == (Geoposition b) = js_eq a b
-
-instance PToJSVal Geoposition where
-  pToJSVal = unGeoposition
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal Geoposition where
-  pFromJSVal = Geoposition
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal Geoposition where
-  toJSVal = return . unGeoposition
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal Geoposition where
-  fromJSVal = return . fmap Geoposition . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject Geoposition where
-  typeGType _ = gTypeGeoposition
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Geoposition\"]" gTypeGeoposition :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLAllCollection".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection Mozilla HTMLAllCollection documentation>
-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 #-}
-
-instance IsGObject HTMLAllCollection where
-  typeGType _ = gTypeHTMLAllCollection
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLAllCollection\"]" gTypeHTMLAllCollection :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLAnchorElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement Mozilla HTMLAnchorElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLAnchorElement
-instance IsElement HTMLAnchorElement
-instance IsNode HTMLAnchorElement
-instance IsEventTarget HTMLAnchorElement
-instance IsGObject HTMLAnchorElement where
-  typeGType _ = gTypeHTMLAnchorElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLAnchorElement\"]" gTypeHTMLAnchorElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLAppletElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement Mozilla HTMLAppletElement documentation>
-newtype HTMLAppletElement = HTMLAppletElement { unHTMLAppletElement :: JSVal }
-
-instance Eq (HTMLAppletElement) where
-  (HTMLAppletElement a) == (HTMLAppletElement b) = js_eq a b
-
-instance PToJSVal HTMLAppletElement where
-  pToJSVal = unHTMLAppletElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal HTMLAppletElement where
-  pFromJSVal = HTMLAppletElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal HTMLAppletElement where
-  toJSVal = return . unHTMLAppletElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal HTMLAppletElement where
-  fromJSVal = return . fmap HTMLAppletElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsHTMLElement HTMLAppletElement
-instance IsElement HTMLAppletElement
-instance IsNode HTMLAppletElement
-instance IsEventTarget HTMLAppletElement
-instance IsGObject HTMLAppletElement where
-  typeGType _ = gTypeHTMLAppletElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLAppletElement\"]" gTypeHTMLAppletElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLAreaElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement Mozilla HTMLAreaElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLAreaElement
-instance IsElement HTMLAreaElement
-instance IsNode HTMLAreaElement
-instance IsEventTarget HTMLAreaElement
-instance IsGObject HTMLAreaElement where
-  typeGType _ = gTypeHTMLAreaElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLAreaElement\"]" gTypeHTMLAreaElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLAudioElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLMediaElement"
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement Mozilla HTMLAudioElement documentation>
-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 #-}
-
-instance IsHTMLMediaElement HTMLAudioElement
-instance IsHTMLElement HTMLAudioElement
-instance IsElement HTMLAudioElement
-instance IsNode HTMLAudioElement
-instance IsEventTarget HTMLAudioElement
-instance IsGObject HTMLAudioElement where
-  typeGType _ = gTypeHTMLAudioElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLAudioElement\"]" gTypeHTMLAudioElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLBRElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement Mozilla HTMLBRElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLBRElement
-instance IsElement HTMLBRElement
-instance IsNode HTMLBRElement
-instance IsEventTarget HTMLBRElement
-instance IsGObject HTMLBRElement where
-  typeGType _ = gTypeHTMLBRElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLBRElement\"]" gTypeHTMLBRElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLBaseElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement Mozilla HTMLBaseElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLBaseElement
-instance IsElement HTMLBaseElement
-instance IsNode HTMLBaseElement
-instance IsEventTarget HTMLBaseElement
-instance IsGObject HTMLBaseElement where
-  typeGType _ = gTypeHTMLBaseElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLBaseElement\"]" gTypeHTMLBaseElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLBaseFontElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseFontElement Mozilla HTMLBaseFontElement documentation>
-newtype HTMLBaseFontElement = HTMLBaseFontElement { unHTMLBaseFontElement :: JSVal }
-
-instance Eq (HTMLBaseFontElement) where
-  (HTMLBaseFontElement a) == (HTMLBaseFontElement b) = js_eq a b
-
-instance PToJSVal HTMLBaseFontElement where
-  pToJSVal = unHTMLBaseFontElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal HTMLBaseFontElement where
-  pFromJSVal = HTMLBaseFontElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal HTMLBaseFontElement where
-  toJSVal = return . unHTMLBaseFontElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal HTMLBaseFontElement where
-  fromJSVal = return . fmap HTMLBaseFontElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsHTMLElement HTMLBaseFontElement
-instance IsElement HTMLBaseFontElement
-instance IsNode HTMLBaseFontElement
-instance IsEventTarget HTMLBaseFontElement
-instance IsGObject HTMLBaseFontElement where
-  typeGType _ = gTypeHTMLBaseFontElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLBaseFontElement\"]" gTypeHTMLBaseFontElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLBodyElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement Mozilla HTMLBodyElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLBodyElement
-instance IsElement HTMLBodyElement
-instance IsNode HTMLBodyElement
-instance IsEventTarget HTMLBodyElement
-instance IsGObject HTMLBodyElement where
-  typeGType _ = gTypeHTMLBodyElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLBodyElement\"]" gTypeHTMLBodyElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLButtonElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement Mozilla HTMLButtonElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLButtonElement
-instance IsElement HTMLButtonElement
-instance IsNode HTMLButtonElement
-instance IsEventTarget HTMLButtonElement
-instance IsGObject HTMLButtonElement where
-  typeGType _ = gTypeHTMLButtonElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLButtonElement\"]" gTypeHTMLButtonElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLCanvasElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement Mozilla HTMLCanvasElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLCanvasElement
-instance IsElement HTMLCanvasElement
-instance IsNode HTMLCanvasElement
-instance IsEventTarget HTMLCanvasElement
-instance IsGObject HTMLCanvasElement where
-  typeGType _ = gTypeHTMLCanvasElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLCanvasElement\"]" gTypeHTMLCanvasElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLCollection".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection Mozilla HTMLCollection documentation>
-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 #-}
-
-class IsGObject o => IsHTMLCollection o
-toHTMLCollection :: IsHTMLCollection o => o -> HTMLCollection
-toHTMLCollection = HTMLCollection . coerce
-
-instance IsHTMLCollection HTMLCollection
-instance IsGObject HTMLCollection where
-  typeGType _ = gTypeHTMLCollection
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLCollection\"]" gTypeHTMLCollection :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLDListElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDListElement Mozilla HTMLDListElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLDListElement
-instance IsElement HTMLDListElement
-instance IsNode HTMLDListElement
-instance IsEventTarget HTMLDListElement
-instance IsGObject HTMLDListElement where
-  typeGType _ = gTypeHTMLDListElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLDListElement\"]" gTypeHTMLDListElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLDataListElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataListElement Mozilla HTMLDataListElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLDataListElement
-instance IsElement HTMLDataListElement
-instance IsNode HTMLDataListElement
-instance IsEventTarget HTMLDataListElement
-instance IsGObject HTMLDataListElement where
-  typeGType _ = gTypeHTMLDataListElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLDataListElement\"]" gTypeHTMLDataListElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLDetailsElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDetailsElement Mozilla HTMLDetailsElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLDetailsElement
-instance IsElement HTMLDetailsElement
-instance IsNode HTMLDetailsElement
-instance IsEventTarget HTMLDetailsElement
-instance IsGObject HTMLDetailsElement where
-  typeGType _ = gTypeHTMLDetailsElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLDetailsElement\"]" gTypeHTMLDetailsElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLDirectoryElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDirectoryElement Mozilla HTMLDirectoryElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLDirectoryElement
-instance IsElement HTMLDirectoryElement
-instance IsNode HTMLDirectoryElement
-instance IsEventTarget HTMLDirectoryElement
-instance IsGObject HTMLDirectoryElement where
-  typeGType _ = gTypeHTMLDirectoryElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLDirectoryElement\"]" gTypeHTMLDirectoryElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLDivElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement Mozilla HTMLDivElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLDivElement
-instance IsElement HTMLDivElement
-instance IsNode HTMLDivElement
-instance IsEventTarget HTMLDivElement
-instance IsGObject HTMLDivElement where
-  typeGType _ = gTypeHTMLDivElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLDivElement\"]" gTypeHTMLDivElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLDocument".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Document"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument Mozilla HTMLDocument documentation>
-newtype HTMLDocument = HTMLDocument { unHTMLDocument :: JSVal }
-
-instance Eq (HTMLDocument) where
-  (HTMLDocument a) == (HTMLDocument b) = js_eq a b
-
-instance PToJSVal HTMLDocument where
-  pToJSVal = unHTMLDocument
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal HTMLDocument where
-  pFromJSVal = HTMLDocument
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal HTMLDocument where
-  toJSVal = return . unHTMLDocument
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal HTMLDocument where
-  fromJSVal = return . fmap HTMLDocument . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsDocument HTMLDocument
-instance IsNode HTMLDocument
-instance IsEventTarget HTMLDocument
-instance IsGObject HTMLDocument where
-  typeGType _ = gTypeHTMLDocument
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLDocument\"]" gTypeHTMLDocument :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement Mozilla HTMLElement documentation>
-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 #-}
-
-class IsElement o => IsHTMLElement o
-toHTMLElement :: IsHTMLElement o => o -> HTMLElement
-toHTMLElement = HTMLElement . coerce
-
-instance IsHTMLElement HTMLElement
-instance IsElement HTMLElement
-instance IsNode HTMLElement
-instance IsEventTarget HTMLElement
-instance IsGObject HTMLElement where
-  typeGType _ = gTypeHTMLElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLElement\"]" gTypeHTMLElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLEmbedElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement Mozilla HTMLEmbedElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLEmbedElement
-instance IsElement HTMLEmbedElement
-instance IsNode HTMLEmbedElement
-instance IsEventTarget HTMLEmbedElement
-instance IsGObject HTMLEmbedElement where
-  typeGType _ = gTypeHTMLEmbedElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLEmbedElement\"]" gTypeHTMLEmbedElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLFieldSetElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement Mozilla HTMLFieldSetElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLFieldSetElement
-instance IsElement HTMLFieldSetElement
-instance IsNode HTMLFieldSetElement
-instance IsEventTarget HTMLFieldSetElement
-instance IsGObject HTMLFieldSetElement where
-  typeGType _ = gTypeHTMLFieldSetElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLFieldSetElement\"]" gTypeHTMLFieldSetElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLFontElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement Mozilla HTMLFontElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLFontElement
-instance IsElement HTMLFontElement
-instance IsNode HTMLFontElement
-instance IsEventTarget HTMLFontElement
-instance IsGObject HTMLFontElement where
-  typeGType _ = gTypeHTMLFontElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLFontElement\"]" gTypeHTMLFontElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLFormControlsCollection".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLCollection"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection Mozilla HTMLFormControlsCollection documentation>
-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 #-}
-
-instance IsHTMLCollection HTMLFormControlsCollection
-instance IsGObject HTMLFormControlsCollection where
-  typeGType _ = gTypeHTMLFormControlsCollection
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLFormControlsCollection\"]" gTypeHTMLFormControlsCollection :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLFormElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement Mozilla HTMLFormElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLFormElement
-instance IsElement HTMLFormElement
-instance IsNode HTMLFormElement
-instance IsEventTarget HTMLFormElement
-instance IsGObject HTMLFormElement where
-  typeGType _ = gTypeHTMLFormElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLFormElement\"]" gTypeHTMLFormElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLFrameElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement Mozilla HTMLFrameElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLFrameElement
-instance IsElement HTMLFrameElement
-instance IsNode HTMLFrameElement
-instance IsEventTarget HTMLFrameElement
-instance IsGObject HTMLFrameElement where
-  typeGType _ = gTypeHTMLFrameElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLFrameElement\"]" gTypeHTMLFrameElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLFrameSetElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement Mozilla HTMLFrameSetElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLFrameSetElement
-instance IsElement HTMLFrameSetElement
-instance IsNode HTMLFrameSetElement
-instance IsEventTarget HTMLFrameSetElement
-instance IsGObject HTMLFrameSetElement where
-  typeGType _ = gTypeHTMLFrameSetElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLFrameSetElement\"]" gTypeHTMLFrameSetElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLHRElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement Mozilla HTMLHRElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLHRElement
-instance IsElement HTMLHRElement
-instance IsNode HTMLHRElement
-instance IsEventTarget HTMLHRElement
-instance IsGObject HTMLHRElement where
-  typeGType _ = gTypeHTMLHRElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLHRElement\"]" gTypeHTMLHRElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLHeadElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadElement Mozilla HTMLHeadElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLHeadElement
-instance IsElement HTMLHeadElement
-instance IsNode HTMLHeadElement
-instance IsEventTarget HTMLHeadElement
-instance IsGObject HTMLHeadElement where
-  typeGType _ = gTypeHTMLHeadElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLHeadElement\"]" gTypeHTMLHeadElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLHeadingElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement Mozilla HTMLHeadingElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLHeadingElement
-instance IsElement HTMLHeadingElement
-instance IsNode HTMLHeadingElement
-instance IsEventTarget HTMLHeadingElement
-instance IsGObject HTMLHeadingElement where
-  typeGType _ = gTypeHTMLHeadingElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLHeadingElement\"]" gTypeHTMLHeadingElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLHtmlElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHtmlElement Mozilla HTMLHtmlElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLHtmlElement
-instance IsElement HTMLHtmlElement
-instance IsNode HTMLHtmlElement
-instance IsEventTarget HTMLHtmlElement
-instance IsGObject HTMLHtmlElement where
-  typeGType _ = gTypeHTMLHtmlElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLHtmlElement\"]" gTypeHTMLHtmlElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLIFrameElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement Mozilla HTMLIFrameElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLIFrameElement
-instance IsElement HTMLIFrameElement
-instance IsNode HTMLIFrameElement
-instance IsEventTarget HTMLIFrameElement
-instance IsGObject HTMLIFrameElement where
-  typeGType _ = gTypeHTMLIFrameElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLIFrameElement\"]" gTypeHTMLIFrameElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLImageElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement Mozilla HTMLImageElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLImageElement
-instance IsElement HTMLImageElement
-instance IsNode HTMLImageElement
-instance IsEventTarget HTMLImageElement
-instance IsGObject HTMLImageElement where
-  typeGType _ = gTypeHTMLImageElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLImageElement\"]" gTypeHTMLImageElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLInputElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement Mozilla HTMLInputElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLInputElement
-instance IsElement HTMLInputElement
-instance IsNode HTMLInputElement
-instance IsEventTarget HTMLInputElement
-instance IsGObject HTMLInputElement where
-  typeGType _ = gTypeHTMLInputElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLInputElement\"]" gTypeHTMLInputElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLKeygenElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement Mozilla HTMLKeygenElement documentation>
-newtype HTMLKeygenElement = HTMLKeygenElement { unHTMLKeygenElement :: JSVal }
-
-instance Eq (HTMLKeygenElement) where
-  (HTMLKeygenElement a) == (HTMLKeygenElement b) = js_eq a b
-
-instance PToJSVal HTMLKeygenElement where
-  pToJSVal = unHTMLKeygenElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal HTMLKeygenElement where
-  pFromJSVal = HTMLKeygenElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal HTMLKeygenElement where
-  toJSVal = return . unHTMLKeygenElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal HTMLKeygenElement where
-  fromJSVal = return . fmap HTMLKeygenElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsHTMLElement HTMLKeygenElement
-instance IsElement HTMLKeygenElement
-instance IsNode HTMLKeygenElement
-instance IsEventTarget HTMLKeygenElement
-instance IsGObject HTMLKeygenElement where
-  typeGType _ = gTypeHTMLKeygenElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLKeygenElement\"]" gTypeHTMLKeygenElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLLIElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLIElement Mozilla HTMLLIElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLLIElement
-instance IsElement HTMLLIElement
-instance IsNode HTMLLIElement
-instance IsEventTarget HTMLLIElement
-instance IsGObject HTMLLIElement where
-  typeGType _ = gTypeHTMLLIElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLLIElement\"]" gTypeHTMLLIElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLLabelElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement Mozilla HTMLLabelElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLLabelElement
-instance IsElement HTMLLabelElement
-instance IsNode HTMLLabelElement
-instance IsEventTarget HTMLLabelElement
-instance IsGObject HTMLLabelElement where
-  typeGType _ = gTypeHTMLLabelElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLLabelElement\"]" gTypeHTMLLabelElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLLegendElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLegendElement Mozilla HTMLLegendElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLLegendElement
-instance IsElement HTMLLegendElement
-instance IsNode HTMLLegendElement
-instance IsEventTarget HTMLLegendElement
-instance IsGObject HTMLLegendElement where
-  typeGType _ = gTypeHTMLLegendElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLLegendElement\"]" gTypeHTMLLegendElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLLinkElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement Mozilla HTMLLinkElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLLinkElement
-instance IsElement HTMLLinkElement
-instance IsNode HTMLLinkElement
-instance IsEventTarget HTMLLinkElement
-instance IsGObject HTMLLinkElement where
-  typeGType _ = gTypeHTMLLinkElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLLinkElement\"]" gTypeHTMLLinkElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLMapElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement Mozilla HTMLMapElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLMapElement
-instance IsElement HTMLMapElement
-instance IsNode HTMLMapElement
-instance IsEventTarget HTMLMapElement
-instance IsGObject HTMLMapElement where
-  typeGType _ = gTypeHTMLMapElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLMapElement\"]" gTypeHTMLMapElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLMarqueeElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement Mozilla HTMLMarqueeElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLMarqueeElement
-instance IsElement HTMLMarqueeElement
-instance IsNode HTMLMarqueeElement
-instance IsEventTarget HTMLMarqueeElement
-instance IsGObject HTMLMarqueeElement where
-  typeGType _ = gTypeHTMLMarqueeElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLMarqueeElement\"]" gTypeHTMLMarqueeElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLMediaElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement Mozilla HTMLMediaElement documentation>
-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 #-}
-
-class IsHTMLElement o => IsHTMLMediaElement o
-toHTMLMediaElement :: IsHTMLMediaElement o => o -> HTMLMediaElement
-toHTMLMediaElement = HTMLMediaElement . coerce
-
-instance IsHTMLMediaElement HTMLMediaElement
-instance IsHTMLElement HTMLMediaElement
-instance IsElement HTMLMediaElement
-instance IsNode HTMLMediaElement
-instance IsEventTarget HTMLMediaElement
-instance IsGObject HTMLMediaElement where
-  typeGType _ = gTypeHTMLMediaElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLMediaElement\"]" gTypeHTMLMediaElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLMenuElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMenuElement Mozilla HTMLMenuElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLMenuElement
-instance IsElement HTMLMenuElement
-instance IsNode HTMLMenuElement
-instance IsEventTarget HTMLMenuElement
-instance IsGObject HTMLMenuElement where
-  typeGType _ = gTypeHTMLMenuElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLMenuElement\"]" gTypeHTMLMenuElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLMetaElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement Mozilla HTMLMetaElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLMetaElement
-instance IsElement HTMLMetaElement
-instance IsNode HTMLMetaElement
-instance IsEventTarget HTMLMetaElement
-instance IsGObject HTMLMetaElement where
-  typeGType _ = gTypeHTMLMetaElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLMetaElement\"]" gTypeHTMLMetaElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLMeterElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement Mozilla HTMLMeterElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLMeterElement
-instance IsElement HTMLMeterElement
-instance IsNode HTMLMeterElement
-instance IsEventTarget HTMLMeterElement
-instance IsGObject HTMLMeterElement where
-  typeGType _ = gTypeHTMLMeterElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLMeterElement\"]" gTypeHTMLMeterElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLModElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLModElement Mozilla HTMLModElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLModElement
-instance IsElement HTMLModElement
-instance IsNode HTMLModElement
-instance IsEventTarget HTMLModElement
-instance IsGObject HTMLModElement where
-  typeGType _ = gTypeHTMLModElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLModElement\"]" gTypeHTMLModElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLOListElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement Mozilla HTMLOListElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLOListElement
-instance IsElement HTMLOListElement
-instance IsNode HTMLOListElement
-instance IsEventTarget HTMLOListElement
-instance IsGObject HTMLOListElement where
-  typeGType _ = gTypeHTMLOListElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLOListElement\"]" gTypeHTMLOListElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLObjectElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement Mozilla HTMLObjectElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLObjectElement
-instance IsElement HTMLObjectElement
-instance IsNode HTMLObjectElement
-instance IsEventTarget HTMLObjectElement
-instance IsGObject HTMLObjectElement where
-  typeGType _ = gTypeHTMLObjectElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLObjectElement\"]" gTypeHTMLObjectElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLOptGroupElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement Mozilla HTMLOptGroupElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLOptGroupElement
-instance IsElement HTMLOptGroupElement
-instance IsNode HTMLOptGroupElement
-instance IsEventTarget HTMLOptGroupElement
-instance IsGObject HTMLOptGroupElement where
-  typeGType _ = gTypeHTMLOptGroupElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLOptGroupElement\"]" gTypeHTMLOptGroupElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLOptionElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement Mozilla HTMLOptionElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLOptionElement
-instance IsElement HTMLOptionElement
-instance IsNode HTMLOptionElement
-instance IsEventTarget HTMLOptionElement
-instance IsGObject HTMLOptionElement where
-  typeGType _ = gTypeHTMLOptionElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLOptionElement\"]" gTypeHTMLOptionElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLOptionsCollection".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLCollection"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection Mozilla HTMLOptionsCollection documentation>
-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 #-}
-
-instance IsHTMLCollection HTMLOptionsCollection
-instance IsGObject HTMLOptionsCollection where
-  typeGType _ = gTypeHTMLOptionsCollection
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLOptionsCollection\"]" gTypeHTMLOptionsCollection :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLOutputElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement Mozilla HTMLOutputElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLOutputElement
-instance IsElement HTMLOutputElement
-instance IsNode HTMLOutputElement
-instance IsEventTarget HTMLOutputElement
-instance IsGObject HTMLOutputElement where
-  typeGType _ = gTypeHTMLOutputElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLOutputElement\"]" gTypeHTMLOutputElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLParagraphElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParagraphElement Mozilla HTMLParagraphElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLParagraphElement
-instance IsElement HTMLParagraphElement
-instance IsNode HTMLParagraphElement
-instance IsEventTarget HTMLParagraphElement
-instance IsGObject HTMLParagraphElement where
-  typeGType _ = gTypeHTMLParagraphElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLParagraphElement\"]" gTypeHTMLParagraphElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLParamElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement Mozilla HTMLParamElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLParamElement
-instance IsElement HTMLParamElement
-instance IsNode HTMLParamElement
-instance IsEventTarget HTMLParamElement
-instance IsGObject HTMLParamElement where
-  typeGType _ = gTypeHTMLParamElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLParamElement\"]" gTypeHTMLParamElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLPreElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLPreElement Mozilla HTMLPreElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLPreElement
-instance IsElement HTMLPreElement
-instance IsNode HTMLPreElement
-instance IsEventTarget HTMLPreElement
-instance IsGObject HTMLPreElement where
-  typeGType _ = gTypeHTMLPreElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLPreElement\"]" gTypeHTMLPreElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLProgressElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement Mozilla HTMLProgressElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLProgressElement
-instance IsElement HTMLProgressElement
-instance IsNode HTMLProgressElement
-instance IsEventTarget HTMLProgressElement
-instance IsGObject HTMLProgressElement where
-  typeGType _ = gTypeHTMLProgressElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLProgressElement\"]" gTypeHTMLProgressElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLQuoteElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLQuoteElement Mozilla HTMLQuoteElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLQuoteElement
-instance IsElement HTMLQuoteElement
-instance IsNode HTMLQuoteElement
-instance IsEventTarget HTMLQuoteElement
-instance IsGObject HTMLQuoteElement where
-  typeGType _ = gTypeHTMLQuoteElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLQuoteElement\"]" gTypeHTMLQuoteElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLScriptElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement Mozilla HTMLScriptElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLScriptElement
-instance IsElement HTMLScriptElement
-instance IsNode HTMLScriptElement
-instance IsEventTarget HTMLScriptElement
-instance IsGObject HTMLScriptElement where
-  typeGType _ = gTypeHTMLScriptElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLScriptElement\"]" gTypeHTMLScriptElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLSelectElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement Mozilla HTMLSelectElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLSelectElement
-instance IsElement HTMLSelectElement
-instance IsNode HTMLSelectElement
-instance IsEventTarget HTMLSelectElement
-instance IsGObject HTMLSelectElement where
-  typeGType _ = gTypeHTMLSelectElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLSelectElement\"]" gTypeHTMLSelectElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLSourceElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement Mozilla HTMLSourceElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLSourceElement
-instance IsElement HTMLSourceElement
-instance IsNode HTMLSourceElement
-instance IsEventTarget HTMLSourceElement
-instance IsGObject HTMLSourceElement where
-  typeGType _ = gTypeHTMLSourceElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLSourceElement\"]" gTypeHTMLSourceElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLSpanElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement Mozilla HTMLSpanElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLSpanElement
-instance IsElement HTMLSpanElement
-instance IsNode HTMLSpanElement
-instance IsEventTarget HTMLSpanElement
-instance IsGObject HTMLSpanElement where
-  typeGType _ = gTypeHTMLSpanElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLSpanElement\"]" gTypeHTMLSpanElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLStyleElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement Mozilla HTMLStyleElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLStyleElement
-instance IsElement HTMLStyleElement
-instance IsNode HTMLStyleElement
-instance IsEventTarget HTMLStyleElement
-instance IsGObject HTMLStyleElement where
-  typeGType _ = gTypeHTMLStyleElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLStyleElement\"]" gTypeHTMLStyleElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLTableCaptionElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCaptionElement Mozilla HTMLTableCaptionElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLTableCaptionElement
-instance IsElement HTMLTableCaptionElement
-instance IsNode HTMLTableCaptionElement
-instance IsEventTarget HTMLTableCaptionElement
-instance IsGObject HTMLTableCaptionElement where
-  typeGType _ = gTypeHTMLTableCaptionElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLTableCaptionElement\"]" gTypeHTMLTableCaptionElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLTableCellElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement Mozilla HTMLTableCellElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLTableCellElement
-instance IsElement HTMLTableCellElement
-instance IsNode HTMLTableCellElement
-instance IsEventTarget HTMLTableCellElement
-instance IsGObject HTMLTableCellElement where
-  typeGType _ = gTypeHTMLTableCellElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLTableCellElement\"]" gTypeHTMLTableCellElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLTableColElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement Mozilla HTMLTableColElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLTableColElement
-instance IsElement HTMLTableColElement
-instance IsNode HTMLTableColElement
-instance IsEventTarget HTMLTableColElement
-instance IsGObject HTMLTableColElement where
-  typeGType _ = gTypeHTMLTableColElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLTableColElement\"]" gTypeHTMLTableColElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLTableElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement Mozilla HTMLTableElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLTableElement
-instance IsElement HTMLTableElement
-instance IsNode HTMLTableElement
-instance IsEventTarget HTMLTableElement
-instance IsGObject HTMLTableElement where
-  typeGType _ = gTypeHTMLTableElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLTableElement\"]" gTypeHTMLTableElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLTableRowElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement Mozilla HTMLTableRowElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLTableRowElement
-instance IsElement HTMLTableRowElement
-instance IsNode HTMLTableRowElement
-instance IsEventTarget HTMLTableRowElement
-instance IsGObject HTMLTableRowElement where
-  typeGType _ = gTypeHTMLTableRowElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLTableRowElement\"]" gTypeHTMLTableRowElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLTableSectionElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement Mozilla HTMLTableSectionElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLTableSectionElement
-instance IsElement HTMLTableSectionElement
-instance IsNode HTMLTableSectionElement
-instance IsEventTarget HTMLTableSectionElement
-instance IsGObject HTMLTableSectionElement where
-  typeGType _ = gTypeHTMLTableSectionElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLTableSectionElement\"]" gTypeHTMLTableSectionElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLTemplateElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement Mozilla HTMLTemplateElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLTemplateElement
-instance IsElement HTMLTemplateElement
-instance IsNode HTMLTemplateElement
-instance IsEventTarget HTMLTemplateElement
-instance IsGObject HTMLTemplateElement where
-  typeGType _ = gTypeHTMLTemplateElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLTemplateElement\"]" gTypeHTMLTemplateElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLTextAreaElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement Mozilla HTMLTextAreaElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLTextAreaElement
-instance IsElement HTMLTextAreaElement
-instance IsNode HTMLTextAreaElement
-instance IsEventTarget HTMLTextAreaElement
-instance IsGObject HTMLTextAreaElement where
-  typeGType _ = gTypeHTMLTextAreaElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLTextAreaElement\"]" gTypeHTMLTextAreaElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLTitleElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTitleElement Mozilla HTMLTitleElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLTitleElement
-instance IsElement HTMLTitleElement
-instance IsNode HTMLTitleElement
-instance IsEventTarget HTMLTitleElement
-instance IsGObject HTMLTitleElement where
-  typeGType _ = gTypeHTMLTitleElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLTitleElement\"]" gTypeHTMLTitleElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLTrackElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement Mozilla HTMLTrackElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLTrackElement
-instance IsElement HTMLTrackElement
-instance IsNode HTMLTrackElement
-instance IsEventTarget HTMLTrackElement
-instance IsGObject HTMLTrackElement where
-  typeGType _ = gTypeHTMLTrackElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLTrackElement\"]" gTypeHTMLTrackElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLUListElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUListElement Mozilla HTMLUListElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLUListElement
-instance IsElement HTMLUListElement
-instance IsNode HTMLUListElement
-instance IsEventTarget HTMLUListElement
-instance IsGObject HTMLUListElement where
-  typeGType _ = gTypeHTMLUListElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLUListElement\"]" gTypeHTMLUListElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLUnknownElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement Mozilla HTMLUnknownElement documentation>
-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 #-}
-
-instance IsHTMLElement HTMLUnknownElement
-instance IsElement HTMLUnknownElement
-instance IsNode HTMLUnknownElement
-instance IsEventTarget HTMLUnknownElement
-instance IsGObject HTMLUnknownElement where
-  typeGType _ = gTypeHTMLUnknownElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLUnknownElement\"]" gTypeHTMLUnknownElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HTMLVideoElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.HTMLMediaElement"
---     * "GHCJS.DOM.HTMLElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement Mozilla HTMLVideoElement documentation>
-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 #-}
-
-instance IsHTMLMediaElement HTMLVideoElement
-instance IsHTMLElement HTMLVideoElement
-instance IsElement HTMLVideoElement
-instance IsNode HTMLVideoElement
-instance IsEventTarget HTMLVideoElement
-instance IsGObject HTMLVideoElement where
-  typeGType _ = gTypeHTMLVideoElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HTMLVideoElement\"]" gTypeHTMLVideoElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.HashChangeEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/HashChangeEvent Mozilla HashChangeEvent documentation>
-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 #-}
-
-instance IsEvent HashChangeEvent
-instance IsGObject HashChangeEvent where
-  typeGType _ = gTypeHashChangeEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"HashChangeEvent\"]" gTypeHashChangeEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.History".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/History Mozilla History documentation>
-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 #-}
-
-instance IsGObject History where
-  typeGType _ = gTypeHistory
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"History\"]" gTypeHistory :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBAny".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBAny Mozilla IDBAny documentation>
-newtype IDBAny = IDBAny { unIDBAny :: JSVal }
-
-instance Eq (IDBAny) where
-  (IDBAny a) == (IDBAny b) = js_eq a b
-
-instance PToJSVal IDBAny where
-  pToJSVal = unIDBAny
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal IDBAny where
-  pFromJSVal = IDBAny
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal IDBAny where
-  toJSVal = return . unIDBAny
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal IDBAny where
-  fromJSVal = return . fmap IDBAny . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject IDBAny where
-  typeGType _ = gTypeIDBAny
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBAny\"]" gTypeIDBAny :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBCursor".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor Mozilla IDBCursor documentation>
-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 #-}
-
-class IsGObject o => IsIDBCursor o
-toIDBCursor :: IsIDBCursor o => o -> IDBCursor
-toIDBCursor = IDBCursor . coerce
-
-instance IsIDBCursor IDBCursor
-instance IsGObject IDBCursor where
-  typeGType _ = gTypeIDBCursor
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBCursor\"]" gTypeIDBCursor :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBCursorWithValue".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.IDBCursor"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursorWithValue Mozilla IDBCursorWithValue documentation>
-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 #-}
-
-instance IsIDBCursor IDBCursorWithValue
-instance IsGObject IDBCursorWithValue where
-  typeGType _ = gTypeIDBCursorWithValue
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBCursorWithValue\"]" gTypeIDBCursorWithValue :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBDatabase".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase Mozilla IDBDatabase documentation>
-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 #-}
-
-instance IsEventTarget IDBDatabase
-instance IsGObject IDBDatabase where
-  typeGType _ = gTypeIDBDatabase
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBDatabase\"]" gTypeIDBDatabase :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBFactory".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory Mozilla IDBFactory documentation>
-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 #-}
-
-instance IsGObject IDBFactory where
-  typeGType _ = gTypeIDBFactory
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBFactory\"]" gTypeIDBFactory :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBIndex".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex Mozilla IDBIndex documentation>
-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 #-}
-
-instance IsGObject IDBIndex where
-  typeGType _ = gTypeIDBIndex
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBIndex\"]" gTypeIDBIndex :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBKeyRange".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange Mozilla IDBKeyRange documentation>
-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 #-}
-
-instance IsGObject IDBKeyRange where
-  typeGType _ = gTypeIDBKeyRange
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBKeyRange\"]" gTypeIDBKeyRange :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBObjectStore".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore Mozilla IDBObjectStore documentation>
-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 #-}
-
-instance IsGObject IDBObjectStore where
-  typeGType _ = gTypeIDBObjectStore
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBObjectStore\"]" gTypeIDBObjectStore :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBOpenDBRequest".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.IDBRequest"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBOpenDBRequest Mozilla IDBOpenDBRequest documentation>
-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 #-}
-
-instance IsIDBRequest IDBOpenDBRequest
-instance IsEventTarget IDBOpenDBRequest
-instance IsGObject IDBOpenDBRequest where
-  typeGType _ = gTypeIDBOpenDBRequest
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBOpenDBRequest\"]" gTypeIDBOpenDBRequest :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBRequest".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest Mozilla IDBRequest documentation>
-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 #-}
-
-class IsEventTarget o => IsIDBRequest o
-toIDBRequest :: IsIDBRequest o => o -> IDBRequest
-toIDBRequest = IDBRequest . coerce
-
-instance IsIDBRequest IDBRequest
-instance IsEventTarget IDBRequest
-instance IsGObject IDBRequest where
-  typeGType _ = gTypeIDBRequest
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBRequest\"]" gTypeIDBRequest :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBTransaction".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction Mozilla IDBTransaction documentation>
-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 #-}
-
-instance IsEventTarget IDBTransaction
-instance IsGObject IDBTransaction where
-  typeGType _ = gTypeIDBTransaction
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBTransaction\"]" gTypeIDBTransaction :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.IDBVersionChangeEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEvent Mozilla IDBVersionChangeEvent documentation>
-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 #-}
-
-instance IsEvent IDBVersionChangeEvent
-instance IsGObject IDBVersionChangeEvent where
-  typeGType _ = gTypeIDBVersionChangeEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"IDBVersionChangeEvent\"]" gTypeIDBVersionChangeEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ImageData".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ImageData Mozilla ImageData documentation>
-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 #-}
-
-instance IsGObject ImageData where
-  typeGType _ = gTypeImageData
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ImageData\"]" gTypeImageData :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.InspectorFrontendHost".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost Mozilla InspectorFrontendHost documentation>
-newtype InspectorFrontendHost = InspectorFrontendHost { unInspectorFrontendHost :: JSVal }
-
-instance Eq (InspectorFrontendHost) where
-  (InspectorFrontendHost a) == (InspectorFrontendHost b) = js_eq a b
-
-instance PToJSVal InspectorFrontendHost where
-  pToJSVal = unInspectorFrontendHost
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal InspectorFrontendHost where
-  pFromJSVal = InspectorFrontendHost
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal InspectorFrontendHost where
-  toJSVal = return . unInspectorFrontendHost
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal InspectorFrontendHost where
-  fromJSVal = return . fmap InspectorFrontendHost . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject InspectorFrontendHost where
-  typeGType _ = gTypeInspectorFrontendHost
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"InspectorFrontendHost\"]" gTypeInspectorFrontendHost :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.InternalSettings".
--- Base interface functions are in:
---
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/InternalSettings Mozilla InternalSettings documentation>
-newtype InternalSettings = InternalSettings { unInternalSettings :: JSVal }
-
-instance Eq (InternalSettings) where
-  (InternalSettings a) == (InternalSettings b) = js_eq a b
-
-instance PToJSVal InternalSettings where
-  pToJSVal = unInternalSettings
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal InternalSettings where
-  pFromJSVal = InternalSettings
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal InternalSettings where
-  toJSVal = return . unInternalSettings
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal InternalSettings where
-  fromJSVal = return . fmap InternalSettings . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject InternalSettings where
-  typeGType _ = gTypeInternalSettings
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"InternalSettings\"]" gTypeInternalSettings :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Internals".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Internals Mozilla Internals documentation>
-newtype Internals = Internals { unInternals :: JSVal }
-
-instance Eq (Internals) where
-  (Internals a) == (Internals b) = js_eq a b
-
-instance PToJSVal Internals where
-  pToJSVal = unInternals
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal Internals where
-  pFromJSVal = Internals
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal Internals where
-  toJSVal = return . unInternals
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal Internals where
-  fromJSVal = return . fmap Internals . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject Internals where
-  typeGType _ = gTypeInternals
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Internals\"]" gTypeInternals :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.KeyboardEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.UIEvent"
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent Mozilla KeyboardEvent documentation>
-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 #-}
-
-instance IsUIEvent KeyboardEvent
-instance IsEvent KeyboardEvent
-instance IsGObject KeyboardEvent where
-  typeGType _ = gTypeKeyboardEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"KeyboardEvent\"]" gTypeKeyboardEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Location".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Location Mozilla Location documentation>
-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 #-}
-
-instance IsGObject Location where
-  typeGType _ = gTypeLocation
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Location\"]" gTypeLocation :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MallocStatistics".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MallocStatistics Mozilla MallocStatistics documentation>
-newtype MallocStatistics = MallocStatistics { unMallocStatistics :: JSVal }
-
-instance Eq (MallocStatistics) where
-  (MallocStatistics a) == (MallocStatistics b) = js_eq a b
-
-instance PToJSVal MallocStatistics where
-  pToJSVal = unMallocStatistics
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MallocStatistics where
-  pFromJSVal = MallocStatistics
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MallocStatistics where
-  toJSVal = return . unMallocStatistics
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MallocStatistics where
-  fromJSVal = return . fmap MallocStatistics . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject MallocStatistics where
-  typeGType _ = gTypeMallocStatistics
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MallocStatistics\"]" gTypeMallocStatistics :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaController".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaController Mozilla MediaController documentation>
-newtype MediaController = MediaController { unMediaController :: JSVal }
-
-instance Eq (MediaController) where
-  (MediaController a) == (MediaController b) = js_eq a b
-
-instance PToJSVal MediaController where
-  pToJSVal = unMediaController
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MediaController where
-  pFromJSVal = MediaController
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MediaController where
-  toJSVal = return . unMediaController
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MediaController where
-  fromJSVal = return . fmap MediaController . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEventTarget MediaController
-instance IsGObject MediaController where
-  typeGType _ = gTypeMediaController
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaController\"]" gTypeMediaController :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaControlsHost".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost Mozilla MediaControlsHost documentation>
-newtype MediaControlsHost = MediaControlsHost { unMediaControlsHost :: JSVal }
-
-instance Eq (MediaControlsHost) where
-  (MediaControlsHost a) == (MediaControlsHost b) = js_eq a b
-
-instance PToJSVal MediaControlsHost where
-  pToJSVal = unMediaControlsHost
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MediaControlsHost where
-  pFromJSVal = MediaControlsHost
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MediaControlsHost where
-  toJSVal = return . unMediaControlsHost
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MediaControlsHost where
-  fromJSVal = return . fmap MediaControlsHost . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject MediaControlsHost where
-  typeGType _ = gTypeMediaControlsHost
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaControlsHost\"]" gTypeMediaControlsHost :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaElementAudioSourceNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaElementAudioSourceNode Mozilla MediaElementAudioSourceNode documentation>
-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 #-}
-
-instance IsAudioNode MediaElementAudioSourceNode
-instance IsEventTarget MediaElementAudioSourceNode
-instance IsGObject MediaElementAudioSourceNode where
-  typeGType _ = gTypeMediaElementAudioSourceNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaElementAudioSourceNode\"]" gTypeMediaElementAudioSourceNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaError".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaError Mozilla MediaError documentation>
-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 #-}
-
-instance IsGObject MediaError where
-  typeGType _ = gTypeMediaError
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaError\"]" gTypeMediaError :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaKeyError".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyError Mozilla WebKitMediaKeyError documentation>
-newtype MediaKeyError = MediaKeyError { unMediaKeyError :: JSVal }
-
-instance Eq (MediaKeyError) where
-  (MediaKeyError a) == (MediaKeyError b) = js_eq a b
-
-instance PToJSVal MediaKeyError where
-  pToJSVal = unMediaKeyError
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MediaKeyError where
-  pFromJSVal = MediaKeyError
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MediaKeyError where
-  toJSVal = return . unMediaKeyError
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MediaKeyError where
-  fromJSVal = return . fmap MediaKeyError . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject MediaKeyError where
-  typeGType _ = gTypeMediaKeyError
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitMediaKeyError\"]" gTypeMediaKeyError :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaKeyEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyEvent Mozilla MediaKeyEvent documentation>
-newtype MediaKeyEvent = MediaKeyEvent { unMediaKeyEvent :: JSVal }
-
-instance Eq (MediaKeyEvent) where
-  (MediaKeyEvent a) == (MediaKeyEvent b) = js_eq a b
-
-instance PToJSVal MediaKeyEvent where
-  pToJSVal = unMediaKeyEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MediaKeyEvent where
-  pFromJSVal = MediaKeyEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MediaKeyEvent where
-  toJSVal = return . unMediaKeyEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MediaKeyEvent where
-  fromJSVal = return . fmap MediaKeyEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent MediaKeyEvent
-instance IsGObject MediaKeyEvent where
-  typeGType _ = gTypeMediaKeyEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaKeyEvent\"]" gTypeMediaKeyEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaKeyMessageEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent Mozilla WebKitMediaKeyMessageEvent documentation>
-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 #-}
-
-instance IsEvent MediaKeyMessageEvent
-instance IsGObject MediaKeyMessageEvent where
-  typeGType _ = gTypeMediaKeyMessageEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitMediaKeyMessageEvent\"]" gTypeMediaKeyMessageEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaKeyNeededEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyNeededEvent Mozilla MediaKeyNeededEvent documentation>
-newtype MediaKeyNeededEvent = MediaKeyNeededEvent { unMediaKeyNeededEvent :: JSVal }
-
-instance Eq (MediaKeyNeededEvent) where
-  (MediaKeyNeededEvent a) == (MediaKeyNeededEvent b) = js_eq a b
-
-instance PToJSVal MediaKeyNeededEvent where
-  pToJSVal = unMediaKeyNeededEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MediaKeyNeededEvent where
-  pFromJSVal = MediaKeyNeededEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MediaKeyNeededEvent where
-  toJSVal = return . unMediaKeyNeededEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MediaKeyNeededEvent where
-  fromJSVal = return . fmap MediaKeyNeededEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent MediaKeyNeededEvent
-instance IsGObject MediaKeyNeededEvent where
-  typeGType _ = gTypeMediaKeyNeededEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaKeyNeededEvent\"]" gTypeMediaKeyNeededEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaKeySession".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession Mozilla WebKitMediaKeySession documentation>
-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 #-}
-
-instance IsEventTarget MediaKeySession
-instance IsGObject MediaKeySession where
-  typeGType _ = gTypeMediaKeySession
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitMediaKeySession\"]" gTypeMediaKeySession :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaKeys".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys Mozilla WebKitMediaKeys documentation>
-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 #-}
-
-instance IsGObject MediaKeys where
-  typeGType _ = gTypeMediaKeys
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitMediaKeys\"]" gTypeMediaKeys :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaList Mozilla MediaList documentation>
-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 #-}
-
-instance IsGObject MediaList where
-  typeGType _ = gTypeMediaList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaList\"]" gTypeMediaList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaQueryList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList Mozilla MediaQueryList documentation>
-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 #-}
-
-instance IsGObject MediaQueryList where
-  typeGType _ = gTypeMediaQueryList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaQueryList\"]" gTypeMediaQueryList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaSource".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource Mozilla MediaSource documentation>
-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 #-}
-
-instance IsEventTarget MediaSource
-instance IsGObject MediaSource where
-  typeGType _ = gTypeMediaSource
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaSource\"]" gTypeMediaSource :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaSourceStates".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaSourceStates Mozilla MediaSourceStates documentation>
-newtype MediaSourceStates = MediaSourceStates { unMediaSourceStates :: JSVal }
-
-instance Eq (MediaSourceStates) where
-  (MediaSourceStates a) == (MediaSourceStates b) = js_eq a b
-
-instance PToJSVal MediaSourceStates where
-  pToJSVal = unMediaSourceStates
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MediaSourceStates where
-  pFromJSVal = MediaSourceStates
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MediaSourceStates where
-  toJSVal = return . unMediaSourceStates
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MediaSourceStates where
-  fromJSVal = return . fmap MediaSourceStates . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject MediaSourceStates where
-  typeGType _ = gTypeMediaSourceStates
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaSourceStates\"]" gTypeMediaSourceStates :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaStream".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream Mozilla webkitMediaStream documentation>
-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 #-}
-
-instance IsEventTarget MediaStream
-instance IsGObject MediaStream where
-  typeGType _ = gTypeMediaStream
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"webkitMediaStream\"]" gTypeMediaStream :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaStreamAudioDestinationNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioDestinationNode Mozilla MediaStreamAudioDestinationNode documentation>
-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 #-}
-
-instance IsAudioNode MediaStreamAudioDestinationNode
-instance IsEventTarget MediaStreamAudioDestinationNode
-instance IsGObject MediaStreamAudioDestinationNode where
-  typeGType _ = gTypeMediaStreamAudioDestinationNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaStreamAudioDestinationNode\"]" gTypeMediaStreamAudioDestinationNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaStreamAudioSourceNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioSourceNode Mozilla MediaStreamAudioSourceNode documentation>
-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 #-}
-
-instance IsAudioNode MediaStreamAudioSourceNode
-instance IsEventTarget MediaStreamAudioSourceNode
-instance IsGObject MediaStreamAudioSourceNode where
-  typeGType _ = gTypeMediaStreamAudioSourceNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaStreamAudioSourceNode\"]" gTypeMediaStreamAudioSourceNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaStreamCapabilities".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamCapabilities Mozilla MediaStreamCapabilities documentation>
-newtype MediaStreamCapabilities = MediaStreamCapabilities { unMediaStreamCapabilities :: JSVal }
-
-instance Eq (MediaStreamCapabilities) where
-  (MediaStreamCapabilities a) == (MediaStreamCapabilities b) = js_eq a b
-
-instance PToJSVal MediaStreamCapabilities where
-  pToJSVal = unMediaStreamCapabilities
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MediaStreamCapabilities where
-  pFromJSVal = MediaStreamCapabilities
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MediaStreamCapabilities where
-  toJSVal = return . unMediaStreamCapabilities
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MediaStreamCapabilities where
-  fromJSVal = return . fmap MediaStreamCapabilities . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsMediaStreamCapabilities o
-toMediaStreamCapabilities :: IsMediaStreamCapabilities o => o -> MediaStreamCapabilities
-toMediaStreamCapabilities = MediaStreamCapabilities . coerce
-
-instance IsMediaStreamCapabilities MediaStreamCapabilities
-instance IsGObject MediaStreamCapabilities where
-  typeGType _ = gTypeMediaStreamCapabilities
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaStreamCapabilities\"]" gTypeMediaStreamCapabilities :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaStreamEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamEvent Mozilla MediaStreamEvent documentation>
-newtype MediaStreamEvent = MediaStreamEvent { unMediaStreamEvent :: JSVal }
-
-instance Eq (MediaStreamEvent) where
-  (MediaStreamEvent a) == (MediaStreamEvent b) = js_eq a b
-
-instance PToJSVal MediaStreamEvent where
-  pToJSVal = unMediaStreamEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MediaStreamEvent where
-  pFromJSVal = MediaStreamEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MediaStreamEvent where
-  toJSVal = return . unMediaStreamEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MediaStreamEvent where
-  fromJSVal = return . fmap MediaStreamEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent MediaStreamEvent
-instance IsGObject MediaStreamEvent where
-  typeGType _ = gTypeMediaStreamEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaStreamEvent\"]" gTypeMediaStreamEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaStreamTrack".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack Mozilla MediaStreamTrack documentation>
-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 #-}
-
-class IsEventTarget o => IsMediaStreamTrack o
-toMediaStreamTrack :: IsMediaStreamTrack o => o -> MediaStreamTrack
-toMediaStreamTrack = MediaStreamTrack . coerce
-
-instance IsMediaStreamTrack MediaStreamTrack
-instance IsEventTarget MediaStreamTrack
-instance IsGObject MediaStreamTrack where
-  typeGType _ = gTypeMediaStreamTrack
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaStreamTrack\"]" gTypeMediaStreamTrack :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaStreamTrackEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackEvent Mozilla MediaStreamTrackEvent documentation>
-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 #-}
-
-instance IsEvent MediaStreamTrackEvent
-instance IsGObject MediaStreamTrackEvent where
-  typeGType _ = gTypeMediaStreamTrackEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaStreamTrackEvent\"]" gTypeMediaStreamTrackEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaTrackConstraint".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraint Mozilla MediaTrackConstraint documentation>
-newtype MediaTrackConstraint = MediaTrackConstraint { unMediaTrackConstraint :: JSVal }
-
-instance Eq (MediaTrackConstraint) where
-  (MediaTrackConstraint a) == (MediaTrackConstraint b) = js_eq a b
-
-instance PToJSVal MediaTrackConstraint where
-  pToJSVal = unMediaTrackConstraint
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MediaTrackConstraint where
-  pFromJSVal = MediaTrackConstraint
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MediaTrackConstraint where
-  toJSVal = return . unMediaTrackConstraint
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MediaTrackConstraint where
-  fromJSVal = return . fmap MediaTrackConstraint . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject MediaTrackConstraint where
-  typeGType _ = gTypeMediaTrackConstraint
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaTrackConstraint\"]" gTypeMediaTrackConstraint :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaTrackConstraintSet".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraintSet Mozilla MediaTrackConstraintSet documentation>
-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 #-}
-
-instance IsGObject MediaTrackConstraintSet where
-  typeGType _ = gTypeMediaTrackConstraintSet
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaTrackConstraintSet\"]" gTypeMediaTrackConstraintSet :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MediaTrackConstraints".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints Mozilla MediaTrackConstraints documentation>
-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 #-}
-
-instance IsGObject MediaTrackConstraints where
-  typeGType _ = gTypeMediaTrackConstraints
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MediaTrackConstraints\"]" gTypeMediaTrackConstraints :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MemoryInfo".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MemoryInfo Mozilla MemoryInfo documentation>
-newtype MemoryInfo = MemoryInfo { unMemoryInfo :: JSVal }
-
-instance Eq (MemoryInfo) where
-  (MemoryInfo a) == (MemoryInfo b) = js_eq a b
-
-instance PToJSVal MemoryInfo where
-  pToJSVal = unMemoryInfo
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MemoryInfo where
-  pFromJSVal = MemoryInfo
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MemoryInfo where
-  toJSVal = return . unMemoryInfo
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MemoryInfo where
-  fromJSVal = return . fmap MemoryInfo . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject MemoryInfo where
-  typeGType _ = gTypeMemoryInfo
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MemoryInfo\"]" gTypeMemoryInfo :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MessageChannel".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel Mozilla MessageChannel documentation>
-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 #-}
-
-instance IsGObject MessageChannel where
-  typeGType _ = gTypeMessageChannel
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MessageChannel\"]" gTypeMessageChannel :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MessageEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent Mozilla MessageEvent documentation>
-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 #-}
-
-instance IsEvent MessageEvent
-instance IsGObject MessageEvent where
-  typeGType _ = gTypeMessageEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MessageEvent\"]" gTypeMessageEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MessagePort".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MessagePort Mozilla MessagePort documentation>
-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 #-}
-
-instance IsEventTarget MessagePort
-instance IsGObject MessagePort where
-  typeGType _ = gTypeMessagePort
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MessagePort\"]" gTypeMessagePort :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MimeType".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MimeType Mozilla MimeType documentation>
-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 #-}
-
-instance IsGObject MimeType where
-  typeGType _ = gTypeMimeType
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MimeType\"]" gTypeMimeType :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MimeTypeArray".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray Mozilla MimeTypeArray documentation>
-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 #-}
-
-instance IsGObject MimeTypeArray where
-  typeGType _ = gTypeMimeTypeArray
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MimeTypeArray\"]" gTypeMimeTypeArray :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MouseEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.UIEvent"
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent Mozilla MouseEvent documentation>
-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 #-}
-
-class IsUIEvent o => IsMouseEvent o
-toMouseEvent :: IsMouseEvent o => o -> MouseEvent
-toMouseEvent = MouseEvent . coerce
-
-instance IsMouseEvent MouseEvent
-instance IsUIEvent MouseEvent
-instance IsEvent MouseEvent
-instance IsGObject MouseEvent where
-  typeGType _ = gTypeMouseEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MouseEvent\"]" gTypeMouseEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MutationEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent Mozilla MutationEvent documentation>
-newtype MutationEvent = MutationEvent { unMutationEvent :: JSVal }
-
-instance Eq (MutationEvent) where
-  (MutationEvent a) == (MutationEvent b) = js_eq a b
-
-instance PToJSVal MutationEvent where
-  pToJSVal = unMutationEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal MutationEvent where
-  pFromJSVal = MutationEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal MutationEvent where
-  toJSVal = return . unMutationEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal MutationEvent where
-  fromJSVal = return . fmap MutationEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent MutationEvent
-instance IsGObject MutationEvent where
-  typeGType _ = gTypeMutationEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MutationEvent\"]" gTypeMutationEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MutationObserver".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver Mozilla MutationObserver documentation>
-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 #-}
-
-instance IsGObject MutationObserver where
-  typeGType _ = gTypeMutationObserver
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MutationObserver\"]" gTypeMutationObserver :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.MutationRecord".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord Mozilla MutationRecord documentation>
-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 #-}
-
-instance IsGObject MutationRecord where
-  typeGType _ = gTypeMutationRecord
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"MutationRecord\"]" gTypeMutationRecord :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.NamedNodeMap".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap Mozilla NamedNodeMap documentation>
-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 #-}
-
-instance IsGObject NamedNodeMap where
-  typeGType _ = gTypeNamedNodeMap
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"NamedNodeMap\"]" gTypeNamedNodeMap :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Navigator".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Navigator Mozilla Navigator documentation>
-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 #-}
-
-instance IsGObject Navigator where
-  typeGType _ = gTypeNavigator
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Navigator\"]" gTypeNavigator :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.NavigatorUserMediaError".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.DOMError"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMediaError Mozilla NavigatorUserMediaError documentation>
-newtype NavigatorUserMediaError = NavigatorUserMediaError { unNavigatorUserMediaError :: JSVal }
-
-instance Eq (NavigatorUserMediaError) where
-  (NavigatorUserMediaError a) == (NavigatorUserMediaError b) = js_eq a b
-
-instance PToJSVal NavigatorUserMediaError where
-  pToJSVal = unNavigatorUserMediaError
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal NavigatorUserMediaError where
-  pFromJSVal = NavigatorUserMediaError
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal NavigatorUserMediaError where
-  toJSVal = return . unNavigatorUserMediaError
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal NavigatorUserMediaError where
-  fromJSVal = return . fmap NavigatorUserMediaError . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsDOMError NavigatorUserMediaError
-instance IsGObject NavigatorUserMediaError where
-  typeGType _ = gTypeNavigatorUserMediaError
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"NavigatorUserMediaError\"]" gTypeNavigatorUserMediaError :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Node".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Node Mozilla Node documentation>
-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 #-}
-
-class IsEventTarget o => IsNode o
-toNode :: IsNode o => o -> Node
-toNode = Node . coerce
-
-instance IsNode Node
-instance IsEventTarget Node
-instance IsGObject Node where
-  typeGType _ = gTypeNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Node\"]" gTypeNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.NodeFilter".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter Mozilla NodeFilter documentation>
-newtype NodeFilter = NodeFilter { unNodeFilter :: JSVal }
-
-instance Eq (NodeFilter) where
-  (NodeFilter a) == (NodeFilter b) = js_eq a b
-
-instance PToJSVal NodeFilter where
-  pToJSVal = unNodeFilter
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal NodeFilter where
-  pFromJSVal = NodeFilter
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal NodeFilter where
-  toJSVal = return . unNodeFilter
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal NodeFilter where
-  fromJSVal = return . fmap NodeFilter . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject NodeFilter where
-  typeGType _ = gTypeNodeFilter
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"NodeFilter\"]" gTypeNodeFilter :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.NodeIterator".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator Mozilla NodeIterator documentation>
-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 #-}
-
-instance IsGObject NodeIterator where
-  typeGType _ = gTypeNodeIterator
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"NodeIterator\"]" gTypeNodeIterator :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.NodeList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/NodeList Mozilla NodeList documentation>
-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 #-}
-
-class IsGObject o => IsNodeList o
-toNodeList :: IsNodeList o => o -> NodeList
-toNodeList = NodeList . coerce
-
-instance IsNodeList NodeList
-instance IsGObject NodeList where
-  typeGType _ = gTypeNodeList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"NodeList\"]" gTypeNodeList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Notification".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Notification Mozilla Notification documentation>
-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 #-}
-
-instance IsEventTarget Notification
-instance IsGObject Notification where
-  typeGType _ = gTypeNotification
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Notification\"]" gTypeNotification :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.NotificationCenter".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/NotificationCenter Mozilla NotificationCenter documentation>
-newtype NotificationCenter = NotificationCenter { unNotificationCenter :: JSVal }
-
-instance Eq (NotificationCenter) where
-  (NotificationCenter a) == (NotificationCenter b) = js_eq a b
-
-instance PToJSVal NotificationCenter where
-  pToJSVal = unNotificationCenter
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal NotificationCenter where
-  pFromJSVal = NotificationCenter
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal NotificationCenter where
-  toJSVal = return . unNotificationCenter
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal NotificationCenter where
-  fromJSVal = return . fmap NotificationCenter . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject NotificationCenter where
-  typeGType _ = gTypeNotificationCenter
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"NotificationCenter\"]" gTypeNotificationCenter :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.OESElementIndexUint".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/OESElementIndexUint Mozilla OESElementIndexUint documentation>
-newtype OESElementIndexUint = OESElementIndexUint { unOESElementIndexUint :: JSVal }
-
-instance Eq (OESElementIndexUint) where
-  (OESElementIndexUint a) == (OESElementIndexUint b) = js_eq a b
-
-instance PToJSVal OESElementIndexUint where
-  pToJSVal = unOESElementIndexUint
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal OESElementIndexUint where
-  pFromJSVal = OESElementIndexUint
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal OESElementIndexUint where
-  toJSVal = return . unOESElementIndexUint
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal OESElementIndexUint where
-  fromJSVal = return . fmap OESElementIndexUint . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject OESElementIndexUint where
-  typeGType _ = gTypeOESElementIndexUint
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"OESElementIndexUint\"]" gTypeOESElementIndexUint :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.OESStandardDerivatives".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/OESStandardDerivatives Mozilla OESStandardDerivatives documentation>
-newtype OESStandardDerivatives = OESStandardDerivatives { unOESStandardDerivatives :: JSVal }
-
-instance Eq (OESStandardDerivatives) where
-  (OESStandardDerivatives a) == (OESStandardDerivatives b) = js_eq a b
-
-instance PToJSVal OESStandardDerivatives where
-  pToJSVal = unOESStandardDerivatives
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal OESStandardDerivatives where
-  pFromJSVal = OESStandardDerivatives
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal OESStandardDerivatives where
-  toJSVal = return . unOESStandardDerivatives
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal OESStandardDerivatives where
-  fromJSVal = return . fmap OESStandardDerivatives . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject OESStandardDerivatives where
-  typeGType _ = gTypeOESStandardDerivatives
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"OESStandardDerivatives\"]" gTypeOESStandardDerivatives :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.OESTextureFloat".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureFloat Mozilla OESTextureFloat documentation>
-newtype OESTextureFloat = OESTextureFloat { unOESTextureFloat :: JSVal }
-
-instance Eq (OESTextureFloat) where
-  (OESTextureFloat a) == (OESTextureFloat b) = js_eq a b
-
-instance PToJSVal OESTextureFloat where
-  pToJSVal = unOESTextureFloat
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal OESTextureFloat where
-  pFromJSVal = OESTextureFloat
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal OESTextureFloat where
-  toJSVal = return . unOESTextureFloat
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal OESTextureFloat where
-  fromJSVal = return . fmap OESTextureFloat . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject OESTextureFloat where
-  typeGType _ = gTypeOESTextureFloat
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"OESTextureFloat\"]" gTypeOESTextureFloat :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.OESTextureFloatLinear".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureFloatLinear Mozilla OESTextureFloatLinear documentation>
-newtype OESTextureFloatLinear = OESTextureFloatLinear { unOESTextureFloatLinear :: JSVal }
-
-instance Eq (OESTextureFloatLinear) where
-  (OESTextureFloatLinear a) == (OESTextureFloatLinear b) = js_eq a b
-
-instance PToJSVal OESTextureFloatLinear where
-  pToJSVal = unOESTextureFloatLinear
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal OESTextureFloatLinear where
-  pFromJSVal = OESTextureFloatLinear
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal OESTextureFloatLinear where
-  toJSVal = return . unOESTextureFloatLinear
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal OESTextureFloatLinear where
-  fromJSVal = return . fmap OESTextureFloatLinear . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject OESTextureFloatLinear where
-  typeGType _ = gTypeOESTextureFloatLinear
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"OESTextureFloatLinear\"]" gTypeOESTextureFloatLinear :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.OESTextureHalfFloat".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureHalfFloat Mozilla OESTextureHalfFloat documentation>
-newtype OESTextureHalfFloat = OESTextureHalfFloat { unOESTextureHalfFloat :: JSVal }
-
-instance Eq (OESTextureHalfFloat) where
-  (OESTextureHalfFloat a) == (OESTextureHalfFloat b) = js_eq a b
-
-instance PToJSVal OESTextureHalfFloat where
-  pToJSVal = unOESTextureHalfFloat
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal OESTextureHalfFloat where
-  pFromJSVal = OESTextureHalfFloat
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal OESTextureHalfFloat where
-  toJSVal = return . unOESTextureHalfFloat
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal OESTextureHalfFloat where
-  fromJSVal = return . fmap OESTextureHalfFloat . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject OESTextureHalfFloat where
-  typeGType _ = gTypeOESTextureHalfFloat
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"OESTextureHalfFloat\"]" gTypeOESTextureHalfFloat :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.OESTextureHalfFloatLinear".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureHalfFloatLinear Mozilla OESTextureHalfFloatLinear documentation>
-newtype OESTextureHalfFloatLinear = OESTextureHalfFloatLinear { unOESTextureHalfFloatLinear :: JSVal }
-
-instance Eq (OESTextureHalfFloatLinear) where
-  (OESTextureHalfFloatLinear a) == (OESTextureHalfFloatLinear b) = js_eq a b
-
-instance PToJSVal OESTextureHalfFloatLinear where
-  pToJSVal = unOESTextureHalfFloatLinear
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal OESTextureHalfFloatLinear where
-  pFromJSVal = OESTextureHalfFloatLinear
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal OESTextureHalfFloatLinear where
-  toJSVal = return . unOESTextureHalfFloatLinear
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal OESTextureHalfFloatLinear where
-  fromJSVal = return . fmap OESTextureHalfFloatLinear . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject OESTextureHalfFloatLinear where
-  typeGType _ = gTypeOESTextureHalfFloatLinear
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"OESTextureHalfFloatLinear\"]" gTypeOESTextureHalfFloatLinear :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.OESVertexArrayObject".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject Mozilla OESVertexArrayObject documentation>
-newtype OESVertexArrayObject = OESVertexArrayObject { unOESVertexArrayObject :: JSVal }
-
-instance Eq (OESVertexArrayObject) where
-  (OESVertexArrayObject a) == (OESVertexArrayObject b) = js_eq a b
-
-instance PToJSVal OESVertexArrayObject where
-  pToJSVal = unOESVertexArrayObject
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal OESVertexArrayObject where
-  pFromJSVal = OESVertexArrayObject
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal OESVertexArrayObject where
-  toJSVal = return . unOESVertexArrayObject
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal OESVertexArrayObject where
-  fromJSVal = return . fmap OESVertexArrayObject . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject OESVertexArrayObject where
-  typeGType _ = gTypeOESVertexArrayObject
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"OESVertexArrayObject\"]" gTypeOESVertexArrayObject :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.OfflineAudioCompletionEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioCompletionEvent Mozilla OfflineAudioCompletionEvent documentation>
-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 #-}
-
-instance IsEvent OfflineAudioCompletionEvent
-instance IsGObject OfflineAudioCompletionEvent where
-  typeGType _ = gTypeOfflineAudioCompletionEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"OfflineAudioCompletionEvent\"]" gTypeOfflineAudioCompletionEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.OfflineAudioContext".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioContext"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioContext Mozilla OfflineAudioContext documentation>
-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 #-}
-
-instance IsAudioContext OfflineAudioContext
-instance IsEventTarget OfflineAudioContext
-instance IsGObject OfflineAudioContext where
-  typeGType _ = gTypeOfflineAudioContext
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"OfflineAudioContext\"]" gTypeOfflineAudioContext :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.OscillatorNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode Mozilla OscillatorNode documentation>
-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 #-}
-
-instance IsAudioNode OscillatorNode
-instance IsEventTarget OscillatorNode
-instance IsGObject OscillatorNode where
-  typeGType _ = gTypeOscillatorNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"OscillatorNode\"]" gTypeOscillatorNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.OverflowEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/OverflowEvent Mozilla OverflowEvent documentation>
-newtype OverflowEvent = OverflowEvent { unOverflowEvent :: JSVal }
-
-instance Eq (OverflowEvent) where
-  (OverflowEvent a) == (OverflowEvent b) = js_eq a b
-
-instance PToJSVal OverflowEvent where
-  pToJSVal = unOverflowEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal OverflowEvent where
-  pFromJSVal = OverflowEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal OverflowEvent where
-  toJSVal = return . unOverflowEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal OverflowEvent where
-  fromJSVal = return . fmap OverflowEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent OverflowEvent
-instance IsGObject OverflowEvent where
-  typeGType _ = gTypeOverflowEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"OverflowEvent\"]" gTypeOverflowEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PageTransitionEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PageTransitionEvent Mozilla PageTransitionEvent documentation>
-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 #-}
-
-instance IsEvent PageTransitionEvent
-instance IsGObject PageTransitionEvent where
-  typeGType _ = gTypePageTransitionEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PageTransitionEvent\"]" gTypePageTransitionEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PannerNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode Mozilla webkitAudioPannerNode documentation>
-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 #-}
-
-instance IsAudioNode PannerNode
-instance IsEventTarget PannerNode
-instance IsGObject PannerNode where
-  typeGType _ = gTypePannerNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"webkitAudioPannerNode\"]" gTypePannerNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Path2D".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Path2D Mozilla Path2D documentation>
-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 #-}
-
-instance IsGObject Path2D where
-  typeGType _ = gTypePath2D
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Path2D\"]" gTypePath2D :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Performance".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Performance Mozilla Performance documentation>
-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 #-}
-
-instance IsEventTarget Performance
-instance IsGObject Performance where
-  typeGType _ = gTypePerformance
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Performance\"]" gTypePerformance :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PerformanceEntry".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry Mozilla PerformanceEntry documentation>
-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 #-}
-
-class IsGObject o => IsPerformanceEntry o
-toPerformanceEntry :: IsPerformanceEntry o => o -> PerformanceEntry
-toPerformanceEntry = PerformanceEntry . coerce
-
-instance IsPerformanceEntry PerformanceEntry
-instance IsGObject PerformanceEntry where
-  typeGType _ = gTypePerformanceEntry
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PerformanceEntry\"]" gTypePerformanceEntry :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PerformanceEntryList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntryList Mozilla PerformanceEntryList documentation>
-newtype PerformanceEntryList = PerformanceEntryList { unPerformanceEntryList :: JSVal }
-
-instance Eq (PerformanceEntryList) where
-  (PerformanceEntryList a) == (PerformanceEntryList b) = js_eq a b
-
-instance PToJSVal PerformanceEntryList where
-  pToJSVal = unPerformanceEntryList
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal PerformanceEntryList where
-  pFromJSVal = PerformanceEntryList
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal PerformanceEntryList where
-  toJSVal = return . unPerformanceEntryList
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal PerformanceEntryList where
-  fromJSVal = return . fmap PerformanceEntryList . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject PerformanceEntryList where
-  typeGType _ = gTypePerformanceEntryList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PerformanceEntryList\"]" gTypePerformanceEntryList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PerformanceMark".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.PerformanceEntry"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceMark Mozilla PerformanceMark documentation>
-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 #-}
-
-instance IsPerformanceEntry PerformanceMark
-instance IsGObject PerformanceMark where
-  typeGType _ = gTypePerformanceMark
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PerformanceMark\"]" gTypePerformanceMark :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PerformanceMeasure".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.PerformanceEntry"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceMeasure Mozilla PerformanceMeasure documentation>
-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 #-}
-
-instance IsPerformanceEntry PerformanceMeasure
-instance IsGObject PerformanceMeasure where
-  typeGType _ = gTypePerformanceMeasure
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PerformanceMeasure\"]" gTypePerformanceMeasure :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PerformanceNavigation".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigation Mozilla PerformanceNavigation documentation>
-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 #-}
-
-instance IsGObject PerformanceNavigation where
-  typeGType _ = gTypePerformanceNavigation
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PerformanceNavigation\"]" gTypePerformanceNavigation :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PerformanceResourceTiming".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.PerformanceEntry"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming Mozilla PerformanceResourceTiming documentation>
-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 #-}
-
-instance IsPerformanceEntry PerformanceResourceTiming
-instance IsGObject PerformanceResourceTiming where
-  typeGType _ = gTypePerformanceResourceTiming
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PerformanceResourceTiming\"]" gTypePerformanceResourceTiming :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PerformanceTiming".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming Mozilla PerformanceTiming documentation>
-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 #-}
-
-instance IsGObject PerformanceTiming where
-  typeGType _ = gTypePerformanceTiming
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PerformanceTiming\"]" gTypePerformanceTiming :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PeriodicWave".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PeriodicWave Mozilla PeriodicWave documentation>
-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 #-}
-
-instance IsGObject PeriodicWave where
-  typeGType _ = gTypePeriodicWave
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PeriodicWave\"]" gTypePeriodicWave :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Plugin".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Plugin Mozilla Plugin documentation>
-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 #-}
-
-instance IsGObject Plugin where
-  typeGType _ = gTypePlugin
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Plugin\"]" gTypePlugin :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PluginArray".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray Mozilla PluginArray documentation>
-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 #-}
-
-instance IsGObject PluginArray where
-  typeGType _ = gTypePluginArray
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PluginArray\"]" gTypePluginArray :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PopStateEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PopStateEvent Mozilla PopStateEvent documentation>
-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 #-}
-
-instance IsEvent PopStateEvent
-instance IsGObject PopStateEvent where
-  typeGType _ = gTypePopStateEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PopStateEvent\"]" gTypePopStateEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.PositionError".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/PositionError Mozilla PositionError documentation>
-newtype PositionError = PositionError { unPositionError :: JSVal }
-
-instance Eq (PositionError) where
-  (PositionError a) == (PositionError b) = js_eq a b
-
-instance PToJSVal PositionError where
-  pToJSVal = unPositionError
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal PositionError where
-  pFromJSVal = PositionError
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal PositionError where
-  toJSVal = return . unPositionError
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal PositionError where
-  fromJSVal = return . fmap PositionError . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject PositionError where
-  typeGType _ = gTypePositionError
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"PositionError\"]" gTypePositionError :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ProcessingInstruction".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CharacterData"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ProcessingInstruction Mozilla ProcessingInstruction documentation>
-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 #-}
-
-instance IsCharacterData ProcessingInstruction
-instance IsNode ProcessingInstruction
-instance IsEventTarget ProcessingInstruction
-instance IsGObject ProcessingInstruction where
-  typeGType _ = gTypeProcessingInstruction
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ProcessingInstruction\"]" gTypeProcessingInstruction :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ProgressEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ProgressEvent Mozilla ProgressEvent documentation>
-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 #-}
-
-class IsEvent o => IsProgressEvent o
-toProgressEvent :: IsProgressEvent o => o -> ProgressEvent
-toProgressEvent = ProgressEvent . coerce
-
-instance IsProgressEvent ProgressEvent
-instance IsEvent ProgressEvent
-instance IsGObject ProgressEvent where
-  typeGType _ = gTypeProgressEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ProgressEvent\"]" gTypeProgressEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.QuickTimePluginReplacement".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement Mozilla QuickTimePluginReplacement documentation>
-newtype QuickTimePluginReplacement = QuickTimePluginReplacement { unQuickTimePluginReplacement :: JSVal }
-
-instance Eq (QuickTimePluginReplacement) where
-  (QuickTimePluginReplacement a) == (QuickTimePluginReplacement b) = js_eq a b
-
-instance PToJSVal QuickTimePluginReplacement where
-  pToJSVal = unQuickTimePluginReplacement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal QuickTimePluginReplacement where
-  pFromJSVal = QuickTimePluginReplacement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal QuickTimePluginReplacement where
-  toJSVal = return . unQuickTimePluginReplacement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal QuickTimePluginReplacement where
-  fromJSVal = return . fmap QuickTimePluginReplacement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject QuickTimePluginReplacement where
-  typeGType _ = gTypeQuickTimePluginReplacement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"QuickTimePluginReplacement\"]" gTypeQuickTimePluginReplacement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RGBColor".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor Mozilla RGBColor documentation>
-newtype RGBColor = RGBColor { unRGBColor :: JSVal }
-
-instance Eq (RGBColor) where
-  (RGBColor a) == (RGBColor b) = js_eq a b
-
-instance PToJSVal RGBColor where
-  pToJSVal = unRGBColor
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal RGBColor where
-  pFromJSVal = RGBColor
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal RGBColor where
-  toJSVal = return . unRGBColor
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal RGBColor where
-  fromJSVal = return . fmap RGBColor . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject RGBColor where
-  typeGType _ = gTypeRGBColor
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RGBColor\"]" gTypeRGBColor :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCConfiguration".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration Mozilla RTCConfiguration documentation>
-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 #-}
-
-instance IsGObject RTCConfiguration where
-  typeGType _ = gTypeRTCConfiguration
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RTCConfiguration\"]" gTypeRTCConfiguration :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCDTMFSender".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender Mozilla RTCDTMFSender documentation>
-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 #-}
-
-instance IsEventTarget RTCDTMFSender
-instance IsGObject RTCDTMFSender where
-  typeGType _ = gTypeRTCDTMFSender
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RTCDTMFSender\"]" gTypeRTCDTMFSender :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCDTMFToneChangeEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFToneChangeEvent Mozilla RTCDTMFToneChangeEvent documentation>
-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 #-}
-
-instance IsEvent RTCDTMFToneChangeEvent
-instance IsGObject RTCDTMFToneChangeEvent where
-  typeGType _ = gTypeRTCDTMFToneChangeEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RTCDTMFToneChangeEvent\"]" gTypeRTCDTMFToneChangeEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCDataChannel".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel Mozilla RTCDataChannel documentation>
-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 #-}
-
-instance IsEventTarget RTCDataChannel
-instance IsGObject RTCDataChannel where
-  typeGType _ = gTypeRTCDataChannel
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RTCDataChannel\"]" gTypeRTCDataChannel :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCDataChannelEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannelEvent Mozilla RTCDataChannelEvent documentation>
-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 #-}
-
-instance IsEvent RTCDataChannelEvent
-instance IsGObject RTCDataChannelEvent where
-  typeGType _ = gTypeRTCDataChannelEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RTCDataChannelEvent\"]" gTypeRTCDataChannelEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCIceCandidate".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate Mozilla RTCIceCandidate documentation>
-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 #-}
-
-instance IsGObject RTCIceCandidate where
-  typeGType _ = gTypeRTCIceCandidate
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RTCIceCandidate\"]" gTypeRTCIceCandidate :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCIceCandidateEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidateEvent Mozilla RTCIceCandidateEvent documentation>
-newtype RTCIceCandidateEvent = RTCIceCandidateEvent { unRTCIceCandidateEvent :: JSVal }
-
-instance Eq (RTCIceCandidateEvent) where
-  (RTCIceCandidateEvent a) == (RTCIceCandidateEvent b) = js_eq a b
-
-instance PToJSVal RTCIceCandidateEvent where
-  pToJSVal = unRTCIceCandidateEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal RTCIceCandidateEvent where
-  pFromJSVal = RTCIceCandidateEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal RTCIceCandidateEvent where
-  toJSVal = return . unRTCIceCandidateEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal RTCIceCandidateEvent where
-  fromJSVal = return . fmap RTCIceCandidateEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent RTCIceCandidateEvent
-instance IsGObject RTCIceCandidateEvent where
-  typeGType _ = gTypeRTCIceCandidateEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RTCIceCandidateEvent\"]" gTypeRTCIceCandidateEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCIceServer".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer Mozilla RTCIceServer documentation>
-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 #-}
-
-instance IsGObject RTCIceServer where
-  typeGType _ = gTypeRTCIceServer
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RTCIceServer\"]" gTypeRTCIceServer :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCPeerConnection".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection Mozilla webkitRTCPeerConnection documentation>
-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 #-}
-
-instance IsEventTarget RTCPeerConnection
-instance IsGObject RTCPeerConnection where
-  typeGType _ = gTypeRTCPeerConnection
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"webkitRTCPeerConnection\"]" gTypeRTCPeerConnection :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCSessionDescription".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescription Mozilla RTCSessionDescription documentation>
-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 #-}
-
-instance IsGObject RTCSessionDescription where
-  typeGType _ = gTypeRTCSessionDescription
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RTCSessionDescription\"]" gTypeRTCSessionDescription :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCStatsReport".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport Mozilla RTCStatsReport documentation>
-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 #-}
-
-instance IsGObject RTCStatsReport where
-  typeGType _ = gTypeRTCStatsReport
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RTCStatsReport\"]" gTypeRTCStatsReport :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RTCStatsResponse".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsResponse Mozilla RTCStatsResponse documentation>
-newtype RTCStatsResponse = RTCStatsResponse { unRTCStatsResponse :: JSVal }
-
-instance Eq (RTCStatsResponse) where
-  (RTCStatsResponse a) == (RTCStatsResponse b) = js_eq a b
-
-instance PToJSVal RTCStatsResponse where
-  pToJSVal = unRTCStatsResponse
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal RTCStatsResponse where
-  pFromJSVal = RTCStatsResponse
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal RTCStatsResponse where
-  toJSVal = return . unRTCStatsResponse
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal RTCStatsResponse where
-  fromJSVal = return . fmap RTCStatsResponse . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject RTCStatsResponse where
-  typeGType _ = gTypeRTCStatsResponse
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RTCStatsResponse\"]" gTypeRTCStatsResponse :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.RadioNodeList".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.NodeList"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList Mozilla RadioNodeList documentation>
-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 #-}
-
-instance IsNodeList RadioNodeList
-instance IsGObject RadioNodeList where
-  typeGType _ = gTypeRadioNodeList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"RadioNodeList\"]" gTypeRadioNodeList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Range".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Range Mozilla Range documentation>
-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 #-}
-
-instance IsGObject Range where
-  typeGType _ = gTypeRange
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Range\"]" gTypeRange :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ReadableStream".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream Mozilla ReadableStream documentation>
-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 #-}
-
-instance IsGObject ReadableStream where
-  typeGType _ = gTypeReadableStream
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ReadableStream\"]" gTypeReadableStream :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Rect".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Rect Mozilla Rect documentation>
-newtype Rect = Rect { unRect :: JSVal }
-
-instance Eq (Rect) where
-  (Rect a) == (Rect b) = js_eq a b
-
-instance PToJSVal Rect where
-  pToJSVal = unRect
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal Rect where
-  pFromJSVal = Rect
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal Rect where
-  toJSVal = return . unRect
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal Rect where
-  fromJSVal = return . fmap Rect . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject Rect where
-  typeGType _ = gTypeRect
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Rect\"]" gTypeRect :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SQLError".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SQLError Mozilla SQLError documentation>
-newtype SQLError = SQLError { unSQLError :: JSVal }
-
-instance Eq (SQLError) where
-  (SQLError a) == (SQLError b) = js_eq a b
-
-instance PToJSVal SQLError where
-  pToJSVal = unSQLError
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SQLError where
-  pFromJSVal = SQLError
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SQLError where
-  toJSVal = return . unSQLError
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SQLError where
-  fromJSVal = return . fmap SQLError . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SQLError where
-  typeGType _ = gTypeSQLError
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SQLError\"]" gTypeSQLError :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SQLResultSet".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSet Mozilla SQLResultSet documentation>
-newtype SQLResultSet = SQLResultSet { unSQLResultSet :: JSVal }
-
-instance Eq (SQLResultSet) where
-  (SQLResultSet a) == (SQLResultSet b) = js_eq a b
-
-instance PToJSVal SQLResultSet where
-  pToJSVal = unSQLResultSet
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SQLResultSet where
-  pFromJSVal = SQLResultSet
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SQLResultSet where
-  toJSVal = return . unSQLResultSet
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SQLResultSet where
-  fromJSVal = return . fmap SQLResultSet . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SQLResultSet where
-  typeGType _ = gTypeSQLResultSet
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SQLResultSet\"]" gTypeSQLResultSet :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SQLResultSetRowList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSetRowList Mozilla SQLResultSetRowList documentation>
-newtype SQLResultSetRowList = SQLResultSetRowList { unSQLResultSetRowList :: JSVal }
-
-instance Eq (SQLResultSetRowList) where
-  (SQLResultSetRowList a) == (SQLResultSetRowList b) = js_eq a b
-
-instance PToJSVal SQLResultSetRowList where
-  pToJSVal = unSQLResultSetRowList
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SQLResultSetRowList where
-  pFromJSVal = SQLResultSetRowList
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SQLResultSetRowList where
-  toJSVal = return . unSQLResultSetRowList
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SQLResultSetRowList where
-  fromJSVal = return . fmap SQLResultSetRowList . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SQLResultSetRowList where
-  typeGType _ = gTypeSQLResultSetRowList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SQLResultSetRowList\"]" gTypeSQLResultSetRowList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SQLTransaction".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransaction Mozilla SQLTransaction documentation>
-newtype SQLTransaction = SQLTransaction { unSQLTransaction :: JSVal }
-
-instance Eq (SQLTransaction) where
-  (SQLTransaction a) == (SQLTransaction b) = js_eq a b
-
-instance PToJSVal SQLTransaction where
-  pToJSVal = unSQLTransaction
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SQLTransaction where
-  pFromJSVal = SQLTransaction
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SQLTransaction where
-  toJSVal = return . unSQLTransaction
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SQLTransaction where
-  fromJSVal = return . fmap SQLTransaction . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SQLTransaction where
-  typeGType _ = gTypeSQLTransaction
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SQLTransaction\"]" gTypeSQLTransaction :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAElement Mozilla SVGAElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGAElement
-instance IsSVGElement SVGAElement
-instance IsElement SVGAElement
-instance IsNode SVGAElement
-instance IsEventTarget SVGAElement
-instance IsGObject SVGAElement where
-  typeGType _ = gTypeSVGAElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAElement\"]" gTypeSVGAElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAltGlyphDefElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphDefElement Mozilla SVGAltGlyphDefElement documentation>
-newtype SVGAltGlyphDefElement = SVGAltGlyphDefElement { unSVGAltGlyphDefElement :: JSVal }
-
-instance Eq (SVGAltGlyphDefElement) where
-  (SVGAltGlyphDefElement a) == (SVGAltGlyphDefElement b) = js_eq a b
-
-instance PToJSVal SVGAltGlyphDefElement where
-  pToJSVal = unSVGAltGlyphDefElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGAltGlyphDefElement where
-  pFromJSVal = SVGAltGlyphDefElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGAltGlyphDefElement where
-  toJSVal = return . unSVGAltGlyphDefElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGAltGlyphDefElement where
-  fromJSVal = return . fmap SVGAltGlyphDefElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGAltGlyphDefElement
-instance IsElement SVGAltGlyphDefElement
-instance IsNode SVGAltGlyphDefElement
-instance IsEventTarget SVGAltGlyphDefElement
-instance IsGObject SVGAltGlyphDefElement where
-  typeGType _ = gTypeSVGAltGlyphDefElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAltGlyphDefElement\"]" gTypeSVGAltGlyphDefElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAltGlyphElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGTextPositioningElement"
---     * "GHCJS.DOM.SVGTextContentElement"
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphElement Mozilla SVGAltGlyphElement documentation>
-newtype SVGAltGlyphElement = SVGAltGlyphElement { unSVGAltGlyphElement :: JSVal }
-
-instance Eq (SVGAltGlyphElement) where
-  (SVGAltGlyphElement a) == (SVGAltGlyphElement b) = js_eq a b
-
-instance PToJSVal SVGAltGlyphElement where
-  pToJSVal = unSVGAltGlyphElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGAltGlyphElement where
-  pFromJSVal = SVGAltGlyphElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGAltGlyphElement where
-  toJSVal = return . unSVGAltGlyphElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGAltGlyphElement where
-  fromJSVal = return . fmap SVGAltGlyphElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGTextPositioningElement SVGAltGlyphElement
-instance IsSVGTextContentElement SVGAltGlyphElement
-instance IsSVGGraphicsElement SVGAltGlyphElement
-instance IsSVGElement SVGAltGlyphElement
-instance IsElement SVGAltGlyphElement
-instance IsNode SVGAltGlyphElement
-instance IsEventTarget SVGAltGlyphElement
-instance IsGObject SVGAltGlyphElement where
-  typeGType _ = gTypeSVGAltGlyphElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAltGlyphElement\"]" gTypeSVGAltGlyphElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAltGlyphItemElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphItemElement Mozilla SVGAltGlyphItemElement documentation>
-newtype SVGAltGlyphItemElement = SVGAltGlyphItemElement { unSVGAltGlyphItemElement :: JSVal }
-
-instance Eq (SVGAltGlyphItemElement) where
-  (SVGAltGlyphItemElement a) == (SVGAltGlyphItemElement b) = js_eq a b
-
-instance PToJSVal SVGAltGlyphItemElement where
-  pToJSVal = unSVGAltGlyphItemElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGAltGlyphItemElement where
-  pFromJSVal = SVGAltGlyphItemElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGAltGlyphItemElement where
-  toJSVal = return . unSVGAltGlyphItemElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGAltGlyphItemElement where
-  fromJSVal = return . fmap SVGAltGlyphItemElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGAltGlyphItemElement
-instance IsElement SVGAltGlyphItemElement
-instance IsNode SVGAltGlyphItemElement
-instance IsEventTarget SVGAltGlyphItemElement
-instance IsGObject SVGAltGlyphItemElement where
-  typeGType _ = gTypeSVGAltGlyphItemElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAltGlyphItemElement\"]" gTypeSVGAltGlyphItemElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAngle".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle Mozilla SVGAngle documentation>
-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 #-}
-
-instance IsGObject SVGAngle where
-  typeGType _ = gTypeSVGAngle
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAngle\"]" gTypeSVGAngle :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimateColorElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGAnimationElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateColorElement Mozilla SVGAnimateColorElement documentation>
-newtype SVGAnimateColorElement = SVGAnimateColorElement { unSVGAnimateColorElement :: JSVal }
-
-instance Eq (SVGAnimateColorElement) where
-  (SVGAnimateColorElement a) == (SVGAnimateColorElement b) = js_eq a b
-
-instance PToJSVal SVGAnimateColorElement where
-  pToJSVal = unSVGAnimateColorElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGAnimateColorElement where
-  pFromJSVal = SVGAnimateColorElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGAnimateColorElement where
-  toJSVal = return . unSVGAnimateColorElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGAnimateColorElement where
-  fromJSVal = return . fmap SVGAnimateColorElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGAnimationElement SVGAnimateColorElement
-instance IsSVGElement SVGAnimateColorElement
-instance IsElement SVGAnimateColorElement
-instance IsNode SVGAnimateColorElement
-instance IsEventTarget SVGAnimateColorElement
-instance IsGObject SVGAnimateColorElement where
-  typeGType _ = gTypeSVGAnimateColorElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimateColorElement\"]" gTypeSVGAnimateColorElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimateElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGAnimationElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateElement Mozilla SVGAnimateElement documentation>
-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 #-}
-
-instance IsSVGAnimationElement SVGAnimateElement
-instance IsSVGElement SVGAnimateElement
-instance IsElement SVGAnimateElement
-instance IsNode SVGAnimateElement
-instance IsEventTarget SVGAnimateElement
-instance IsGObject SVGAnimateElement where
-  typeGType _ = gTypeSVGAnimateElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimateElement\"]" gTypeSVGAnimateElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimateMotionElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGAnimationElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateMotionElement Mozilla SVGAnimateMotionElement documentation>
-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 #-}
-
-instance IsSVGAnimationElement SVGAnimateMotionElement
-instance IsSVGElement SVGAnimateMotionElement
-instance IsElement SVGAnimateMotionElement
-instance IsNode SVGAnimateMotionElement
-instance IsEventTarget SVGAnimateMotionElement
-instance IsGObject SVGAnimateMotionElement where
-  typeGType _ = gTypeSVGAnimateMotionElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimateMotionElement\"]" gTypeSVGAnimateMotionElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimateTransformElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGAnimationElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateTransformElement Mozilla SVGAnimateTransformElement documentation>
-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 #-}
-
-instance IsSVGAnimationElement SVGAnimateTransformElement
-instance IsSVGElement SVGAnimateTransformElement
-instance IsElement SVGAnimateTransformElement
-instance IsNode SVGAnimateTransformElement
-instance IsEventTarget SVGAnimateTransformElement
-instance IsGObject SVGAnimateTransformElement where
-  typeGType _ = gTypeSVGAnimateTransformElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimateTransformElement\"]" gTypeSVGAnimateTransformElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedAngle".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedAngle Mozilla SVGAnimatedAngle documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedAngle where
-  typeGType _ = gTypeSVGAnimatedAngle
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedAngle\"]" gTypeSVGAnimatedAngle :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedBoolean".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedBoolean Mozilla SVGAnimatedBoolean documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedBoolean where
-  typeGType _ = gTypeSVGAnimatedBoolean
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedBoolean\"]" gTypeSVGAnimatedBoolean :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedEnumeration".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedEnumeration Mozilla SVGAnimatedEnumeration documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedEnumeration where
-  typeGType _ = gTypeSVGAnimatedEnumeration
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedEnumeration\"]" gTypeSVGAnimatedEnumeration :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedInteger".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedInteger Mozilla SVGAnimatedInteger documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedInteger where
-  typeGType _ = gTypeSVGAnimatedInteger
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedInteger\"]" gTypeSVGAnimatedInteger :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedLength".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLength Mozilla SVGAnimatedLength documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedLength where
-  typeGType _ = gTypeSVGAnimatedLength
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedLength\"]" gTypeSVGAnimatedLength :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedLengthList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLengthList Mozilla SVGAnimatedLengthList documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedLengthList where
-  typeGType _ = gTypeSVGAnimatedLengthList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedLengthList\"]" gTypeSVGAnimatedLengthList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedNumber".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumber Mozilla SVGAnimatedNumber documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedNumber where
-  typeGType _ = gTypeSVGAnimatedNumber
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedNumber\"]" gTypeSVGAnimatedNumber :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedNumberList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumberList Mozilla SVGAnimatedNumberList documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedNumberList where
-  typeGType _ = gTypeSVGAnimatedNumberList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedNumberList\"]" gTypeSVGAnimatedNumberList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedPreserveAspectRatio".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedPreserveAspectRatio Mozilla SVGAnimatedPreserveAspectRatio documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedPreserveAspectRatio where
-  typeGType _ = gTypeSVGAnimatedPreserveAspectRatio
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedPreserveAspectRatio\"]" gTypeSVGAnimatedPreserveAspectRatio :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedRect".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedRect Mozilla SVGAnimatedRect documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedRect where
-  typeGType _ = gTypeSVGAnimatedRect
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedRect\"]" gTypeSVGAnimatedRect :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedString".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedString Mozilla SVGAnimatedString documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedString where
-  typeGType _ = gTypeSVGAnimatedString
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedString\"]" gTypeSVGAnimatedString :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedTransformList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedTransformList Mozilla SVGAnimatedTransformList documentation>
-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 #-}
-
-instance IsGObject SVGAnimatedTransformList where
-  typeGType _ = gTypeSVGAnimatedTransformList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimatedTransformList\"]" gTypeSVGAnimatedTransformList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGAnimationElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimationElement Mozilla SVGAnimationElement documentation>
-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 #-}
-
-class IsSVGElement o => IsSVGAnimationElement o
-toSVGAnimationElement :: IsSVGAnimationElement o => o -> SVGAnimationElement
-toSVGAnimationElement = SVGAnimationElement . coerce
-
-instance IsSVGAnimationElement SVGAnimationElement
-instance IsSVGElement SVGAnimationElement
-instance IsElement SVGAnimationElement
-instance IsNode SVGAnimationElement
-instance IsEventTarget SVGAnimationElement
-instance IsGObject SVGAnimationElement where
-  typeGType _ = gTypeSVGAnimationElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGAnimationElement\"]" gTypeSVGAnimationElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGCircleElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement Mozilla SVGCircleElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGCircleElement
-instance IsSVGElement SVGCircleElement
-instance IsElement SVGCircleElement
-instance IsNode SVGCircleElement
-instance IsEventTarget SVGCircleElement
-instance IsGObject SVGCircleElement where
-  typeGType _ = gTypeSVGCircleElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGCircleElement\"]" gTypeSVGCircleElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGClipPathElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGClipPathElement Mozilla SVGClipPathElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGClipPathElement
-instance IsSVGElement SVGClipPathElement
-instance IsElement SVGClipPathElement
-instance IsNode SVGClipPathElement
-instance IsEventTarget SVGClipPathElement
-instance IsGObject SVGClipPathElement where
-  typeGType _ = gTypeSVGClipPathElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGClipPathElement\"]" gTypeSVGClipPathElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGColor".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSValue"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGColor Mozilla SVGColor documentation>
-newtype SVGColor = SVGColor { unSVGColor :: JSVal }
-
-instance Eq (SVGColor) where
-  (SVGColor a) == (SVGColor b) = js_eq a b
-
-instance PToJSVal SVGColor where
-  pToJSVal = unSVGColor
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGColor where
-  pFromJSVal = SVGColor
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGColor where
-  toJSVal = return . unSVGColor
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGColor where
-  fromJSVal = return . fmap SVGColor . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsCSSValue o => IsSVGColor o
-toSVGColor :: IsSVGColor o => o -> SVGColor
-toSVGColor = SVGColor . coerce
-
-instance IsSVGColor SVGColor
-instance IsCSSValue SVGColor
-instance IsGObject SVGColor where
-  typeGType _ = gTypeSVGColor
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGColor\"]" gTypeSVGColor :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGComponentTransferFunctionElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement Mozilla SVGComponentTransferFunctionElement documentation>
-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 #-}
-
-class IsSVGElement o => IsSVGComponentTransferFunctionElement o
-toSVGComponentTransferFunctionElement :: IsSVGComponentTransferFunctionElement o => o -> SVGComponentTransferFunctionElement
-toSVGComponentTransferFunctionElement = SVGComponentTransferFunctionElement . coerce
-
-instance IsSVGComponentTransferFunctionElement SVGComponentTransferFunctionElement
-instance IsSVGElement SVGComponentTransferFunctionElement
-instance IsElement SVGComponentTransferFunctionElement
-instance IsNode SVGComponentTransferFunctionElement
-instance IsEventTarget SVGComponentTransferFunctionElement
-instance IsGObject SVGComponentTransferFunctionElement where
-  typeGType _ = gTypeSVGComponentTransferFunctionElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGComponentTransferFunctionElement\"]" gTypeSVGComponentTransferFunctionElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGCursorElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGCursorElement Mozilla SVGCursorElement documentation>
-newtype SVGCursorElement = SVGCursorElement { unSVGCursorElement :: JSVal }
-
-instance Eq (SVGCursorElement) where
-  (SVGCursorElement a) == (SVGCursorElement b) = js_eq a b
-
-instance PToJSVal SVGCursorElement where
-  pToJSVal = unSVGCursorElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGCursorElement where
-  pFromJSVal = SVGCursorElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGCursorElement where
-  toJSVal = return . unSVGCursorElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGCursorElement where
-  fromJSVal = return . fmap SVGCursorElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGCursorElement
-instance IsElement SVGCursorElement
-instance IsNode SVGCursorElement
-instance IsEventTarget SVGCursorElement
-instance IsGObject SVGCursorElement where
-  typeGType _ = gTypeSVGCursorElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGCursorElement\"]" gTypeSVGCursorElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGDefsElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGDefsElement Mozilla SVGDefsElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGDefsElement
-instance IsSVGElement SVGDefsElement
-instance IsElement SVGDefsElement
-instance IsNode SVGDefsElement
-instance IsEventTarget SVGDefsElement
-instance IsGObject SVGDefsElement where
-  typeGType _ = gTypeSVGDefsElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGDefsElement\"]" gTypeSVGDefsElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGDescElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGDescElement Mozilla SVGDescElement documentation>
-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 #-}
-
-instance IsSVGElement SVGDescElement
-instance IsElement SVGDescElement
-instance IsNode SVGDescElement
-instance IsEventTarget SVGDescElement
-instance IsGObject SVGDescElement where
-  typeGType _ = gTypeSVGDescElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGDescElement\"]" gTypeSVGDescElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGDocument".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Document"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGDocument Mozilla SVGDocument documentation>
-newtype SVGDocument = SVGDocument { unSVGDocument :: JSVal }
-
-instance Eq (SVGDocument) where
-  (SVGDocument a) == (SVGDocument b) = js_eq a b
-
-instance PToJSVal SVGDocument where
-  pToJSVal = unSVGDocument
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGDocument where
-  pFromJSVal = SVGDocument
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGDocument where
-  toJSVal = return . unSVGDocument
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGDocument where
-  fromJSVal = return . fmap SVGDocument . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsDocument SVGDocument
-instance IsNode SVGDocument
-instance IsEventTarget SVGDocument
-instance IsGObject SVGDocument where
-  typeGType _ = gTypeSVGDocument
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGDocument\"]" gTypeSVGDocument :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement Mozilla SVGElement documentation>
-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 #-}
-
-class IsElement o => IsSVGElement o
-toSVGElement :: IsSVGElement o => o -> SVGElement
-toSVGElement = SVGElement . coerce
-
-instance IsSVGElement SVGElement
-instance IsElement SVGElement
-instance IsNode SVGElement
-instance IsEventTarget SVGElement
-instance IsGObject SVGElement where
-  typeGType _ = gTypeSVGElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGElement\"]" gTypeSVGElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGEllipseElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement Mozilla SVGEllipseElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGEllipseElement
-instance IsSVGElement SVGEllipseElement
-instance IsElement SVGEllipseElement
-instance IsNode SVGEllipseElement
-instance IsEventTarget SVGEllipseElement
-instance IsGObject SVGEllipseElement where
-  typeGType _ = gTypeSVGEllipseElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGEllipseElement\"]" gTypeSVGEllipseElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGExternalResourcesRequired".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGExternalResourcesRequired Mozilla SVGExternalResourcesRequired documentation>
-newtype SVGExternalResourcesRequired = SVGExternalResourcesRequired { unSVGExternalResourcesRequired :: JSVal }
-
-instance Eq (SVGExternalResourcesRequired) where
-  (SVGExternalResourcesRequired a) == (SVGExternalResourcesRequired b) = js_eq a b
-
-instance PToJSVal SVGExternalResourcesRequired where
-  pToJSVal = unSVGExternalResourcesRequired
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGExternalResourcesRequired where
-  pFromJSVal = SVGExternalResourcesRequired
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGExternalResourcesRequired where
-  toJSVal = return . unSVGExternalResourcesRequired
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGExternalResourcesRequired where
-  fromJSVal = return . fmap SVGExternalResourcesRequired . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SVGExternalResourcesRequired where
-  typeGType _ = gTypeSVGExternalResourcesRequired
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGExternalResourcesRequired\"]" gTypeSVGExternalResourcesRequired :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEBlendElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement Mozilla SVGFEBlendElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEBlendElement
-instance IsElement SVGFEBlendElement
-instance IsNode SVGFEBlendElement
-instance IsEventTarget SVGFEBlendElement
-instance IsGObject SVGFEBlendElement where
-  typeGType _ = gTypeSVGFEBlendElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEBlendElement\"]" gTypeSVGFEBlendElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEColorMatrixElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement Mozilla SVGFEColorMatrixElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEColorMatrixElement
-instance IsElement SVGFEColorMatrixElement
-instance IsNode SVGFEColorMatrixElement
-instance IsEventTarget SVGFEColorMatrixElement
-instance IsGObject SVGFEColorMatrixElement where
-  typeGType _ = gTypeSVGFEColorMatrixElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEColorMatrixElement\"]" gTypeSVGFEColorMatrixElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEComponentTransferElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEComponentTransferElement Mozilla SVGFEComponentTransferElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEComponentTransferElement
-instance IsElement SVGFEComponentTransferElement
-instance IsNode SVGFEComponentTransferElement
-instance IsEventTarget SVGFEComponentTransferElement
-instance IsGObject SVGFEComponentTransferElement where
-  typeGType _ = gTypeSVGFEComponentTransferElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEComponentTransferElement\"]" gTypeSVGFEComponentTransferElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFECompositeElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement Mozilla SVGFECompositeElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFECompositeElement
-instance IsElement SVGFECompositeElement
-instance IsNode SVGFECompositeElement
-instance IsEventTarget SVGFECompositeElement
-instance IsGObject SVGFECompositeElement where
-  typeGType _ = gTypeSVGFECompositeElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFECompositeElement\"]" gTypeSVGFECompositeElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEConvolveMatrixElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement Mozilla SVGFEConvolveMatrixElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEConvolveMatrixElement
-instance IsElement SVGFEConvolveMatrixElement
-instance IsNode SVGFEConvolveMatrixElement
-instance IsEventTarget SVGFEConvolveMatrixElement
-instance IsGObject SVGFEConvolveMatrixElement where
-  typeGType _ = gTypeSVGFEConvolveMatrixElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEConvolveMatrixElement\"]" gTypeSVGFEConvolveMatrixElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEDiffuseLightingElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement Mozilla SVGFEDiffuseLightingElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEDiffuseLightingElement
-instance IsElement SVGFEDiffuseLightingElement
-instance IsNode SVGFEDiffuseLightingElement
-instance IsEventTarget SVGFEDiffuseLightingElement
-instance IsGObject SVGFEDiffuseLightingElement where
-  typeGType _ = gTypeSVGFEDiffuseLightingElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEDiffuseLightingElement\"]" gTypeSVGFEDiffuseLightingElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEDisplacementMapElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement Mozilla SVGFEDisplacementMapElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEDisplacementMapElement
-instance IsElement SVGFEDisplacementMapElement
-instance IsNode SVGFEDisplacementMapElement
-instance IsEventTarget SVGFEDisplacementMapElement
-instance IsGObject SVGFEDisplacementMapElement where
-  typeGType _ = gTypeSVGFEDisplacementMapElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEDisplacementMapElement\"]" gTypeSVGFEDisplacementMapElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEDistantLightElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDistantLightElement Mozilla SVGFEDistantLightElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEDistantLightElement
-instance IsElement SVGFEDistantLightElement
-instance IsNode SVGFEDistantLightElement
-instance IsEventTarget SVGFEDistantLightElement
-instance IsGObject SVGFEDistantLightElement where
-  typeGType _ = gTypeSVGFEDistantLightElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEDistantLightElement\"]" gTypeSVGFEDistantLightElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEDropShadowElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement Mozilla SVGFEDropShadowElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEDropShadowElement
-instance IsElement SVGFEDropShadowElement
-instance IsNode SVGFEDropShadowElement
-instance IsEventTarget SVGFEDropShadowElement
-instance IsGObject SVGFEDropShadowElement where
-  typeGType _ = gTypeSVGFEDropShadowElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEDropShadowElement\"]" gTypeSVGFEDropShadowElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEFloodElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFloodElement Mozilla SVGFEFloodElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEFloodElement
-instance IsElement SVGFEFloodElement
-instance IsNode SVGFEFloodElement
-instance IsEventTarget SVGFEFloodElement
-instance IsGObject SVGFEFloodElement where
-  typeGType _ = gTypeSVGFEFloodElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEFloodElement\"]" gTypeSVGFEFloodElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEFuncAElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGComponentTransferFunctionElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncAElement Mozilla SVGFEFuncAElement documentation>
-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 #-}
-
-instance IsSVGComponentTransferFunctionElement SVGFEFuncAElement
-instance IsSVGElement SVGFEFuncAElement
-instance IsElement SVGFEFuncAElement
-instance IsNode SVGFEFuncAElement
-instance IsEventTarget SVGFEFuncAElement
-instance IsGObject SVGFEFuncAElement where
-  typeGType _ = gTypeSVGFEFuncAElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEFuncAElement\"]" gTypeSVGFEFuncAElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEFuncBElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGComponentTransferFunctionElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncBElement Mozilla SVGFEFuncBElement documentation>
-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 #-}
-
-instance IsSVGComponentTransferFunctionElement SVGFEFuncBElement
-instance IsSVGElement SVGFEFuncBElement
-instance IsElement SVGFEFuncBElement
-instance IsNode SVGFEFuncBElement
-instance IsEventTarget SVGFEFuncBElement
-instance IsGObject SVGFEFuncBElement where
-  typeGType _ = gTypeSVGFEFuncBElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEFuncBElement\"]" gTypeSVGFEFuncBElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEFuncGElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGComponentTransferFunctionElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncGElement Mozilla SVGFEFuncGElement documentation>
-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 #-}
-
-instance IsSVGComponentTransferFunctionElement SVGFEFuncGElement
-instance IsSVGElement SVGFEFuncGElement
-instance IsElement SVGFEFuncGElement
-instance IsNode SVGFEFuncGElement
-instance IsEventTarget SVGFEFuncGElement
-instance IsGObject SVGFEFuncGElement where
-  typeGType _ = gTypeSVGFEFuncGElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEFuncGElement\"]" gTypeSVGFEFuncGElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEFuncRElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGComponentTransferFunctionElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncRElement Mozilla SVGFEFuncRElement documentation>
-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 #-}
-
-instance IsSVGComponentTransferFunctionElement SVGFEFuncRElement
-instance IsSVGElement SVGFEFuncRElement
-instance IsElement SVGFEFuncRElement
-instance IsNode SVGFEFuncRElement
-instance IsEventTarget SVGFEFuncRElement
-instance IsGObject SVGFEFuncRElement where
-  typeGType _ = gTypeSVGFEFuncRElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEFuncRElement\"]" gTypeSVGFEFuncRElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEGaussianBlurElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement Mozilla SVGFEGaussianBlurElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEGaussianBlurElement
-instance IsElement SVGFEGaussianBlurElement
-instance IsNode SVGFEGaussianBlurElement
-instance IsEventTarget SVGFEGaussianBlurElement
-instance IsGObject SVGFEGaussianBlurElement where
-  typeGType _ = gTypeSVGFEGaussianBlurElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEGaussianBlurElement\"]" gTypeSVGFEGaussianBlurElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEImageElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEImageElement Mozilla SVGFEImageElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEImageElement
-instance IsElement SVGFEImageElement
-instance IsNode SVGFEImageElement
-instance IsEventTarget SVGFEImageElement
-instance IsGObject SVGFEImageElement where
-  typeGType _ = gTypeSVGFEImageElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEImageElement\"]" gTypeSVGFEImageElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEMergeElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeElement Mozilla SVGFEMergeElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEMergeElement
-instance IsElement SVGFEMergeElement
-instance IsNode SVGFEMergeElement
-instance IsEventTarget SVGFEMergeElement
-instance IsGObject SVGFEMergeElement where
-  typeGType _ = gTypeSVGFEMergeElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEMergeElement\"]" gTypeSVGFEMergeElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEMergeNodeElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeNodeElement Mozilla SVGFEMergeNodeElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEMergeNodeElement
-instance IsElement SVGFEMergeNodeElement
-instance IsNode SVGFEMergeNodeElement
-instance IsEventTarget SVGFEMergeNodeElement
-instance IsGObject SVGFEMergeNodeElement where
-  typeGType _ = gTypeSVGFEMergeNodeElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEMergeNodeElement\"]" gTypeSVGFEMergeNodeElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEMorphologyElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement Mozilla SVGFEMorphologyElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEMorphologyElement
-instance IsElement SVGFEMorphologyElement
-instance IsNode SVGFEMorphologyElement
-instance IsEventTarget SVGFEMorphologyElement
-instance IsGObject SVGFEMorphologyElement where
-  typeGType _ = gTypeSVGFEMorphologyElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEMorphologyElement\"]" gTypeSVGFEMorphologyElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEOffsetElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement Mozilla SVGFEOffsetElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEOffsetElement
-instance IsElement SVGFEOffsetElement
-instance IsNode SVGFEOffsetElement
-instance IsEventTarget SVGFEOffsetElement
-instance IsGObject SVGFEOffsetElement where
-  typeGType _ = gTypeSVGFEOffsetElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEOffsetElement\"]" gTypeSVGFEOffsetElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFEPointLightElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement Mozilla SVGFEPointLightElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFEPointLightElement
-instance IsElement SVGFEPointLightElement
-instance IsNode SVGFEPointLightElement
-instance IsEventTarget SVGFEPointLightElement
-instance IsGObject SVGFEPointLightElement where
-  typeGType _ = gTypeSVGFEPointLightElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFEPointLightElement\"]" gTypeSVGFEPointLightElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFESpecularLightingElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement Mozilla SVGFESpecularLightingElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFESpecularLightingElement
-instance IsElement SVGFESpecularLightingElement
-instance IsNode SVGFESpecularLightingElement
-instance IsEventTarget SVGFESpecularLightingElement
-instance IsGObject SVGFESpecularLightingElement where
-  typeGType _ = gTypeSVGFESpecularLightingElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFESpecularLightingElement\"]" gTypeSVGFESpecularLightingElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFESpotLightElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement Mozilla SVGFESpotLightElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFESpotLightElement
-instance IsElement SVGFESpotLightElement
-instance IsNode SVGFESpotLightElement
-instance IsEventTarget SVGFESpotLightElement
-instance IsGObject SVGFESpotLightElement where
-  typeGType _ = gTypeSVGFESpotLightElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFESpotLightElement\"]" gTypeSVGFESpotLightElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFETileElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETileElement Mozilla SVGFETileElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFETileElement
-instance IsElement SVGFETileElement
-instance IsNode SVGFETileElement
-instance IsEventTarget SVGFETileElement
-instance IsGObject SVGFETileElement where
-  typeGType _ = gTypeSVGFETileElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFETileElement\"]" gTypeSVGFETileElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFETurbulenceElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement Mozilla SVGFETurbulenceElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFETurbulenceElement
-instance IsElement SVGFETurbulenceElement
-instance IsNode SVGFETurbulenceElement
-instance IsEventTarget SVGFETurbulenceElement
-instance IsGObject SVGFETurbulenceElement where
-  typeGType _ = gTypeSVGFETurbulenceElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFETurbulenceElement\"]" gTypeSVGFETurbulenceElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFilterElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement Mozilla SVGFilterElement documentation>
-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 #-}
-
-instance IsSVGElement SVGFilterElement
-instance IsElement SVGFilterElement
-instance IsNode SVGFilterElement
-instance IsEventTarget SVGFilterElement
-instance IsGObject SVGFilterElement where
-  typeGType _ = gTypeSVGFilterElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFilterElement\"]" gTypeSVGFilterElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes Mozilla SVGFilterPrimitiveStandardAttributes documentation>
-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 #-}
-
-instance IsGObject SVGFilterPrimitiveStandardAttributes where
-  typeGType _ = gTypeSVGFilterPrimitiveStandardAttributes
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFilterPrimitiveStandardAttributes\"]" gTypeSVGFilterPrimitiveStandardAttributes :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFitToViewBox".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFitToViewBox Mozilla SVGFitToViewBox documentation>
-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 #-}
-
-instance IsGObject SVGFitToViewBox where
-  typeGType _ = gTypeSVGFitToViewBox
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFitToViewBox\"]" gTypeSVGFitToViewBox :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFontElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontElement Mozilla SVGFontElement documentation>
-newtype SVGFontElement = SVGFontElement { unSVGFontElement :: JSVal }
-
-instance Eq (SVGFontElement) where
-  (SVGFontElement a) == (SVGFontElement b) = js_eq a b
-
-instance PToJSVal SVGFontElement where
-  pToJSVal = unSVGFontElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGFontElement where
-  pFromJSVal = SVGFontElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGFontElement where
-  toJSVal = return . unSVGFontElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGFontElement where
-  fromJSVal = return . fmap SVGFontElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGFontElement
-instance IsElement SVGFontElement
-instance IsNode SVGFontElement
-instance IsEventTarget SVGFontElement
-instance IsGObject SVGFontElement where
-  typeGType _ = gTypeSVGFontElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFontElement\"]" gTypeSVGFontElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFontFaceElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceElement Mozilla SVGFontFaceElement documentation>
-newtype SVGFontFaceElement = SVGFontFaceElement { unSVGFontFaceElement :: JSVal }
-
-instance Eq (SVGFontFaceElement) where
-  (SVGFontFaceElement a) == (SVGFontFaceElement b) = js_eq a b
-
-instance PToJSVal SVGFontFaceElement where
-  pToJSVal = unSVGFontFaceElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGFontFaceElement where
-  pFromJSVal = SVGFontFaceElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGFontFaceElement where
-  toJSVal = return . unSVGFontFaceElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGFontFaceElement where
-  fromJSVal = return . fmap SVGFontFaceElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGFontFaceElement
-instance IsElement SVGFontFaceElement
-instance IsNode SVGFontFaceElement
-instance IsEventTarget SVGFontFaceElement
-instance IsGObject SVGFontFaceElement where
-  typeGType _ = gTypeSVGFontFaceElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFontFaceElement\"]" gTypeSVGFontFaceElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFontFaceFormatElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceFormatElement Mozilla SVGFontFaceFormatElement documentation>
-newtype SVGFontFaceFormatElement = SVGFontFaceFormatElement { unSVGFontFaceFormatElement :: JSVal }
-
-instance Eq (SVGFontFaceFormatElement) where
-  (SVGFontFaceFormatElement a) == (SVGFontFaceFormatElement b) = js_eq a b
-
-instance PToJSVal SVGFontFaceFormatElement where
-  pToJSVal = unSVGFontFaceFormatElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGFontFaceFormatElement where
-  pFromJSVal = SVGFontFaceFormatElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGFontFaceFormatElement where
-  toJSVal = return . unSVGFontFaceFormatElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGFontFaceFormatElement where
-  fromJSVal = return . fmap SVGFontFaceFormatElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGFontFaceFormatElement
-instance IsElement SVGFontFaceFormatElement
-instance IsNode SVGFontFaceFormatElement
-instance IsEventTarget SVGFontFaceFormatElement
-instance IsGObject SVGFontFaceFormatElement where
-  typeGType _ = gTypeSVGFontFaceFormatElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFontFaceFormatElement\"]" gTypeSVGFontFaceFormatElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFontFaceNameElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceNameElement Mozilla SVGFontFaceNameElement documentation>
-newtype SVGFontFaceNameElement = SVGFontFaceNameElement { unSVGFontFaceNameElement :: JSVal }
-
-instance Eq (SVGFontFaceNameElement) where
-  (SVGFontFaceNameElement a) == (SVGFontFaceNameElement b) = js_eq a b
-
-instance PToJSVal SVGFontFaceNameElement where
-  pToJSVal = unSVGFontFaceNameElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGFontFaceNameElement where
-  pFromJSVal = SVGFontFaceNameElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGFontFaceNameElement where
-  toJSVal = return . unSVGFontFaceNameElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGFontFaceNameElement where
-  fromJSVal = return . fmap SVGFontFaceNameElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGFontFaceNameElement
-instance IsElement SVGFontFaceNameElement
-instance IsNode SVGFontFaceNameElement
-instance IsEventTarget SVGFontFaceNameElement
-instance IsGObject SVGFontFaceNameElement where
-  typeGType _ = gTypeSVGFontFaceNameElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFontFaceNameElement\"]" gTypeSVGFontFaceNameElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFontFaceSrcElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceSrcElement Mozilla SVGFontFaceSrcElement documentation>
-newtype SVGFontFaceSrcElement = SVGFontFaceSrcElement { unSVGFontFaceSrcElement :: JSVal }
-
-instance Eq (SVGFontFaceSrcElement) where
-  (SVGFontFaceSrcElement a) == (SVGFontFaceSrcElement b) = js_eq a b
-
-instance PToJSVal SVGFontFaceSrcElement where
-  pToJSVal = unSVGFontFaceSrcElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGFontFaceSrcElement where
-  pFromJSVal = SVGFontFaceSrcElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGFontFaceSrcElement where
-  toJSVal = return . unSVGFontFaceSrcElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGFontFaceSrcElement where
-  fromJSVal = return . fmap SVGFontFaceSrcElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGFontFaceSrcElement
-instance IsElement SVGFontFaceSrcElement
-instance IsNode SVGFontFaceSrcElement
-instance IsEventTarget SVGFontFaceSrcElement
-instance IsGObject SVGFontFaceSrcElement where
-  typeGType _ = gTypeSVGFontFaceSrcElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFontFaceSrcElement\"]" gTypeSVGFontFaceSrcElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGFontFaceUriElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceUriElement Mozilla SVGFontFaceUriElement documentation>
-newtype SVGFontFaceUriElement = SVGFontFaceUriElement { unSVGFontFaceUriElement :: JSVal }
-
-instance Eq (SVGFontFaceUriElement) where
-  (SVGFontFaceUriElement a) == (SVGFontFaceUriElement b) = js_eq a b
-
-instance PToJSVal SVGFontFaceUriElement where
-  pToJSVal = unSVGFontFaceUriElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGFontFaceUriElement where
-  pFromJSVal = SVGFontFaceUriElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGFontFaceUriElement where
-  toJSVal = return . unSVGFontFaceUriElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGFontFaceUriElement where
-  fromJSVal = return . fmap SVGFontFaceUriElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGFontFaceUriElement
-instance IsElement SVGFontFaceUriElement
-instance IsNode SVGFontFaceUriElement
-instance IsEventTarget SVGFontFaceUriElement
-instance IsGObject SVGFontFaceUriElement where
-  typeGType _ = gTypeSVGFontFaceUriElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGFontFaceUriElement\"]" gTypeSVGFontFaceUriElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGForeignObjectElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement Mozilla SVGForeignObjectElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGForeignObjectElement
-instance IsSVGElement SVGForeignObjectElement
-instance IsElement SVGForeignObjectElement
-instance IsNode SVGForeignObjectElement
-instance IsEventTarget SVGForeignObjectElement
-instance IsGObject SVGForeignObjectElement where
-  typeGType _ = gTypeSVGForeignObjectElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGForeignObjectElement\"]" gTypeSVGForeignObjectElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGGElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGElement Mozilla SVGGElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGGElement
-instance IsSVGElement SVGGElement
-instance IsElement SVGGElement
-instance IsNode SVGGElement
-instance IsEventTarget SVGGElement
-instance IsGObject SVGGElement where
-  typeGType _ = gTypeSVGGElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGGElement\"]" gTypeSVGGElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGGlyphElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphElement Mozilla SVGGlyphElement documentation>
-newtype SVGGlyphElement = SVGGlyphElement { unSVGGlyphElement :: JSVal }
-
-instance Eq (SVGGlyphElement) where
-  (SVGGlyphElement a) == (SVGGlyphElement b) = js_eq a b
-
-instance PToJSVal SVGGlyphElement where
-  pToJSVal = unSVGGlyphElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGGlyphElement where
-  pFromJSVal = SVGGlyphElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGGlyphElement where
-  toJSVal = return . unSVGGlyphElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGGlyphElement where
-  fromJSVal = return . fmap SVGGlyphElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGGlyphElement
-instance IsElement SVGGlyphElement
-instance IsNode SVGGlyphElement
-instance IsEventTarget SVGGlyphElement
-instance IsGObject SVGGlyphElement where
-  typeGType _ = gTypeSVGGlyphElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGGlyphElement\"]" gTypeSVGGlyphElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGGlyphRefElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement Mozilla SVGGlyphRefElement documentation>
-newtype SVGGlyphRefElement = SVGGlyphRefElement { unSVGGlyphRefElement :: JSVal }
-
-instance Eq (SVGGlyphRefElement) where
-  (SVGGlyphRefElement a) == (SVGGlyphRefElement b) = js_eq a b
-
-instance PToJSVal SVGGlyphRefElement where
-  pToJSVal = unSVGGlyphRefElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGGlyphRefElement where
-  pFromJSVal = SVGGlyphRefElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGGlyphRefElement where
-  toJSVal = return . unSVGGlyphRefElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGGlyphRefElement where
-  fromJSVal = return . fmap SVGGlyphRefElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGGlyphRefElement
-instance IsElement SVGGlyphRefElement
-instance IsNode SVGGlyphRefElement
-instance IsEventTarget SVGGlyphRefElement
-instance IsGObject SVGGlyphRefElement where
-  typeGType _ = gTypeSVGGlyphRefElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGGlyphRefElement\"]" gTypeSVGGlyphRefElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGGradientElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement Mozilla SVGGradientElement documentation>
-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 #-}
-
-class IsSVGElement o => IsSVGGradientElement o
-toSVGGradientElement :: IsSVGGradientElement o => o -> SVGGradientElement
-toSVGGradientElement = SVGGradientElement . coerce
-
-instance IsSVGGradientElement SVGGradientElement
-instance IsSVGElement SVGGradientElement
-instance IsElement SVGGradientElement
-instance IsNode SVGGradientElement
-instance IsEventTarget SVGGradientElement
-instance IsGObject SVGGradientElement where
-  typeGType _ = gTypeSVGGradientElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGGradientElement\"]" gTypeSVGGradientElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGGraphicsElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement Mozilla SVGGraphicsElement documentation>
-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 #-}
-
-class IsSVGElement o => IsSVGGraphicsElement o
-toSVGGraphicsElement :: IsSVGGraphicsElement o => o -> SVGGraphicsElement
-toSVGGraphicsElement = SVGGraphicsElement . coerce
-
-instance IsSVGGraphicsElement SVGGraphicsElement
-instance IsSVGElement SVGGraphicsElement
-instance IsElement SVGGraphicsElement
-instance IsNode SVGGraphicsElement
-instance IsEventTarget SVGGraphicsElement
-instance IsGObject SVGGraphicsElement where
-  typeGType _ = gTypeSVGGraphicsElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGGraphicsElement\"]" gTypeSVGGraphicsElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGHKernElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGHKernElement Mozilla SVGHKernElement documentation>
-newtype SVGHKernElement = SVGHKernElement { unSVGHKernElement :: JSVal }
-
-instance Eq (SVGHKernElement) where
-  (SVGHKernElement a) == (SVGHKernElement b) = js_eq a b
-
-instance PToJSVal SVGHKernElement where
-  pToJSVal = unSVGHKernElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGHKernElement where
-  pFromJSVal = SVGHKernElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGHKernElement where
-  toJSVal = return . unSVGHKernElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGHKernElement where
-  fromJSVal = return . fmap SVGHKernElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGHKernElement
-instance IsElement SVGHKernElement
-instance IsNode SVGHKernElement
-instance IsEventTarget SVGHKernElement
-instance IsGObject SVGHKernElement where
-  typeGType _ = gTypeSVGHKernElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGHKernElement\"]" gTypeSVGHKernElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGImageElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement Mozilla SVGImageElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGImageElement
-instance IsSVGElement SVGImageElement
-instance IsElement SVGImageElement
-instance IsNode SVGImageElement
-instance IsEventTarget SVGImageElement
-instance IsGObject SVGImageElement where
-  typeGType _ = gTypeSVGImageElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGImageElement\"]" gTypeSVGImageElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGLength".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength Mozilla SVGLength documentation>
-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 #-}
-
-instance IsGObject SVGLength where
-  typeGType _ = gTypeSVGLength
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGLength\"]" gTypeSVGLength :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGLengthList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList Mozilla SVGLengthList documentation>
-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 #-}
-
-instance IsGObject SVGLengthList where
-  typeGType _ = gTypeSVGLengthList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGLengthList\"]" gTypeSVGLengthList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGLineElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement Mozilla SVGLineElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGLineElement
-instance IsSVGElement SVGLineElement
-instance IsElement SVGLineElement
-instance IsNode SVGLineElement
-instance IsEventTarget SVGLineElement
-instance IsGObject SVGLineElement where
-  typeGType _ = gTypeSVGLineElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGLineElement\"]" gTypeSVGLineElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGLinearGradientElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGradientElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement Mozilla SVGLinearGradientElement documentation>
-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 #-}
-
-instance IsSVGGradientElement SVGLinearGradientElement
-instance IsSVGElement SVGLinearGradientElement
-instance IsElement SVGLinearGradientElement
-instance IsNode SVGLinearGradientElement
-instance IsEventTarget SVGLinearGradientElement
-instance IsGObject SVGLinearGradientElement where
-  typeGType _ = gTypeSVGLinearGradientElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGLinearGradientElement\"]" gTypeSVGLinearGradientElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGMPathElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMPathElement Mozilla SVGMPathElement documentation>
-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 #-}
-
-instance IsSVGElement SVGMPathElement
-instance IsElement SVGMPathElement
-instance IsNode SVGMPathElement
-instance IsEventTarget SVGMPathElement
-instance IsGObject SVGMPathElement where
-  typeGType _ = gTypeSVGMPathElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGMPathElement\"]" gTypeSVGMPathElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGMarkerElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement Mozilla SVGMarkerElement documentation>
-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 #-}
-
-instance IsSVGElement SVGMarkerElement
-instance IsElement SVGMarkerElement
-instance IsNode SVGMarkerElement
-instance IsEventTarget SVGMarkerElement
-instance IsGObject SVGMarkerElement where
-  typeGType _ = gTypeSVGMarkerElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGMarkerElement\"]" gTypeSVGMarkerElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGMaskElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement Mozilla SVGMaskElement documentation>
-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 #-}
-
-instance IsSVGElement SVGMaskElement
-instance IsElement SVGMaskElement
-instance IsNode SVGMaskElement
-instance IsEventTarget SVGMaskElement
-instance IsGObject SVGMaskElement where
-  typeGType _ = gTypeSVGMaskElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGMaskElement\"]" gTypeSVGMaskElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGMatrix".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix Mozilla SVGMatrix documentation>
-newtype SVGMatrix = SVGMatrix { unSVGMatrix :: JSVal }
-
-instance Eq (SVGMatrix) where
-  (SVGMatrix a) == (SVGMatrix b) = js_eq a b
-
-instance PToJSVal SVGMatrix where
-  pToJSVal = unSVGMatrix
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGMatrix where
-  pFromJSVal = SVGMatrix
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGMatrix where
-  toJSVal = return . unSVGMatrix
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGMatrix where
-  fromJSVal = return . fmap SVGMatrix . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SVGMatrix where
-  typeGType _ = gTypeSVGMatrix
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGMatrix\"]" gTypeSVGMatrix :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGMetadataElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMetadataElement Mozilla SVGMetadataElement documentation>
-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 #-}
-
-instance IsSVGElement SVGMetadataElement
-instance IsElement SVGMetadataElement
-instance IsNode SVGMetadataElement
-instance IsEventTarget SVGMetadataElement
-instance IsGObject SVGMetadataElement where
-  typeGType _ = gTypeSVGMetadataElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGMetadataElement\"]" gTypeSVGMetadataElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGMissingGlyphElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMissingGlyphElement Mozilla SVGMissingGlyphElement documentation>
-newtype SVGMissingGlyphElement = SVGMissingGlyphElement { unSVGMissingGlyphElement :: JSVal }
-
-instance Eq (SVGMissingGlyphElement) where
-  (SVGMissingGlyphElement a) == (SVGMissingGlyphElement b) = js_eq a b
-
-instance PToJSVal SVGMissingGlyphElement where
-  pToJSVal = unSVGMissingGlyphElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGMissingGlyphElement where
-  pFromJSVal = SVGMissingGlyphElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGMissingGlyphElement where
-  toJSVal = return . unSVGMissingGlyphElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGMissingGlyphElement where
-  fromJSVal = return . fmap SVGMissingGlyphElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGMissingGlyphElement
-instance IsElement SVGMissingGlyphElement
-instance IsNode SVGMissingGlyphElement
-instance IsEventTarget SVGMissingGlyphElement
-instance IsGObject SVGMissingGlyphElement where
-  typeGType _ = gTypeSVGMissingGlyphElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGMissingGlyphElement\"]" gTypeSVGMissingGlyphElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGNumber".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumber Mozilla SVGNumber documentation>
-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 #-}
-
-instance IsGObject SVGNumber where
-  typeGType _ = gTypeSVGNumber
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGNumber\"]" gTypeSVGNumber :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGNumberList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList Mozilla SVGNumberList documentation>
-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 #-}
-
-instance IsGObject SVGNumberList where
-  typeGType _ = gTypeSVGNumberList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGNumberList\"]" gTypeSVGNumberList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPaint".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGColor"
---     * "GHCJS.DOM.CSSValue"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPaint Mozilla SVGPaint documentation>
-newtype SVGPaint = SVGPaint { unSVGPaint :: JSVal }
-
-instance Eq (SVGPaint) where
-  (SVGPaint a) == (SVGPaint b) = js_eq a b
-
-instance PToJSVal SVGPaint where
-  pToJSVal = unSVGPaint
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPaint where
-  pFromJSVal = SVGPaint
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPaint where
-  toJSVal = return . unSVGPaint
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPaint where
-  fromJSVal = return . fmap SVGPaint . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGColor SVGPaint
-instance IsCSSValue SVGPaint
-instance IsGObject SVGPaint where
-  typeGType _ = gTypeSVGPaint
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPaint\"]" gTypeSVGPaint :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement Mozilla SVGPathElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGPathElement
-instance IsSVGElement SVGPathElement
-instance IsElement SVGPathElement
-instance IsNode SVGPathElement
-instance IsEventTarget SVGPathElement
-instance IsGObject SVGPathElement where
-  typeGType _ = gTypeSVGPathElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathElement\"]" gTypeSVGPathElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSeg".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSeg Mozilla SVGPathSeg documentation>
-newtype SVGPathSeg = SVGPathSeg { unSVGPathSeg :: JSVal }
-
-instance Eq (SVGPathSeg) where
-  (SVGPathSeg a) == (SVGPathSeg b) = js_eq a b
-
-instance PToJSVal SVGPathSeg where
-  pToJSVal = unSVGPathSeg
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSeg where
-  pFromJSVal = SVGPathSeg
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSeg where
-  toJSVal = return . unSVGPathSeg
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSeg where
-  fromJSVal = return . fmap SVGPathSeg . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-class IsGObject o => IsSVGPathSeg o
-toSVGPathSeg :: IsSVGPathSeg o => o -> SVGPathSeg
-toSVGPathSeg = SVGPathSeg . coerce
-
-instance IsSVGPathSeg SVGPathSeg
-instance IsGObject SVGPathSeg where
-  typeGType _ = gTypeSVGPathSeg
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSeg\"]" gTypeSVGPathSeg :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegArcAbs".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs Mozilla SVGPathSegArcAbs documentation>
-newtype SVGPathSegArcAbs = SVGPathSegArcAbs { unSVGPathSegArcAbs :: JSVal }
-
-instance Eq (SVGPathSegArcAbs) where
-  (SVGPathSegArcAbs a) == (SVGPathSegArcAbs b) = js_eq a b
-
-instance PToJSVal SVGPathSegArcAbs where
-  pToJSVal = unSVGPathSegArcAbs
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegArcAbs where
-  pFromJSVal = SVGPathSegArcAbs
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegArcAbs where
-  toJSVal = return . unSVGPathSegArcAbs
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegArcAbs where
-  fromJSVal = return . fmap SVGPathSegArcAbs . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegArcAbs
-instance IsGObject SVGPathSegArcAbs where
-  typeGType _ = gTypeSVGPathSegArcAbs
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegArcAbs\"]" gTypeSVGPathSegArcAbs :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegArcRel".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel Mozilla SVGPathSegArcRel documentation>
-newtype SVGPathSegArcRel = SVGPathSegArcRel { unSVGPathSegArcRel :: JSVal }
-
-instance Eq (SVGPathSegArcRel) where
-  (SVGPathSegArcRel a) == (SVGPathSegArcRel b) = js_eq a b
-
-instance PToJSVal SVGPathSegArcRel where
-  pToJSVal = unSVGPathSegArcRel
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegArcRel where
-  pFromJSVal = SVGPathSegArcRel
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegArcRel where
-  toJSVal = return . unSVGPathSegArcRel
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegArcRel where
-  fromJSVal = return . fmap SVGPathSegArcRel . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegArcRel
-instance IsGObject SVGPathSegArcRel where
-  typeGType _ = gTypeSVGPathSegArcRel
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegArcRel\"]" gTypeSVGPathSegArcRel :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegClosePath".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegClosePath Mozilla SVGPathSegClosePath documentation>
-newtype SVGPathSegClosePath = SVGPathSegClosePath { unSVGPathSegClosePath :: JSVal }
-
-instance Eq (SVGPathSegClosePath) where
-  (SVGPathSegClosePath a) == (SVGPathSegClosePath b) = js_eq a b
-
-instance PToJSVal SVGPathSegClosePath where
-  pToJSVal = unSVGPathSegClosePath
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegClosePath where
-  pFromJSVal = SVGPathSegClosePath
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegClosePath where
-  toJSVal = return . unSVGPathSegClosePath
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegClosePath where
-  fromJSVal = return . fmap SVGPathSegClosePath . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegClosePath
-instance IsGObject SVGPathSegClosePath where
-  typeGType _ = gTypeSVGPathSegClosePath
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegClosePath\"]" gTypeSVGPathSegClosePath :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoCubicAbs".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs Mozilla SVGPathSegCurvetoCubicAbs documentation>
-newtype SVGPathSegCurvetoCubicAbs = SVGPathSegCurvetoCubicAbs { unSVGPathSegCurvetoCubicAbs :: JSVal }
-
-instance Eq (SVGPathSegCurvetoCubicAbs) where
-  (SVGPathSegCurvetoCubicAbs a) == (SVGPathSegCurvetoCubicAbs b) = js_eq a b
-
-instance PToJSVal SVGPathSegCurvetoCubicAbs where
-  pToJSVal = unSVGPathSegCurvetoCubicAbs
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegCurvetoCubicAbs where
-  pFromJSVal = SVGPathSegCurvetoCubicAbs
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegCurvetoCubicAbs where
-  toJSVal = return . unSVGPathSegCurvetoCubicAbs
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegCurvetoCubicAbs where
-  fromJSVal = return . fmap SVGPathSegCurvetoCubicAbs . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegCurvetoCubicAbs
-instance IsGObject SVGPathSegCurvetoCubicAbs where
-  typeGType _ = gTypeSVGPathSegCurvetoCubicAbs
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegCurvetoCubicAbs\"]" gTypeSVGPathSegCurvetoCubicAbs :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoCubicRel".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel Mozilla SVGPathSegCurvetoCubicRel documentation>
-newtype SVGPathSegCurvetoCubicRel = SVGPathSegCurvetoCubicRel { unSVGPathSegCurvetoCubicRel :: JSVal }
-
-instance Eq (SVGPathSegCurvetoCubicRel) where
-  (SVGPathSegCurvetoCubicRel a) == (SVGPathSegCurvetoCubicRel b) = js_eq a b
-
-instance PToJSVal SVGPathSegCurvetoCubicRel where
-  pToJSVal = unSVGPathSegCurvetoCubicRel
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegCurvetoCubicRel where
-  pFromJSVal = SVGPathSegCurvetoCubicRel
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegCurvetoCubicRel where
-  toJSVal = return . unSVGPathSegCurvetoCubicRel
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegCurvetoCubicRel where
-  fromJSVal = return . fmap SVGPathSegCurvetoCubicRel . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegCurvetoCubicRel
-instance IsGObject SVGPathSegCurvetoCubicRel where
-  typeGType _ = gTypeSVGPathSegCurvetoCubicRel
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegCurvetoCubicRel\"]" gTypeSVGPathSegCurvetoCubicRel :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoCubicSmoothAbs".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs Mozilla SVGPathSegCurvetoCubicSmoothAbs documentation>
-newtype SVGPathSegCurvetoCubicSmoothAbs = SVGPathSegCurvetoCubicSmoothAbs { unSVGPathSegCurvetoCubicSmoothAbs :: JSVal }
-
-instance Eq (SVGPathSegCurvetoCubicSmoothAbs) where
-  (SVGPathSegCurvetoCubicSmoothAbs a) == (SVGPathSegCurvetoCubicSmoothAbs b) = js_eq a b
-
-instance PToJSVal SVGPathSegCurvetoCubicSmoothAbs where
-  pToJSVal = unSVGPathSegCurvetoCubicSmoothAbs
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegCurvetoCubicSmoothAbs where
-  pFromJSVal = SVGPathSegCurvetoCubicSmoothAbs
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegCurvetoCubicSmoothAbs where
-  toJSVal = return . unSVGPathSegCurvetoCubicSmoothAbs
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegCurvetoCubicSmoothAbs where
-  fromJSVal = return . fmap SVGPathSegCurvetoCubicSmoothAbs . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegCurvetoCubicSmoothAbs
-instance IsGObject SVGPathSegCurvetoCubicSmoothAbs where
-  typeGType _ = gTypeSVGPathSegCurvetoCubicSmoothAbs
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegCurvetoCubicSmoothAbs\"]" gTypeSVGPathSegCurvetoCubicSmoothAbs :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoCubicSmoothRel".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel Mozilla SVGPathSegCurvetoCubicSmoothRel documentation>
-newtype SVGPathSegCurvetoCubicSmoothRel = SVGPathSegCurvetoCubicSmoothRel { unSVGPathSegCurvetoCubicSmoothRel :: JSVal }
-
-instance Eq (SVGPathSegCurvetoCubicSmoothRel) where
-  (SVGPathSegCurvetoCubicSmoothRel a) == (SVGPathSegCurvetoCubicSmoothRel b) = js_eq a b
-
-instance PToJSVal SVGPathSegCurvetoCubicSmoothRel where
-  pToJSVal = unSVGPathSegCurvetoCubicSmoothRel
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegCurvetoCubicSmoothRel where
-  pFromJSVal = SVGPathSegCurvetoCubicSmoothRel
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegCurvetoCubicSmoothRel where
-  toJSVal = return . unSVGPathSegCurvetoCubicSmoothRel
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegCurvetoCubicSmoothRel where
-  fromJSVal = return . fmap SVGPathSegCurvetoCubicSmoothRel . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegCurvetoCubicSmoothRel
-instance IsGObject SVGPathSegCurvetoCubicSmoothRel where
-  typeGType _ = gTypeSVGPathSegCurvetoCubicSmoothRel
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegCurvetoCubicSmoothRel\"]" gTypeSVGPathSegCurvetoCubicSmoothRel :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoQuadraticAbs".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs Mozilla SVGPathSegCurvetoQuadraticAbs documentation>
-newtype SVGPathSegCurvetoQuadraticAbs = SVGPathSegCurvetoQuadraticAbs { unSVGPathSegCurvetoQuadraticAbs :: JSVal }
-
-instance Eq (SVGPathSegCurvetoQuadraticAbs) where
-  (SVGPathSegCurvetoQuadraticAbs a) == (SVGPathSegCurvetoQuadraticAbs b) = js_eq a b
-
-instance PToJSVal SVGPathSegCurvetoQuadraticAbs where
-  pToJSVal = unSVGPathSegCurvetoQuadraticAbs
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegCurvetoQuadraticAbs where
-  pFromJSVal = SVGPathSegCurvetoQuadraticAbs
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegCurvetoQuadraticAbs where
-  toJSVal = return . unSVGPathSegCurvetoQuadraticAbs
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegCurvetoQuadraticAbs where
-  fromJSVal = return . fmap SVGPathSegCurvetoQuadraticAbs . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegCurvetoQuadraticAbs
-instance IsGObject SVGPathSegCurvetoQuadraticAbs where
-  typeGType _ = gTypeSVGPathSegCurvetoQuadraticAbs
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegCurvetoQuadraticAbs\"]" gTypeSVGPathSegCurvetoQuadraticAbs :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoQuadraticRel".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel Mozilla SVGPathSegCurvetoQuadraticRel documentation>
-newtype SVGPathSegCurvetoQuadraticRel = SVGPathSegCurvetoQuadraticRel { unSVGPathSegCurvetoQuadraticRel :: JSVal }
-
-instance Eq (SVGPathSegCurvetoQuadraticRel) where
-  (SVGPathSegCurvetoQuadraticRel a) == (SVGPathSegCurvetoQuadraticRel b) = js_eq a b
-
-instance PToJSVal SVGPathSegCurvetoQuadraticRel where
-  pToJSVal = unSVGPathSegCurvetoQuadraticRel
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegCurvetoQuadraticRel where
-  pFromJSVal = SVGPathSegCurvetoQuadraticRel
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegCurvetoQuadraticRel where
-  toJSVal = return . unSVGPathSegCurvetoQuadraticRel
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegCurvetoQuadraticRel where
-  fromJSVal = return . fmap SVGPathSegCurvetoQuadraticRel . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegCurvetoQuadraticRel
-instance IsGObject SVGPathSegCurvetoQuadraticRel where
-  typeGType _ = gTypeSVGPathSegCurvetoQuadraticRel
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegCurvetoQuadraticRel\"]" gTypeSVGPathSegCurvetoQuadraticRel :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoQuadraticSmoothAbs".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothAbs Mozilla SVGPathSegCurvetoQuadraticSmoothAbs documentation>
-newtype SVGPathSegCurvetoQuadraticSmoothAbs = SVGPathSegCurvetoQuadraticSmoothAbs { unSVGPathSegCurvetoQuadraticSmoothAbs :: JSVal }
-
-instance Eq (SVGPathSegCurvetoQuadraticSmoothAbs) where
-  (SVGPathSegCurvetoQuadraticSmoothAbs a) == (SVGPathSegCurvetoQuadraticSmoothAbs b) = js_eq a b
-
-instance PToJSVal SVGPathSegCurvetoQuadraticSmoothAbs where
-  pToJSVal = unSVGPathSegCurvetoQuadraticSmoothAbs
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegCurvetoQuadraticSmoothAbs where
-  pFromJSVal = SVGPathSegCurvetoQuadraticSmoothAbs
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegCurvetoQuadraticSmoothAbs where
-  toJSVal = return . unSVGPathSegCurvetoQuadraticSmoothAbs
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegCurvetoQuadraticSmoothAbs where
-  fromJSVal = return . fmap SVGPathSegCurvetoQuadraticSmoothAbs . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegCurvetoQuadraticSmoothAbs
-instance IsGObject SVGPathSegCurvetoQuadraticSmoothAbs where
-  typeGType _ = gTypeSVGPathSegCurvetoQuadraticSmoothAbs
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegCurvetoQuadraticSmoothAbs\"]" gTypeSVGPathSegCurvetoQuadraticSmoothAbs :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoQuadraticSmoothRel".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothRel Mozilla SVGPathSegCurvetoQuadraticSmoothRel documentation>
-newtype SVGPathSegCurvetoQuadraticSmoothRel = SVGPathSegCurvetoQuadraticSmoothRel { unSVGPathSegCurvetoQuadraticSmoothRel :: JSVal }
-
-instance Eq (SVGPathSegCurvetoQuadraticSmoothRel) where
-  (SVGPathSegCurvetoQuadraticSmoothRel a) == (SVGPathSegCurvetoQuadraticSmoothRel b) = js_eq a b
-
-instance PToJSVal SVGPathSegCurvetoQuadraticSmoothRel where
-  pToJSVal = unSVGPathSegCurvetoQuadraticSmoothRel
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegCurvetoQuadraticSmoothRel where
-  pFromJSVal = SVGPathSegCurvetoQuadraticSmoothRel
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegCurvetoQuadraticSmoothRel where
-  toJSVal = return . unSVGPathSegCurvetoQuadraticSmoothRel
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegCurvetoQuadraticSmoothRel where
-  fromJSVal = return . fmap SVGPathSegCurvetoQuadraticSmoothRel . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegCurvetoQuadraticSmoothRel
-instance IsGObject SVGPathSegCurvetoQuadraticSmoothRel where
-  typeGType _ = gTypeSVGPathSegCurvetoQuadraticSmoothRel
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegCurvetoQuadraticSmoothRel\"]" gTypeSVGPathSegCurvetoQuadraticSmoothRel :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoAbs".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoAbs Mozilla SVGPathSegLinetoAbs documentation>
-newtype SVGPathSegLinetoAbs = SVGPathSegLinetoAbs { unSVGPathSegLinetoAbs :: JSVal }
-
-instance Eq (SVGPathSegLinetoAbs) where
-  (SVGPathSegLinetoAbs a) == (SVGPathSegLinetoAbs b) = js_eq a b
-
-instance PToJSVal SVGPathSegLinetoAbs where
-  pToJSVal = unSVGPathSegLinetoAbs
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegLinetoAbs where
-  pFromJSVal = SVGPathSegLinetoAbs
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegLinetoAbs where
-  toJSVal = return . unSVGPathSegLinetoAbs
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegLinetoAbs where
-  fromJSVal = return . fmap SVGPathSegLinetoAbs . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegLinetoAbs
-instance IsGObject SVGPathSegLinetoAbs where
-  typeGType _ = gTypeSVGPathSegLinetoAbs
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegLinetoAbs\"]" gTypeSVGPathSegLinetoAbs :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoHorizontalAbs".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalAbs Mozilla SVGPathSegLinetoHorizontalAbs documentation>
-newtype SVGPathSegLinetoHorizontalAbs = SVGPathSegLinetoHorizontalAbs { unSVGPathSegLinetoHorizontalAbs :: JSVal }
-
-instance Eq (SVGPathSegLinetoHorizontalAbs) where
-  (SVGPathSegLinetoHorizontalAbs a) == (SVGPathSegLinetoHorizontalAbs b) = js_eq a b
-
-instance PToJSVal SVGPathSegLinetoHorizontalAbs where
-  pToJSVal = unSVGPathSegLinetoHorizontalAbs
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegLinetoHorizontalAbs where
-  pFromJSVal = SVGPathSegLinetoHorizontalAbs
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegLinetoHorizontalAbs where
-  toJSVal = return . unSVGPathSegLinetoHorizontalAbs
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegLinetoHorizontalAbs where
-  fromJSVal = return . fmap SVGPathSegLinetoHorizontalAbs . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegLinetoHorizontalAbs
-instance IsGObject SVGPathSegLinetoHorizontalAbs where
-  typeGType _ = gTypeSVGPathSegLinetoHorizontalAbs
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegLinetoHorizontalAbs\"]" gTypeSVGPathSegLinetoHorizontalAbs :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoHorizontalRel".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalRel Mozilla SVGPathSegLinetoHorizontalRel documentation>
-newtype SVGPathSegLinetoHorizontalRel = SVGPathSegLinetoHorizontalRel { unSVGPathSegLinetoHorizontalRel :: JSVal }
-
-instance Eq (SVGPathSegLinetoHorizontalRel) where
-  (SVGPathSegLinetoHorizontalRel a) == (SVGPathSegLinetoHorizontalRel b) = js_eq a b
-
-instance PToJSVal SVGPathSegLinetoHorizontalRel where
-  pToJSVal = unSVGPathSegLinetoHorizontalRel
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegLinetoHorizontalRel where
-  pFromJSVal = SVGPathSegLinetoHorizontalRel
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegLinetoHorizontalRel where
-  toJSVal = return . unSVGPathSegLinetoHorizontalRel
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegLinetoHorizontalRel where
-  fromJSVal = return . fmap SVGPathSegLinetoHorizontalRel . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegLinetoHorizontalRel
-instance IsGObject SVGPathSegLinetoHorizontalRel where
-  typeGType _ = gTypeSVGPathSegLinetoHorizontalRel
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegLinetoHorizontalRel\"]" gTypeSVGPathSegLinetoHorizontalRel :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoRel".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoRel Mozilla SVGPathSegLinetoRel documentation>
-newtype SVGPathSegLinetoRel = SVGPathSegLinetoRel { unSVGPathSegLinetoRel :: JSVal }
-
-instance Eq (SVGPathSegLinetoRel) where
-  (SVGPathSegLinetoRel a) == (SVGPathSegLinetoRel b) = js_eq a b
-
-instance PToJSVal SVGPathSegLinetoRel where
-  pToJSVal = unSVGPathSegLinetoRel
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegLinetoRel where
-  pFromJSVal = SVGPathSegLinetoRel
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegLinetoRel where
-  toJSVal = return . unSVGPathSegLinetoRel
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegLinetoRel where
-  fromJSVal = return . fmap SVGPathSegLinetoRel . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegLinetoRel
-instance IsGObject SVGPathSegLinetoRel where
-  typeGType _ = gTypeSVGPathSegLinetoRel
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegLinetoRel\"]" gTypeSVGPathSegLinetoRel :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoVerticalAbs".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalAbs Mozilla SVGPathSegLinetoVerticalAbs documentation>
-newtype SVGPathSegLinetoVerticalAbs = SVGPathSegLinetoVerticalAbs { unSVGPathSegLinetoVerticalAbs :: JSVal }
-
-instance Eq (SVGPathSegLinetoVerticalAbs) where
-  (SVGPathSegLinetoVerticalAbs a) == (SVGPathSegLinetoVerticalAbs b) = js_eq a b
-
-instance PToJSVal SVGPathSegLinetoVerticalAbs where
-  pToJSVal = unSVGPathSegLinetoVerticalAbs
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegLinetoVerticalAbs where
-  pFromJSVal = SVGPathSegLinetoVerticalAbs
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegLinetoVerticalAbs where
-  toJSVal = return . unSVGPathSegLinetoVerticalAbs
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegLinetoVerticalAbs where
-  fromJSVal = return . fmap SVGPathSegLinetoVerticalAbs . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegLinetoVerticalAbs
-instance IsGObject SVGPathSegLinetoVerticalAbs where
-  typeGType _ = gTypeSVGPathSegLinetoVerticalAbs
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegLinetoVerticalAbs\"]" gTypeSVGPathSegLinetoVerticalAbs :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoVerticalRel".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalRel Mozilla SVGPathSegLinetoVerticalRel documentation>
-newtype SVGPathSegLinetoVerticalRel = SVGPathSegLinetoVerticalRel { unSVGPathSegLinetoVerticalRel :: JSVal }
-
-instance Eq (SVGPathSegLinetoVerticalRel) where
-  (SVGPathSegLinetoVerticalRel a) == (SVGPathSegLinetoVerticalRel b) = js_eq a b
-
-instance PToJSVal SVGPathSegLinetoVerticalRel where
-  pToJSVal = unSVGPathSegLinetoVerticalRel
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegLinetoVerticalRel where
-  pFromJSVal = SVGPathSegLinetoVerticalRel
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegLinetoVerticalRel where
-  toJSVal = return . unSVGPathSegLinetoVerticalRel
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegLinetoVerticalRel where
-  fromJSVal = return . fmap SVGPathSegLinetoVerticalRel . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegLinetoVerticalRel
-instance IsGObject SVGPathSegLinetoVerticalRel where
-  typeGType _ = gTypeSVGPathSegLinetoVerticalRel
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegLinetoVerticalRel\"]" gTypeSVGPathSegLinetoVerticalRel :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList Mozilla SVGPathSegList documentation>
-newtype SVGPathSegList = SVGPathSegList { unSVGPathSegList :: JSVal }
-
-instance Eq (SVGPathSegList) where
-  (SVGPathSegList a) == (SVGPathSegList b) = js_eq a b
-
-instance PToJSVal SVGPathSegList where
-  pToJSVal = unSVGPathSegList
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegList where
-  pFromJSVal = SVGPathSegList
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegList where
-  toJSVal = return . unSVGPathSegList
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegList where
-  fromJSVal = return . fmap SVGPathSegList . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SVGPathSegList where
-  typeGType _ = gTypeSVGPathSegList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegList\"]" gTypeSVGPathSegList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegMovetoAbs".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoAbs Mozilla SVGPathSegMovetoAbs documentation>
-newtype SVGPathSegMovetoAbs = SVGPathSegMovetoAbs { unSVGPathSegMovetoAbs :: JSVal }
-
-instance Eq (SVGPathSegMovetoAbs) where
-  (SVGPathSegMovetoAbs a) == (SVGPathSegMovetoAbs b) = js_eq a b
-
-instance PToJSVal SVGPathSegMovetoAbs where
-  pToJSVal = unSVGPathSegMovetoAbs
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegMovetoAbs where
-  pFromJSVal = SVGPathSegMovetoAbs
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegMovetoAbs where
-  toJSVal = return . unSVGPathSegMovetoAbs
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegMovetoAbs where
-  fromJSVal = return . fmap SVGPathSegMovetoAbs . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegMovetoAbs
-instance IsGObject SVGPathSegMovetoAbs where
-  typeGType _ = gTypeSVGPathSegMovetoAbs
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegMovetoAbs\"]" gTypeSVGPathSegMovetoAbs :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegMovetoRel".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGPathSeg"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoRel Mozilla SVGPathSegMovetoRel documentation>
-newtype SVGPathSegMovetoRel = SVGPathSegMovetoRel { unSVGPathSegMovetoRel :: JSVal }
-
-instance Eq (SVGPathSegMovetoRel) where
-  (SVGPathSegMovetoRel a) == (SVGPathSegMovetoRel b) = js_eq a b
-
-instance PToJSVal SVGPathSegMovetoRel where
-  pToJSVal = unSVGPathSegMovetoRel
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPathSegMovetoRel where
-  pFromJSVal = SVGPathSegMovetoRel
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPathSegMovetoRel where
-  toJSVal = return . unSVGPathSegMovetoRel
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPathSegMovetoRel where
-  fromJSVal = return . fmap SVGPathSegMovetoRel . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGPathSeg SVGPathSegMovetoRel
-instance IsGObject SVGPathSegMovetoRel where
-  typeGType _ = gTypeSVGPathSegMovetoRel
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPathSegMovetoRel\"]" gTypeSVGPathSegMovetoRel :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPatternElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement Mozilla SVGPatternElement documentation>
-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 #-}
-
-instance IsSVGElement SVGPatternElement
-instance IsElement SVGPatternElement
-instance IsNode SVGPatternElement
-instance IsEventTarget SVGPatternElement
-instance IsGObject SVGPatternElement where
-  typeGType _ = gTypeSVGPatternElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPatternElement\"]" gTypeSVGPatternElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPoint".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint Mozilla SVGPoint documentation>
-newtype SVGPoint = SVGPoint { unSVGPoint :: JSVal }
-
-instance Eq (SVGPoint) where
-  (SVGPoint a) == (SVGPoint b) = js_eq a b
-
-instance PToJSVal SVGPoint where
-  pToJSVal = unSVGPoint
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGPoint where
-  pFromJSVal = SVGPoint
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGPoint where
-  toJSVal = return . unSVGPoint
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGPoint where
-  fromJSVal = return . fmap SVGPoint . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SVGPoint where
-  typeGType _ = gTypeSVGPoint
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPoint\"]" gTypeSVGPoint :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPointList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList Mozilla SVGPointList documentation>
-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 #-}
-
-instance IsGObject SVGPointList where
-  typeGType _ = gTypeSVGPointList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPointList\"]" gTypeSVGPointList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPolygonElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolygonElement Mozilla SVGPolygonElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGPolygonElement
-instance IsSVGElement SVGPolygonElement
-instance IsElement SVGPolygonElement
-instance IsNode SVGPolygonElement
-instance IsEventTarget SVGPolygonElement
-instance IsGObject SVGPolygonElement where
-  typeGType _ = gTypeSVGPolygonElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPolygonElement\"]" gTypeSVGPolygonElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPolylineElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolylineElement Mozilla SVGPolylineElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGPolylineElement
-instance IsSVGElement SVGPolylineElement
-instance IsElement SVGPolylineElement
-instance IsNode SVGPolylineElement
-instance IsEventTarget SVGPolylineElement
-instance IsGObject SVGPolylineElement where
-  typeGType _ = gTypeSVGPolylineElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPolylineElement\"]" gTypeSVGPolylineElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGPreserveAspectRatio".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPreserveAspectRatio Mozilla SVGPreserveAspectRatio documentation>
-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 #-}
-
-instance IsGObject SVGPreserveAspectRatio where
-  typeGType _ = gTypeSVGPreserveAspectRatio
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGPreserveAspectRatio\"]" gTypeSVGPreserveAspectRatio :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGRadialGradientElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGradientElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement Mozilla SVGRadialGradientElement documentation>
-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 #-}
-
-instance IsSVGGradientElement SVGRadialGradientElement
-instance IsSVGElement SVGRadialGradientElement
-instance IsElement SVGRadialGradientElement
-instance IsNode SVGRadialGradientElement
-instance IsEventTarget SVGRadialGradientElement
-instance IsGObject SVGRadialGradientElement where
-  typeGType _ = gTypeSVGRadialGradientElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGRadialGradientElement\"]" gTypeSVGRadialGradientElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGRect".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect Mozilla SVGRect documentation>
-newtype SVGRect = SVGRect { unSVGRect :: JSVal }
-
-instance Eq (SVGRect) where
-  (SVGRect a) == (SVGRect b) = js_eq a b
-
-instance PToJSVal SVGRect where
-  pToJSVal = unSVGRect
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGRect where
-  pFromJSVal = SVGRect
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGRect where
-  toJSVal = return . unSVGRect
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGRect where
-  fromJSVal = return . fmap SVGRect . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SVGRect where
-  typeGType _ = gTypeSVGRect
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGRect\"]" gTypeSVGRect :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGRectElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement Mozilla SVGRectElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGRectElement
-instance IsSVGElement SVGRectElement
-instance IsElement SVGRectElement
-instance IsNode SVGRectElement
-instance IsEventTarget SVGRectElement
-instance IsGObject SVGRectElement where
-  typeGType _ = gTypeSVGRectElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGRectElement\"]" gTypeSVGRectElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGRenderingIntent".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRenderingIntent Mozilla SVGRenderingIntent documentation>
-newtype SVGRenderingIntent = SVGRenderingIntent { unSVGRenderingIntent :: JSVal }
-
-instance Eq (SVGRenderingIntent) where
-  (SVGRenderingIntent a) == (SVGRenderingIntent b) = js_eq a b
-
-instance PToJSVal SVGRenderingIntent where
-  pToJSVal = unSVGRenderingIntent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGRenderingIntent where
-  pFromJSVal = SVGRenderingIntent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGRenderingIntent where
-  toJSVal = return . unSVGRenderingIntent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGRenderingIntent where
-  fromJSVal = return . fmap SVGRenderingIntent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SVGRenderingIntent where
-  typeGType _ = gTypeSVGRenderingIntent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGRenderingIntent\"]" gTypeSVGRenderingIntent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGSVGElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement Mozilla SVGSVGElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGSVGElement
-instance IsSVGElement SVGSVGElement
-instance IsElement SVGSVGElement
-instance IsNode SVGSVGElement
-instance IsEventTarget SVGSVGElement
-instance IsGObject SVGSVGElement where
-  typeGType _ = gTypeSVGSVGElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGSVGElement\"]" gTypeSVGSVGElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGScriptElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGScriptElement Mozilla SVGScriptElement documentation>
-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 #-}
-
-instance IsSVGElement SVGScriptElement
-instance IsElement SVGScriptElement
-instance IsNode SVGScriptElement
-instance IsEventTarget SVGScriptElement
-instance IsGObject SVGScriptElement where
-  typeGType _ = gTypeSVGScriptElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGScriptElement\"]" gTypeSVGScriptElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGSetElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGAnimationElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSetElement Mozilla SVGSetElement documentation>
-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 #-}
-
-instance IsSVGAnimationElement SVGSetElement
-instance IsSVGElement SVGSetElement
-instance IsElement SVGSetElement
-instance IsNode SVGSetElement
-instance IsEventTarget SVGSetElement
-instance IsGObject SVGSetElement where
-  typeGType _ = gTypeSVGSetElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGSetElement\"]" gTypeSVGSetElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGStopElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGStopElement Mozilla SVGStopElement documentation>
-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 #-}
-
-instance IsSVGElement SVGStopElement
-instance IsElement SVGStopElement
-instance IsNode SVGStopElement
-instance IsEventTarget SVGStopElement
-instance IsGObject SVGStopElement where
-  typeGType _ = gTypeSVGStopElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGStopElement\"]" gTypeSVGStopElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGStringList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList Mozilla SVGStringList documentation>
-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 #-}
-
-instance IsGObject SVGStringList where
-  typeGType _ = gTypeSVGStringList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGStringList\"]" gTypeSVGStringList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGStyleElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement Mozilla SVGStyleElement documentation>
-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 #-}
-
-instance IsSVGElement SVGStyleElement
-instance IsElement SVGStyleElement
-instance IsNode SVGStyleElement
-instance IsEventTarget SVGStyleElement
-instance IsGObject SVGStyleElement where
-  typeGType _ = gTypeSVGStyleElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGStyleElement\"]" gTypeSVGStyleElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGSwitchElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSwitchElement Mozilla SVGSwitchElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGSwitchElement
-instance IsSVGElement SVGSwitchElement
-instance IsElement SVGSwitchElement
-instance IsNode SVGSwitchElement
-instance IsEventTarget SVGSwitchElement
-instance IsGObject SVGSwitchElement where
-  typeGType _ = gTypeSVGSwitchElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGSwitchElement\"]" gTypeSVGSwitchElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGSymbolElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSymbolElement Mozilla SVGSymbolElement documentation>
-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 #-}
-
-instance IsSVGElement SVGSymbolElement
-instance IsElement SVGSymbolElement
-instance IsNode SVGSymbolElement
-instance IsEventTarget SVGSymbolElement
-instance IsGObject SVGSymbolElement where
-  typeGType _ = gTypeSVGSymbolElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGSymbolElement\"]" gTypeSVGSymbolElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGTRefElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGTextPositioningElement"
---     * "GHCJS.DOM.SVGTextContentElement"
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTRefElement Mozilla SVGTRefElement documentation>
-newtype SVGTRefElement = SVGTRefElement { unSVGTRefElement :: JSVal }
-
-instance Eq (SVGTRefElement) where
-  (SVGTRefElement a) == (SVGTRefElement b) = js_eq a b
-
-instance PToJSVal SVGTRefElement where
-  pToJSVal = unSVGTRefElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGTRefElement where
-  pFromJSVal = SVGTRefElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGTRefElement where
-  toJSVal = return . unSVGTRefElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGTRefElement where
-  fromJSVal = return . fmap SVGTRefElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGTextPositioningElement SVGTRefElement
-instance IsSVGTextContentElement SVGTRefElement
-instance IsSVGGraphicsElement SVGTRefElement
-instance IsSVGElement SVGTRefElement
-instance IsElement SVGTRefElement
-instance IsNode SVGTRefElement
-instance IsEventTarget SVGTRefElement
-instance IsGObject SVGTRefElement where
-  typeGType _ = gTypeSVGTRefElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGTRefElement\"]" gTypeSVGTRefElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGTSpanElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGTextPositioningElement"
---     * "GHCJS.DOM.SVGTextContentElement"
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTSpanElement Mozilla SVGTSpanElement documentation>
-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 #-}
-
-instance IsSVGTextPositioningElement SVGTSpanElement
-instance IsSVGTextContentElement SVGTSpanElement
-instance IsSVGGraphicsElement SVGTSpanElement
-instance IsSVGElement SVGTSpanElement
-instance IsElement SVGTSpanElement
-instance IsNode SVGTSpanElement
-instance IsEventTarget SVGTSpanElement
-instance IsGObject SVGTSpanElement where
-  typeGType _ = gTypeSVGTSpanElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGTSpanElement\"]" gTypeSVGTSpanElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGTests".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests Mozilla SVGTests documentation>
-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 #-}
-
-instance IsGObject SVGTests where
-  typeGType _ = gTypeSVGTests
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGTests\"]" gTypeSVGTests :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGTextContentElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement Mozilla SVGTextContentElement documentation>
-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 #-}
-
-class IsSVGGraphicsElement o => IsSVGTextContentElement o
-toSVGTextContentElement :: IsSVGTextContentElement o => o -> SVGTextContentElement
-toSVGTextContentElement = SVGTextContentElement . coerce
-
-instance IsSVGTextContentElement SVGTextContentElement
-instance IsSVGGraphicsElement SVGTextContentElement
-instance IsSVGElement SVGTextContentElement
-instance IsElement SVGTextContentElement
-instance IsNode SVGTextContentElement
-instance IsEventTarget SVGTextContentElement
-instance IsGObject SVGTextContentElement where
-  typeGType _ = gTypeSVGTextContentElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGTextContentElement\"]" gTypeSVGTextContentElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGTextElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGTextPositioningElement"
---     * "GHCJS.DOM.SVGTextContentElement"
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextElement Mozilla SVGTextElement documentation>
-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 #-}
-
-instance IsSVGTextPositioningElement SVGTextElement
-instance IsSVGTextContentElement SVGTextElement
-instance IsSVGGraphicsElement SVGTextElement
-instance IsSVGElement SVGTextElement
-instance IsElement SVGTextElement
-instance IsNode SVGTextElement
-instance IsEventTarget SVGTextElement
-instance IsGObject SVGTextElement where
-  typeGType _ = gTypeSVGTextElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGTextElement\"]" gTypeSVGTextElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGTextPathElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGTextContentElement"
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement Mozilla SVGTextPathElement documentation>
-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 #-}
-
-instance IsSVGTextContentElement SVGTextPathElement
-instance IsSVGGraphicsElement SVGTextPathElement
-instance IsSVGElement SVGTextPathElement
-instance IsElement SVGTextPathElement
-instance IsNode SVGTextPathElement
-instance IsEventTarget SVGTextPathElement
-instance IsGObject SVGTextPathElement where
-  typeGType _ = gTypeSVGTextPathElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGTextPathElement\"]" gTypeSVGTextPathElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGTextPositioningElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGTextContentElement"
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement Mozilla SVGTextPositioningElement documentation>
-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 #-}
-
-class IsSVGTextContentElement o => IsSVGTextPositioningElement o
-toSVGTextPositioningElement :: IsSVGTextPositioningElement o => o -> SVGTextPositioningElement
-toSVGTextPositioningElement = SVGTextPositioningElement . coerce
-
-instance IsSVGTextPositioningElement SVGTextPositioningElement
-instance IsSVGTextContentElement SVGTextPositioningElement
-instance IsSVGGraphicsElement SVGTextPositioningElement
-instance IsSVGElement SVGTextPositioningElement
-instance IsElement SVGTextPositioningElement
-instance IsNode SVGTextPositioningElement
-instance IsEventTarget SVGTextPositioningElement
-instance IsGObject SVGTextPositioningElement where
-  typeGType _ = gTypeSVGTextPositioningElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGTextPositioningElement\"]" gTypeSVGTextPositioningElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGTitleElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTitleElement Mozilla SVGTitleElement documentation>
-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 #-}
-
-instance IsSVGElement SVGTitleElement
-instance IsElement SVGTitleElement
-instance IsNode SVGTitleElement
-instance IsEventTarget SVGTitleElement
-instance IsGObject SVGTitleElement where
-  typeGType _ = gTypeSVGTitleElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGTitleElement\"]" gTypeSVGTitleElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGTransform".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform Mozilla SVGTransform documentation>
-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 #-}
-
-instance IsGObject SVGTransform where
-  typeGType _ = gTypeSVGTransform
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGTransform\"]" gTypeSVGTransform :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGTransformList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList Mozilla SVGTransformList documentation>
-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 #-}
-
-instance IsGObject SVGTransformList where
-  typeGType _ = gTypeSVGTransformList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGTransformList\"]" gTypeSVGTransformList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGURIReference".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGURIReference Mozilla SVGURIReference documentation>
-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 #-}
-
-instance IsGObject SVGURIReference where
-  typeGType _ = gTypeSVGURIReference
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGURIReference\"]" gTypeSVGURIReference :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGUnitTypes".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGUnitTypes Mozilla SVGUnitTypes documentation>
-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 #-}
-
-instance IsGObject SVGUnitTypes where
-  typeGType _ = gTypeSVGUnitTypes
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGUnitTypes\"]" gTypeSVGUnitTypes :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGUseElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGGraphicsElement"
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement Mozilla SVGUseElement documentation>
-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 #-}
-
-instance IsSVGGraphicsElement SVGUseElement
-instance IsSVGElement SVGUseElement
-instance IsElement SVGUseElement
-instance IsNode SVGUseElement
-instance IsEventTarget SVGUseElement
-instance IsGObject SVGUseElement where
-  typeGType _ = gTypeSVGUseElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGUseElement\"]" gTypeSVGUseElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGVKernElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGVKernElement Mozilla SVGVKernElement documentation>
-newtype SVGVKernElement = SVGVKernElement { unSVGVKernElement :: JSVal }
-
-instance Eq (SVGVKernElement) where
-  (SVGVKernElement a) == (SVGVKernElement b) = js_eq a b
-
-instance PToJSVal SVGVKernElement where
-  pToJSVal = unSVGVKernElement
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGVKernElement where
-  pFromJSVal = SVGVKernElement
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGVKernElement where
-  toJSVal = return . unSVGVKernElement
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGVKernElement where
-  fromJSVal = return . fmap SVGVKernElement . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsSVGElement SVGVKernElement
-instance IsElement SVGVKernElement
-instance IsNode SVGVKernElement
-instance IsEventTarget SVGVKernElement
-instance IsGObject SVGVKernElement where
-  typeGType _ = gTypeSVGVKernElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGVKernElement\"]" gTypeSVGVKernElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGViewElement".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.SVGElement"
---     * "GHCJS.DOM.Element"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewElement Mozilla SVGViewElement documentation>
-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 #-}
-
-instance IsSVGElement SVGViewElement
-instance IsElement SVGViewElement
-instance IsNode SVGViewElement
-instance IsEventTarget SVGViewElement
-instance IsGObject SVGViewElement where
-  typeGType _ = gTypeSVGViewElement
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGViewElement\"]" gTypeSVGViewElement :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGViewSpec".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec Mozilla SVGViewSpec documentation>
-newtype SVGViewSpec = SVGViewSpec { unSVGViewSpec :: JSVal }
-
-instance Eq (SVGViewSpec) where
-  (SVGViewSpec a) == (SVGViewSpec b) = js_eq a b
-
-instance PToJSVal SVGViewSpec where
-  pToJSVal = unSVGViewSpec
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGViewSpec where
-  pFromJSVal = SVGViewSpec
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGViewSpec where
-  toJSVal = return . unSVGViewSpec
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGViewSpec where
-  fromJSVal = return . fmap SVGViewSpec . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SVGViewSpec where
-  typeGType _ = gTypeSVGViewSpec
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGViewSpec\"]" gTypeSVGViewSpec :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGZoomAndPan".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomAndPan Mozilla SVGZoomAndPan documentation>
-newtype SVGZoomAndPan = SVGZoomAndPan { unSVGZoomAndPan :: JSVal }
-
-instance Eq (SVGZoomAndPan) where
-  (SVGZoomAndPan a) == (SVGZoomAndPan b) = js_eq a b
-
-instance PToJSVal SVGZoomAndPan where
-  pToJSVal = unSVGZoomAndPan
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGZoomAndPan where
-  pFromJSVal = SVGZoomAndPan
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGZoomAndPan where
-  toJSVal = return . unSVGZoomAndPan
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGZoomAndPan where
-  fromJSVal = return . fmap SVGZoomAndPan . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SVGZoomAndPan where
-  typeGType _ = gTypeSVGZoomAndPan
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGZoomAndPan\"]" gTypeSVGZoomAndPan :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SVGZoomEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.UIEvent"
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent Mozilla SVGZoomEvent documentation>
-newtype SVGZoomEvent = SVGZoomEvent { unSVGZoomEvent :: JSVal }
-
-instance Eq (SVGZoomEvent) where
-  (SVGZoomEvent a) == (SVGZoomEvent b) = js_eq a b
-
-instance PToJSVal SVGZoomEvent where
-  pToJSVal = unSVGZoomEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SVGZoomEvent where
-  pFromJSVal = SVGZoomEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SVGZoomEvent where
-  toJSVal = return . unSVGZoomEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SVGZoomEvent where
-  fromJSVal = return . fmap SVGZoomEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsUIEvent SVGZoomEvent
-instance IsEvent SVGZoomEvent
-instance IsGObject SVGZoomEvent where
-  typeGType _ = gTypeSVGZoomEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SVGZoomEvent\"]" gTypeSVGZoomEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Screen".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Screen Mozilla Screen documentation>
-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 #-}
-
-instance IsGObject Screen where
-  typeGType _ = gTypeScreen
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Screen\"]" gTypeScreen :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ScriptProcessorNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode Mozilla ScriptProcessorNode documentation>
-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 #-}
-
-instance IsAudioNode ScriptProcessorNode
-instance IsEventTarget ScriptProcessorNode
-instance IsGObject ScriptProcessorNode where
-  typeGType _ = gTypeScriptProcessorNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ScriptProcessorNode\"]" gTypeScriptProcessorNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ScriptProfile".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfile Mozilla ScriptProfile documentation>
-newtype ScriptProfile = ScriptProfile { unScriptProfile :: JSVal }
-
-instance Eq (ScriptProfile) where
-  (ScriptProfile a) == (ScriptProfile b) = js_eq a b
-
-instance PToJSVal ScriptProfile where
-  pToJSVal = unScriptProfile
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal ScriptProfile where
-  pFromJSVal = ScriptProfile
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal ScriptProfile where
-  toJSVal = return . unScriptProfile
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal ScriptProfile where
-  fromJSVal = return . fmap ScriptProfile . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject ScriptProfile where
-  typeGType _ = gTypeScriptProfile
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ScriptProfile\"]" gTypeScriptProfile :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ScriptProfileNode".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProfileNode Mozilla ScriptProfileNode documentation>
-newtype ScriptProfileNode = ScriptProfileNode { unScriptProfileNode :: JSVal }
-
-instance Eq (ScriptProfileNode) where
-  (ScriptProfileNode a) == (ScriptProfileNode b) = js_eq a b
-
-instance PToJSVal ScriptProfileNode where
-  pToJSVal = unScriptProfileNode
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal ScriptProfileNode where
-  pFromJSVal = ScriptProfileNode
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal ScriptProfileNode where
-  toJSVal = return . unScriptProfileNode
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal ScriptProfileNode where
-  fromJSVal = return . fmap ScriptProfileNode . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject ScriptProfileNode where
-  typeGType _ = gTypeScriptProfileNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ScriptProfileNode\"]" gTypeScriptProfileNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SecurityPolicy".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicy Mozilla SecurityPolicy documentation>
-newtype SecurityPolicy = SecurityPolicy { unSecurityPolicy :: JSVal }
-
-instance Eq (SecurityPolicy) where
-  (SecurityPolicy a) == (SecurityPolicy b) = js_eq a b
-
-instance PToJSVal SecurityPolicy where
-  pToJSVal = unSecurityPolicy
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SecurityPolicy where
-  pFromJSVal = SecurityPolicy
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SecurityPolicy where
-  toJSVal = return . unSecurityPolicy
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SecurityPolicy where
-  fromJSVal = return . fmap SecurityPolicy . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SecurityPolicy where
-  typeGType _ = gTypeSecurityPolicy
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SecurityPolicy\"]" gTypeSecurityPolicy :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SecurityPolicyViolationEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicyViolationEvent Mozilla SecurityPolicyViolationEvent documentation>
-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 #-}
-
-instance IsEvent SecurityPolicyViolationEvent
-instance IsGObject SecurityPolicyViolationEvent where
-  typeGType _ = gTypeSecurityPolicyViolationEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SecurityPolicyViolationEvent\"]" gTypeSecurityPolicyViolationEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Selection".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Selection Mozilla Selection documentation>
-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 #-}
-
-instance IsGObject Selection where
-  typeGType _ = gTypeSelection
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Selection\"]" gTypeSelection :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SourceBuffer".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer Mozilla SourceBuffer documentation>
-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 #-}
-
-instance IsEventTarget SourceBuffer
-instance IsGObject SourceBuffer where
-  typeGType _ = gTypeSourceBuffer
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SourceBuffer\"]" gTypeSourceBuffer :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SourceBufferList".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferList Mozilla SourceBufferList documentation>
-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 #-}
-
-instance IsEventTarget SourceBufferList
-instance IsGObject SourceBufferList where
-  typeGType _ = gTypeSourceBufferList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SourceBufferList\"]" gTypeSourceBufferList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SourceInfo".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SourceInfo Mozilla SourceInfo documentation>
-newtype SourceInfo = SourceInfo { unSourceInfo :: JSVal }
-
-instance Eq (SourceInfo) where
-  (SourceInfo a) == (SourceInfo b) = js_eq a b
-
-instance PToJSVal SourceInfo where
-  pToJSVal = unSourceInfo
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal SourceInfo where
-  pFromJSVal = SourceInfo
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal SourceInfo where
-  toJSVal = return . unSourceInfo
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal SourceInfo where
-  fromJSVal = return . fmap SourceInfo . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject SourceInfo where
-  typeGType _ = gTypeSourceInfo
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SourceInfo\"]" gTypeSourceInfo :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SpeechSynthesis".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis Mozilla SpeechSynthesis documentation>
-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 #-}
-
-instance IsGObject SpeechSynthesis where
-  typeGType _ = gTypeSpeechSynthesis
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SpeechSynthesis\"]" gTypeSpeechSynthesis :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SpeechSynthesisEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisEvent Mozilla SpeechSynthesisEvent documentation>
-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 #-}
-
-instance IsEvent SpeechSynthesisEvent
-instance IsGObject SpeechSynthesisEvent where
-  typeGType _ = gTypeSpeechSynthesisEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SpeechSynthesisEvent\"]" gTypeSpeechSynthesisEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SpeechSynthesisUtterance".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance Mozilla SpeechSynthesisUtterance documentation>
-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 #-}
-
-instance IsEventTarget SpeechSynthesisUtterance
-instance IsGObject SpeechSynthesisUtterance where
-  typeGType _ = gTypeSpeechSynthesisUtterance
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SpeechSynthesisUtterance\"]" gTypeSpeechSynthesisUtterance :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SpeechSynthesisVoice".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisVoice Mozilla SpeechSynthesisVoice documentation>
-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 #-}
-
-instance IsGObject SpeechSynthesisVoice where
-  typeGType _ = gTypeSpeechSynthesisVoice
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"SpeechSynthesisVoice\"]" gTypeSpeechSynthesisVoice :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Storage".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Storage Mozilla Storage documentation>
-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 #-}
-
-instance IsGObject Storage where
-  typeGType _ = gTypeStorage
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Storage\"]" gTypeStorage :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.StorageEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent Mozilla StorageEvent documentation>
-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 #-}
-
-instance IsEvent StorageEvent
-instance IsGObject StorageEvent where
-  typeGType _ = gTypeStorageEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"StorageEvent\"]" gTypeStorageEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.StorageInfo".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/StorageInfo Mozilla StorageInfo documentation>
-newtype StorageInfo = StorageInfo { unStorageInfo :: JSVal }
-
-instance Eq (StorageInfo) where
-  (StorageInfo a) == (StorageInfo b) = js_eq a b
-
-instance PToJSVal StorageInfo where
-  pToJSVal = unStorageInfo
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal StorageInfo where
-  pFromJSVal = StorageInfo
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal StorageInfo where
-  toJSVal = return . unStorageInfo
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal StorageInfo where
-  fromJSVal = return . fmap StorageInfo . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject StorageInfo where
-  typeGType _ = gTypeStorageInfo
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"StorageInfo\"]" gTypeStorageInfo :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.StorageQuota".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/StorageQuota Mozilla StorageQuota documentation>
-newtype StorageQuota = StorageQuota { unStorageQuota :: JSVal }
-
-instance Eq (StorageQuota) where
-  (StorageQuota a) == (StorageQuota b) = js_eq a b
-
-instance PToJSVal StorageQuota where
-  pToJSVal = unStorageQuota
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal StorageQuota where
-  pFromJSVal = StorageQuota
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal StorageQuota where
-  toJSVal = return . unStorageQuota
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal StorageQuota where
-  fromJSVal = return . fmap StorageQuota . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject StorageQuota where
-  typeGType _ = gTypeStorageQuota
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"StorageQuota\"]" gTypeStorageQuota :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.StyleMedia".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/StyleMedia Mozilla StyleMedia documentation>
-newtype StyleMedia = StyleMedia { unStyleMedia :: JSVal }
-
-instance Eq (StyleMedia) where
-  (StyleMedia a) == (StyleMedia b) = js_eq a b
-
-instance PToJSVal StyleMedia where
-  pToJSVal = unStyleMedia
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal StyleMedia where
-  pFromJSVal = StyleMedia
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal StyleMedia where
-  toJSVal = return . unStyleMedia
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal StyleMedia where
-  fromJSVal = return . fmap StyleMedia . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject StyleMedia where
-  typeGType _ = gTypeStyleMedia
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"StyleMedia\"]" gTypeStyleMedia :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.StyleSheet".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet Mozilla StyleSheet documentation>
-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 #-}
-
-class IsGObject o => IsStyleSheet o
-toStyleSheet :: IsStyleSheet o => o -> StyleSheet
-toStyleSheet = StyleSheet . coerce
-
-instance IsStyleSheet StyleSheet
-instance IsGObject StyleSheet where
-  typeGType _ = gTypeStyleSheet
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"StyleSheet\"]" gTypeStyleSheet :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.StyleSheetList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList Mozilla StyleSheetList documentation>
-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 #-}
-
-instance IsGObject StyleSheetList where
-  typeGType _ = gTypeStyleSheetList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"StyleSheetList\"]" gTypeStyleSheetList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.SubtleCrypto".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto Mozilla WebKitSubtleCrypto documentation>
-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 #-}
-
-instance IsGObject SubtleCrypto where
-  typeGType _ = gTypeSubtleCrypto
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitSubtleCrypto\"]" gTypeSubtleCrypto :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Text".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CharacterData"
---     * "GHCJS.DOM.Node"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Text Mozilla Text documentation>
-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 #-}
-
-class IsCharacterData o => IsText o
-toText :: IsText o => o -> Text
-toText = Text . coerce
-
-instance IsText Text
-instance IsCharacterData Text
-instance IsNode Text
-instance IsEventTarget Text
-instance IsGObject Text where
-  typeGType _ = gTypeText
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Text\"]" gTypeText :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TextEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.UIEvent"
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TextEvent Mozilla TextEvent documentation>
-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 #-}
-
-instance IsUIEvent TextEvent
-instance IsEvent TextEvent
-instance IsGObject TextEvent where
-  typeGType _ = gTypeTextEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TextEvent\"]" gTypeTextEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TextMetrics".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics Mozilla TextMetrics documentation>
-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 #-}
-
-instance IsGObject TextMetrics where
-  typeGType _ = gTypeTextMetrics
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TextMetrics\"]" gTypeTextMetrics :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TextTrack".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack Mozilla TextTrack documentation>
-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 #-}
-
-instance IsEventTarget TextTrack
-instance IsGObject TextTrack where
-  typeGType _ = gTypeTextTrack
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TextTrack\"]" gTypeTextTrack :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TextTrackCue".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCue Mozilla TextTrackCue documentation>
-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 #-}
-
-class IsEventTarget o => IsTextTrackCue o
-toTextTrackCue :: IsTextTrackCue o => o -> TextTrackCue
-toTextTrackCue = TextTrackCue . coerce
-
-instance IsTextTrackCue TextTrackCue
-instance IsEventTarget TextTrackCue
-instance IsGObject TextTrackCue where
-  typeGType _ = gTypeTextTrackCue
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TextTrackCue\"]" gTypeTextTrackCue :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TextTrackCueList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList Mozilla TextTrackCueList documentation>
-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 #-}
-
-instance IsGObject TextTrackCueList where
-  typeGType _ = gTypeTextTrackCueList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TextTrackCueList\"]" gTypeTextTrackCueList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TextTrackList".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList Mozilla TextTrackList documentation>
-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 #-}
-
-instance IsEventTarget TextTrackList
-instance IsGObject TextTrackList where
-  typeGType _ = gTypeTextTrackList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TextTrackList\"]" gTypeTextTrackList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TimeRanges".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges Mozilla TimeRanges documentation>
-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 #-}
-
-instance IsGObject TimeRanges where
-  typeGType _ = gTypeTimeRanges
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TimeRanges\"]" gTypeTimeRanges :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Touch".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Touch Mozilla Touch documentation>
-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 #-}
-
-instance IsGObject Touch where
-  typeGType _ = gTypeTouch
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Touch\"]" gTypeTouch :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TouchEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.UIEvent"
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent Mozilla TouchEvent documentation>
-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 #-}
-
-instance IsUIEvent TouchEvent
-instance IsEvent TouchEvent
-instance IsGObject TouchEvent where
-  typeGType _ = gTypeTouchEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TouchEvent\"]" gTypeTouchEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TouchList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TouchList Mozilla TouchList documentation>
-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 #-}
-
-instance IsGObject TouchList where
-  typeGType _ = gTypeTouchList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TouchList\"]" gTypeTouchList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TrackEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TrackEvent Mozilla TrackEvent documentation>
-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 #-}
-
-instance IsEvent TrackEvent
-instance IsGObject TrackEvent where
-  typeGType _ = gTypeTrackEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TrackEvent\"]" gTypeTrackEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TransitionEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent Mozilla TransitionEvent documentation>
-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 #-}
-
-instance IsEvent TransitionEvent
-instance IsGObject TransitionEvent where
-  typeGType _ = gTypeTransitionEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TransitionEvent\"]" gTypeTransitionEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TreeWalker".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker Mozilla TreeWalker documentation>
-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 #-}
-
-instance IsGObject TreeWalker where
-  typeGType _ = gTypeTreeWalker
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TreeWalker\"]" gTypeTreeWalker :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.TypeConversions".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/TypeConversions Mozilla TypeConversions documentation>
-newtype TypeConversions = TypeConversions { unTypeConversions :: JSVal }
-
-instance Eq (TypeConversions) where
-  (TypeConversions a) == (TypeConversions b) = js_eq a b
-
-instance PToJSVal TypeConversions where
-  pToJSVal = unTypeConversions
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal TypeConversions where
-  pFromJSVal = TypeConversions
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal TypeConversions where
-  toJSVal = return . unTypeConversions
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal TypeConversions where
-  fromJSVal = return . fmap TypeConversions . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject TypeConversions where
-  typeGType _ = gTypeTypeConversions
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"TypeConversions\"]" gTypeTypeConversions :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.UIEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent Mozilla UIEvent documentation>
-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 #-}
-
-class IsEvent o => IsUIEvent o
-toUIEvent :: IsUIEvent o => o -> UIEvent
-toUIEvent = UIEvent . coerce
-
-instance IsUIEvent UIEvent
-instance IsEvent UIEvent
-instance IsGObject UIEvent where
-  typeGType _ = gTypeUIEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"UIEvent\"]" gTypeUIEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.UIRequestEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.UIEvent"
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/UIRequestEvent Mozilla UIRequestEvent documentation>
-newtype UIRequestEvent = UIRequestEvent { unUIRequestEvent :: JSVal }
-
-instance Eq (UIRequestEvent) where
-  (UIRequestEvent a) == (UIRequestEvent b) = js_eq a b
-
-instance PToJSVal UIRequestEvent where
-  pToJSVal = unUIRequestEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal UIRequestEvent where
-  pFromJSVal = UIRequestEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal UIRequestEvent where
-  toJSVal = return . unUIRequestEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal UIRequestEvent where
-  fromJSVal = return . fmap UIRequestEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsUIEvent UIRequestEvent
-instance IsEvent UIRequestEvent
-instance IsGObject UIRequestEvent where
-  typeGType _ = gTypeUIRequestEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"UIRequestEvent\"]" gTypeUIRequestEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.URL".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/URL Mozilla URL documentation>
-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 #-}
-
-instance IsGObject URL where
-  typeGType _ = gTypeURL
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"URL\"]" gTypeURL :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.URLUtils".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/URLUtils Mozilla URLUtils documentation>
-newtype URLUtils = URLUtils { unURLUtils :: JSVal }
-
-instance Eq (URLUtils) where
-  (URLUtils a) == (URLUtils b) = js_eq a b
-
-instance PToJSVal URLUtils where
-  pToJSVal = unURLUtils
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal URLUtils where
-  pFromJSVal = URLUtils
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal URLUtils where
-  toJSVal = return . unURLUtils
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal URLUtils where
-  fromJSVal = return . fmap URLUtils . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject URLUtils where
-  typeGType _ = gTypeURLUtils
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"URLUtils\"]" gTypeURLUtils :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.UserMessageHandler".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/UserMessageHandler Mozilla UserMessageHandler documentation>
-newtype UserMessageHandler = UserMessageHandler { unUserMessageHandler :: JSVal }
-
-instance Eq (UserMessageHandler) where
-  (UserMessageHandler a) == (UserMessageHandler b) = js_eq a b
-
-instance PToJSVal UserMessageHandler where
-  pToJSVal = unUserMessageHandler
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal UserMessageHandler where
-  pFromJSVal = UserMessageHandler
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal UserMessageHandler where
-  toJSVal = return . unUserMessageHandler
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal UserMessageHandler where
-  fromJSVal = return . fmap UserMessageHandler . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject UserMessageHandler where
-  typeGType _ = gTypeUserMessageHandler
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"UserMessageHandler\"]" gTypeUserMessageHandler :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.UserMessageHandlersNamespace".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/UserMessageHandlersNamespace Mozilla UserMessageHandlersNamespace documentation>
-newtype UserMessageHandlersNamespace = UserMessageHandlersNamespace { unUserMessageHandlersNamespace :: JSVal }
-
-instance Eq (UserMessageHandlersNamespace) where
-  (UserMessageHandlersNamespace a) == (UserMessageHandlersNamespace b) = js_eq a b
-
-instance PToJSVal UserMessageHandlersNamespace where
-  pToJSVal = unUserMessageHandlersNamespace
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal UserMessageHandlersNamespace where
-  pFromJSVal = UserMessageHandlersNamespace
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal UserMessageHandlersNamespace where
-  toJSVal = return . unUserMessageHandlersNamespace
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal UserMessageHandlersNamespace where
-  fromJSVal = return . fmap UserMessageHandlersNamespace . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject UserMessageHandlersNamespace where
-  typeGType _ = gTypeUserMessageHandlersNamespace
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"UserMessageHandlersNamespace\"]" gTypeUserMessageHandlersNamespace :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.VTTCue".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.TextTrackCue"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue Mozilla VTTCue documentation>
-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 #-}
-
-instance IsTextTrackCue VTTCue
-instance IsEventTarget VTTCue
-instance IsGObject VTTCue where
-  typeGType _ = gTypeVTTCue
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"VTTCue\"]" gTypeVTTCue :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.VTTRegion".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion Mozilla VTTRegion documentation>
-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 #-}
-
-instance IsGObject VTTRegion where
-  typeGType _ = gTypeVTTRegion
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"VTTRegion\"]" gTypeVTTRegion :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.VTTRegionList".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList Mozilla VTTRegionList documentation>
-newtype VTTRegionList = VTTRegionList { unVTTRegionList :: JSVal }
-
-instance Eq (VTTRegionList) where
-  (VTTRegionList a) == (VTTRegionList b) = js_eq a b
-
-instance PToJSVal VTTRegionList where
-  pToJSVal = unVTTRegionList
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal VTTRegionList where
-  pFromJSVal = VTTRegionList
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal VTTRegionList where
-  toJSVal = return . unVTTRegionList
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal VTTRegionList where
-  fromJSVal = return . fmap VTTRegionList . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject VTTRegionList where
-  typeGType _ = gTypeVTTRegionList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"VTTRegionList\"]" gTypeVTTRegionList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.ValidityState".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState Mozilla ValidityState documentation>
-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 #-}
-
-instance IsGObject ValidityState where
-  typeGType _ = gTypeValidityState
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"ValidityState\"]" gTypeValidityState :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.VideoPlaybackQuality".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/VideoPlaybackQuality Mozilla VideoPlaybackQuality documentation>
-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 #-}
-
-instance IsGObject VideoPlaybackQuality where
-  typeGType _ = gTypeVideoPlaybackQuality
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"VideoPlaybackQuality\"]" gTypeVideoPlaybackQuality :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.VideoStreamTrack".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.MediaStreamTrack"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/VideoStreamTrack Mozilla VideoStreamTrack documentation>
-newtype VideoStreamTrack = VideoStreamTrack { unVideoStreamTrack :: JSVal }
-
-instance Eq (VideoStreamTrack) where
-  (VideoStreamTrack a) == (VideoStreamTrack b) = js_eq a b
-
-instance PToJSVal VideoStreamTrack where
-  pToJSVal = unVideoStreamTrack
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal VideoStreamTrack where
-  pFromJSVal = VideoStreamTrack
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal VideoStreamTrack where
-  toJSVal = return . unVideoStreamTrack
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal VideoStreamTrack where
-  fromJSVal = return . fmap VideoStreamTrack . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsMediaStreamTrack VideoStreamTrack
-instance IsEventTarget VideoStreamTrack
-instance IsGObject VideoStreamTrack where
-  typeGType _ = gTypeVideoStreamTrack
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"VideoStreamTrack\"]" gTypeVideoStreamTrack :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.VideoTrack".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack Mozilla VideoTrack documentation>
-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 #-}
-
-instance IsGObject VideoTrack where
-  typeGType _ = gTypeVideoTrack
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"VideoTrack\"]" gTypeVideoTrack :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.VideoTrackList".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList Mozilla VideoTrackList documentation>
-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 #-}
-
-instance IsEventTarget VideoTrackList
-instance IsGObject VideoTrackList where
-  typeGType _ = gTypeVideoTrackList
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"VideoTrackList\"]" gTypeVideoTrackList :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WaveShaperNode".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.AudioNode"
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WaveShaperNode Mozilla WaveShaperNode documentation>
-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 #-}
-
-instance IsAudioNode WaveShaperNode
-instance IsEventTarget WaveShaperNode
-instance IsGObject WaveShaperNode where
-  typeGType _ = gTypeWaveShaperNode
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WaveShaperNode\"]" gTypeWaveShaperNode :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGL2RenderingContext".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.WebGLRenderingContextBase"
---     * "GHCJS.DOM.CanvasRenderingContext"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext Mozilla WebGL2RenderingContext documentation>
-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 #-}
-
-instance IsWebGLRenderingContextBase WebGL2RenderingContext
-instance IsCanvasRenderingContext WebGL2RenderingContext
-instance IsGObject WebGL2RenderingContext where
-  typeGType _ = gTypeWebGL2RenderingContext
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGL2RenderingContext\"]" gTypeWebGL2RenderingContext :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLActiveInfo".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLActiveInfo Mozilla WebGLActiveInfo documentation>
-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 #-}
-
-instance IsGObject WebGLActiveInfo where
-  typeGType _ = gTypeWebGLActiveInfo
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLActiveInfo\"]" gTypeWebGLActiveInfo :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLBuffer".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer Mozilla WebGLBuffer documentation>
-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 #-}
-
-instance IsGObject WebGLBuffer where
-  typeGType _ = gTypeWebGLBuffer
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLBuffer\"]" gTypeWebGLBuffer :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLCompressedTextureATC".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTextureATC Mozilla WebGLCompressedTextureATC documentation>
-newtype WebGLCompressedTextureATC = WebGLCompressedTextureATC { unWebGLCompressedTextureATC :: JSVal }
-
-instance Eq (WebGLCompressedTextureATC) where
-  (WebGLCompressedTextureATC a) == (WebGLCompressedTextureATC b) = js_eq a b
-
-instance PToJSVal WebGLCompressedTextureATC where
-  pToJSVal = unWebGLCompressedTextureATC
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebGLCompressedTextureATC where
-  pFromJSVal = WebGLCompressedTextureATC
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebGLCompressedTextureATC where
-  toJSVal = return . unWebGLCompressedTextureATC
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebGLCompressedTextureATC where
-  fromJSVal = return . fmap WebGLCompressedTextureATC . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WebGLCompressedTextureATC where
-  typeGType _ = gTypeWebGLCompressedTextureATC
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLCompressedTextureATC\"]" gTypeWebGLCompressedTextureATC :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLCompressedTexturePVRTC".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTexturePVRTC Mozilla WebGLCompressedTexturePVRTC documentation>
-newtype WebGLCompressedTexturePVRTC = WebGLCompressedTexturePVRTC { unWebGLCompressedTexturePVRTC :: JSVal }
-
-instance Eq (WebGLCompressedTexturePVRTC) where
-  (WebGLCompressedTexturePVRTC a) == (WebGLCompressedTexturePVRTC b) = js_eq a b
-
-instance PToJSVal WebGLCompressedTexturePVRTC where
-  pToJSVal = unWebGLCompressedTexturePVRTC
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebGLCompressedTexturePVRTC where
-  pFromJSVal = WebGLCompressedTexturePVRTC
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebGLCompressedTexturePVRTC where
-  toJSVal = return . unWebGLCompressedTexturePVRTC
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebGLCompressedTexturePVRTC where
-  fromJSVal = return . fmap WebGLCompressedTexturePVRTC . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WebGLCompressedTexturePVRTC where
-  typeGType _ = gTypeWebGLCompressedTexturePVRTC
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLCompressedTexturePVRTC\"]" gTypeWebGLCompressedTexturePVRTC :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLCompressedTextureS3TC".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTextureS3TC Mozilla WebGLCompressedTextureS3TC documentation>
-newtype WebGLCompressedTextureS3TC = WebGLCompressedTextureS3TC { unWebGLCompressedTextureS3TC :: JSVal }
-
-instance Eq (WebGLCompressedTextureS3TC) where
-  (WebGLCompressedTextureS3TC a) == (WebGLCompressedTextureS3TC b) = js_eq a b
-
-instance PToJSVal WebGLCompressedTextureS3TC where
-  pToJSVal = unWebGLCompressedTextureS3TC
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebGLCompressedTextureS3TC where
-  pFromJSVal = WebGLCompressedTextureS3TC
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebGLCompressedTextureS3TC where
-  toJSVal = return . unWebGLCompressedTextureS3TC
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebGLCompressedTextureS3TC where
-  fromJSVal = return . fmap WebGLCompressedTextureS3TC . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WebGLCompressedTextureS3TC where
-  typeGType _ = gTypeWebGLCompressedTextureS3TC
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLCompressedTextureS3TC\"]" gTypeWebGLCompressedTextureS3TC :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLContextAttributes".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes Mozilla WebGLContextAttributes documentation>
-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 #-}
-
-instance IsGObject WebGLContextAttributes where
-  typeGType _ = gTypeWebGLContextAttributes
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLContextAttributes\"]" gTypeWebGLContextAttributes :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLContextEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextEvent Mozilla WebGLContextEvent documentation>
-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 #-}
-
-instance IsEvent WebGLContextEvent
-instance IsGObject WebGLContextEvent where
-  typeGType _ = gTypeWebGLContextEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLContextEvent\"]" gTypeWebGLContextEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLDebugRendererInfo".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugRendererInfo Mozilla WebGLDebugRendererInfo documentation>
-newtype WebGLDebugRendererInfo = WebGLDebugRendererInfo { unWebGLDebugRendererInfo :: JSVal }
-
-instance Eq (WebGLDebugRendererInfo) where
-  (WebGLDebugRendererInfo a) == (WebGLDebugRendererInfo b) = js_eq a b
-
-instance PToJSVal WebGLDebugRendererInfo where
-  pToJSVal = unWebGLDebugRendererInfo
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebGLDebugRendererInfo where
-  pFromJSVal = WebGLDebugRendererInfo
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebGLDebugRendererInfo where
-  toJSVal = return . unWebGLDebugRendererInfo
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebGLDebugRendererInfo where
-  fromJSVal = return . fmap WebGLDebugRendererInfo . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WebGLDebugRendererInfo where
-  typeGType _ = gTypeWebGLDebugRendererInfo
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLDebugRendererInfo\"]" gTypeWebGLDebugRendererInfo :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLDebugShaders".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugShaders Mozilla WebGLDebugShaders documentation>
-newtype WebGLDebugShaders = WebGLDebugShaders { unWebGLDebugShaders :: JSVal }
-
-instance Eq (WebGLDebugShaders) where
-  (WebGLDebugShaders a) == (WebGLDebugShaders b) = js_eq a b
-
-instance PToJSVal WebGLDebugShaders where
-  pToJSVal = unWebGLDebugShaders
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebGLDebugShaders where
-  pFromJSVal = WebGLDebugShaders
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebGLDebugShaders where
-  toJSVal = return . unWebGLDebugShaders
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebGLDebugShaders where
-  fromJSVal = return . fmap WebGLDebugShaders . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WebGLDebugShaders where
-  typeGType _ = gTypeWebGLDebugShaders
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLDebugShaders\"]" gTypeWebGLDebugShaders :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLDepthTexture".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDepthTexture Mozilla WebGLDepthTexture documentation>
-newtype WebGLDepthTexture = WebGLDepthTexture { unWebGLDepthTexture :: JSVal }
-
-instance Eq (WebGLDepthTexture) where
-  (WebGLDepthTexture a) == (WebGLDepthTexture b) = js_eq a b
-
-instance PToJSVal WebGLDepthTexture where
-  pToJSVal = unWebGLDepthTexture
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebGLDepthTexture where
-  pFromJSVal = WebGLDepthTexture
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebGLDepthTexture where
-  toJSVal = return . unWebGLDepthTexture
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebGLDepthTexture where
-  fromJSVal = return . fmap WebGLDepthTexture . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WebGLDepthTexture where
-  typeGType _ = gTypeWebGLDepthTexture
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLDepthTexture\"]" gTypeWebGLDepthTexture :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLDrawBuffers".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDrawBuffers Mozilla WebGLDrawBuffers documentation>
-newtype WebGLDrawBuffers = WebGLDrawBuffers { unWebGLDrawBuffers :: JSVal }
-
-instance Eq (WebGLDrawBuffers) where
-  (WebGLDrawBuffers a) == (WebGLDrawBuffers b) = js_eq a b
-
-instance PToJSVal WebGLDrawBuffers where
-  pToJSVal = unWebGLDrawBuffers
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebGLDrawBuffers where
-  pFromJSVal = WebGLDrawBuffers
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebGLDrawBuffers where
-  toJSVal = return . unWebGLDrawBuffers
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebGLDrawBuffers where
-  fromJSVal = return . fmap WebGLDrawBuffers . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WebGLDrawBuffers where
-  typeGType _ = gTypeWebGLDrawBuffers
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLDrawBuffers\"]" gTypeWebGLDrawBuffers :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLFramebuffer".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLFramebuffer Mozilla WebGLFramebuffer documentation>
-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 #-}
-
-instance IsGObject WebGLFramebuffer where
-  typeGType _ = gTypeWebGLFramebuffer
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLFramebuffer\"]" gTypeWebGLFramebuffer :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLLoseContext".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLLoseContext Mozilla WebGLLoseContext documentation>
-newtype WebGLLoseContext = WebGLLoseContext { unWebGLLoseContext :: JSVal }
-
-instance Eq (WebGLLoseContext) where
-  (WebGLLoseContext a) == (WebGLLoseContext b) = js_eq a b
-
-instance PToJSVal WebGLLoseContext where
-  pToJSVal = unWebGLLoseContext
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebGLLoseContext where
-  pFromJSVal = WebGLLoseContext
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebGLLoseContext where
-  toJSVal = return . unWebGLLoseContext
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebGLLoseContext where
-  fromJSVal = return . fmap WebGLLoseContext . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WebGLLoseContext where
-  typeGType _ = gTypeWebGLLoseContext
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLLoseContext\"]" gTypeWebGLLoseContext :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLProgram".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLProgram Mozilla WebGLProgram documentation>
-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 #-}
-
-instance IsGObject WebGLProgram where
-  typeGType _ = gTypeWebGLProgram
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLProgram\"]" gTypeWebGLProgram :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLQuery".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLQuery Mozilla WebGLQuery documentation>
-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 #-}
-
-instance IsGObject WebGLQuery where
-  typeGType _ = gTypeWebGLQuery
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLQuery\"]" gTypeWebGLQuery :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLRenderbuffer".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderbuffer Mozilla WebGLRenderbuffer documentation>
-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 #-}
-
-instance IsGObject WebGLRenderbuffer where
-  typeGType _ = gTypeWebGLRenderbuffer
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLRenderbuffer\"]" gTypeWebGLRenderbuffer :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLRenderingContext".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.WebGLRenderingContextBase"
---     * "GHCJS.DOM.CanvasRenderingContext"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext Mozilla WebGLRenderingContext documentation>
-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 #-}
-
-instance IsWebGLRenderingContextBase WebGLRenderingContext
-instance IsCanvasRenderingContext WebGLRenderingContext
-instance IsGObject WebGLRenderingContext where
-  typeGType _ = gTypeWebGLRenderingContext
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLRenderingContext\"]" gTypeWebGLRenderingContext :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLRenderingContextBase".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CanvasRenderingContext"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase Mozilla WebGLRenderingContextBase documentation>
-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 #-}
-
-class IsCanvasRenderingContext o => IsWebGLRenderingContextBase o
-toWebGLRenderingContextBase :: IsWebGLRenderingContextBase o => o -> WebGLRenderingContextBase
-toWebGLRenderingContextBase = WebGLRenderingContextBase . coerce
-
-instance IsWebGLRenderingContextBase WebGLRenderingContextBase
-instance IsCanvasRenderingContext WebGLRenderingContextBase
-instance IsGObject WebGLRenderingContextBase where
-  typeGType _ = gTypeWebGLRenderingContextBase
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLRenderingContextBase\"]" gTypeWebGLRenderingContextBase :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLSampler".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLSampler Mozilla WebGLSampler documentation>
-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 #-}
-
-instance IsGObject WebGLSampler where
-  typeGType _ = gTypeWebGLSampler
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLSampler\"]" gTypeWebGLSampler :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLShader".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLShader Mozilla WebGLShader documentation>
-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 #-}
-
-instance IsGObject WebGLShader where
-  typeGType _ = gTypeWebGLShader
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLShader\"]" gTypeWebGLShader :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLShaderPrecisionFormat".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLShaderPrecisionFormat Mozilla WebGLShaderPrecisionFormat documentation>
-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 #-}
-
-instance IsGObject WebGLShaderPrecisionFormat where
-  typeGType _ = gTypeWebGLShaderPrecisionFormat
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLShaderPrecisionFormat\"]" gTypeWebGLShaderPrecisionFormat :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLSync".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLSync Mozilla WebGLSync documentation>
-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 #-}
-
-instance IsGObject WebGLSync where
-  typeGType _ = gTypeWebGLSync
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLSync\"]" gTypeWebGLSync :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLTexture".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLTexture Mozilla WebGLTexture documentation>
-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 #-}
-
-instance IsGObject WebGLTexture where
-  typeGType _ = gTypeWebGLTexture
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLTexture\"]" gTypeWebGLTexture :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLTransformFeedback".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLTransformFeedback Mozilla WebGLTransformFeedback documentation>
-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 #-}
-
-instance IsGObject WebGLTransformFeedback where
-  typeGType _ = gTypeWebGLTransformFeedback
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLTransformFeedback\"]" gTypeWebGLTransformFeedback :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLUniformLocation".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLUniformLocation Mozilla WebGLUniformLocation documentation>
-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 #-}
-
-instance IsGObject WebGLUniformLocation where
-  typeGType _ = gTypeWebGLUniformLocation
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLUniformLocation\"]" gTypeWebGLUniformLocation :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLVertexArrayObject".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLVertexArrayObject Mozilla WebGLVertexArrayObject documentation>
-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 #-}
-
-instance IsGObject WebGLVertexArrayObject where
-  typeGType _ = gTypeWebGLVertexArrayObject
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLVertexArrayObject\"]" gTypeWebGLVertexArrayObject :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebGLVertexArrayObjectOES".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLVertexArrayObjectOES Mozilla WebGLVertexArrayObjectOES documentation>
-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 #-}
-
-instance IsGObject WebGLVertexArrayObjectOES where
-  typeGType _ = gTypeWebGLVertexArrayObjectOES
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebGLVertexArrayObjectOES\"]" gTypeWebGLVertexArrayObjectOES :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebKitAnimationEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitAnimationEvent Mozilla WebKitAnimationEvent documentation>
-newtype WebKitAnimationEvent = WebKitAnimationEvent { unWebKitAnimationEvent :: JSVal }
-
-instance Eq (WebKitAnimationEvent) where
-  (WebKitAnimationEvent a) == (WebKitAnimationEvent b) = js_eq a b
-
-instance PToJSVal WebKitAnimationEvent where
-  pToJSVal = unWebKitAnimationEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebKitAnimationEvent where
-  pFromJSVal = WebKitAnimationEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebKitAnimationEvent where
-  toJSVal = return . unWebKitAnimationEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebKitAnimationEvent where
-  fromJSVal = return . fmap WebKitAnimationEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent WebKitAnimationEvent
-instance IsGObject WebKitAnimationEvent where
-  typeGType _ = gTypeWebKitAnimationEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitAnimationEvent\"]" gTypeWebKitAnimationEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebKitCSSFilterValue".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSValueList"
---     * "GHCJS.DOM.CSSValue"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSFilterValue Mozilla WebKitCSSFilterValue documentation>
-newtype WebKitCSSFilterValue = WebKitCSSFilterValue { unWebKitCSSFilterValue :: JSVal }
-
-instance Eq (WebKitCSSFilterValue) where
-  (WebKitCSSFilterValue a) == (WebKitCSSFilterValue b) = js_eq a b
-
-instance PToJSVal WebKitCSSFilterValue where
-  pToJSVal = unWebKitCSSFilterValue
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebKitCSSFilterValue where
-  pFromJSVal = WebKitCSSFilterValue
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebKitCSSFilterValue where
-  toJSVal = return . unWebKitCSSFilterValue
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebKitCSSFilterValue where
-  fromJSVal = return . fmap WebKitCSSFilterValue . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsCSSValueList WebKitCSSFilterValue
-instance IsCSSValue WebKitCSSFilterValue
-instance IsGObject WebKitCSSFilterValue where
-  typeGType _ = gTypeWebKitCSSFilterValue
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitCSSFilterValue\"]" gTypeWebKitCSSFilterValue :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebKitCSSMatrix".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix Mozilla WebKitCSSMatrix documentation>
-newtype WebKitCSSMatrix = WebKitCSSMatrix { unWebKitCSSMatrix :: JSVal }
-
-instance Eq (WebKitCSSMatrix) where
-  (WebKitCSSMatrix a) == (WebKitCSSMatrix b) = js_eq a b
-
-instance PToJSVal WebKitCSSMatrix where
-  pToJSVal = unWebKitCSSMatrix
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebKitCSSMatrix where
-  pFromJSVal = WebKitCSSMatrix
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebKitCSSMatrix where
-  toJSVal = return . unWebKitCSSMatrix
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebKitCSSMatrix where
-  fromJSVal = return . fmap WebKitCSSMatrix . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WebKitCSSMatrix where
-  typeGType _ = gTypeWebKitCSSMatrix
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitCSSMatrix\"]" gTypeWebKitCSSMatrix :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebKitCSSRegionRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSRegionRule Mozilla WebKitCSSRegionRule documentation>
-newtype WebKitCSSRegionRule = WebKitCSSRegionRule { unWebKitCSSRegionRule :: JSVal }
-
-instance Eq (WebKitCSSRegionRule) where
-  (WebKitCSSRegionRule a) == (WebKitCSSRegionRule b) = js_eq a b
-
-instance PToJSVal WebKitCSSRegionRule where
-  pToJSVal = unWebKitCSSRegionRule
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebKitCSSRegionRule where
-  pFromJSVal = WebKitCSSRegionRule
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebKitCSSRegionRule where
-  toJSVal = return . unWebKitCSSRegionRule
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebKitCSSRegionRule where
-  fromJSVal = return . fmap WebKitCSSRegionRule . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsCSSRule WebKitCSSRegionRule
-instance IsGObject WebKitCSSRegionRule where
-  typeGType _ = gTypeWebKitCSSRegionRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitCSSRegionRule\"]" gTypeWebKitCSSRegionRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebKitCSSTransformValue".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSValueList"
---     * "GHCJS.DOM.CSSValue"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSTransformValue Mozilla WebKitCSSTransformValue documentation>
-newtype WebKitCSSTransformValue = WebKitCSSTransformValue { unWebKitCSSTransformValue :: JSVal }
-
-instance Eq (WebKitCSSTransformValue) where
-  (WebKitCSSTransformValue a) == (WebKitCSSTransformValue b) = js_eq a b
-
-instance PToJSVal WebKitCSSTransformValue where
-  pToJSVal = unWebKitCSSTransformValue
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebKitCSSTransformValue where
-  pFromJSVal = WebKitCSSTransformValue
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebKitCSSTransformValue where
-  toJSVal = return . unWebKitCSSTransformValue
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebKitCSSTransformValue where
-  fromJSVal = return . fmap WebKitCSSTransformValue . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsCSSValueList WebKitCSSTransformValue
-instance IsCSSValue WebKitCSSTransformValue
-instance IsGObject WebKitCSSTransformValue where
-  typeGType _ = gTypeWebKitCSSTransformValue
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitCSSTransformValue\"]" gTypeWebKitCSSTransformValue :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebKitCSSViewportRule".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.CSSRule"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSViewportRule Mozilla WebKitCSSViewportRule documentation>
-newtype WebKitCSSViewportRule = WebKitCSSViewportRule { unWebKitCSSViewportRule :: JSVal }
-
-instance Eq (WebKitCSSViewportRule) where
-  (WebKitCSSViewportRule a) == (WebKitCSSViewportRule b) = js_eq a b
-
-instance PToJSVal WebKitCSSViewportRule where
-  pToJSVal = unWebKitCSSViewportRule
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebKitCSSViewportRule where
-  pFromJSVal = WebKitCSSViewportRule
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebKitCSSViewportRule where
-  toJSVal = return . unWebKitCSSViewportRule
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebKitCSSViewportRule where
-  fromJSVal = return . fmap WebKitCSSViewportRule . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsCSSRule WebKitCSSViewportRule
-instance IsGObject WebKitCSSViewportRule where
-  typeGType _ = gTypeWebKitCSSViewportRule
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitCSSViewportRule\"]" gTypeWebKitCSSViewportRule :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebKitNamedFlow".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow Mozilla WebKitNamedFlow documentation>
-newtype WebKitNamedFlow = WebKitNamedFlow { unWebKitNamedFlow :: JSVal }
-
-instance Eq (WebKitNamedFlow) where
-  (WebKitNamedFlow a) == (WebKitNamedFlow b) = js_eq a b
-
-instance PToJSVal WebKitNamedFlow where
-  pToJSVal = unWebKitNamedFlow
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebKitNamedFlow where
-  pFromJSVal = WebKitNamedFlow
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebKitNamedFlow where
-  toJSVal = return . unWebKitNamedFlow
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebKitNamedFlow where
-  fromJSVal = return . fmap WebKitNamedFlow . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEventTarget WebKitNamedFlow
-instance IsGObject WebKitNamedFlow where
-  typeGType _ = gTypeWebKitNamedFlow
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitNamedFlow\"]" gTypeWebKitNamedFlow :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebKitNamespace".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamespace Mozilla WebKitNamespace documentation>
-newtype WebKitNamespace = WebKitNamespace { unWebKitNamespace :: JSVal }
-
-instance Eq (WebKitNamespace) where
-  (WebKitNamespace a) == (WebKitNamespace b) = js_eq a b
-
-instance PToJSVal WebKitNamespace where
-  pToJSVal = unWebKitNamespace
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebKitNamespace where
-  pFromJSVal = WebKitNamespace
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebKitNamespace where
-  toJSVal = return . unWebKitNamespace
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebKitNamespace where
-  fromJSVal = return . fmap WebKitNamespace . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WebKitNamespace where
-  typeGType _ = gTypeWebKitNamespace
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitNamespace\"]" gTypeWebKitNamespace :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebKitPlaybackTargetAvailabilityEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPlaybackTargetAvailabilityEvent Mozilla WebKitPlaybackTargetAvailabilityEvent documentation>
-newtype WebKitPlaybackTargetAvailabilityEvent = WebKitPlaybackTargetAvailabilityEvent { unWebKitPlaybackTargetAvailabilityEvent :: JSVal }
-
-instance Eq (WebKitPlaybackTargetAvailabilityEvent) where
-  (WebKitPlaybackTargetAvailabilityEvent a) == (WebKitPlaybackTargetAvailabilityEvent b) = js_eq a b
-
-instance PToJSVal WebKitPlaybackTargetAvailabilityEvent where
-  pToJSVal = unWebKitPlaybackTargetAvailabilityEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebKitPlaybackTargetAvailabilityEvent where
-  pFromJSVal = WebKitPlaybackTargetAvailabilityEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebKitPlaybackTargetAvailabilityEvent where
-  toJSVal = return . unWebKitPlaybackTargetAvailabilityEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebKitPlaybackTargetAvailabilityEvent where
-  fromJSVal = return . fmap WebKitPlaybackTargetAvailabilityEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent WebKitPlaybackTargetAvailabilityEvent
-instance IsGObject WebKitPlaybackTargetAvailabilityEvent where
-  typeGType _ = gTypeWebKitPlaybackTargetAvailabilityEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitPlaybackTargetAvailabilityEvent\"]" gTypeWebKitPlaybackTargetAvailabilityEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebKitPoint".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPoint Mozilla WebKitPoint documentation>
-newtype WebKitPoint = WebKitPoint { unWebKitPoint :: JSVal }
-
-instance Eq (WebKitPoint) where
-  (WebKitPoint a) == (WebKitPoint b) = js_eq a b
-
-instance PToJSVal WebKitPoint where
-  pToJSVal = unWebKitPoint
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebKitPoint where
-  pFromJSVal = WebKitPoint
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebKitPoint where
-  toJSVal = return . unWebKitPoint
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebKitPoint where
-  fromJSVal = return . fmap WebKitPoint . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WebKitPoint where
-  typeGType _ = gTypeWebKitPoint
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitPoint\"]" gTypeWebKitPoint :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebKitTransitionEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitTransitionEvent Mozilla WebKitTransitionEvent documentation>
-newtype WebKitTransitionEvent = WebKitTransitionEvent { unWebKitTransitionEvent :: JSVal }
-
-instance Eq (WebKitTransitionEvent) where
-  (WebKitTransitionEvent a) == (WebKitTransitionEvent b) = js_eq a b
-
-instance PToJSVal WebKitTransitionEvent where
-  pToJSVal = unWebKitTransitionEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WebKitTransitionEvent where
-  pFromJSVal = WebKitTransitionEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WebKitTransitionEvent where
-  toJSVal = return . unWebKitTransitionEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WebKitTransitionEvent where
-  fromJSVal = return . fmap WebKitTransitionEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsEvent WebKitTransitionEvent
-instance IsGObject WebKitTransitionEvent where
-  typeGType _ = gTypeWebKitTransitionEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebKitTransitionEvent\"]" gTypeWebKitTransitionEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WebSocket".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket Mozilla WebSocket documentation>
-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 #-}
-
-instance IsEventTarget WebSocket
-instance IsGObject WebSocket where
-  typeGType _ = gTypeWebSocket
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WebSocket\"]" gTypeWebSocket :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WheelEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.MouseEvent"
---     * "GHCJS.DOM.UIEvent"
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent Mozilla WheelEvent documentation>
-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 #-}
-
-instance IsMouseEvent WheelEvent
-instance IsUIEvent WheelEvent
-instance IsEvent WheelEvent
-instance IsGObject WheelEvent where
-  typeGType _ = gTypeWheelEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WheelEvent\"]" gTypeWheelEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Window".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Window Mozilla Window documentation>
-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 #-}
-
-instance IsEventTarget Window
-instance IsGObject Window where
-  typeGType _ = gTypeWindow
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Window\"]" gTypeWindow :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WindowBase64".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64 Mozilla WindowBase64 documentation>
-newtype WindowBase64 = WindowBase64 { unWindowBase64 :: JSVal }
-
-instance Eq (WindowBase64) where
-  (WindowBase64 a) == (WindowBase64 b) = js_eq a b
-
-instance PToJSVal WindowBase64 where
-  pToJSVal = unWindowBase64
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WindowBase64 where
-  pFromJSVal = WindowBase64
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WindowBase64 where
-  toJSVal = return . unWindowBase64
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WindowBase64 where
-  fromJSVal = return . fmap WindowBase64 . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WindowBase64 where
-  typeGType _ = gTypeWindowBase64
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WindowBase64\"]" gTypeWindowBase64 :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WindowTimers".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers Mozilla WindowTimers documentation>
-newtype WindowTimers = WindowTimers { unWindowTimers :: JSVal }
-
-instance Eq (WindowTimers) where
-  (WindowTimers a) == (WindowTimers b) = js_eq a b
-
-instance PToJSVal WindowTimers where
-  pToJSVal = unWindowTimers
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal WindowTimers where
-  pFromJSVal = WindowTimers
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal WindowTimers where
-  toJSVal = return . unWindowTimers
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal WindowTimers where
-  fromJSVal = return . fmap WindowTimers . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsGObject WindowTimers where
-  typeGType _ = gTypeWindowTimers
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WindowTimers\"]" gTypeWindowTimers :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.Worker".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/Worker Mozilla Worker documentation>
-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 #-}
-
-instance IsEventTarget Worker
-instance IsGObject Worker where
-  typeGType _ = gTypeWorker
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"Worker\"]" gTypeWorker :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WorkerGlobalScope".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope Mozilla WorkerGlobalScope documentation>
-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 #-}
-
-class IsEventTarget o => IsWorkerGlobalScope o
-toWorkerGlobalScope :: IsWorkerGlobalScope o => o -> WorkerGlobalScope
-toWorkerGlobalScope = WorkerGlobalScope . coerce
-
-instance IsWorkerGlobalScope WorkerGlobalScope
-instance IsEventTarget WorkerGlobalScope
-instance IsGObject WorkerGlobalScope where
-  typeGType _ = gTypeWorkerGlobalScope
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WorkerGlobalScope\"]" gTypeWorkerGlobalScope :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WorkerLocation".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation Mozilla WorkerLocation documentation>
-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 #-}
-
-instance IsGObject WorkerLocation where
-  typeGType _ = gTypeWorkerLocation
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WorkerLocation\"]" gTypeWorkerLocation :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.WorkerNavigator".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator Mozilla WorkerNavigator documentation>
-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 #-}
-
-instance IsGObject WorkerNavigator where
-  typeGType _ = gTypeWorkerNavigator
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"WorkerNavigator\"]" gTypeWorkerNavigator :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.XMLHttpRequest".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest Mozilla XMLHttpRequest documentation>
-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 #-}
-
-instance IsEventTarget XMLHttpRequest
-instance IsGObject XMLHttpRequest where
-  typeGType _ = gTypeXMLHttpRequest
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"XMLHttpRequest\"]" gTypeXMLHttpRequest :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.XMLHttpRequestProgressEvent".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.ProgressEvent"
---     * "GHCJS.DOM.Event"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestProgressEvent Mozilla XMLHttpRequestProgressEvent documentation>
-newtype XMLHttpRequestProgressEvent = XMLHttpRequestProgressEvent { unXMLHttpRequestProgressEvent :: JSVal }
-
-instance Eq (XMLHttpRequestProgressEvent) where
-  (XMLHttpRequestProgressEvent a) == (XMLHttpRequestProgressEvent b) = js_eq a b
-
-instance PToJSVal XMLHttpRequestProgressEvent where
-  pToJSVal = unXMLHttpRequestProgressEvent
-  {-# INLINE pToJSVal #-}
-
-instance PFromJSVal XMLHttpRequestProgressEvent where
-  pFromJSVal = XMLHttpRequestProgressEvent
-  {-# INLINE pFromJSVal #-}
-
-instance ToJSVal XMLHttpRequestProgressEvent where
-  toJSVal = return . unXMLHttpRequestProgressEvent
-  {-# INLINE toJSVal #-}
-
-instance FromJSVal XMLHttpRequestProgressEvent where
-  fromJSVal = return . fmap XMLHttpRequestProgressEvent . maybeJSNullOrUndefined
-  {-# INLINE fromJSVal #-}
-
-instance IsProgressEvent XMLHttpRequestProgressEvent
-instance IsEvent XMLHttpRequestProgressEvent
-instance IsGObject XMLHttpRequestProgressEvent where
-  typeGType _ = gTypeXMLHttpRequestProgressEvent
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"XMLHttpRequestProgressEvent\"]" gTypeXMLHttpRequestProgressEvent :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.XMLHttpRequestUpload".
--- Base interface functions are in:
---
---     * "GHCJS.DOM.EventTarget"
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestUpload Mozilla XMLHttpRequestUpload documentation>
-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 #-}
-
-instance IsEventTarget XMLHttpRequestUpload
-instance IsGObject XMLHttpRequestUpload where
-  typeGType _ = gTypeXMLHttpRequestUpload
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"XMLHttpRequestUpload\"]" gTypeXMLHttpRequestUpload :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.XMLSerializer".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/XMLSerializer Mozilla XMLSerializer documentation>
-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 #-}
-
-instance IsGObject XMLSerializer where
-  typeGType _ = gTypeXMLSerializer
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"XMLSerializer\"]" gTypeXMLSerializer :: GType
-
--- | Functions for this inteface are in "GHCJS.DOM.XPathEvaluator".
---
--- <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator Mozilla XPathEvaluator documentation>
-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 #-}
-
-instance IsGObject XPathEvaluator where
-  typeGType _ = gTypeXPathEvaluator
-  {-# INLINE typeGType #-}
-foreign import javascript unsafe "window[\"XPathEvaluator\"]" gTypeXPathEvaluator :: GType
+  -- * Optional
+  , Optional(..), maybeToOptional, toOptionalJSString
+
+  -- * DOM String
+  , DOMString(..), ToDOMString(..), FromDOMString(..), IsDOMString
+
+  -- * Object
+  , maybeJSNullOrUndefined, GType(..)
+  , GObject(..), IsGObject, toGObject, gTypeGObject, isA, objectToString
+  , castTo, unsafeCastTo, uncheckedCastTo
+  , js_eq, strictEqual
+
+  , Function(Function), unFunction, IsFunction, toFunction
+
+  -- * Callbacks
+  , AudioBufferCallback(..)
+  , DatabaseCallback(..)
+  , IntersectionObserverCallback(..)
+  , MediaQueryListListener(..)
+  , MediaStreamTrackSourcesCallback(..)
+  , NavigatorUserMediaErrorCallback(..)
+  , NavigatorUserMediaSuccessCallback(..)
+  , NotificationPermissionCallback(..)
+  , NodeFilter(..)
+  , PositionCallback(..)
+  , PositionErrorCallback(..)
+  , PerformanceObserverCallback(..)
+  , RequestAnimationFrameCallback(..)
+  , RTCPeerConnectionErrorCallback(..)
+  , RTCSessionDescriptionCallback(..)
+  , RTCStatsCallback(..)
+  , SQLStatementCallback(..)
+  , SQLStatementErrorCallback(..)
+  , SQLTransactionCallback(..)
+  , SQLTransactionErrorCallback(..)
+  , StorageErrorCallback(..)
+  , StorageQuotaCallback(..)
+  , StorageUsageCallback(..)
+  , StringCallback(..)
+  , VoidCallback(..)
+
+  -- * Custom Types
+  , DOMHighResTimeStamp
+  , PerformanceEntryList
+
+  -- * Record Type
+  , Record(Record), unRecord
+
+  -- * Dictionaries
+  , Dictionary(Dictionary), unDictionary, IsDictionary, toDictionary
+
+  -- * Mutation Callback
+  , MutationCallback(MutationCallback), unMutationCallback, IsMutationCallback, toMutationCallback
+
+  -- * Date
+  , Date(Date), unDate, IsDate, toDate, gTypeDate
+
+  -- * Arrays
+  , Array(Array), unArray, IsArray, toArray, gTypeArray
+  , ObjectArray(ObjectArray), unObjectArray, IsObjectArray, toObjectArray
+  , ArrayBuffer(ArrayBuffer), unArrayBuffer, IsArrayBuffer, toArrayBuffer, gTypeArrayBuffer
+  , ArrayBufferView(ArrayBufferView), unArrayBufferView, IsArrayBufferView, toArrayBufferView
+  , Float32Array(Float32Array), unFloat32Array, IsFloat32Array, toFloat32Array, gTypeFloat32Array
+  , Float64Array(Float64Array), unFloat64Array, IsFloat64Array, toFloat64Array, gTypeFloat64Array
+  , Uint8Array(Uint8Array), unUint8Array, IsUint8Array, toUint8Array, gTypeUint8Array
+  , Uint8ClampedArray(Uint8ClampedArray), unUint8ClampedArray, IsUint8ClampedArray, toUint8ClampedArray, gTypeUint8ClampedArray
+  , Uint16Array(Uint16Array), unUint16Array, IsUint16Array, toUint16Array, gTypeUint16Array
+  , Uint32Array(Uint32Array), unUint32Array, IsUint32Array, toUint32Array, gTypeUint32Array
+  , Int8Array(Int8Array), unInt8Array, IsInt8Array, toInt8Array, gTypeInt8Array
+  , Int16Array(Int16Array), unInt16Array, IsInt16Array, toInt16Array, gTypeInt16Array
+  , Int32Array(Int32Array), unInt32Array, IsInt32Array, toInt32Array, gTypeInt32Array
+
+  -- * Geolocation
+  , SerializedScriptValue(SerializedScriptValue), unSerializedScriptValue, IsSerializedScriptValue, toSerializedScriptValue
+
+  -- * Crypto
+  , Algorithm(Algorithm), unAlgorithm, IsAlgorithm, toAlgorithm
+  , CryptoOperationData(CryptoOperationData), unCryptoOperationData, IsCryptoOperationData, toCryptoOperationData
+
+  -- * WebGL typedefs
+  , GLenum(..), GLboolean(..), GLbitfield(..), GLbyte(..), GLshort(..), GLint(..), GLsizei(..)
+  , GLintptr(..), GLsizeiptr(..), GLubyte(..), GLushort(..), GLuint(..), GLfloat(..), GLclampf(..)
+  , GLint64, GLuint64
+
+  -- * Used for better error messages
+  , HasCallStack
+
+  -- * Interface types from IDL files
+
+-- AUTO GENERATION STARTS HERE
+  , AddEventListenerOptionsOrBool(AddEventListenerOptionsOrBool), unAddEventListenerOptionsOrBool, IsAddEventListenerOptionsOrBool, toAddEventListenerOptionsOrBool
+  , BinaryData(BinaryData), unBinaryData, IsBinaryData, toBinaryData
+  , BlobPart(BlobPart), unBlobPart, IsBlobPart
+  , BodyInit(BodyInit), unBodyInit, IsBodyInit
+  , BufferDataSource(BufferDataSource), unBufferDataSource, IsBufferDataSource, toBufferDataSource
+  , BufferSource(BufferSource), unBufferSource, IsBufferSource, toBufferSource
+  , CanvasImageSource(CanvasImageSource), unCanvasImageSource, IsCanvasImageSource, toCanvasImageSource
+  , CanvasStyle(CanvasStyle), unCanvasStyle, IsCanvasStyle
+  , CryptoKeyOrKeyPair(CryptoKeyOrKeyPair), unCryptoKeyOrKeyPair, IsCryptoKeyOrKeyPair, toCryptoKeyOrKeyPair
+  , EventListenerOptionsOrBool(EventListenerOptionsOrBool), unEventListenerOptionsOrBool, IsEventListenerOptionsOrBool, toEventListenerOptionsOrBool
+  , Float32List(Float32List), unFloat32List, IsFloat32List
+  , HTMLCollectionOrElement(HTMLCollectionOrElement), unHTMLCollectionOrElement, IsHTMLCollectionOrElement, toHTMLCollectionOrElement
+  , HTMLElementOrLong(HTMLElementOrLong), unHTMLElementOrLong, IsHTMLElementOrLong
+  , HTMLOptionElementOrGroup(HTMLOptionElementOrGroup), unHTMLOptionElementOrGroup, IsHTMLOptionElementOrGroup, toHTMLOptionElementOrGroup
+  , IDBCursorSource(IDBCursorSource), unIDBCursorSource, IsIDBCursorSource, toIDBCursorSource
+  , IDBKeyPath(IDBKeyPath), unIDBKeyPath, IsIDBKeyPath
+  , IDBRequestResult(IDBRequestResult), unIDBRequestResult, IsIDBRequestResult, toIDBRequestResult
+  , IDBRequestSource(IDBRequestSource), unIDBRequestSource, IsIDBRequestSource, toIDBRequestSource
+  , Int32List(Int32List), unInt32List, IsInt32List
+  , KeyData(KeyData), unKeyData, IsKeyData, toKeyData
+  , MediaProvider(MediaProvider), unMediaProvider, IsMediaProvider, toMediaProvider
+  , MessageEventSource(MessageEventSource), unMessageEventSource, IsMessageEventSource, toMessageEventSource
+  , NodeOrString(NodeOrString), unNodeOrString, IsNodeOrString
+  , RadioNodeListOrElement(RadioNodeListOrElement), unRadioNodeListOrElement, IsRadioNodeListOrElement, toRadioNodeListOrElement
+  , RenderingContext(RenderingContext), unRenderingContext, IsRenderingContext, toRenderingContext
+  , SQLValue(SQLValue), unSQLValue, IsSQLValue
+  , StringOrArrayBuffer(StringOrArrayBuffer), unStringOrArrayBuffer, IsStringOrArrayBuffer
+  , StringOrBinaryData(StringOrBinaryData), unStringOrBinaryData, IsStringOrBinaryData
+  , StringOrStrings(StringOrStrings), unStringOrStrings, IsStringOrStrings
+  , TexImageSource(TexImageSource), unTexImageSource, IsTexImageSource, toTexImageSource
+  , Track(Track), unTrack, IsTrack, toTrack
+  , URLSearchParamsInit(URLSearchParamsInit), unURLSearchParamsInit, IsURLSearchParamsInit
+  , XMLHttpRequestBody(XMLHttpRequestBody), unXMLHttpRequestBody, IsXMLHttpRequestBody
+
+  , ANGLEInstancedArrays(ANGLEInstancedArrays), unANGLEInstancedArrays, gTypeANGLEInstancedArrays
+  , AbstractWorker(AbstractWorker), unAbstractWorker, IsAbstractWorker, toAbstractWorker, gTypeAbstractWorker
+  , Acceleration(Acceleration), unAcceleration, gTypeAcceleration
+  , AddEventListenerOptions(AddEventListenerOptions), unAddEventListenerOptions, gTypeAddEventListenerOptions
+  , AesCbcParams(AesCbcParams), unAesCbcParams, gTypeAesCbcParams
+  , AesKeyGenParams(AesKeyGenParams), unAesKeyGenParams, gTypeAesKeyGenParams
+  , AnalyserNode(AnalyserNode), unAnalyserNode, gTypeAnalyserNode
+  , Animatable(Animatable), unAnimatable, IsAnimatable, toAnimatable, gTypeAnimatable
+  , Animation(Animation), unAnimation, gTypeAnimation
+  , AnimationEffect(AnimationEffect), unAnimationEffect, IsAnimationEffect, toAnimationEffect, gTypeAnimationEffect
+  , AnimationEvent(AnimationEvent), unAnimationEvent, gTypeAnimationEvent
+  , AnimationEventInit(AnimationEventInit), unAnimationEventInit, gTypeAnimationEventInit
+  , AnimationTimeline(AnimationTimeline), unAnimationTimeline, IsAnimationTimeline, toAnimationTimeline, gTypeAnimationTimeline
+  , ApplePayLineItem(ApplePayLineItem), unApplePayLineItem, gTypeApplePayLineItem
+  , ApplePayPayment(ApplePayPayment), unApplePayPayment, gTypeApplePayPayment
+  , ApplePayPaymentAuthorizedEvent(ApplePayPaymentAuthorizedEvent), unApplePayPaymentAuthorizedEvent, gTypeApplePayPaymentAuthorizedEvent
+  , ApplePayPaymentContact(ApplePayPaymentContact), unApplePayPaymentContact, gTypeApplePayPaymentContact
+  , ApplePayPaymentMethod(ApplePayPaymentMethod), unApplePayPaymentMethod, gTypeApplePayPaymentMethod
+  , ApplePayPaymentMethodSelectedEvent(ApplePayPaymentMethodSelectedEvent), unApplePayPaymentMethodSelectedEvent, gTypeApplePayPaymentMethodSelectedEvent
+  , ApplePayPaymentPass(ApplePayPaymentPass), unApplePayPaymentPass, gTypeApplePayPaymentPass
+  , ApplePayPaymentRequest(ApplePayPaymentRequest), unApplePayPaymentRequest, gTypeApplePayPaymentRequest
+  , ApplePayPaymentToken(ApplePayPaymentToken), unApplePayPaymentToken, gTypeApplePayPaymentToken
+  , ApplePaySession(ApplePaySession), unApplePaySession, gTypeApplePaySession
+  , ApplePayShippingContactSelectedEvent(ApplePayShippingContactSelectedEvent), unApplePayShippingContactSelectedEvent, gTypeApplePayShippingContactSelectedEvent
+  , ApplePayShippingMethod(ApplePayShippingMethod), unApplePayShippingMethod, gTypeApplePayShippingMethod
+  , ApplePayShippingMethodSelectedEvent(ApplePayShippingMethodSelectedEvent), unApplePayShippingMethodSelectedEvent, gTypeApplePayShippingMethodSelectedEvent
+  , ApplePayValidateMerchantEvent(ApplePayValidateMerchantEvent), unApplePayValidateMerchantEvent, gTypeApplePayValidateMerchantEvent
+  , ApplicationCache(ApplicationCache), unApplicationCache, gTypeApplicationCache
+  , AssignedNodesOptions(AssignedNodesOptions), unAssignedNodesOptions, gTypeAssignedNodesOptions
+  , Attr(Attr), unAttr, gTypeAttr
+  , AudioBuffer(AudioBuffer), unAudioBuffer, gTypeAudioBuffer
+  , AudioBufferSourceNode(AudioBufferSourceNode), unAudioBufferSourceNode, gTypeAudioBufferSourceNode
+  , AudioContext(AudioContext), unAudioContext, IsAudioContext, toAudioContext, gTypeAudioContext
+  , AudioDestinationNode(AudioDestinationNode), unAudioDestinationNode, gTypeAudioDestinationNode
+  , AudioListener(AudioListener), unAudioListener, gTypeAudioListener
+  , AudioNode(AudioNode), unAudioNode, IsAudioNode, toAudioNode, gTypeAudioNode
+  , AudioParam(AudioParam), unAudioParam, gTypeAudioParam
+  , AudioProcessingEvent(AudioProcessingEvent), unAudioProcessingEvent, gTypeAudioProcessingEvent
+  , AudioTrack(AudioTrack), unAudioTrack, gTypeAudioTrack
+  , AudioTrackList(AudioTrackList), unAudioTrackList, gTypeAudioTrackList
+  , AutocompleteErrorEvent(AutocompleteErrorEvent), unAutocompleteErrorEvent, gTypeAutocompleteErrorEvent
+  , AutocompleteErrorEventInit(AutocompleteErrorEventInit), unAutocompleteErrorEventInit, gTypeAutocompleteErrorEventInit
+  , BarProp(BarProp), unBarProp, gTypeBarProp
+  , BeforeLoadEvent(BeforeLoadEvent), unBeforeLoadEvent, gTypeBeforeLoadEvent
+  , BeforeLoadEventInit(BeforeLoadEventInit), unBeforeLoadEventInit, gTypeBeforeLoadEventInit
+  , BeforeUnloadEvent(BeforeUnloadEvent), unBeforeUnloadEvent, gTypeBeforeUnloadEvent
+  , BiquadFilterNode(BiquadFilterNode), unBiquadFilterNode, gTypeBiquadFilterNode
+  , Blob(Blob), unBlob, IsBlob, toBlob, gTypeBlob
+  , BlobPropertyBag(BlobPropertyBag), unBlobPropertyBag, IsBlobPropertyBag, toBlobPropertyBag, gTypeBlobPropertyBag
+  , Body(Body), unBody, IsBody, toBody, gTypeBody
+  , ByteLengthQueuingStrategy(ByteLengthQueuingStrategy), unByteLengthQueuingStrategy, gTypeByteLengthQueuingStrategy
+  , CDATASection(CDATASection), unCDATASection, gTypeCDATASection
+  , CSS(CSS), unCSS, gTypeCSS
+  , CSSFontFaceLoadEvent(CSSFontFaceLoadEvent), unCSSFontFaceLoadEvent, gTypeCSSFontFaceLoadEvent
+  , CSSFontFaceLoadEventInit(CSSFontFaceLoadEventInit), unCSSFontFaceLoadEventInit, gTypeCSSFontFaceLoadEventInit
+  , CSSFontFaceRule(CSSFontFaceRule), unCSSFontFaceRule, gTypeCSSFontFaceRule
+  , CSSImportRule(CSSImportRule), unCSSImportRule, gTypeCSSImportRule
+  , CSSKeyframeRule(CSSKeyframeRule), unCSSKeyframeRule, gTypeCSSKeyframeRule
+  , CSSKeyframesRule(CSSKeyframesRule), unCSSKeyframesRule, gTypeCSSKeyframesRule
+  , CSSMediaRule(CSSMediaRule), unCSSMediaRule, gTypeCSSMediaRule
+  , CSSNamespaceRule(CSSNamespaceRule), unCSSNamespaceRule, gTypeCSSNamespaceRule
+  , CSSPageRule(CSSPageRule), unCSSPageRule, gTypeCSSPageRule
+  , CSSPrimitiveValue(CSSPrimitiveValue), unCSSPrimitiveValue, gTypeCSSPrimitiveValue
+  , CSSRule(CSSRule), unCSSRule, IsCSSRule, toCSSRule, gTypeCSSRule
+  , CSSRuleList(CSSRuleList), unCSSRuleList, gTypeCSSRuleList
+  , CSSStyleDeclaration(CSSStyleDeclaration), unCSSStyleDeclaration, gTypeCSSStyleDeclaration
+  , CSSStyleRule(CSSStyleRule), unCSSStyleRule, gTypeCSSStyleRule
+  , CSSStyleSheet(CSSStyleSheet), unCSSStyleSheet, gTypeCSSStyleSheet
+  , CSSSupportsRule(CSSSupportsRule), unCSSSupportsRule, gTypeCSSSupportsRule
+  , CSSUnknownRule(CSSUnknownRule), unCSSUnknownRule, gTypeCSSUnknownRule
+  , CSSValue(CSSValue), unCSSValue, IsCSSValue, toCSSValue, gTypeCSSValue
+  , CSSValueList(CSSValueList), unCSSValueList, gTypeCSSValueList
+  , CanvasGradient(CanvasGradient), unCanvasGradient, gTypeCanvasGradient
+  , CanvasPath(CanvasPath), unCanvasPath, IsCanvasPath, toCanvasPath, gTypeCanvasPath
+  , CanvasPattern(CanvasPattern), unCanvasPattern, gTypeCanvasPattern
+  , CanvasProxy(CanvasProxy), unCanvasProxy, gTypeCanvasProxy
+  , CanvasRenderingContext2D(CanvasRenderingContext2D), unCanvasRenderingContext2D, gTypeCanvasRenderingContext2D
+  , ChannelMergerNode(ChannelMergerNode), unChannelMergerNode, gTypeChannelMergerNode
+  , ChannelSplitterNode(ChannelSplitterNode), unChannelSplitterNode, gTypeChannelSplitterNode
+  , CharacterData(CharacterData), unCharacterData, IsCharacterData, toCharacterData, gTypeCharacterData
+  , ChildNode(ChildNode), unChildNode, IsChildNode, toChildNode, gTypeChildNode
+  , ClientRect(ClientRect), unClientRect, gTypeClientRect
+  , ClientRectList(ClientRectList), unClientRectList, gTypeClientRectList
+  , ClipboardEvent(ClipboardEvent), unClipboardEvent, gTypeClipboardEvent
+  , ClipboardEventInit(ClipboardEventInit), unClipboardEventInit, gTypeClipboardEventInit
+  , CloseEvent(CloseEvent), unCloseEvent, gTypeCloseEvent
+  , CloseEventInit(CloseEventInit), unCloseEventInit, gTypeCloseEventInit
+  , CommandLineAPIHost(CommandLineAPIHost), unCommandLineAPIHost, gTypeCommandLineAPIHost
+  , Comment(Comment), unComment, gTypeComment
+  , CompositionEvent(CompositionEvent), unCompositionEvent, gTypeCompositionEvent
+  , CompositionEventInit(CompositionEventInit), unCompositionEventInit, gTypeCompositionEventInit
+  , ConstrainBooleanParameters(ConstrainBooleanParameters), unConstrainBooleanParameters, gTypeConstrainBooleanParameters
+  , ConstrainDOMStringParameters(ConstrainDOMStringParameters), unConstrainDOMStringParameters, gTypeConstrainDOMStringParameters
+  , ConstrainDoubleRange(ConstrainDoubleRange), unConstrainDoubleRange, gTypeConstrainDoubleRange
+  , ConstrainLongRange(ConstrainLongRange), unConstrainLongRange, gTypeConstrainLongRange
+  , ConvolverNode(ConvolverNode), unConvolverNode, gTypeConvolverNode
+  , Coordinates(Coordinates), unCoordinates, gTypeCoordinates
+  , CountQueuingStrategy(CountQueuingStrategy), unCountQueuingStrategy, gTypeCountQueuingStrategy
+  , Counter(Counter), unCounter, gTypeCounter
+  , Crypto(Crypto), unCrypto, gTypeCrypto
+  , CryptoAlgorithmParameters(CryptoAlgorithmParameters), unCryptoAlgorithmParameters, IsCryptoAlgorithmParameters, toCryptoAlgorithmParameters, gTypeCryptoAlgorithmParameters
+  , CryptoKey(CryptoKey), unCryptoKey, gTypeCryptoKey
+  , CryptoKeyPair(CryptoKeyPair), unCryptoKeyPair, gTypeCryptoKeyPair
+  , CustomElementRegistry(CustomElementRegistry), unCustomElementRegistry, gTypeCustomElementRegistry
+  , CustomEvent(CustomEvent), unCustomEvent, gTypeCustomEvent
+  , CustomEventInit(CustomEventInit), unCustomEventInit, gTypeCustomEventInit
+  , DOMError(DOMError), unDOMError, IsDOMError, toDOMError, gTypeDOMError
+  , DOMException(DOMException), unDOMException, gTypeDOMException
+  , DOMImplementation(DOMImplementation), unDOMImplementation, gTypeDOMImplementation
+  , DOMNamedFlowCollection(DOMNamedFlowCollection), unDOMNamedFlowCollection, gTypeDOMNamedFlowCollection
+  , DOMParser(DOMParser), unDOMParser, gTypeDOMParser
+  , DOMPoint(DOMPoint), unDOMPoint, gTypeDOMPoint
+  , DOMPointInit(DOMPointInit), unDOMPointInit, gTypeDOMPointInit
+  , DOMPointReadOnly(DOMPointReadOnly), unDOMPointReadOnly, IsDOMPointReadOnly, toDOMPointReadOnly, gTypeDOMPointReadOnly
+  , DOMRect(DOMRect), unDOMRect, gTypeDOMRect
+  , DOMRectInit(DOMRectInit), unDOMRectInit, gTypeDOMRectInit
+  , DOMRectReadOnly(DOMRectReadOnly), unDOMRectReadOnly, IsDOMRectReadOnly, toDOMRectReadOnly, gTypeDOMRectReadOnly
+  , DOMStringList(DOMStringList), unDOMStringList, gTypeDOMStringList
+  , DOMStringMap(DOMStringMap), unDOMStringMap, gTypeDOMStringMap
+  , DOMTokenList(DOMTokenList), unDOMTokenList, gTypeDOMTokenList
+  , DataCue(DataCue), unDataCue, gTypeDataCue
+  , DataTransfer(DataTransfer), unDataTransfer, gTypeDataTransfer
+  , DataTransferItem(DataTransferItem), unDataTransferItem, gTypeDataTransferItem
+  , DataTransferItemList(DataTransferItemList), unDataTransferItemList, gTypeDataTransferItemList
+  , Database(Database), unDatabase, gTypeDatabase
+  , DedicatedWorkerGlobalScope(DedicatedWorkerGlobalScope), unDedicatedWorkerGlobalScope, gTypeDedicatedWorkerGlobalScope
+  , DelayNode(DelayNode), unDelayNode, gTypeDelayNode
+  , DeviceMotionEvent(DeviceMotionEvent), unDeviceMotionEvent, gTypeDeviceMotionEvent
+  , DeviceOrientationEvent(DeviceOrientationEvent), unDeviceOrientationEvent, gTypeDeviceOrientationEvent
+  , DeviceProximityEvent(DeviceProximityEvent), unDeviceProximityEvent, gTypeDeviceProximityEvent
+  , DeviceProximityEventInit(DeviceProximityEventInit), unDeviceProximityEventInit, gTypeDeviceProximityEventInit
+  , Document(Document), unDocument, IsDocument, toDocument, gTypeDocument
+  , DocumentFragment(DocumentFragment), unDocumentFragment, IsDocumentFragment, toDocumentFragment, gTypeDocumentFragment
+  , DocumentOrShadowRoot(DocumentOrShadowRoot), unDocumentOrShadowRoot, IsDocumentOrShadowRoot, toDocumentOrShadowRoot, gTypeDocumentOrShadowRoot
+  , DocumentTimeline(DocumentTimeline), unDocumentTimeline, gTypeDocumentTimeline
+  , DocumentType(DocumentType), unDocumentType, gTypeDocumentType
+  , DoubleRange(DoubleRange), unDoubleRange, IsDoubleRange, toDoubleRange, gTypeDoubleRange
+  , DynamicsCompressorNode(DynamicsCompressorNode), unDynamicsCompressorNode, gTypeDynamicsCompressorNode
+  , EXTBlendMinMax(EXTBlendMinMax), unEXTBlendMinMax, gTypeEXTBlendMinMax
+  , EXTFragDepth(EXTFragDepth), unEXTFragDepth, gTypeEXTFragDepth
+  , EXTShaderTextureLOD(EXTShaderTextureLOD), unEXTShaderTextureLOD, gTypeEXTShaderTextureLOD
+  , EXTTextureFilterAnisotropic(EXTTextureFilterAnisotropic), unEXTTextureFilterAnisotropic, gTypeEXTTextureFilterAnisotropic
+  , EXTsRGB(EXTsRGB), unEXTsRGB, gTypeEXTsRGB
+  , Element(Element), unElement, IsElement, toElement, gTypeElement
+  , ErrorEvent(ErrorEvent), unErrorEvent, gTypeErrorEvent
+  , ErrorEventInit(ErrorEventInit), unErrorEventInit, gTypeErrorEventInit
+  , Event(Event), unEvent, IsEvent, toEvent, gTypeEvent
+  , EventInit(EventInit), unEventInit, IsEventInit, toEventInit, gTypeEventInit
+  , EventListener(EventListener), unEventListener, gTypeEventListener
+  , EventListenerOptions(EventListenerOptions), unEventListenerOptions, IsEventListenerOptions, toEventListenerOptions, gTypeEventListenerOptions
+  , EventModifierInit(EventModifierInit), unEventModifierInit, IsEventModifierInit, toEventModifierInit, gTypeEventModifierInit
+  , EventSource(EventSource), unEventSource, gTypeEventSource
+  , EventSourceInit(EventSourceInit), unEventSourceInit, gTypeEventSourceInit
+  , EventTarget(EventTarget), unEventTarget, IsEventTarget, toEventTarget, gTypeEventTarget
+  , File(File), unFile, gTypeFile
+  , FileError(FileError), unFileError, gTypeFileError
+  , FileException(FileException), unFileException, gTypeFileException
+  , FileList(FileList), unFileList, gTypeFileList
+  , FilePropertyBag(FilePropertyBag), unFilePropertyBag, gTypeFilePropertyBag
+  , FileReader(FileReader), unFileReader, gTypeFileReader
+  , FileReaderSync(FileReaderSync), unFileReaderSync, gTypeFileReaderSync
+  , FocusEvent(FocusEvent), unFocusEvent, gTypeFocusEvent
+  , FocusEventInit(FocusEventInit), unFocusEventInit, gTypeFocusEventInit
+  , FontFace(FontFace), unFontFace, gTypeFontFace
+  , FontFaceDescriptors(FontFaceDescriptors), unFontFaceDescriptors, gTypeFontFaceDescriptors
+  , FontFaceSet(FontFaceSet), unFontFaceSet, gTypeFontFaceSet
+  , FormData(FormData), unFormData, gTypeFormData
+  , GainNode(GainNode), unGainNode, gTypeGainNode
+  , Gamepad(Gamepad), unGamepad, gTypeGamepad
+  , GamepadButton(GamepadButton), unGamepadButton, gTypeGamepadButton
+  , GamepadEvent(GamepadEvent), unGamepadEvent, gTypeGamepadEvent
+  , GamepadEventInit(GamepadEventInit), unGamepadEventInit, gTypeGamepadEventInit
+  , Geolocation(Geolocation), unGeolocation, gTypeGeolocation
+  , Geoposition(Geoposition), unGeoposition, gTypeGeoposition
+  , GetRootNodeOptions(GetRootNodeOptions), unGetRootNodeOptions, gTypeGetRootNodeOptions
+  , GlobalCrypto(GlobalCrypto), unGlobalCrypto, IsGlobalCrypto, toGlobalCrypto, gTypeGlobalCrypto
+  , GlobalEventHandlers(GlobalEventHandlers), unGlobalEventHandlers, IsGlobalEventHandlers, toGlobalEventHandlers, gTypeGlobalEventHandlers
+  , GlobalPerformance(GlobalPerformance), unGlobalPerformance, IsGlobalPerformance, toGlobalPerformance, gTypeGlobalPerformance
+  , HTMLAllCollection(HTMLAllCollection), unHTMLAllCollection, gTypeHTMLAllCollection
+  , HTMLAnchorElement(HTMLAnchorElement), unHTMLAnchorElement, gTypeHTMLAnchorElement
+  , HTMLAppletElement(HTMLAppletElement), unHTMLAppletElement, gTypeHTMLAppletElement
+  , HTMLAreaElement(HTMLAreaElement), unHTMLAreaElement, gTypeHTMLAreaElement
+  , HTMLAttachmentElement(HTMLAttachmentElement), unHTMLAttachmentElement, gTypeHTMLAttachmentElement
+  , HTMLAudioElement(HTMLAudioElement), unHTMLAudioElement, gTypeHTMLAudioElement
+  , HTMLBRElement(HTMLBRElement), unHTMLBRElement, gTypeHTMLBRElement
+  , HTMLBaseElement(HTMLBaseElement), unHTMLBaseElement, gTypeHTMLBaseElement
+  , HTMLBodyElement(HTMLBodyElement), unHTMLBodyElement, gTypeHTMLBodyElement
+  , HTMLButtonElement(HTMLButtonElement), unHTMLButtonElement, gTypeHTMLButtonElement
+  , HTMLCanvasElement(HTMLCanvasElement), unHTMLCanvasElement, gTypeHTMLCanvasElement
+  , HTMLCollection(HTMLCollection), unHTMLCollection, IsHTMLCollection, toHTMLCollection, gTypeHTMLCollection
+  , HTMLDListElement(HTMLDListElement), unHTMLDListElement, gTypeHTMLDListElement
+  , HTMLDataElement(HTMLDataElement), unHTMLDataElement, gTypeHTMLDataElement
+  , HTMLDataListElement(HTMLDataListElement), unHTMLDataListElement, gTypeHTMLDataListElement
+  , HTMLDetailsElement(HTMLDetailsElement), unHTMLDetailsElement, gTypeHTMLDetailsElement
+  , HTMLDirectoryElement(HTMLDirectoryElement), unHTMLDirectoryElement, gTypeHTMLDirectoryElement
+  , HTMLDivElement(HTMLDivElement), unHTMLDivElement, gTypeHTMLDivElement
+  , HTMLDocument(HTMLDocument), unHTMLDocument, gTypeHTMLDocument
+  , HTMLElement(HTMLElement), unHTMLElement, IsHTMLElement, toHTMLElement, gTypeHTMLElement
+  , HTMLEmbedElement(HTMLEmbedElement), unHTMLEmbedElement, gTypeHTMLEmbedElement
+  , HTMLFieldSetElement(HTMLFieldSetElement), unHTMLFieldSetElement, gTypeHTMLFieldSetElement
+  , HTMLFontElement(HTMLFontElement), unHTMLFontElement, gTypeHTMLFontElement
+  , HTMLFormControlsCollection(HTMLFormControlsCollection), unHTMLFormControlsCollection, gTypeHTMLFormControlsCollection
+  , HTMLFormElement(HTMLFormElement), unHTMLFormElement, gTypeHTMLFormElement
+  , HTMLFrameElement(HTMLFrameElement), unHTMLFrameElement, gTypeHTMLFrameElement
+  , HTMLFrameSetElement(HTMLFrameSetElement), unHTMLFrameSetElement, gTypeHTMLFrameSetElement
+  , HTMLHRElement(HTMLHRElement), unHTMLHRElement, gTypeHTMLHRElement
+  , HTMLHeadElement(HTMLHeadElement), unHTMLHeadElement, gTypeHTMLHeadElement
+  , HTMLHeadingElement(HTMLHeadingElement), unHTMLHeadingElement, gTypeHTMLHeadingElement
+  , HTMLHtmlElement(HTMLHtmlElement), unHTMLHtmlElement, gTypeHTMLHtmlElement
+  , HTMLHyperlinkElementUtils(HTMLHyperlinkElementUtils), unHTMLHyperlinkElementUtils, IsHTMLHyperlinkElementUtils, toHTMLHyperlinkElementUtils, gTypeHTMLHyperlinkElementUtils
+  , HTMLIFrameElement(HTMLIFrameElement), unHTMLIFrameElement, gTypeHTMLIFrameElement
+  , HTMLImageElement(HTMLImageElement), unHTMLImageElement, gTypeHTMLImageElement
+  , HTMLInputElement(HTMLInputElement), unHTMLInputElement, gTypeHTMLInputElement
+  , HTMLKeygenElement(HTMLKeygenElement), unHTMLKeygenElement, gTypeHTMLKeygenElement
+  , HTMLLIElement(HTMLLIElement), unHTMLLIElement, gTypeHTMLLIElement
+  , HTMLLabelElement(HTMLLabelElement), unHTMLLabelElement, gTypeHTMLLabelElement
+  , HTMLLegendElement(HTMLLegendElement), unHTMLLegendElement, gTypeHTMLLegendElement
+  , HTMLLinkElement(HTMLLinkElement), unHTMLLinkElement, gTypeHTMLLinkElement
+  , HTMLMapElement(HTMLMapElement), unHTMLMapElement, gTypeHTMLMapElement
+  , HTMLMarqueeElement(HTMLMarqueeElement), unHTMLMarqueeElement, gTypeHTMLMarqueeElement
+  , HTMLMediaElement(HTMLMediaElement), unHTMLMediaElement, IsHTMLMediaElement, toHTMLMediaElement, gTypeHTMLMediaElement
+  , HTMLMenuElement(HTMLMenuElement), unHTMLMenuElement, gTypeHTMLMenuElement
+  , HTMLMetaElement(HTMLMetaElement), unHTMLMetaElement, gTypeHTMLMetaElement
+  , HTMLMeterElement(HTMLMeterElement), unHTMLMeterElement, gTypeHTMLMeterElement
+  , HTMLModElement(HTMLModElement), unHTMLModElement, gTypeHTMLModElement
+  , HTMLOListElement(HTMLOListElement), unHTMLOListElement, gTypeHTMLOListElement
+  , HTMLObjectElement(HTMLObjectElement), unHTMLObjectElement, gTypeHTMLObjectElement
+  , HTMLOptGroupElement(HTMLOptGroupElement), unHTMLOptGroupElement, gTypeHTMLOptGroupElement
+  , HTMLOptionElement(HTMLOptionElement), unHTMLOptionElement, gTypeHTMLOptionElement
+  , HTMLOptionsCollection(HTMLOptionsCollection), unHTMLOptionsCollection, gTypeHTMLOptionsCollection
+  , HTMLOutputElement(HTMLOutputElement), unHTMLOutputElement, gTypeHTMLOutputElement
+  , HTMLParagraphElement(HTMLParagraphElement), unHTMLParagraphElement, gTypeHTMLParagraphElement
+  , HTMLParamElement(HTMLParamElement), unHTMLParamElement, gTypeHTMLParamElement
+  , HTMLPictureElement(HTMLPictureElement), unHTMLPictureElement, gTypeHTMLPictureElement
+  , HTMLPreElement(HTMLPreElement), unHTMLPreElement, gTypeHTMLPreElement
+  , HTMLProgressElement(HTMLProgressElement), unHTMLProgressElement, gTypeHTMLProgressElement
+  , HTMLQuoteElement(HTMLQuoteElement), unHTMLQuoteElement, gTypeHTMLQuoteElement
+  , HTMLScriptElement(HTMLScriptElement), unHTMLScriptElement, gTypeHTMLScriptElement
+  , HTMLSelectElement(HTMLSelectElement), unHTMLSelectElement, gTypeHTMLSelectElement
+  , HTMLSlotElement(HTMLSlotElement), unHTMLSlotElement, gTypeHTMLSlotElement
+  , HTMLSourceElement(HTMLSourceElement), unHTMLSourceElement, gTypeHTMLSourceElement
+  , HTMLSpanElement(HTMLSpanElement), unHTMLSpanElement, gTypeHTMLSpanElement
+  , HTMLStyleElement(HTMLStyleElement), unHTMLStyleElement, gTypeHTMLStyleElement
+  , HTMLTableCaptionElement(HTMLTableCaptionElement), unHTMLTableCaptionElement, gTypeHTMLTableCaptionElement
+  , HTMLTableCellElement(HTMLTableCellElement), unHTMLTableCellElement, gTypeHTMLTableCellElement
+  , HTMLTableColElement(HTMLTableColElement), unHTMLTableColElement, gTypeHTMLTableColElement
+  , HTMLTableElement(HTMLTableElement), unHTMLTableElement, gTypeHTMLTableElement
+  , HTMLTableRowElement(HTMLTableRowElement), unHTMLTableRowElement, gTypeHTMLTableRowElement
+  , HTMLTableSectionElement(HTMLTableSectionElement), unHTMLTableSectionElement, gTypeHTMLTableSectionElement
+  , HTMLTemplateElement(HTMLTemplateElement), unHTMLTemplateElement, gTypeHTMLTemplateElement
+  , HTMLTextAreaElement(HTMLTextAreaElement), unHTMLTextAreaElement, gTypeHTMLTextAreaElement
+  , HTMLTimeElement(HTMLTimeElement), unHTMLTimeElement, gTypeHTMLTimeElement
+  , HTMLTitleElement(HTMLTitleElement), unHTMLTitleElement, gTypeHTMLTitleElement
+  , HTMLTrackElement(HTMLTrackElement), unHTMLTrackElement, gTypeHTMLTrackElement
+  , HTMLUListElement(HTMLUListElement), unHTMLUListElement, gTypeHTMLUListElement
+  , HTMLUnknownElement(HTMLUnknownElement), unHTMLUnknownElement, gTypeHTMLUnknownElement
+  , HTMLVideoElement(HTMLVideoElement), unHTMLVideoElement, gTypeHTMLVideoElement
+  , HashChangeEvent(HashChangeEvent), unHashChangeEvent, gTypeHashChangeEvent
+  , HashChangeEventInit(HashChangeEventInit), unHashChangeEventInit, gTypeHashChangeEventInit
+  , Headers(Headers), unHeaders, gTypeHeaders
+  , History(History), unHistory, gTypeHistory
+  , HmacKeyParams(HmacKeyParams), unHmacKeyParams, gTypeHmacKeyParams
+  , IDBCursor(IDBCursor), unIDBCursor, IsIDBCursor, toIDBCursor, gTypeIDBCursor
+  , IDBCursorWithValue(IDBCursorWithValue), unIDBCursorWithValue, gTypeIDBCursorWithValue
+  , IDBDatabase(IDBDatabase), unIDBDatabase, gTypeIDBDatabase
+  , IDBFactory(IDBFactory), unIDBFactory, gTypeIDBFactory
+  , IDBIndex(IDBIndex), unIDBIndex, gTypeIDBIndex
+  , IDBIndexParameters(IDBIndexParameters), unIDBIndexParameters, gTypeIDBIndexParameters
+  , IDBKeyRange(IDBKeyRange), unIDBKeyRange, gTypeIDBKeyRange
+  , IDBObjectStore(IDBObjectStore), unIDBObjectStore, gTypeIDBObjectStore
+  , IDBObjectStoreParameters(IDBObjectStoreParameters), unIDBObjectStoreParameters, gTypeIDBObjectStoreParameters
+  , IDBOpenDBRequest(IDBOpenDBRequest), unIDBOpenDBRequest, gTypeIDBOpenDBRequest
+  , IDBRequest(IDBRequest), unIDBRequest, IsIDBRequest, toIDBRequest, gTypeIDBRequest
+  , IDBTransaction(IDBTransaction), unIDBTransaction, gTypeIDBTransaction
+  , IDBVersionChangeEvent(IDBVersionChangeEvent), unIDBVersionChangeEvent, gTypeIDBVersionChangeEvent
+  , IDBVersionChangeEventInit(IDBVersionChangeEventInit), unIDBVersionChangeEventInit, gTypeIDBVersionChangeEventInit
+  , ImageData(ImageData), unImageData, gTypeImageData
+  , InputEvent(InputEvent), unInputEvent, gTypeInputEvent
+  , InputEventInit(InputEventInit), unInputEventInit, gTypeInputEventInit
+  , InspectorFrontendHost(InspectorFrontendHost), unInspectorFrontendHost, gTypeInspectorFrontendHost
+  , IntersectionObserver(IntersectionObserver), unIntersectionObserver, gTypeIntersectionObserver
+  , IntersectionObserverEntry(IntersectionObserverEntry), unIntersectionObserverEntry, gTypeIntersectionObserverEntry
+  , IntersectionObserverEntryInit(IntersectionObserverEntryInit), unIntersectionObserverEntryInit, gTypeIntersectionObserverEntryInit
+  , IntersectionObserverInit(IntersectionObserverInit), unIntersectionObserverInit, gTypeIntersectionObserverInit
+  , JsonWebKey(JsonWebKey), unJsonWebKey, gTypeJsonWebKey
+  , KeyboardEvent(KeyboardEvent), unKeyboardEvent, gTypeKeyboardEvent
+  , KeyboardEventInit(KeyboardEventInit), unKeyboardEventInit, gTypeKeyboardEventInit
+  , KeyframeEffect(KeyframeEffect), unKeyframeEffect, gTypeKeyframeEffect
+  , Location(Location), unLocation, gTypeLocation
+  , LongRange(LongRange), unLongRange, IsLongRange, toLongRange, gTypeLongRange
+  , MediaController(MediaController), unMediaController, gTypeMediaController
+  , MediaControlsHost(MediaControlsHost), unMediaControlsHost, gTypeMediaControlsHost
+  , MediaDeviceInfo(MediaDeviceInfo), unMediaDeviceInfo, gTypeMediaDeviceInfo
+  , MediaDevices(MediaDevices), unMediaDevices, gTypeMediaDevices
+  , MediaElementAudioSourceNode(MediaElementAudioSourceNode), unMediaElementAudioSourceNode, gTypeMediaElementAudioSourceNode
+  , MediaEncryptedEvent(MediaEncryptedEvent), unMediaEncryptedEvent, gTypeMediaEncryptedEvent
+  , MediaEncryptedEventInit(MediaEncryptedEventInit), unMediaEncryptedEventInit, gTypeMediaEncryptedEventInit
+  , MediaError(MediaError), unMediaError, gTypeMediaError
+  , MediaKeyMessageEvent(MediaKeyMessageEvent), unMediaKeyMessageEvent, gTypeMediaKeyMessageEvent
+  , MediaKeyMessageEventInit(MediaKeyMessageEventInit), unMediaKeyMessageEventInit, gTypeMediaKeyMessageEventInit
+  , MediaKeySession(MediaKeySession), unMediaKeySession, gTypeMediaKeySession
+  , MediaKeyStatusMap(MediaKeyStatusMap), unMediaKeyStatusMap, gTypeMediaKeyStatusMap
+  , MediaKeySystemAccess(MediaKeySystemAccess), unMediaKeySystemAccess, gTypeMediaKeySystemAccess
+  , MediaKeySystemConfiguration(MediaKeySystemConfiguration), unMediaKeySystemConfiguration, gTypeMediaKeySystemConfiguration
+  , MediaKeySystemMediaCapability(MediaKeySystemMediaCapability), unMediaKeySystemMediaCapability, gTypeMediaKeySystemMediaCapability
+  , MediaKeys(MediaKeys), unMediaKeys, gTypeMediaKeys
+  , MediaList(MediaList), unMediaList, gTypeMediaList
+  , MediaMetadata(MediaMetadata), unMediaMetadata, gTypeMediaMetadata
+  , MediaQueryList(MediaQueryList), unMediaQueryList, gTypeMediaQueryList
+  , MediaRemoteControls(MediaRemoteControls), unMediaRemoteControls, gTypeMediaRemoteControls
+  , MediaSession(MediaSession), unMediaSession, gTypeMediaSession
+  , MediaSource(MediaSource), unMediaSource, gTypeMediaSource
+  , MediaStream(MediaStream), unMediaStream, gTypeMediaStream
+  , MediaStreamAudioDestinationNode(MediaStreamAudioDestinationNode), unMediaStreamAudioDestinationNode, gTypeMediaStreamAudioDestinationNode
+  , MediaStreamAudioSourceNode(MediaStreamAudioSourceNode), unMediaStreamAudioSourceNode, gTypeMediaStreamAudioSourceNode
+  , MediaStreamConstraints(MediaStreamConstraints), unMediaStreamConstraints, gTypeMediaStreamConstraints
+  , MediaStreamEvent(MediaStreamEvent), unMediaStreamEvent, gTypeMediaStreamEvent
+  , MediaStreamEventInit(MediaStreamEventInit), unMediaStreamEventInit, gTypeMediaStreamEventInit
+  , MediaStreamTrack(MediaStreamTrack), unMediaStreamTrack, gTypeMediaStreamTrack
+  , MediaStreamTrackEvent(MediaStreamTrackEvent), unMediaStreamTrackEvent, gTypeMediaStreamTrackEvent
+  , MediaStreamTrackEventInit(MediaStreamTrackEventInit), unMediaStreamTrackEventInit, gTypeMediaStreamTrackEventInit
+  , MediaTrackCapabilities(MediaTrackCapabilities), unMediaTrackCapabilities, gTypeMediaTrackCapabilities
+  , MediaTrackConstraintSet(MediaTrackConstraintSet), unMediaTrackConstraintSet, IsMediaTrackConstraintSet, toMediaTrackConstraintSet, gTypeMediaTrackConstraintSet
+  , MediaTrackConstraints(MediaTrackConstraints), unMediaTrackConstraints, gTypeMediaTrackConstraints
+  , MediaTrackSettings(MediaTrackSettings), unMediaTrackSettings, gTypeMediaTrackSettings
+  , MediaTrackSupportedConstraints(MediaTrackSupportedConstraints), unMediaTrackSupportedConstraints, gTypeMediaTrackSupportedConstraints
+  , MessageChannel(MessageChannel), unMessageChannel, gTypeMessageChannel
+  , MessageEvent(MessageEvent), unMessageEvent, gTypeMessageEvent
+  , MessageEventInit(MessageEventInit), unMessageEventInit, gTypeMessageEventInit
+  , MessagePort(MessagePort), unMessagePort, gTypeMessagePort
+  , MimeType(MimeType), unMimeType, gTypeMimeType
+  , MimeTypeArray(MimeTypeArray), unMimeTypeArray, gTypeMimeTypeArray
+  , MouseEvent(MouseEvent), unMouseEvent, IsMouseEvent, toMouseEvent, gTypeMouseEvent
+  , MouseEventInit(MouseEventInit), unMouseEventInit, IsMouseEventInit, toMouseEventInit, gTypeMouseEventInit
+  , MutationEvent(MutationEvent), unMutationEvent, gTypeMutationEvent
+  , MutationObserver(MutationObserver), unMutationObserver, gTypeMutationObserver
+  , MutationObserverInit(MutationObserverInit), unMutationObserverInit, gTypeMutationObserverInit
+  , MutationRecord(MutationRecord), unMutationRecord, gTypeMutationRecord
+  , NamedNodeMap(NamedNodeMap), unNamedNodeMap, gTypeNamedNodeMap
+  , Navigator(Navigator), unNavigator, gTypeNavigator
+  , NavigatorConcurrentHardware(NavigatorConcurrentHardware), unNavigatorConcurrentHardware, IsNavigatorConcurrentHardware, toNavigatorConcurrentHardware, gTypeNavigatorConcurrentHardware
+  , NavigatorID(NavigatorID), unNavigatorID, IsNavigatorID, toNavigatorID, gTypeNavigatorID
+  , NavigatorLanguage(NavigatorLanguage), unNavigatorLanguage, IsNavigatorLanguage, toNavigatorLanguage, gTypeNavigatorLanguage
+  , NavigatorOnLine(NavigatorOnLine), unNavigatorOnLine, IsNavigatorOnLine, toNavigatorOnLine, gTypeNavigatorOnLine
+  , NavigatorUserMediaError(NavigatorUserMediaError), unNavigatorUserMediaError, gTypeNavigatorUserMediaError
+  , Node(Node), unNode, IsNode, toNode, gTypeNode
+  , NodeIterator(NodeIterator), unNodeIterator, gTypeNodeIterator
+  , NodeList(NodeList), unNodeList, IsNodeList, toNodeList, gTypeNodeList
+  , NonDocumentTypeChildNode(NonDocumentTypeChildNode), unNonDocumentTypeChildNode, IsNonDocumentTypeChildNode, toNonDocumentTypeChildNode, gTypeNonDocumentTypeChildNode
+  , NonElementParentNode(NonElementParentNode), unNonElementParentNode, IsNonElementParentNode, toNonElementParentNode, gTypeNonElementParentNode
+  , Notification(Notification), unNotification, gTypeNotification
+  , NotificationCenter(NotificationCenter), unNotificationCenter, gTypeNotificationCenter
+  , NotificationOptions(NotificationOptions), unNotificationOptions, gTypeNotificationOptions
+  , OESElementIndexUint(OESElementIndexUint), unOESElementIndexUint, gTypeOESElementIndexUint
+  , OESStandardDerivatives(OESStandardDerivatives), unOESStandardDerivatives, gTypeOESStandardDerivatives
+  , OESTextureFloat(OESTextureFloat), unOESTextureFloat, gTypeOESTextureFloat
+  , OESTextureFloatLinear(OESTextureFloatLinear), unOESTextureFloatLinear, gTypeOESTextureFloatLinear
+  , OESTextureHalfFloat(OESTextureHalfFloat), unOESTextureHalfFloat, gTypeOESTextureHalfFloat
+  , OESTextureHalfFloatLinear(OESTextureHalfFloatLinear), unOESTextureHalfFloatLinear, gTypeOESTextureHalfFloatLinear
+  , OESVertexArrayObject(OESVertexArrayObject), unOESVertexArrayObject, gTypeOESVertexArrayObject
+  , OfflineAudioCompletionEvent(OfflineAudioCompletionEvent), unOfflineAudioCompletionEvent, gTypeOfflineAudioCompletionEvent
+  , OfflineAudioContext(OfflineAudioContext), unOfflineAudioContext, gTypeOfflineAudioContext
+  , OscillatorNode(OscillatorNode), unOscillatorNode, gTypeOscillatorNode
+  , OverconstrainedError(OverconstrainedError), unOverconstrainedError, gTypeOverconstrainedError
+  , OverconstrainedErrorEvent(OverconstrainedErrorEvent), unOverconstrainedErrorEvent, gTypeOverconstrainedErrorEvent
+  , OverconstrainedErrorEventInit(OverconstrainedErrorEventInit), unOverconstrainedErrorEventInit, gTypeOverconstrainedErrorEventInit
+  , OverflowEvent(OverflowEvent), unOverflowEvent, gTypeOverflowEvent
+  , OverflowEventInit(OverflowEventInit), unOverflowEventInit, gTypeOverflowEventInit
+  , PageTransitionEvent(PageTransitionEvent), unPageTransitionEvent, gTypePageTransitionEvent
+  , PageTransitionEventInit(PageTransitionEventInit), unPageTransitionEventInit, gTypePageTransitionEventInit
+  , PannerNode(PannerNode), unPannerNode, gTypePannerNode
+  , ParentNode(ParentNode), unParentNode, IsParentNode, toParentNode, gTypeParentNode
+  , Path2D(Path2D), unPath2D, gTypePath2D
+  , Performance(Performance), unPerformance, gTypePerformance
+  , PerformanceEntry(PerformanceEntry), unPerformanceEntry, IsPerformanceEntry, toPerformanceEntry, gTypePerformanceEntry
+  , PerformanceMark(PerformanceMark), unPerformanceMark, gTypePerformanceMark
+  , PerformanceMeasure(PerformanceMeasure), unPerformanceMeasure, gTypePerformanceMeasure
+  , PerformanceNavigation(PerformanceNavigation), unPerformanceNavigation, gTypePerformanceNavigation
+  , PerformanceObserver(PerformanceObserver), unPerformanceObserver, gTypePerformanceObserver
+  , PerformanceObserverEntryList(PerformanceObserverEntryList), unPerformanceObserverEntryList, gTypePerformanceObserverEntryList
+  , PerformanceObserverInit(PerformanceObserverInit), unPerformanceObserverInit, gTypePerformanceObserverInit
+  , PerformanceResourceTiming(PerformanceResourceTiming), unPerformanceResourceTiming, gTypePerformanceResourceTiming
+  , PerformanceTiming(PerformanceTiming), unPerformanceTiming, gTypePerformanceTiming
+  , PeriodicWave(PeriodicWave), unPeriodicWave, gTypePeriodicWave
+  , Plugin(Plugin), unPlugin, gTypePlugin
+  , PluginArray(PluginArray), unPluginArray, gTypePluginArray
+  , PopStateEvent(PopStateEvent), unPopStateEvent, gTypePopStateEvent
+  , PopStateEventInit(PopStateEventInit), unPopStateEventInit, gTypePopStateEventInit
+  , PositionError(PositionError), unPositionError, gTypePositionError
+  , PositionOptions(PositionOptions), unPositionOptions, gTypePositionOptions
+  , ProcessingInstruction(ProcessingInstruction), unProcessingInstruction, gTypeProcessingInstruction
+  , ProgressEvent(ProgressEvent), unProgressEvent, IsProgressEvent, toProgressEvent, gTypeProgressEvent
+  , ProgressEventInit(ProgressEventInit), unProgressEventInit, gTypeProgressEventInit
+  , QuickTimePluginReplacement(QuickTimePluginReplacement), unQuickTimePluginReplacement, gTypeQuickTimePluginReplacement
+  , RGBColor(RGBColor), unRGBColor, gTypeRGBColor
+  , RTCAnswerOptions(RTCAnswerOptions), unRTCAnswerOptions, gTypeRTCAnswerOptions
+  , RTCConfiguration(RTCConfiguration), unRTCConfiguration, gTypeRTCConfiguration
+  , RTCDTMFSender(RTCDTMFSender), unRTCDTMFSender, gTypeRTCDTMFSender
+  , RTCDTMFToneChangeEvent(RTCDTMFToneChangeEvent), unRTCDTMFToneChangeEvent, gTypeRTCDTMFToneChangeEvent
+  , RTCDTMFToneChangeEventInit(RTCDTMFToneChangeEventInit), unRTCDTMFToneChangeEventInit, gTypeRTCDTMFToneChangeEventInit
+  , RTCDataChannel(RTCDataChannel), unRTCDataChannel, gTypeRTCDataChannel
+  , RTCDataChannelEvent(RTCDataChannelEvent), unRTCDataChannelEvent, gTypeRTCDataChannelEvent
+  , RTCDataChannelInit(RTCDataChannelInit), unRTCDataChannelInit, gTypeRTCDataChannelInit
+  , RTCIceCandidate(RTCIceCandidate), unRTCIceCandidate, gTypeRTCIceCandidate
+  , RTCIceCandidateEvent(RTCIceCandidateEvent), unRTCIceCandidateEvent, gTypeRTCIceCandidateEvent
+  , RTCIceCandidateInit(RTCIceCandidateInit), unRTCIceCandidateInit, gTypeRTCIceCandidateInit
+  , RTCIceServer(RTCIceServer), unRTCIceServer, gTypeRTCIceServer
+  , RTCOfferAnswerOptions(RTCOfferAnswerOptions), unRTCOfferAnswerOptions, IsRTCOfferAnswerOptions, toRTCOfferAnswerOptions, gTypeRTCOfferAnswerOptions
+  , RTCOfferOptions(RTCOfferOptions), unRTCOfferOptions, gTypeRTCOfferOptions
+  , RTCPeerConnection(RTCPeerConnection), unRTCPeerConnection, gTypeRTCPeerConnection
+  , RTCRtpReceiver(RTCRtpReceiver), unRTCRtpReceiver, gTypeRTCRtpReceiver
+  , RTCRtpSender(RTCRtpSender), unRTCRtpSender, gTypeRTCRtpSender
+  , RTCRtpTransceiver(RTCRtpTransceiver), unRTCRtpTransceiver, gTypeRTCRtpTransceiver
+  , RTCRtpTransceiverInit(RTCRtpTransceiverInit), unRTCRtpTransceiverInit, gTypeRTCRtpTransceiverInit
+  , RTCSessionDescription(RTCSessionDescription), unRTCSessionDescription, gTypeRTCSessionDescription
+  , RTCSessionDescriptionInit(RTCSessionDescriptionInit), unRTCSessionDescriptionInit, gTypeRTCSessionDescriptionInit
+  , RTCStatsReport(RTCStatsReport), unRTCStatsReport, gTypeRTCStatsReport
+  , RTCTrackEvent(RTCTrackEvent), unRTCTrackEvent, gTypeRTCTrackEvent
+  , RTCTrackEventInit(RTCTrackEventInit), unRTCTrackEventInit, gTypeRTCTrackEventInit
+  , RadioNodeList(RadioNodeList), unRadioNodeList, gTypeRadioNodeList
+  , Range(Range), unRange, gTypeRange
+  , ReadableByteStreamController(ReadableByteStreamController), unReadableByteStreamController, gTypeReadableByteStreamController
+  , ReadableStream(ReadableStream), unReadableStream, gTypeReadableStream
+  , ReadableStreamDefaultController(ReadableStreamDefaultController), unReadableStreamDefaultController, gTypeReadableStreamDefaultController
+  , ReadableStreamDefaultReader(ReadableStreamDefaultReader), unReadableStreamDefaultReader, gTypeReadableStreamDefaultReader
+  , ReadableStreamSource(ReadableStreamSource), unReadableStreamSource, gTypeReadableStreamSource
+  , Rect(Rect), unRect, gTypeRect
+  , Request(Request), unRequest, gTypeRequest
+  , RequestInit(RequestInit), unRequestInit, gTypeRequestInit
+  , Response(Response), unResponse, gTypeResponse
+  , RotationRate(RotationRate), unRotationRate, gTypeRotationRate
+  , RsaHashedImportParams(RsaHashedImportParams), unRsaHashedImportParams, gTypeRsaHashedImportParams
+  , RsaHashedKeyGenParams(RsaHashedKeyGenParams), unRsaHashedKeyGenParams, gTypeRsaHashedKeyGenParams
+  , RsaKeyGenParams(RsaKeyGenParams), unRsaKeyGenParams, IsRsaKeyGenParams, toRsaKeyGenParams, gTypeRsaKeyGenParams
+  , RsaOaepParams(RsaOaepParams), unRsaOaepParams, gTypeRsaOaepParams
+  , RsaOtherPrimesInfo(RsaOtherPrimesInfo), unRsaOtherPrimesInfo, gTypeRsaOtherPrimesInfo
+  , SQLError(SQLError), unSQLError, gTypeSQLError
+  , SQLException(SQLException), unSQLException, gTypeSQLException
+  , SQLResultSet(SQLResultSet), unSQLResultSet, gTypeSQLResultSet
+  , SQLResultSetRowList(SQLResultSetRowList), unSQLResultSetRowList, gTypeSQLResultSetRowList
+  , SQLTransaction(SQLTransaction), unSQLTransaction, gTypeSQLTransaction
+  , SVGAElement(SVGAElement), unSVGAElement, gTypeSVGAElement
+  , SVGAltGlyphDefElement(SVGAltGlyphDefElement), unSVGAltGlyphDefElement, gTypeSVGAltGlyphDefElement
+  , SVGAltGlyphElement(SVGAltGlyphElement), unSVGAltGlyphElement, gTypeSVGAltGlyphElement
+  , SVGAltGlyphItemElement(SVGAltGlyphItemElement), unSVGAltGlyphItemElement, gTypeSVGAltGlyphItemElement
+  , SVGAngle(SVGAngle), unSVGAngle, gTypeSVGAngle
+  , SVGAnimateColorElement(SVGAnimateColorElement), unSVGAnimateColorElement, gTypeSVGAnimateColorElement
+  , SVGAnimateElement(SVGAnimateElement), unSVGAnimateElement, gTypeSVGAnimateElement
+  , SVGAnimateMotionElement(SVGAnimateMotionElement), unSVGAnimateMotionElement, gTypeSVGAnimateMotionElement
+  , SVGAnimateTransformElement(SVGAnimateTransformElement), unSVGAnimateTransformElement, gTypeSVGAnimateTransformElement
+  , SVGAnimatedAngle(SVGAnimatedAngle), unSVGAnimatedAngle, gTypeSVGAnimatedAngle
+  , SVGAnimatedBoolean(SVGAnimatedBoolean), unSVGAnimatedBoolean, gTypeSVGAnimatedBoolean
+  , SVGAnimatedEnumeration(SVGAnimatedEnumeration), unSVGAnimatedEnumeration, gTypeSVGAnimatedEnumeration
+  , SVGAnimatedInteger(SVGAnimatedInteger), unSVGAnimatedInteger, gTypeSVGAnimatedInteger
+  , SVGAnimatedLength(SVGAnimatedLength), unSVGAnimatedLength, gTypeSVGAnimatedLength
+  , SVGAnimatedLengthList(SVGAnimatedLengthList), unSVGAnimatedLengthList, gTypeSVGAnimatedLengthList
+  , SVGAnimatedNumber(SVGAnimatedNumber), unSVGAnimatedNumber, gTypeSVGAnimatedNumber
+  , SVGAnimatedNumberList(SVGAnimatedNumberList), unSVGAnimatedNumberList, gTypeSVGAnimatedNumberList
+  , SVGAnimatedPreserveAspectRatio(SVGAnimatedPreserveAspectRatio), unSVGAnimatedPreserveAspectRatio, gTypeSVGAnimatedPreserveAspectRatio
+  , SVGAnimatedRect(SVGAnimatedRect), unSVGAnimatedRect, gTypeSVGAnimatedRect
+  , SVGAnimatedString(SVGAnimatedString), unSVGAnimatedString, gTypeSVGAnimatedString
+  , SVGAnimatedTransformList(SVGAnimatedTransformList), unSVGAnimatedTransformList, gTypeSVGAnimatedTransformList
+  , SVGAnimationElement(SVGAnimationElement), unSVGAnimationElement, IsSVGAnimationElement, toSVGAnimationElement, gTypeSVGAnimationElement
+  , SVGCircleElement(SVGCircleElement), unSVGCircleElement, gTypeSVGCircleElement
+  , SVGClipPathElement(SVGClipPathElement), unSVGClipPathElement, gTypeSVGClipPathElement
+  , SVGComponentTransferFunctionElement(SVGComponentTransferFunctionElement), unSVGComponentTransferFunctionElement, IsSVGComponentTransferFunctionElement, toSVGComponentTransferFunctionElement, gTypeSVGComponentTransferFunctionElement
+  , SVGCursorElement(SVGCursorElement), unSVGCursorElement, gTypeSVGCursorElement
+  , SVGDefsElement(SVGDefsElement), unSVGDefsElement, gTypeSVGDefsElement
+  , SVGDescElement(SVGDescElement), unSVGDescElement, gTypeSVGDescElement
+  , SVGElement(SVGElement), unSVGElement, IsSVGElement, toSVGElement, gTypeSVGElement
+  , SVGEllipseElement(SVGEllipseElement), unSVGEllipseElement, gTypeSVGEllipseElement
+  , SVGException(SVGException), unSVGException, gTypeSVGException
+  , SVGExternalResourcesRequired(SVGExternalResourcesRequired), unSVGExternalResourcesRequired, IsSVGExternalResourcesRequired, toSVGExternalResourcesRequired, gTypeSVGExternalResourcesRequired
+  , SVGFEBlendElement(SVGFEBlendElement), unSVGFEBlendElement, gTypeSVGFEBlendElement
+  , SVGFEColorMatrixElement(SVGFEColorMatrixElement), unSVGFEColorMatrixElement, gTypeSVGFEColorMatrixElement
+  , SVGFEComponentTransferElement(SVGFEComponentTransferElement), unSVGFEComponentTransferElement, gTypeSVGFEComponentTransferElement
+  , SVGFECompositeElement(SVGFECompositeElement), unSVGFECompositeElement, gTypeSVGFECompositeElement
+  , SVGFEConvolveMatrixElement(SVGFEConvolveMatrixElement), unSVGFEConvolveMatrixElement, gTypeSVGFEConvolveMatrixElement
+  , SVGFEDiffuseLightingElement(SVGFEDiffuseLightingElement), unSVGFEDiffuseLightingElement, gTypeSVGFEDiffuseLightingElement
+  , SVGFEDisplacementMapElement(SVGFEDisplacementMapElement), unSVGFEDisplacementMapElement, gTypeSVGFEDisplacementMapElement
+  , SVGFEDistantLightElement(SVGFEDistantLightElement), unSVGFEDistantLightElement, gTypeSVGFEDistantLightElement
+  , SVGFEDropShadowElement(SVGFEDropShadowElement), unSVGFEDropShadowElement, gTypeSVGFEDropShadowElement
+  , SVGFEFloodElement(SVGFEFloodElement), unSVGFEFloodElement, gTypeSVGFEFloodElement
+  , SVGFEFuncAElement(SVGFEFuncAElement), unSVGFEFuncAElement, gTypeSVGFEFuncAElement
+  , SVGFEFuncBElement(SVGFEFuncBElement), unSVGFEFuncBElement, gTypeSVGFEFuncBElement
+  , SVGFEFuncGElement(SVGFEFuncGElement), unSVGFEFuncGElement, gTypeSVGFEFuncGElement
+  , SVGFEFuncRElement(SVGFEFuncRElement), unSVGFEFuncRElement, gTypeSVGFEFuncRElement
+  , SVGFEGaussianBlurElement(SVGFEGaussianBlurElement), unSVGFEGaussianBlurElement, gTypeSVGFEGaussianBlurElement
+  , SVGFEImageElement(SVGFEImageElement), unSVGFEImageElement, gTypeSVGFEImageElement
+  , SVGFEMergeElement(SVGFEMergeElement), unSVGFEMergeElement, gTypeSVGFEMergeElement
+  , SVGFEMergeNodeElement(SVGFEMergeNodeElement), unSVGFEMergeNodeElement, gTypeSVGFEMergeNodeElement
+  , SVGFEMorphologyElement(SVGFEMorphologyElement), unSVGFEMorphologyElement, gTypeSVGFEMorphologyElement
+  , SVGFEOffsetElement(SVGFEOffsetElement), unSVGFEOffsetElement, gTypeSVGFEOffsetElement
+  , SVGFEPointLightElement(SVGFEPointLightElement), unSVGFEPointLightElement, gTypeSVGFEPointLightElement
+  , SVGFESpecularLightingElement(SVGFESpecularLightingElement), unSVGFESpecularLightingElement, gTypeSVGFESpecularLightingElement
+  , SVGFESpotLightElement(SVGFESpotLightElement), unSVGFESpotLightElement, gTypeSVGFESpotLightElement
+  , SVGFETileElement(SVGFETileElement), unSVGFETileElement, gTypeSVGFETileElement
+  , SVGFETurbulenceElement(SVGFETurbulenceElement), unSVGFETurbulenceElement, gTypeSVGFETurbulenceElement
+  , SVGFilterElement(SVGFilterElement), unSVGFilterElement, gTypeSVGFilterElement
+  , SVGFilterPrimitiveStandardAttributes(SVGFilterPrimitiveStandardAttributes), unSVGFilterPrimitiveStandardAttributes, IsSVGFilterPrimitiveStandardAttributes, toSVGFilterPrimitiveStandardAttributes, gTypeSVGFilterPrimitiveStandardAttributes
+  , SVGFitToViewBox(SVGFitToViewBox), unSVGFitToViewBox, IsSVGFitToViewBox, toSVGFitToViewBox, gTypeSVGFitToViewBox
+  , SVGFontElement(SVGFontElement), unSVGFontElement, gTypeSVGFontElement
+  , SVGFontFaceElement(SVGFontFaceElement), unSVGFontFaceElement, gTypeSVGFontFaceElement
+  , SVGFontFaceFormatElement(SVGFontFaceFormatElement), unSVGFontFaceFormatElement, gTypeSVGFontFaceFormatElement
+  , SVGFontFaceNameElement(SVGFontFaceNameElement), unSVGFontFaceNameElement, gTypeSVGFontFaceNameElement
+  , SVGFontFaceSrcElement(SVGFontFaceSrcElement), unSVGFontFaceSrcElement, gTypeSVGFontFaceSrcElement
+  , SVGFontFaceUriElement(SVGFontFaceUriElement), unSVGFontFaceUriElement, gTypeSVGFontFaceUriElement
+  , SVGForeignObjectElement(SVGForeignObjectElement), unSVGForeignObjectElement, gTypeSVGForeignObjectElement
+  , SVGGElement(SVGGElement), unSVGGElement, gTypeSVGGElement
+  , SVGGlyphElement(SVGGlyphElement), unSVGGlyphElement, gTypeSVGGlyphElement
+  , SVGGlyphRefElement(SVGGlyphRefElement), unSVGGlyphRefElement, gTypeSVGGlyphRefElement
+  , SVGGradientElement(SVGGradientElement), unSVGGradientElement, IsSVGGradientElement, toSVGGradientElement, gTypeSVGGradientElement
+  , SVGGraphicsElement(SVGGraphicsElement), unSVGGraphicsElement, IsSVGGraphicsElement, toSVGGraphicsElement, gTypeSVGGraphicsElement
+  , SVGHKernElement(SVGHKernElement), unSVGHKernElement, gTypeSVGHKernElement
+  , SVGImageElement(SVGImageElement), unSVGImageElement, gTypeSVGImageElement
+  , SVGLength(SVGLength), unSVGLength, gTypeSVGLength
+  , SVGLengthList(SVGLengthList), unSVGLengthList, gTypeSVGLengthList
+  , SVGLineElement(SVGLineElement), unSVGLineElement, gTypeSVGLineElement
+  , SVGLinearGradientElement(SVGLinearGradientElement), unSVGLinearGradientElement, gTypeSVGLinearGradientElement
+  , SVGMPathElement(SVGMPathElement), unSVGMPathElement, gTypeSVGMPathElement
+  , SVGMarkerElement(SVGMarkerElement), unSVGMarkerElement, gTypeSVGMarkerElement
+  , SVGMaskElement(SVGMaskElement), unSVGMaskElement, gTypeSVGMaskElement
+  , SVGMatrix(SVGMatrix), unSVGMatrix, gTypeSVGMatrix
+  , SVGMetadataElement(SVGMetadataElement), unSVGMetadataElement, gTypeSVGMetadataElement
+  , SVGMissingGlyphElement(SVGMissingGlyphElement), unSVGMissingGlyphElement, gTypeSVGMissingGlyphElement
+  , SVGNumber(SVGNumber), unSVGNumber, gTypeSVGNumber
+  , SVGNumberList(SVGNumberList), unSVGNumberList, gTypeSVGNumberList
+  , SVGPathElement(SVGPathElement), unSVGPathElement, gTypeSVGPathElement
+  , SVGPathSeg(SVGPathSeg), unSVGPathSeg, IsSVGPathSeg, toSVGPathSeg, gTypeSVGPathSeg
+  , SVGPathSegArcAbs(SVGPathSegArcAbs), unSVGPathSegArcAbs, gTypeSVGPathSegArcAbs
+  , SVGPathSegArcRel(SVGPathSegArcRel), unSVGPathSegArcRel, gTypeSVGPathSegArcRel
+  , SVGPathSegClosePath(SVGPathSegClosePath), unSVGPathSegClosePath, gTypeSVGPathSegClosePath
+  , SVGPathSegCurvetoCubicAbs(SVGPathSegCurvetoCubicAbs), unSVGPathSegCurvetoCubicAbs, gTypeSVGPathSegCurvetoCubicAbs
+  , SVGPathSegCurvetoCubicRel(SVGPathSegCurvetoCubicRel), unSVGPathSegCurvetoCubicRel, gTypeSVGPathSegCurvetoCubicRel
+  , SVGPathSegCurvetoCubicSmoothAbs(SVGPathSegCurvetoCubicSmoothAbs), unSVGPathSegCurvetoCubicSmoothAbs, gTypeSVGPathSegCurvetoCubicSmoothAbs
+  , SVGPathSegCurvetoCubicSmoothRel(SVGPathSegCurvetoCubicSmoothRel), unSVGPathSegCurvetoCubicSmoothRel, gTypeSVGPathSegCurvetoCubicSmoothRel
+  , SVGPathSegCurvetoQuadraticAbs(SVGPathSegCurvetoQuadraticAbs), unSVGPathSegCurvetoQuadraticAbs, gTypeSVGPathSegCurvetoQuadraticAbs
+  , SVGPathSegCurvetoQuadraticRel(SVGPathSegCurvetoQuadraticRel), unSVGPathSegCurvetoQuadraticRel, gTypeSVGPathSegCurvetoQuadraticRel
+  , SVGPathSegCurvetoQuadraticSmoothAbs(SVGPathSegCurvetoQuadraticSmoothAbs), unSVGPathSegCurvetoQuadraticSmoothAbs, gTypeSVGPathSegCurvetoQuadraticSmoothAbs
+  , SVGPathSegCurvetoQuadraticSmoothRel(SVGPathSegCurvetoQuadraticSmoothRel), unSVGPathSegCurvetoQuadraticSmoothRel, gTypeSVGPathSegCurvetoQuadraticSmoothRel
+  , SVGPathSegLinetoAbs(SVGPathSegLinetoAbs), unSVGPathSegLinetoAbs, gTypeSVGPathSegLinetoAbs
+  , SVGPathSegLinetoHorizontalAbs(SVGPathSegLinetoHorizontalAbs), unSVGPathSegLinetoHorizontalAbs, gTypeSVGPathSegLinetoHorizontalAbs
+  , SVGPathSegLinetoHorizontalRel(SVGPathSegLinetoHorizontalRel), unSVGPathSegLinetoHorizontalRel, gTypeSVGPathSegLinetoHorizontalRel
+  , SVGPathSegLinetoRel(SVGPathSegLinetoRel), unSVGPathSegLinetoRel, gTypeSVGPathSegLinetoRel
+  , SVGPathSegLinetoVerticalAbs(SVGPathSegLinetoVerticalAbs), unSVGPathSegLinetoVerticalAbs, gTypeSVGPathSegLinetoVerticalAbs
+  , SVGPathSegLinetoVerticalRel(SVGPathSegLinetoVerticalRel), unSVGPathSegLinetoVerticalRel, gTypeSVGPathSegLinetoVerticalRel
+  , SVGPathSegList(SVGPathSegList), unSVGPathSegList, gTypeSVGPathSegList
+  , SVGPathSegMovetoAbs(SVGPathSegMovetoAbs), unSVGPathSegMovetoAbs, gTypeSVGPathSegMovetoAbs
+  , SVGPathSegMovetoRel(SVGPathSegMovetoRel), unSVGPathSegMovetoRel, gTypeSVGPathSegMovetoRel
+  , SVGPatternElement(SVGPatternElement), unSVGPatternElement, gTypeSVGPatternElement
+  , SVGPoint(SVGPoint), unSVGPoint, gTypeSVGPoint
+  , SVGPointList(SVGPointList), unSVGPointList, gTypeSVGPointList
+  , SVGPolygonElement(SVGPolygonElement), unSVGPolygonElement, gTypeSVGPolygonElement
+  , SVGPolylineElement(SVGPolylineElement), unSVGPolylineElement, gTypeSVGPolylineElement
+  , SVGPreserveAspectRatio(SVGPreserveAspectRatio), unSVGPreserveAspectRatio, gTypeSVGPreserveAspectRatio
+  , SVGRadialGradientElement(SVGRadialGradientElement), unSVGRadialGradientElement, gTypeSVGRadialGradientElement
+  , SVGRect(SVGRect), unSVGRect, gTypeSVGRect
+  , SVGRectElement(SVGRectElement), unSVGRectElement, gTypeSVGRectElement
+  , SVGRenderingIntent(SVGRenderingIntent), unSVGRenderingIntent, gTypeSVGRenderingIntent
+  , SVGSVGElement(SVGSVGElement), unSVGSVGElement, gTypeSVGSVGElement
+  , SVGScriptElement(SVGScriptElement), unSVGScriptElement, gTypeSVGScriptElement
+  , SVGSetElement(SVGSetElement), unSVGSetElement, gTypeSVGSetElement
+  , SVGStopElement(SVGStopElement), unSVGStopElement, gTypeSVGStopElement
+  , SVGStringList(SVGStringList), unSVGStringList, gTypeSVGStringList
+  , SVGStyleElement(SVGStyleElement), unSVGStyleElement, gTypeSVGStyleElement
+  , SVGSwitchElement(SVGSwitchElement), unSVGSwitchElement, gTypeSVGSwitchElement
+  , SVGSymbolElement(SVGSymbolElement), unSVGSymbolElement, gTypeSVGSymbolElement
+  , SVGTRefElement(SVGTRefElement), unSVGTRefElement, gTypeSVGTRefElement
+  , SVGTSpanElement(SVGTSpanElement), unSVGTSpanElement, gTypeSVGTSpanElement
+  , SVGTests(SVGTests), unSVGTests, IsSVGTests, toSVGTests, gTypeSVGTests
+  , SVGTextContentElement(SVGTextContentElement), unSVGTextContentElement, IsSVGTextContentElement, toSVGTextContentElement, gTypeSVGTextContentElement
+  , SVGTextElement(SVGTextElement), unSVGTextElement, gTypeSVGTextElement
+  , SVGTextPathElement(SVGTextPathElement), unSVGTextPathElement, gTypeSVGTextPathElement
+  , SVGTextPositioningElement(SVGTextPositioningElement), unSVGTextPositioningElement, IsSVGTextPositioningElement, toSVGTextPositioningElement, gTypeSVGTextPositioningElement
+  , SVGTitleElement(SVGTitleElement), unSVGTitleElement, gTypeSVGTitleElement
+  , SVGTransform(SVGTransform), unSVGTransform, gTypeSVGTransform
+  , SVGTransformList(SVGTransformList), unSVGTransformList, gTypeSVGTransformList
+  , SVGURIReference(SVGURIReference), unSVGURIReference, IsSVGURIReference, toSVGURIReference, gTypeSVGURIReference
+  , SVGUnitTypes(SVGUnitTypes), unSVGUnitTypes, gTypeSVGUnitTypes
+  , SVGUseElement(SVGUseElement), unSVGUseElement, gTypeSVGUseElement
+  , SVGVKernElement(SVGVKernElement), unSVGVKernElement, gTypeSVGVKernElement
+  , SVGViewElement(SVGViewElement), unSVGViewElement, gTypeSVGViewElement
+  , SVGViewSpec(SVGViewSpec), unSVGViewSpec, gTypeSVGViewSpec
+  , SVGZoomAndPan(SVGZoomAndPan), unSVGZoomAndPan, IsSVGZoomAndPan, toSVGZoomAndPan, gTypeSVGZoomAndPan
+  , SVGZoomEvent(SVGZoomEvent), unSVGZoomEvent, gTypeSVGZoomEvent
+  , Screen(Screen), unScreen, gTypeScreen
+  , ScriptProcessorNode(ScriptProcessorNode), unScriptProcessorNode, gTypeScriptProcessorNode
+  , ScrollToOptions(ScrollToOptions), unScrollToOptions, gTypeScrollToOptions
+  , SecurityPolicyViolationEvent(SecurityPolicyViolationEvent), unSecurityPolicyViolationEvent, gTypeSecurityPolicyViolationEvent
+  , SecurityPolicyViolationEventInit(SecurityPolicyViolationEventInit), unSecurityPolicyViolationEventInit, gTypeSecurityPolicyViolationEventInit
+  , Selection(Selection), unSelection, gTypeSelection
+  , ShadowRoot(ShadowRoot), unShadowRoot, gTypeShadowRoot
+  , ShadowRootInit(ShadowRootInit), unShadowRootInit, gTypeShadowRootInit
+  , Slotable(Slotable), unSlotable, IsSlotable, toSlotable, gTypeSlotable
+  , SourceBuffer(SourceBuffer), unSourceBuffer, gTypeSourceBuffer
+  , SourceBufferList(SourceBufferList), unSourceBufferList, gTypeSourceBufferList
+  , SpeechSynthesis(SpeechSynthesis), unSpeechSynthesis, gTypeSpeechSynthesis
+  , SpeechSynthesisEvent(SpeechSynthesisEvent), unSpeechSynthesisEvent, gTypeSpeechSynthesisEvent
+  , SpeechSynthesisUtterance(SpeechSynthesisUtterance), unSpeechSynthesisUtterance, gTypeSpeechSynthesisUtterance
+  , SpeechSynthesisVoice(SpeechSynthesisVoice), unSpeechSynthesisVoice, gTypeSpeechSynthesisVoice
+  , StaticRange(StaticRange), unStaticRange, gTypeStaticRange
+  , Storage(Storage), unStorage, gTypeStorage
+  , StorageEvent(StorageEvent), unStorageEvent, gTypeStorageEvent
+  , StorageEventInit(StorageEventInit), unStorageEventInit, gTypeStorageEventInit
+  , StorageInfo(StorageInfo), unStorageInfo, gTypeStorageInfo
+  , StorageQuota(StorageQuota), unStorageQuota, gTypeStorageQuota
+  , StyleMedia(StyleMedia), unStyleMedia, gTypeStyleMedia
+  , StyleSheet(StyleSheet), unStyleSheet, IsStyleSheet, toStyleSheet, gTypeStyleSheet
+  , StyleSheetList(StyleSheetList), unStyleSheetList, gTypeStyleSheetList
+  , SubtleCrypto(SubtleCrypto), unSubtleCrypto, gTypeSubtleCrypto
+  , Text(Text), unText, IsText, toText, gTypeText
+  , TextDecodeOptions(TextDecodeOptions), unTextDecodeOptions, gTypeTextDecodeOptions
+  , TextDecoder(TextDecoder), unTextDecoder, gTypeTextDecoder
+  , TextDecoderOptions(TextDecoderOptions), unTextDecoderOptions, gTypeTextDecoderOptions
+  , TextEncoder(TextEncoder), unTextEncoder, gTypeTextEncoder
+  , TextEvent(TextEvent), unTextEvent, gTypeTextEvent
+  , TextMetrics(TextMetrics), unTextMetrics, gTypeTextMetrics
+  , TextTrack(TextTrack), unTextTrack, gTypeTextTrack
+  , TextTrackCue(TextTrackCue), unTextTrackCue, IsTextTrackCue, toTextTrackCue, gTypeTextTrackCue
+  , TextTrackCueList(TextTrackCueList), unTextTrackCueList, gTypeTextTrackCueList
+  , TextTrackList(TextTrackList), unTextTrackList, gTypeTextTrackList
+  , TimeRanges(TimeRanges), unTimeRanges, gTypeTimeRanges
+  , Touch(Touch), unTouch, gTypeTouch
+  , TouchEvent(TouchEvent), unTouchEvent, gTypeTouchEvent
+  , TouchEventInit(TouchEventInit), unTouchEventInit, gTypeTouchEventInit
+  , TouchList(TouchList), unTouchList, gTypeTouchList
+  , TrackEvent(TrackEvent), unTrackEvent, gTypeTrackEvent
+  , TrackEventInit(TrackEventInit), unTrackEventInit, gTypeTrackEventInit
+  , TransitionEvent(TransitionEvent), unTransitionEvent, gTypeTransitionEvent
+  , TransitionEventInit(TransitionEventInit), unTransitionEventInit, gTypeTransitionEventInit
+  , TreeWalker(TreeWalker), unTreeWalker, gTypeTreeWalker
+  , UIEvent(UIEvent), unUIEvent, IsUIEvent, toUIEvent, gTypeUIEvent
+  , UIEventInit(UIEventInit), unUIEventInit, IsUIEventInit, toUIEventInit, gTypeUIEventInit
+  , URL(URL), unURL, gTypeURL
+  , URLSearchParams(URLSearchParams), unURLSearchParams, gTypeURLSearchParams
+  , UserMessageHandler(UserMessageHandler), unUserMessageHandler, gTypeUserMessageHandler
+  , UserMessageHandlersNamespace(UserMessageHandlersNamespace), unUserMessageHandlersNamespace, gTypeUserMessageHandlersNamespace
+  , VTTCue(VTTCue), unVTTCue, gTypeVTTCue
+  , VTTRegion(VTTRegion), unVTTRegion, gTypeVTTRegion
+  , VTTRegionList(VTTRegionList), unVTTRegionList, gTypeVTTRegionList
+  , ValidityState(ValidityState), unValidityState, gTypeValidityState
+  , VideoPlaybackQuality(VideoPlaybackQuality), unVideoPlaybackQuality, gTypeVideoPlaybackQuality
+  , VideoTrack(VideoTrack), unVideoTrack, gTypeVideoTrack
+  , VideoTrackList(VideoTrackList), unVideoTrackList, gTypeVideoTrackList
+  , WaveShaperNode(WaveShaperNode), unWaveShaperNode, gTypeWaveShaperNode
+  , WebGL2RenderingContext(WebGL2RenderingContext), unWebGL2RenderingContext, gTypeWebGL2RenderingContext
+  , WebGLActiveInfo(WebGLActiveInfo), unWebGLActiveInfo, gTypeWebGLActiveInfo
+  , WebGLBuffer(WebGLBuffer), unWebGLBuffer, gTypeWebGLBuffer
+  , WebGLCompressedTextureATC(WebGLCompressedTextureATC), unWebGLCompressedTextureATC, gTypeWebGLCompressedTextureATC
+  , WebGLCompressedTexturePVRTC(WebGLCompressedTexturePVRTC), unWebGLCompressedTexturePVRTC, gTypeWebGLCompressedTexturePVRTC
+  , WebGLCompressedTextureS3TC(WebGLCompressedTextureS3TC), unWebGLCompressedTextureS3TC, gTypeWebGLCompressedTextureS3TC
+  , WebGLContextAttributes(WebGLContextAttributes), unWebGLContextAttributes, gTypeWebGLContextAttributes
+  , WebGLContextEvent(WebGLContextEvent), unWebGLContextEvent, gTypeWebGLContextEvent
+  , WebGLContextEventInit(WebGLContextEventInit), unWebGLContextEventInit, gTypeWebGLContextEventInit
+  , WebGLDebugRendererInfo(WebGLDebugRendererInfo), unWebGLDebugRendererInfo, gTypeWebGLDebugRendererInfo
+  , WebGLDebugShaders(WebGLDebugShaders), unWebGLDebugShaders, gTypeWebGLDebugShaders
+  , WebGLDepthTexture(WebGLDepthTexture), unWebGLDepthTexture, gTypeWebGLDepthTexture
+  , WebGLDrawBuffers(WebGLDrawBuffers), unWebGLDrawBuffers, gTypeWebGLDrawBuffers
+  , WebGLFramebuffer(WebGLFramebuffer), unWebGLFramebuffer, gTypeWebGLFramebuffer
+  , WebGLLoseContext(WebGLLoseContext), unWebGLLoseContext, gTypeWebGLLoseContext
+  , WebGLProgram(WebGLProgram), unWebGLProgram, gTypeWebGLProgram
+  , WebGLQuery(WebGLQuery), unWebGLQuery, gTypeWebGLQuery
+  , WebGLRenderbuffer(WebGLRenderbuffer), unWebGLRenderbuffer, gTypeWebGLRenderbuffer
+  , WebGLRenderingContext(WebGLRenderingContext), unWebGLRenderingContext, gTypeWebGLRenderingContext
+  , WebGLRenderingContextBase(WebGLRenderingContextBase), unWebGLRenderingContextBase, IsWebGLRenderingContextBase, toWebGLRenderingContextBase, gTypeWebGLRenderingContextBase
+  , WebGLSampler(WebGLSampler), unWebGLSampler, gTypeWebGLSampler
+  , WebGLShader(WebGLShader), unWebGLShader, gTypeWebGLShader
+  , WebGLShaderPrecisionFormat(WebGLShaderPrecisionFormat), unWebGLShaderPrecisionFormat, gTypeWebGLShaderPrecisionFormat
+  , WebGLSync(WebGLSync), unWebGLSync, gTypeWebGLSync
+  , WebGLTexture(WebGLTexture), unWebGLTexture, gTypeWebGLTexture
+  , WebGLTransformFeedback(WebGLTransformFeedback), unWebGLTransformFeedback, gTypeWebGLTransformFeedback
+  , WebGLUniformLocation(WebGLUniformLocation), unWebGLUniformLocation, gTypeWebGLUniformLocation
+  , WebGLVertexArrayObject(WebGLVertexArrayObject), unWebGLVertexArrayObject, gTypeWebGLVertexArrayObject
+  , WebGLVertexArrayObjectOES(WebGLVertexArrayObjectOES), unWebGLVertexArrayObjectOES, gTypeWebGLVertexArrayObjectOES
+  , WebKitAnimationEvent(WebKitAnimationEvent), unWebKitAnimationEvent, gTypeWebKitAnimationEvent
+  , WebKitAnimationEventInit(WebKitAnimationEventInit), unWebKitAnimationEventInit, gTypeWebKitAnimationEventInit
+  , WebKitCSSMatrix(WebKitCSSMatrix), unWebKitCSSMatrix, gTypeWebKitCSSMatrix
+  , WebKitCSSRegionRule(WebKitCSSRegionRule), unWebKitCSSRegionRule, gTypeWebKitCSSRegionRule
+  , WebKitCSSViewportRule(WebKitCSSViewportRule), unWebKitCSSViewportRule, gTypeWebKitCSSViewportRule
+  , WebKitMediaKeyError(WebKitMediaKeyError), unWebKitMediaKeyError, gTypeWebKitMediaKeyError
+  , WebKitMediaKeyMessageEvent(WebKitMediaKeyMessageEvent), unWebKitMediaKeyMessageEvent, gTypeWebKitMediaKeyMessageEvent
+  , WebKitMediaKeyMessageEventInit(WebKitMediaKeyMessageEventInit), unWebKitMediaKeyMessageEventInit, gTypeWebKitMediaKeyMessageEventInit
+  , WebKitMediaKeyNeededEvent(WebKitMediaKeyNeededEvent), unWebKitMediaKeyNeededEvent, gTypeWebKitMediaKeyNeededEvent
+  , WebKitMediaKeyNeededEventInit(WebKitMediaKeyNeededEventInit), unWebKitMediaKeyNeededEventInit, gTypeWebKitMediaKeyNeededEventInit
+  , WebKitMediaKeySession(WebKitMediaKeySession), unWebKitMediaKeySession, gTypeWebKitMediaKeySession
+  , WebKitMediaKeys(WebKitMediaKeys), unWebKitMediaKeys, gTypeWebKitMediaKeys
+  , WebKitNamedFlow(WebKitNamedFlow), unWebKitNamedFlow, gTypeWebKitNamedFlow
+  , WebKitNamespace(WebKitNamespace), unWebKitNamespace, gTypeWebKitNamespace
+  , WebKitPlaybackTargetAvailabilityEvent(WebKitPlaybackTargetAvailabilityEvent), unWebKitPlaybackTargetAvailabilityEvent, gTypeWebKitPlaybackTargetAvailabilityEvent
+  , WebKitPlaybackTargetAvailabilityEventInit(WebKitPlaybackTargetAvailabilityEventInit), unWebKitPlaybackTargetAvailabilityEventInit, gTypeWebKitPlaybackTargetAvailabilityEventInit
+  , WebKitPoint(WebKitPoint), unWebKitPoint, gTypeWebKitPoint
+  , WebKitSubtleCrypto(WebKitSubtleCrypto), unWebKitSubtleCrypto, gTypeWebKitSubtleCrypto
+  , WebKitTransitionEvent(WebKitTransitionEvent), unWebKitTransitionEvent, gTypeWebKitTransitionEvent
+  , WebKitTransitionEventInit(WebKitTransitionEventInit), unWebKitTransitionEventInit, gTypeWebKitTransitionEventInit
+  , WebSocket(WebSocket), unWebSocket, gTypeWebSocket
+  , WheelEvent(WheelEvent), unWheelEvent, gTypeWheelEvent
+  , WheelEventInit(WheelEventInit), unWheelEventInit, gTypeWheelEventInit
+  , Window(Window), unWindow, gTypeWindow
+  , WindowEventHandlers(WindowEventHandlers), unWindowEventHandlers, IsWindowEventHandlers, toWindowEventHandlers, gTypeWindowEventHandlers
+  , WindowOrWorkerGlobalScope(WindowOrWorkerGlobalScope), unWindowOrWorkerGlobalScope, IsWindowOrWorkerGlobalScope, toWindowOrWorkerGlobalScope, gTypeWindowOrWorkerGlobalScope
+  , Worker(Worker), unWorker, gTypeWorker
+  , WorkerGlobalScope(WorkerGlobalScope), unWorkerGlobalScope, IsWorkerGlobalScope, toWorkerGlobalScope, gTypeWorkerGlobalScope
+  , WorkerLocation(WorkerLocation), unWorkerLocation, gTypeWorkerLocation
+  , WorkerNavigator(WorkerNavigator), unWorkerNavigator, gTypeWorkerNavigator
+  , WritableStream(WritableStream), unWritableStream, gTypeWritableStream
+  , XMLDocument(XMLDocument), unXMLDocument, gTypeXMLDocument
+  , XMLHttpRequest(XMLHttpRequest), unXMLHttpRequest, gTypeXMLHttpRequest
+  , XMLHttpRequestEventTarget(XMLHttpRequestEventTarget), unXMLHttpRequestEventTarget, IsXMLHttpRequestEventTarget, toXMLHttpRequestEventTarget, gTypeXMLHttpRequestEventTarget
+  , XMLHttpRequestProgressEvent(XMLHttpRequestProgressEvent), unXMLHttpRequestProgressEvent, gTypeXMLHttpRequestProgressEvent
+  , XMLHttpRequestUpload(XMLHttpRequestUpload), unXMLHttpRequestUpload, gTypeXMLHttpRequestUpload
+  , XMLSerializer(XMLSerializer), unXMLSerializer, gTypeXMLSerializer
+  , XPathEvaluator(XPathEvaluator), unXPathEvaluator, gTypeXPathEvaluator
+  , XPathException(XPathException), unXPathException, gTypeXPathException
+  , XPathExpression(XPathExpression), unXPathExpression, gTypeXPathExpression
+  , XPathNSResolver(XPathNSResolver), unXPathNSResolver, gTypeXPathNSResolver
+  , XPathResult(XPathResult), unXPathResult, gTypeXPathResult
+  , XSLTProcessor(XSLTProcessor), unXSLTProcessor, 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(..), nullRef, isNull, isUndefined, JSString(..))
+import GHCJS.Marshal (ToJSVal(..), FromJSVal(..))
+import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..))
+import GHCJS.Nullable (Nullable(..), nullableToMaybe, maybeToNullable)
+import GHCJS.Foreign (jsUndefined)
+import GHCJS.Foreign.Callback.Internal (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.Exception (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 "$r = $1.name;" gTypeToString :: GType -> JSString
+
+foreign import javascript unsafe
+  "$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 $1 $2"
+    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 :: (IsGObject obj, 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 }
+
+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[\"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
+
+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
+
+type ToDOMString s = ToJSString s
+type FromDOMString s = FromJSString s
+type IsDOMString s = (ToDOMString s, FromDOMString s)
+type IsUSVString s = (ToDOMString s, FromDOMString s)
+type IsByteString s = (ToDOMString s, FromDOMString s)
+
+newtype Function = Function { unFunction :: JSVal }
+
+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)
+
+instance Show PromiseRejected where
+    show _ = "A promise was rejected"
+instance Exception PromiseRejected
+
+-- Callbacks
+newtype AudioBufferCallback = AudioBufferCallback (Callback (JSVal -> IO ()))
+instance PToJSVal AudioBufferCallback where pToJSVal (AudioBufferCallback (Callback r)) = r
+newtype DatabaseCallback = DatabaseCallback (Callback (JSVal -> IO ()))
+instance PToJSVal DatabaseCallback where pToJSVal (DatabaseCallback (Callback r)) = r
+newtype IntersectionObserverCallback = IntersectionObserverCallback (Callback (JSVal -> JSVal -> IO ()))
+instance PToJSVal IntersectionObserverCallback where pToJSVal (IntersectionObserverCallback (Callback r)) = r
+newtype MediaQueryListListener = MediaQueryListListener (Callback (JSVal -> IO ()))
+instance PToJSVal MediaQueryListListener where pToJSVal (MediaQueryListListener (Callback r)) = r
+newtype MediaStreamTrackSourcesCallback = MediaStreamTrackSourcesCallback (Callback (JSVal -> IO ()))
+instance PToJSVal MediaStreamTrackSourcesCallback where pToJSVal (MediaStreamTrackSourcesCallback (Callback r)) = r
+newtype NavigatorUserMediaErrorCallback = NavigatorUserMediaErrorCallback (Callback (JSVal -> IO ()))
+instance PToJSVal NavigatorUserMediaErrorCallback where pToJSVal (NavigatorUserMediaErrorCallback (Callback r)) = r
+newtype NavigatorUserMediaSuccessCallback = NavigatorUserMediaSuccessCallback (Callback (JSVal -> IO ()))
+instance PToJSVal NavigatorUserMediaSuccessCallback where pToJSVal (NavigatorUserMediaSuccessCallback (Callback r)) = r
+newtype NotificationPermissionCallback permissions = NotificationPermissionCallback (Callback (JSVal -> IO ()))
+instance PToJSVal (NotificationPermissionCallback permissions) where pToJSVal (NotificationPermissionCallback (Callback r)) = r
+newtype NodeFilter = NodeFilter (Callback (JSVal -> IO ()))
+instance PToJSVal NodeFilter where pToJSVal (NodeFilter (Callback r)) = r
+newtype PositionCallback = PositionCallback (Callback (JSVal -> IO ()))
+instance PToJSVal PositionCallback where pToJSVal (PositionCallback (Callback r)) = r
+newtype PositionErrorCallback = PositionErrorCallback (Callback (JSVal -> IO ()))
+instance PToJSVal PositionErrorCallback where pToJSVal (PositionErrorCallback (Callback r)) = r
+newtype PerformanceObserverCallback = PerformanceObserverCallback (Callback (JSVal -> JSVal -> IO ()))
+instance PToJSVal PerformanceObserverCallback where pToJSVal (PerformanceObserverCallback (Callback r)) =  r
+newtype RequestAnimationFrameCallback = RequestAnimationFrameCallback (Callback (JSVal -> IO ()))
+instance PToJSVal RequestAnimationFrameCallback where pToJSVal (RequestAnimationFrameCallback (Callback r)) = r
+newtype RTCPeerConnectionErrorCallback = RTCPeerConnectionErrorCallback (Callback (JSVal -> IO ()))
+instance PToJSVal RTCPeerConnectionErrorCallback where pToJSVal (RTCPeerConnectionErrorCallback (Callback r)) = r
+newtype RTCSessionDescriptionCallback = RTCSessionDescriptionCallback (Callback (JSVal -> IO ()))
+instance PToJSVal RTCSessionDescriptionCallback where pToJSVal (RTCSessionDescriptionCallback (Callback r)) = r
+newtype RTCStatsCallback = RTCStatsCallback (Callback (JSVal -> IO ()))
+instance PToJSVal RTCStatsCallback where pToJSVal (RTCStatsCallback (Callback r)) = r
+newtype SQLStatementCallback = SQLStatementCallback (Callback (JSVal -> JSVal -> IO ()))
+instance PToJSVal SQLStatementCallback where pToJSVal (SQLStatementCallback (Callback r)) = r
+newtype SQLStatementErrorCallback = SQLStatementErrorCallback (Callback (JSVal -> JSVal -> IO ()))
+instance PToJSVal SQLStatementErrorCallback where pToJSVal (SQLStatementErrorCallback (Callback r)) = r
+newtype SQLTransactionCallback = SQLTransactionCallback (Callback (JSVal -> IO ()))
+instance PToJSVal SQLTransactionCallback where pToJSVal (SQLTransactionCallback (Callback r)) = r
+newtype SQLTransactionErrorCallback = SQLTransactionErrorCallback (Callback (JSVal -> IO ()))
+instance PToJSVal SQLTransactionErrorCallback where pToJSVal (SQLTransactionErrorCallback (Callback r)) = r
+newtype StorageErrorCallback = StorageErrorCallback (Callback (JSVal -> IO ()))
+instance PToJSVal StorageErrorCallback where pToJSVal (StorageErrorCallback (Callback r)) = r
+newtype StorageQuotaCallback = StorageQuotaCallback (Callback (JSVal -> IO ()))
+instance PToJSVal StorageQuotaCallback where pToJSVal (StorageQuotaCallback (Callback r)) = r
+newtype StorageUsageCallback = StorageUsageCallback (Callback (JSVal -> JSVal -> IO ()))
+instance PToJSVal StorageUsageCallback where pToJSVal (StorageUsageCallback (Callback r)) = r
+newtype StringCallback s = StringCallback (Callback (JSVal -> IO ()))
+instance PToJSVal (StringCallback s) where pToJSVal (StringCallback (Callback r)) = r
+newtype VoidCallback = VoidCallback (Callback (IO ()))
+instance PToJSVal VoidCallback where pToJSVal (VoidCallback (Callback r)) = r
+
+-- Custom types
+type DOMHighResTimeStamp = Double
+type PerformanceEntryList = [PerformanceEntry]
+
+-- 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 #-}
+
+newtype SerializedScriptValue = SerializedScriptValue { unSerializedScriptValue :: JSVal }
+
+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 }
+
+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 MutationCallback = MutationCallback { unMutationCallback :: JSVal }
+
+instance Eq MutationCallback where
+  (MutationCallback a) == (MutationCallback b) = js_eq a b
+
+instance PToJSVal MutationCallback where
+  pToJSVal = unMutationCallback
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal MutationCallback where
+  pFromJSVal = MutationCallback
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal MutationCallback where
+  toJSVal = return . unMutationCallback
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal MutationCallback where
+  fromJSVal = return . fmap MutationCallback . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class IsGObject o => IsMutationCallback o
+toMutationCallback :: IsMutationCallback o => o -> MutationCallback
+toMutationCallback = MutationCallback . coerce
+
+instance IsMutationCallback MutationCallback
+instance IsGObject MutationCallback where
+  typeGType _ = error "Unable to get the JavaScript type of MutationCallback"
+
+newtype ArrayBuffer = ArrayBuffer { unArrayBuffer :: JSVal }
+
+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 }
+
+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 }
+
+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 }
+
+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 }
+
+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 }
+
+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 }
+
+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 }
+
+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 }
+
+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 }
+
+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 }
+
+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 }
+
+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 }
+
+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 }
+
+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
+
+newtype Algorithm = Algorithm { unAlgorithm :: JSVal }
+
+instance Eq Algorithm where
+  (Algorithm a) == (Algorithm b) = js_eq a b
+
+instance PToJSVal Algorithm where
+  pToJSVal = unAlgorithm
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal Algorithm where
+  pFromJSVal = Algorithm
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal Algorithm where
+  toJSVal = return . unAlgorithm
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal Algorithm where
+  fromJSVal = return . fmap Algorithm . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class IsGObject o => IsAlgorithm o
+toAlgorithm :: IsAlgorithm o => o -> Algorithm
+toAlgorithm = Algorithm . coerce
+
+instance IsAlgorithm Algorithm
+instance IsGObject Algorithm where
+  typeGType _ = error "Unable to get the JavaScript type of Algorithm"
+
+newtype CryptoOperationData = CryptoOperationData { unCryptoOperationData :: JSVal }
+
+instance Eq CryptoOperationData where
+  (CryptoOperationData a) == (CryptoOperationData b) = js_eq a b
+
+instance PToJSVal CryptoOperationData where
+  pToJSVal = unCryptoOperationData
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CryptoOperationData where
+  pFromJSVal = CryptoOperationData
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CryptoOperationData where
+  toJSVal = return . unCryptoOperationData
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CryptoOperationData where
+  fromJSVal = return . fmap CryptoOperationData . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class IsGObject o => IsCryptoOperationData o
+toCryptoOperationData :: IsCryptoOperationData o => o -> CryptoOperationData
+toCryptoOperationData = CryptoOperationData . coerce
+
+instance IsCryptoOperationData CryptoOperationData
+instance IsGObject CryptoOperationData where
+  typeGType _ = error "Unable to get the JavaScript type of CryptoOperationData"
+instance IsCryptoOperationData ArrayBuffer
+instance IsCryptoOperationData ArrayBufferView
+
+type GLenum = Word32
+type GLboolean = Bool
+type GLbitfield = Word32
+type GLbyte = Int8
+type GLshort = Int16
+type GLint = Int32
+type GLint64 = Int64
+type GLsizei = Int32
+type GLintptr = Int64
+type GLsizeiptr = Int64
+type GLubyte = Word8
+type GLushort = Word16
+type GLuint = Word32
+type GLuint64 = Word64
+type GLfloat = Double
+type GLclampf = Double
+
+-- AUTO GENERATION STARTS HERE
+-- The remainder of this file is generated from IDL files using domconv-webkit-jsffi
+newtype AddEventListenerOptionsOrBool = AddEventListenerOptionsOrBool { unAddEventListenerOptionsOrBool :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o, PToJSVal o) => IsAddEventListenerOptionsOrBool o
+
+toAddEventListenerOptionsOrBool :: IsAddEventListenerOptionsOrBool o => o -> AddEventListenerOptionsOrBool
+toAddEventListenerOptionsOrBool = AddEventListenerOptionsOrBool . pToJSVal
+
+instance IsAddEventListenerOptionsOrBool AddEventListenerOptionsOrBool
+instance IsAddEventListenerOptionsOrBool Bool
+instance IsAddEventListenerOptionsOrBool AddEventListenerOptions
+
+newtype BinaryData = BinaryData { unBinaryData :: JSVal }
+
+instance PToJSVal BinaryData where
+  pToJSVal = unBinaryData
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal BinaryData where
+  pFromJSVal = BinaryData
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal BinaryData where
+  toJSVal = return . unBinaryData
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal BinaryData where
+  fromJSVal = return . fmap BinaryData . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsBinaryData o
+
+toBinaryData :: IsBinaryData o => o -> BinaryData
+toBinaryData = BinaryData . coerce
+
+instance IsBinaryData BinaryData
+instance IsBinaryData ArrayBuffer
+instance IsBinaryData ArrayBufferView
+
+newtype BlobPart = BlobPart { unBlobPart :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o) => IsBlobPart o
+
+instance IsBlobPart BlobPart
+instance IsBlobPart BinaryData
+instance IsBlobPart BufferSource
+instance IsBlobPart ArrayBufferView
+instance IsBlobPart ArrayBuffer
+instance IsBlobPart Blob
+instance IsBlobPart File
+instance IsBlobPart Text
+instance IsBlobPart JSString
+instance IsBlobPart String
+
+newtype BodyInit = BodyInit { unBodyInit :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o) => IsBodyInit o
+
+instance IsBodyInit BodyInit
+instance IsBodyInit Text
+instance IsBodyInit JSString
+instance IsBodyInit String
+instance IsBodyInit FormData
+instance IsBodyInit BinaryData
+instance IsBodyInit BufferSource
+instance IsBodyInit ArrayBufferView
+instance IsBodyInit ArrayBuffer
+instance IsBodyInit Blob
+instance IsBodyInit File
+
+newtype BufferDataSource = BufferDataSource { unBufferDataSource :: JSVal }
+
+instance PToJSVal BufferDataSource where
+  pToJSVal = unBufferDataSource
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal BufferDataSource where
+  pFromJSVal = BufferDataSource
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal BufferDataSource where
+  toJSVal = return . unBufferDataSource
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal BufferDataSource where
+  fromJSVal = return . fmap BufferDataSource . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsBufferDataSource o
+
+toBufferDataSource :: IsBufferDataSource o => o -> BufferDataSource
+toBufferDataSource = BufferDataSource . coerce
+
+instance IsBufferDataSource BufferDataSource
+instance IsBufferDataSource ArrayBuffer
+instance IsBufferDataSource ArrayBufferView
+
+newtype BufferSource = BufferSource { unBufferSource :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsBufferSource o
+
+toBufferSource :: IsBufferSource o => o -> BufferSource
+toBufferSource = BufferSource . coerce
+
+instance IsBufferSource BufferSource
+instance IsBufferSource ArrayBuffer
+instance IsBufferSource ArrayBufferView
+
+newtype CanvasImageSource = CanvasImageSource { unCanvasImageSource :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsCanvasImageSource o
+
+toCanvasImageSource :: IsCanvasImageSource o => o -> CanvasImageSource
+toCanvasImageSource = CanvasImageSource . coerce
+
+instance IsCanvasImageSource CanvasImageSource
+instance IsCanvasImageSource HTMLImageElement
+instance IsCanvasImageSource HTMLVideoElement
+instance IsCanvasImageSource HTMLCanvasElement
+
+newtype CanvasStyle = CanvasStyle { unCanvasStyle :: JSVal }
+
+instance PToJSVal CanvasStyle where
+  pToJSVal = unCanvasStyle
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CanvasStyle where
+  pFromJSVal = CanvasStyle
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CanvasStyle where
+  toJSVal = return . unCanvasStyle
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CanvasStyle where
+  fromJSVal = return . fmap CanvasStyle . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o) => IsCanvasStyle o
+
+instance IsCanvasStyle CanvasStyle
+instance IsCanvasStyle CanvasPattern
+instance IsCanvasStyle CanvasGradient
+instance IsCanvasStyle Text
+instance IsCanvasStyle JSString
+instance IsCanvasStyle String
+
+newtype CryptoKeyOrKeyPair = CryptoKeyOrKeyPair { unCryptoKeyOrKeyPair :: JSVal }
+
+instance PToJSVal CryptoKeyOrKeyPair where
+  pToJSVal = unCryptoKeyOrKeyPair
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CryptoKeyOrKeyPair where
+  pFromJSVal = CryptoKeyOrKeyPair
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CryptoKeyOrKeyPair where
+  toJSVal = return . unCryptoKeyOrKeyPair
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CryptoKeyOrKeyPair where
+  fromJSVal = return . fmap CryptoKeyOrKeyPair . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsCryptoKeyOrKeyPair o
+
+toCryptoKeyOrKeyPair :: IsCryptoKeyOrKeyPair o => o -> CryptoKeyOrKeyPair
+toCryptoKeyOrKeyPair = CryptoKeyOrKeyPair . coerce
+
+instance IsCryptoKeyOrKeyPair CryptoKeyOrKeyPair
+instance IsCryptoKeyOrKeyPair CryptoKeyPair
+instance IsCryptoKeyOrKeyPair CryptoKey
+
+newtype EventListenerOptionsOrBool = EventListenerOptionsOrBool { unEventListenerOptionsOrBool :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o, PToJSVal o) => IsEventListenerOptionsOrBool o
+
+toEventListenerOptionsOrBool :: IsEventListenerOptionsOrBool o => o -> EventListenerOptionsOrBool
+toEventListenerOptionsOrBool = EventListenerOptionsOrBool . pToJSVal
+
+instance IsEventListenerOptionsOrBool EventListenerOptionsOrBool
+instance IsEventListenerOptionsOrBool Bool
+instance IsEventListenerOptionsOrBool EventListenerOptions
+instance IsEventListenerOptionsOrBool AddEventListenerOptions
+
+newtype Float32List = Float32List { unFloat32List :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o) => IsFloat32List o
+
+instance IsFloat32List Float32List
+instance IsFloat32List [GLfloat]
+instance IsFloat32List Float32Array
+
+newtype HTMLCollectionOrElement = HTMLCollectionOrElement { unHTMLCollectionOrElement :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsHTMLCollectionOrElement o
+
+toHTMLCollectionOrElement :: IsHTMLCollectionOrElement o => o -> HTMLCollectionOrElement
+toHTMLCollectionOrElement = HTMLCollectionOrElement . coerce
+
+instance IsHTMLCollectionOrElement HTMLCollectionOrElement
+instance IsHTMLCollectionOrElement Element
+instance IsHTMLCollectionOrElement SVGViewElement
+instance IsHTMLCollectionOrElement SVGVKernElement
+instance IsHTMLCollectionOrElement SVGUseElement
+instance IsHTMLCollectionOrElement SVGTitleElement
+instance IsHTMLCollectionOrElement SVGTextPositioningElement
+instance IsHTMLCollectionOrElement SVGTextPathElement
+instance IsHTMLCollectionOrElement SVGTextElement
+instance IsHTMLCollectionOrElement SVGTextContentElement
+instance IsHTMLCollectionOrElement SVGTSpanElement
+instance IsHTMLCollectionOrElement SVGTRefElement
+instance IsHTMLCollectionOrElement SVGSymbolElement
+instance IsHTMLCollectionOrElement SVGSwitchElement
+instance IsHTMLCollectionOrElement SVGStyleElement
+instance IsHTMLCollectionOrElement SVGStopElement
+instance IsHTMLCollectionOrElement SVGSetElement
+instance IsHTMLCollectionOrElement SVGScriptElement
+instance IsHTMLCollectionOrElement SVGSVGElement
+instance IsHTMLCollectionOrElement SVGRectElement
+instance IsHTMLCollectionOrElement SVGRadialGradientElement
+instance IsHTMLCollectionOrElement SVGPolylineElement
+instance IsHTMLCollectionOrElement SVGPolygonElement
+instance IsHTMLCollectionOrElement SVGPatternElement
+instance IsHTMLCollectionOrElement SVGPathElement
+instance IsHTMLCollectionOrElement SVGMissingGlyphElement
+instance IsHTMLCollectionOrElement SVGMetadataElement
+instance IsHTMLCollectionOrElement SVGMaskElement
+instance IsHTMLCollectionOrElement SVGMarkerElement
+instance IsHTMLCollectionOrElement SVGMPathElement
+instance IsHTMLCollectionOrElement SVGLinearGradientElement
+instance IsHTMLCollectionOrElement SVGLineElement
+instance IsHTMLCollectionOrElement SVGImageElement
+instance IsHTMLCollectionOrElement SVGHKernElement
+instance IsHTMLCollectionOrElement SVGGraphicsElement
+instance IsHTMLCollectionOrElement SVGGradientElement
+instance IsHTMLCollectionOrElement SVGGlyphRefElement
+instance IsHTMLCollectionOrElement SVGGlyphElement
+instance IsHTMLCollectionOrElement SVGGElement
+instance IsHTMLCollectionOrElement SVGForeignObjectElement
+instance IsHTMLCollectionOrElement SVGFontFaceUriElement
+instance IsHTMLCollectionOrElement SVGFontFaceSrcElement
+instance IsHTMLCollectionOrElement SVGFontFaceNameElement
+instance IsHTMLCollectionOrElement SVGFontFaceFormatElement
+instance IsHTMLCollectionOrElement SVGFontFaceElement
+instance IsHTMLCollectionOrElement SVGFontElement
+instance IsHTMLCollectionOrElement SVGFilterElement
+instance IsHTMLCollectionOrElement SVGFETurbulenceElement
+instance IsHTMLCollectionOrElement SVGFETileElement
+instance IsHTMLCollectionOrElement SVGFESpotLightElement
+instance IsHTMLCollectionOrElement SVGFESpecularLightingElement
+instance IsHTMLCollectionOrElement SVGFEPointLightElement
+instance IsHTMLCollectionOrElement SVGFEOffsetElement
+instance IsHTMLCollectionOrElement SVGFEMorphologyElement
+instance IsHTMLCollectionOrElement SVGFEMergeNodeElement
+instance IsHTMLCollectionOrElement SVGFEMergeElement
+instance IsHTMLCollectionOrElement SVGFEImageElement
+instance IsHTMLCollectionOrElement SVGFEGaussianBlurElement
+instance IsHTMLCollectionOrElement SVGFEFuncRElement
+instance IsHTMLCollectionOrElement SVGFEFuncGElement
+instance IsHTMLCollectionOrElement SVGFEFuncBElement
+instance IsHTMLCollectionOrElement SVGFEFuncAElement
+instance IsHTMLCollectionOrElement SVGFEFloodElement
+instance IsHTMLCollectionOrElement SVGFEDropShadowElement
+instance IsHTMLCollectionOrElement SVGFEDistantLightElement
+instance IsHTMLCollectionOrElement SVGFEDisplacementMapElement
+instance IsHTMLCollectionOrElement SVGFEDiffuseLightingElement
+instance IsHTMLCollectionOrElement SVGFEConvolveMatrixElement
+instance IsHTMLCollectionOrElement SVGFECompositeElement
+instance IsHTMLCollectionOrElement SVGFEComponentTransferElement
+instance IsHTMLCollectionOrElement SVGFEColorMatrixElement
+instance IsHTMLCollectionOrElement SVGFEBlendElement
+instance IsHTMLCollectionOrElement SVGEllipseElement
+instance IsHTMLCollectionOrElement SVGElement
+instance IsHTMLCollectionOrElement SVGDescElement
+instance IsHTMLCollectionOrElement SVGDefsElement
+instance IsHTMLCollectionOrElement SVGCursorElement
+instance IsHTMLCollectionOrElement SVGComponentTransferFunctionElement
+instance IsHTMLCollectionOrElement SVGClipPathElement
+instance IsHTMLCollectionOrElement SVGCircleElement
+instance IsHTMLCollectionOrElement SVGAnimationElement
+instance IsHTMLCollectionOrElement SVGAnimateTransformElement
+instance IsHTMLCollectionOrElement SVGAnimateMotionElement
+instance IsHTMLCollectionOrElement SVGAnimateElement
+instance IsHTMLCollectionOrElement SVGAnimateColorElement
+instance IsHTMLCollectionOrElement SVGAltGlyphItemElement
+instance IsHTMLCollectionOrElement SVGAltGlyphElement
+instance IsHTMLCollectionOrElement SVGAltGlyphDefElement
+instance IsHTMLCollectionOrElement SVGAElement
+instance IsHTMLCollectionOrElement HTMLVideoElement
+instance IsHTMLCollectionOrElement HTMLUnknownElement
+instance IsHTMLCollectionOrElement HTMLUListElement
+instance IsHTMLCollectionOrElement HTMLTrackElement
+instance IsHTMLCollectionOrElement HTMLTitleElement
+instance IsHTMLCollectionOrElement HTMLTimeElement
+instance IsHTMLCollectionOrElement HTMLTextAreaElement
+instance IsHTMLCollectionOrElement HTMLTemplateElement
+instance IsHTMLCollectionOrElement HTMLTableSectionElement
+instance IsHTMLCollectionOrElement HTMLTableRowElement
+instance IsHTMLCollectionOrElement HTMLTableElement
+instance IsHTMLCollectionOrElement HTMLTableColElement
+instance IsHTMLCollectionOrElement HTMLTableCellElement
+instance IsHTMLCollectionOrElement HTMLTableCaptionElement
+instance IsHTMLCollectionOrElement HTMLStyleElement
+instance IsHTMLCollectionOrElement HTMLSpanElement
+instance IsHTMLCollectionOrElement HTMLSourceElement
+instance IsHTMLCollectionOrElement HTMLSlotElement
+instance IsHTMLCollectionOrElement HTMLSelectElement
+instance IsHTMLCollectionOrElement HTMLScriptElement
+instance IsHTMLCollectionOrElement HTMLQuoteElement
+instance IsHTMLCollectionOrElement HTMLProgressElement
+instance IsHTMLCollectionOrElement HTMLPreElement
+instance IsHTMLCollectionOrElement HTMLPictureElement
+instance IsHTMLCollectionOrElement HTMLParamElement
+instance IsHTMLCollectionOrElement HTMLParagraphElement
+instance IsHTMLCollectionOrElement HTMLOutputElement
+instance IsHTMLCollectionOrElement HTMLOptionElement
+instance IsHTMLCollectionOrElement HTMLOptGroupElement
+instance IsHTMLCollectionOrElement HTMLObjectElement
+instance IsHTMLCollectionOrElement HTMLOListElement
+instance IsHTMLCollectionOrElement HTMLModElement
+instance IsHTMLCollectionOrElement HTMLMeterElement
+instance IsHTMLCollectionOrElement HTMLMetaElement
+instance IsHTMLCollectionOrElement HTMLMenuElement
+instance IsHTMLCollectionOrElement HTMLMediaElement
+instance IsHTMLCollectionOrElement HTMLMarqueeElement
+instance IsHTMLCollectionOrElement HTMLMapElement
+instance IsHTMLCollectionOrElement HTMLLinkElement
+instance IsHTMLCollectionOrElement HTMLLegendElement
+instance IsHTMLCollectionOrElement HTMLLabelElement
+instance IsHTMLCollectionOrElement HTMLLIElement
+instance IsHTMLCollectionOrElement HTMLKeygenElement
+instance IsHTMLCollectionOrElement HTMLInputElement
+instance IsHTMLCollectionOrElement HTMLImageElement
+instance IsHTMLCollectionOrElement HTMLIFrameElement
+instance IsHTMLCollectionOrElement HTMLHtmlElement
+instance IsHTMLCollectionOrElement HTMLHeadingElement
+instance IsHTMLCollectionOrElement HTMLHeadElement
+instance IsHTMLCollectionOrElement HTMLHRElement
+instance IsHTMLCollectionOrElement HTMLFrameSetElement
+instance IsHTMLCollectionOrElement HTMLFrameElement
+instance IsHTMLCollectionOrElement HTMLFormElement
+instance IsHTMLCollectionOrElement HTMLFontElement
+instance IsHTMLCollectionOrElement HTMLFieldSetElement
+instance IsHTMLCollectionOrElement HTMLEmbedElement
+instance IsHTMLCollectionOrElement HTMLElement
+instance IsHTMLCollectionOrElement HTMLDivElement
+instance IsHTMLCollectionOrElement HTMLDirectoryElement
+instance IsHTMLCollectionOrElement HTMLDetailsElement
+instance IsHTMLCollectionOrElement HTMLDataListElement
+instance IsHTMLCollectionOrElement HTMLDataElement
+instance IsHTMLCollectionOrElement HTMLDListElement
+instance IsHTMLCollectionOrElement HTMLCanvasElement
+instance IsHTMLCollectionOrElement HTMLButtonElement
+instance IsHTMLCollectionOrElement HTMLBodyElement
+instance IsHTMLCollectionOrElement HTMLBaseElement
+instance IsHTMLCollectionOrElement HTMLBRElement
+instance IsHTMLCollectionOrElement HTMLAudioElement
+instance IsHTMLCollectionOrElement HTMLAttachmentElement
+instance IsHTMLCollectionOrElement HTMLAreaElement
+instance IsHTMLCollectionOrElement HTMLAppletElement
+instance IsHTMLCollectionOrElement HTMLAnchorElement
+instance IsHTMLCollectionOrElement HTMLCollection
+instance IsHTMLCollectionOrElement HTMLOptionsCollection
+instance IsHTMLCollectionOrElement HTMLFormControlsCollection
+
+newtype HTMLElementOrLong = HTMLElementOrLong { unHTMLElementOrLong :: JSVal }
+
+instance PToJSVal HTMLElementOrLong where
+  pToJSVal = unHTMLElementOrLong
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal HTMLElementOrLong where
+  pFromJSVal = HTMLElementOrLong
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal HTMLElementOrLong where
+  toJSVal = return . unHTMLElementOrLong
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal HTMLElementOrLong where
+  fromJSVal = return . fmap HTMLElementOrLong . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o) => IsHTMLElementOrLong o
+
+instance IsHTMLElementOrLong HTMLElementOrLong
+instance IsHTMLElementOrLong Int
+instance IsHTMLElementOrLong HTMLElement
+instance IsHTMLElementOrLong HTMLVideoElement
+instance IsHTMLElementOrLong HTMLUnknownElement
+instance IsHTMLElementOrLong HTMLUListElement
+instance IsHTMLElementOrLong HTMLTrackElement
+instance IsHTMLElementOrLong HTMLTitleElement
+instance IsHTMLElementOrLong HTMLTimeElement
+instance IsHTMLElementOrLong HTMLTextAreaElement
+instance IsHTMLElementOrLong HTMLTemplateElement
+instance IsHTMLElementOrLong HTMLTableSectionElement
+instance IsHTMLElementOrLong HTMLTableRowElement
+instance IsHTMLElementOrLong HTMLTableElement
+instance IsHTMLElementOrLong HTMLTableColElement
+instance IsHTMLElementOrLong HTMLTableCellElement
+instance IsHTMLElementOrLong HTMLTableCaptionElement
+instance IsHTMLElementOrLong HTMLStyleElement
+instance IsHTMLElementOrLong HTMLSpanElement
+instance IsHTMLElementOrLong HTMLSourceElement
+instance IsHTMLElementOrLong HTMLSlotElement
+instance IsHTMLElementOrLong HTMLSelectElement
+instance IsHTMLElementOrLong HTMLScriptElement
+instance IsHTMLElementOrLong HTMLQuoteElement
+instance IsHTMLElementOrLong HTMLProgressElement
+instance IsHTMLElementOrLong HTMLPreElement
+instance IsHTMLElementOrLong HTMLPictureElement
+instance IsHTMLElementOrLong HTMLParamElement
+instance IsHTMLElementOrLong HTMLParagraphElement
+instance IsHTMLElementOrLong HTMLOutputElement
+instance IsHTMLElementOrLong HTMLOptionElement
+instance IsHTMLElementOrLong HTMLOptGroupElement
+instance IsHTMLElementOrLong HTMLObjectElement
+instance IsHTMLElementOrLong HTMLOListElement
+instance IsHTMLElementOrLong HTMLModElement
+instance IsHTMLElementOrLong HTMLMeterElement
+instance IsHTMLElementOrLong HTMLMetaElement
+instance IsHTMLElementOrLong HTMLMenuElement
+instance IsHTMLElementOrLong HTMLMediaElement
+instance IsHTMLElementOrLong HTMLMarqueeElement
+instance IsHTMLElementOrLong HTMLMapElement
+instance IsHTMLElementOrLong HTMLLinkElement
+instance IsHTMLElementOrLong HTMLLegendElement
+instance IsHTMLElementOrLong HTMLLabelElement
+instance IsHTMLElementOrLong HTMLLIElement
+instance IsHTMLElementOrLong HTMLKeygenElement
+instance IsHTMLElementOrLong HTMLInputElement
+instance IsHTMLElementOrLong HTMLImageElement
+instance IsHTMLElementOrLong HTMLIFrameElement
+instance IsHTMLElementOrLong HTMLHtmlElement
+instance IsHTMLElementOrLong HTMLHeadingElement
+instance IsHTMLElementOrLong HTMLHeadElement
+instance IsHTMLElementOrLong HTMLHRElement
+instance IsHTMLElementOrLong HTMLFrameSetElement
+instance IsHTMLElementOrLong HTMLFrameElement
+instance IsHTMLElementOrLong HTMLFormElement
+instance IsHTMLElementOrLong HTMLFontElement
+instance IsHTMLElementOrLong HTMLFieldSetElement
+instance IsHTMLElementOrLong HTMLEmbedElement
+instance IsHTMLElementOrLong HTMLDivElement
+instance IsHTMLElementOrLong HTMLDirectoryElement
+instance IsHTMLElementOrLong HTMLDetailsElement
+instance IsHTMLElementOrLong HTMLDataListElement
+instance IsHTMLElementOrLong HTMLDataElement
+instance IsHTMLElementOrLong HTMLDListElement
+instance IsHTMLElementOrLong HTMLCanvasElement
+instance IsHTMLElementOrLong HTMLButtonElement
+instance IsHTMLElementOrLong HTMLBodyElement
+instance IsHTMLElementOrLong HTMLBaseElement
+instance IsHTMLElementOrLong HTMLBRElement
+instance IsHTMLElementOrLong HTMLAudioElement
+instance IsHTMLElementOrLong HTMLAttachmentElement
+instance IsHTMLElementOrLong HTMLAreaElement
+instance IsHTMLElementOrLong HTMLAppletElement
+instance IsHTMLElementOrLong HTMLAnchorElement
+
+newtype HTMLOptionElementOrGroup = HTMLOptionElementOrGroup { unHTMLOptionElementOrGroup :: JSVal }
+
+instance PToJSVal HTMLOptionElementOrGroup where
+  pToJSVal = unHTMLOptionElementOrGroup
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal HTMLOptionElementOrGroup where
+  pFromJSVal = HTMLOptionElementOrGroup
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal HTMLOptionElementOrGroup where
+  toJSVal = return . unHTMLOptionElementOrGroup
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal HTMLOptionElementOrGroup where
+  fromJSVal = return . fmap HTMLOptionElementOrGroup . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsHTMLOptionElementOrGroup o
+
+toHTMLOptionElementOrGroup :: IsHTMLOptionElementOrGroup o => o -> HTMLOptionElementOrGroup
+toHTMLOptionElementOrGroup = HTMLOptionElementOrGroup . coerce
+
+instance IsHTMLOptionElementOrGroup HTMLOptionElementOrGroup
+instance IsHTMLOptionElementOrGroup HTMLOptGroupElement
+instance IsHTMLOptionElementOrGroup HTMLOptionElement
+
+newtype IDBCursorSource = IDBCursorSource { unIDBCursorSource :: JSVal }
+
+instance PToJSVal IDBCursorSource where
+  pToJSVal = unIDBCursorSource
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal IDBCursorSource where
+  pFromJSVal = IDBCursorSource
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal IDBCursorSource where
+  toJSVal = return . unIDBCursorSource
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal IDBCursorSource where
+  fromJSVal = return . fmap IDBCursorSource . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsIDBCursorSource o
+
+toIDBCursorSource :: IsIDBCursorSource o => o -> IDBCursorSource
+toIDBCursorSource = IDBCursorSource . coerce
+
+instance IsIDBCursorSource IDBCursorSource
+instance IsIDBCursorSource IDBIndex
+instance IsIDBCursorSource IDBObjectStore
+
+newtype IDBKeyPath = IDBKeyPath { unIDBKeyPath :: JSVal }
+
+instance PToJSVal IDBKeyPath where
+  pToJSVal = unIDBKeyPath
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal IDBKeyPath where
+  pFromJSVal = IDBKeyPath
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal IDBKeyPath where
+  toJSVal = return . unIDBKeyPath
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal IDBKeyPath where
+  fromJSVal = return . fmap IDBKeyPath . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o) => IsIDBKeyPath o
+
+instance IsIDBKeyPath IDBKeyPath
+instance IsIDBKeyPath [Text]
+instance IsIDBKeyPath [JSString]
+instance IsIDBKeyPath [String]
+instance IsIDBKeyPath Text
+instance IsIDBKeyPath JSString
+instance IsIDBKeyPath String
+
+newtype IDBRequestResult = IDBRequestResult { unIDBRequestResult :: JSVal }
+
+instance PToJSVal IDBRequestResult where
+  pToJSVal = unIDBRequestResult
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal IDBRequestResult where
+  pFromJSVal = IDBRequestResult
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal IDBRequestResult where
+  toJSVal = return . unIDBRequestResult
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal IDBRequestResult where
+  fromJSVal = return . fmap IDBRequestResult . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsIDBRequestResult o
+
+toIDBRequestResult :: IsIDBRequestResult o => o -> IDBRequestResult
+toIDBRequestResult = IDBRequestResult . coerce
+
+instance IsIDBRequestResult IDBRequestResult
+instance IsIDBRequestResult JSVal
+instance IsIDBRequestResult IDBDatabase
+instance IsIDBRequestResult IDBCursor
+instance IsIDBRequestResult IDBCursorWithValue
+
+newtype IDBRequestSource = IDBRequestSource { unIDBRequestSource :: JSVal }
+
+instance PToJSVal IDBRequestSource where
+  pToJSVal = unIDBRequestSource
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal IDBRequestSource where
+  pFromJSVal = IDBRequestSource
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal IDBRequestSource where
+  toJSVal = return . unIDBRequestSource
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal IDBRequestSource where
+  fromJSVal = return . fmap IDBRequestSource . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsIDBRequestSource o
+
+toIDBRequestSource :: IsIDBRequestSource o => o -> IDBRequestSource
+toIDBRequestSource = IDBRequestSource . coerce
+
+instance IsIDBRequestSource IDBRequestSource
+instance IsIDBRequestSource IDBCursor
+instance IsIDBRequestSource IDBCursorWithValue
+instance IsIDBRequestSource IDBIndex
+instance IsIDBRequestSource IDBObjectStore
+
+newtype Int32List = Int32List { unInt32List :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o) => IsInt32List o
+
+instance IsInt32List Int32List
+instance IsInt32List [GLint]
+instance IsInt32List Int32Array
+
+newtype KeyData = KeyData { unKeyData :: JSVal }
+
+instance PToJSVal KeyData where
+  pToJSVal = unKeyData
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal KeyData where
+  pFromJSVal = KeyData
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal KeyData where
+  toJSVal = return . unKeyData
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal KeyData where
+  fromJSVal = return . fmap KeyData . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsKeyData o
+
+toKeyData :: IsKeyData o => o -> KeyData
+toKeyData = KeyData . coerce
+
+instance IsKeyData KeyData
+instance IsKeyData JsonWebKey
+instance IsKeyData BinaryData
+instance IsKeyData BufferSource
+instance IsKeyData ArrayBufferView
+instance IsKeyData ArrayBuffer
+
+newtype MediaProvider = MediaProvider { unMediaProvider :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsMediaProvider o
+
+toMediaProvider :: IsMediaProvider o => o -> MediaProvider
+toMediaProvider = MediaProvider . coerce
+
+instance IsMediaProvider MediaProvider
+instance IsMediaProvider MediaStream
+instance IsMediaProvider MediaSource
+instance IsMediaProvider Blob
+instance IsMediaProvider File
+
+newtype MessageEventSource = MessageEventSource { unMessageEventSource :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsMessageEventSource o
+
+toMessageEventSource :: IsMessageEventSource o => o -> MessageEventSource
+toMessageEventSource = MessageEventSource . coerce
+
+instance IsMessageEventSource MessageEventSource
+instance IsMessageEventSource MessagePort
+instance IsMessageEventSource Window
+
+newtype NodeOrString = NodeOrString { unNodeOrString :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o) => IsNodeOrString o
+
+instance IsNodeOrString NodeOrString
+instance IsNodeOrString Text
+instance IsNodeOrString JSString
+instance IsNodeOrString String
+instance IsNodeOrString Node
+instance IsNodeOrString XMLDocument
+instance IsNodeOrString ShadowRoot
+instance IsNodeOrString SVGViewElement
+instance IsNodeOrString SVGVKernElement
+instance IsNodeOrString SVGUseElement
+instance IsNodeOrString SVGTitleElement
+instance IsNodeOrString SVGTextPositioningElement
+instance IsNodeOrString SVGTextPathElement
+instance IsNodeOrString SVGTextElement
+instance IsNodeOrString SVGTextContentElement
+instance IsNodeOrString SVGTSpanElement
+instance IsNodeOrString SVGTRefElement
+instance IsNodeOrString SVGSymbolElement
+instance IsNodeOrString SVGSwitchElement
+instance IsNodeOrString SVGStyleElement
+instance IsNodeOrString SVGStopElement
+instance IsNodeOrString SVGSetElement
+instance IsNodeOrString SVGScriptElement
+instance IsNodeOrString SVGSVGElement
+instance IsNodeOrString SVGRectElement
+instance IsNodeOrString SVGRadialGradientElement
+instance IsNodeOrString SVGPolylineElement
+instance IsNodeOrString SVGPolygonElement
+instance IsNodeOrString SVGPatternElement
+instance IsNodeOrString SVGPathElement
+instance IsNodeOrString SVGMissingGlyphElement
+instance IsNodeOrString SVGMetadataElement
+instance IsNodeOrString SVGMaskElement
+instance IsNodeOrString SVGMarkerElement
+instance IsNodeOrString SVGMPathElement
+instance IsNodeOrString SVGLinearGradientElement
+instance IsNodeOrString SVGLineElement
+instance IsNodeOrString SVGImageElement
+instance IsNodeOrString SVGHKernElement
+instance IsNodeOrString SVGGraphicsElement
+instance IsNodeOrString SVGGradientElement
+instance IsNodeOrString SVGGlyphRefElement
+instance IsNodeOrString SVGGlyphElement
+instance IsNodeOrString SVGGElement
+instance IsNodeOrString SVGForeignObjectElement
+instance IsNodeOrString SVGFontFaceUriElement
+instance IsNodeOrString SVGFontFaceSrcElement
+instance IsNodeOrString SVGFontFaceNameElement
+instance IsNodeOrString SVGFontFaceFormatElement
+instance IsNodeOrString SVGFontFaceElement
+instance IsNodeOrString SVGFontElement
+instance IsNodeOrString SVGFilterElement
+instance IsNodeOrString SVGFETurbulenceElement
+instance IsNodeOrString SVGFETileElement
+instance IsNodeOrString SVGFESpotLightElement
+instance IsNodeOrString SVGFESpecularLightingElement
+instance IsNodeOrString SVGFEPointLightElement
+instance IsNodeOrString SVGFEOffsetElement
+instance IsNodeOrString SVGFEMorphologyElement
+instance IsNodeOrString SVGFEMergeNodeElement
+instance IsNodeOrString SVGFEMergeElement
+instance IsNodeOrString SVGFEImageElement
+instance IsNodeOrString SVGFEGaussianBlurElement
+instance IsNodeOrString SVGFEFuncRElement
+instance IsNodeOrString SVGFEFuncGElement
+instance IsNodeOrString SVGFEFuncBElement
+instance IsNodeOrString SVGFEFuncAElement
+instance IsNodeOrString SVGFEFloodElement
+instance IsNodeOrString SVGFEDropShadowElement
+instance IsNodeOrString SVGFEDistantLightElement
+instance IsNodeOrString SVGFEDisplacementMapElement
+instance IsNodeOrString SVGFEDiffuseLightingElement
+instance IsNodeOrString SVGFEConvolveMatrixElement
+instance IsNodeOrString SVGFECompositeElement
+instance IsNodeOrString SVGFEComponentTransferElement
+instance IsNodeOrString SVGFEColorMatrixElement
+instance IsNodeOrString SVGFEBlendElement
+instance IsNodeOrString SVGEllipseElement
+instance IsNodeOrString SVGElement
+instance IsNodeOrString SVGDescElement
+instance IsNodeOrString SVGDefsElement
+instance IsNodeOrString SVGCursorElement
+instance IsNodeOrString SVGComponentTransferFunctionElement
+instance IsNodeOrString SVGClipPathElement
+instance IsNodeOrString SVGCircleElement
+instance IsNodeOrString SVGAnimationElement
+instance IsNodeOrString SVGAnimateTransformElement
+instance IsNodeOrString SVGAnimateMotionElement
+instance IsNodeOrString SVGAnimateElement
+instance IsNodeOrString SVGAnimateColorElement
+instance IsNodeOrString SVGAltGlyphItemElement
+instance IsNodeOrString SVGAltGlyphElement
+instance IsNodeOrString SVGAltGlyphDefElement
+instance IsNodeOrString SVGAElement
+instance IsNodeOrString ProcessingInstruction
+instance IsNodeOrString HTMLVideoElement
+instance IsNodeOrString HTMLUnknownElement
+instance IsNodeOrString HTMLUListElement
+instance IsNodeOrString HTMLTrackElement
+instance IsNodeOrString HTMLTitleElement
+instance IsNodeOrString HTMLTimeElement
+instance IsNodeOrString HTMLTextAreaElement
+instance IsNodeOrString HTMLTemplateElement
+instance IsNodeOrString HTMLTableSectionElement
+instance IsNodeOrString HTMLTableRowElement
+instance IsNodeOrString HTMLTableElement
+instance IsNodeOrString HTMLTableColElement
+instance IsNodeOrString HTMLTableCellElement
+instance IsNodeOrString HTMLTableCaptionElement
+instance IsNodeOrString HTMLStyleElement
+instance IsNodeOrString HTMLSpanElement
+instance IsNodeOrString HTMLSourceElement
+instance IsNodeOrString HTMLSlotElement
+instance IsNodeOrString HTMLSelectElement
+instance IsNodeOrString HTMLScriptElement
+instance IsNodeOrString HTMLQuoteElement
+instance IsNodeOrString HTMLProgressElement
+instance IsNodeOrString HTMLPreElement
+instance IsNodeOrString HTMLPictureElement
+instance IsNodeOrString HTMLParamElement
+instance IsNodeOrString HTMLParagraphElement
+instance IsNodeOrString HTMLOutputElement
+instance IsNodeOrString HTMLOptionElement
+instance IsNodeOrString HTMLOptGroupElement
+instance IsNodeOrString HTMLObjectElement
+instance IsNodeOrString HTMLOListElement
+instance IsNodeOrString HTMLModElement
+instance IsNodeOrString HTMLMeterElement
+instance IsNodeOrString HTMLMetaElement
+instance IsNodeOrString HTMLMenuElement
+instance IsNodeOrString HTMLMediaElement
+instance IsNodeOrString HTMLMarqueeElement
+instance IsNodeOrString HTMLMapElement
+instance IsNodeOrString HTMLLinkElement
+instance IsNodeOrString HTMLLegendElement
+instance IsNodeOrString HTMLLabelElement
+instance IsNodeOrString HTMLLIElement
+instance IsNodeOrString HTMLKeygenElement
+instance IsNodeOrString HTMLInputElement
+instance IsNodeOrString HTMLImageElement
+instance IsNodeOrString HTMLIFrameElement
+instance IsNodeOrString HTMLHtmlElement
+instance IsNodeOrString HTMLHeadingElement
+instance IsNodeOrString HTMLHeadElement
+instance IsNodeOrString HTMLHRElement
+instance IsNodeOrString HTMLFrameSetElement
+instance IsNodeOrString HTMLFrameElement
+instance IsNodeOrString HTMLFormElement
+instance IsNodeOrString HTMLFontElement
+instance IsNodeOrString HTMLFieldSetElement
+instance IsNodeOrString HTMLEmbedElement
+instance IsNodeOrString HTMLElement
+instance IsNodeOrString HTMLDocument
+instance IsNodeOrString HTMLDivElement
+instance IsNodeOrString HTMLDirectoryElement
+instance IsNodeOrString HTMLDetailsElement
+instance IsNodeOrString HTMLDataListElement
+instance IsNodeOrString HTMLDataElement
+instance IsNodeOrString HTMLDListElement
+instance IsNodeOrString HTMLCanvasElement
+instance IsNodeOrString HTMLButtonElement
+instance IsNodeOrString HTMLBodyElement
+instance IsNodeOrString HTMLBaseElement
+instance IsNodeOrString HTMLBRElement
+instance IsNodeOrString HTMLAudioElement
+instance IsNodeOrString HTMLAttachmentElement
+instance IsNodeOrString HTMLAreaElement
+instance IsNodeOrString HTMLAppletElement
+instance IsNodeOrString HTMLAnchorElement
+instance IsNodeOrString Element
+instance IsNodeOrString DocumentType
+instance IsNodeOrString DocumentFragment
+instance IsNodeOrString Document
+instance IsNodeOrString Comment
+instance IsNodeOrString CharacterData
+instance IsNodeOrString CDATASection
+instance IsNodeOrString Attr
+
+newtype RadioNodeListOrElement = RadioNodeListOrElement { unRadioNodeListOrElement :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsRadioNodeListOrElement o
+
+toRadioNodeListOrElement :: IsRadioNodeListOrElement o => o -> RadioNodeListOrElement
+toRadioNodeListOrElement = RadioNodeListOrElement . coerce
+
+instance IsRadioNodeListOrElement RadioNodeListOrElement
+instance IsRadioNodeListOrElement Element
+instance IsRadioNodeListOrElement SVGViewElement
+instance IsRadioNodeListOrElement SVGVKernElement
+instance IsRadioNodeListOrElement SVGUseElement
+instance IsRadioNodeListOrElement SVGTitleElement
+instance IsRadioNodeListOrElement SVGTextPositioningElement
+instance IsRadioNodeListOrElement SVGTextPathElement
+instance IsRadioNodeListOrElement SVGTextElement
+instance IsRadioNodeListOrElement SVGTextContentElement
+instance IsRadioNodeListOrElement SVGTSpanElement
+instance IsRadioNodeListOrElement SVGTRefElement
+instance IsRadioNodeListOrElement SVGSymbolElement
+instance IsRadioNodeListOrElement SVGSwitchElement
+instance IsRadioNodeListOrElement SVGStyleElement
+instance IsRadioNodeListOrElement SVGStopElement
+instance IsRadioNodeListOrElement SVGSetElement
+instance IsRadioNodeListOrElement SVGScriptElement
+instance IsRadioNodeListOrElement SVGSVGElement
+instance IsRadioNodeListOrElement SVGRectElement
+instance IsRadioNodeListOrElement SVGRadialGradientElement
+instance IsRadioNodeListOrElement SVGPolylineElement
+instance IsRadioNodeListOrElement SVGPolygonElement
+instance IsRadioNodeListOrElement SVGPatternElement
+instance IsRadioNodeListOrElement SVGPathElement
+instance IsRadioNodeListOrElement SVGMissingGlyphElement
+instance IsRadioNodeListOrElement SVGMetadataElement
+instance IsRadioNodeListOrElement SVGMaskElement
+instance IsRadioNodeListOrElement SVGMarkerElement
+instance IsRadioNodeListOrElement SVGMPathElement
+instance IsRadioNodeListOrElement SVGLinearGradientElement
+instance IsRadioNodeListOrElement SVGLineElement
+instance IsRadioNodeListOrElement SVGImageElement
+instance IsRadioNodeListOrElement SVGHKernElement
+instance IsRadioNodeListOrElement SVGGraphicsElement
+instance IsRadioNodeListOrElement SVGGradientElement
+instance IsRadioNodeListOrElement SVGGlyphRefElement
+instance IsRadioNodeListOrElement SVGGlyphElement
+instance IsRadioNodeListOrElement SVGGElement
+instance IsRadioNodeListOrElement SVGForeignObjectElement
+instance IsRadioNodeListOrElement SVGFontFaceUriElement
+instance IsRadioNodeListOrElement SVGFontFaceSrcElement
+instance IsRadioNodeListOrElement SVGFontFaceNameElement
+instance IsRadioNodeListOrElement SVGFontFaceFormatElement
+instance IsRadioNodeListOrElement SVGFontFaceElement
+instance IsRadioNodeListOrElement SVGFontElement
+instance IsRadioNodeListOrElement SVGFilterElement
+instance IsRadioNodeListOrElement SVGFETurbulenceElement
+instance IsRadioNodeListOrElement SVGFETileElement
+instance IsRadioNodeListOrElement SVGFESpotLightElement
+instance IsRadioNodeListOrElement SVGFESpecularLightingElement
+instance IsRadioNodeListOrElement SVGFEPointLightElement
+instance IsRadioNodeListOrElement SVGFEOffsetElement
+instance IsRadioNodeListOrElement SVGFEMorphologyElement
+instance IsRadioNodeListOrElement SVGFEMergeNodeElement
+instance IsRadioNodeListOrElement SVGFEMergeElement
+instance IsRadioNodeListOrElement SVGFEImageElement
+instance IsRadioNodeListOrElement SVGFEGaussianBlurElement
+instance IsRadioNodeListOrElement SVGFEFuncRElement
+instance IsRadioNodeListOrElement SVGFEFuncGElement
+instance IsRadioNodeListOrElement SVGFEFuncBElement
+instance IsRadioNodeListOrElement SVGFEFuncAElement
+instance IsRadioNodeListOrElement SVGFEFloodElement
+instance IsRadioNodeListOrElement SVGFEDropShadowElement
+instance IsRadioNodeListOrElement SVGFEDistantLightElement
+instance IsRadioNodeListOrElement SVGFEDisplacementMapElement
+instance IsRadioNodeListOrElement SVGFEDiffuseLightingElement
+instance IsRadioNodeListOrElement SVGFEConvolveMatrixElement
+instance IsRadioNodeListOrElement SVGFECompositeElement
+instance IsRadioNodeListOrElement SVGFEComponentTransferElement
+instance IsRadioNodeListOrElement SVGFEColorMatrixElement
+instance IsRadioNodeListOrElement SVGFEBlendElement
+instance IsRadioNodeListOrElement SVGEllipseElement
+instance IsRadioNodeListOrElement SVGElement
+instance IsRadioNodeListOrElement SVGDescElement
+instance IsRadioNodeListOrElement SVGDefsElement
+instance IsRadioNodeListOrElement SVGCursorElement
+instance IsRadioNodeListOrElement SVGComponentTransferFunctionElement
+instance IsRadioNodeListOrElement SVGClipPathElement
+instance IsRadioNodeListOrElement SVGCircleElement
+instance IsRadioNodeListOrElement SVGAnimationElement
+instance IsRadioNodeListOrElement SVGAnimateTransformElement
+instance IsRadioNodeListOrElement SVGAnimateMotionElement
+instance IsRadioNodeListOrElement SVGAnimateElement
+instance IsRadioNodeListOrElement SVGAnimateColorElement
+instance IsRadioNodeListOrElement SVGAltGlyphItemElement
+instance IsRadioNodeListOrElement SVGAltGlyphElement
+instance IsRadioNodeListOrElement SVGAltGlyphDefElement
+instance IsRadioNodeListOrElement SVGAElement
+instance IsRadioNodeListOrElement HTMLVideoElement
+instance IsRadioNodeListOrElement HTMLUnknownElement
+instance IsRadioNodeListOrElement HTMLUListElement
+instance IsRadioNodeListOrElement HTMLTrackElement
+instance IsRadioNodeListOrElement HTMLTitleElement
+instance IsRadioNodeListOrElement HTMLTimeElement
+instance IsRadioNodeListOrElement HTMLTextAreaElement
+instance IsRadioNodeListOrElement HTMLTemplateElement
+instance IsRadioNodeListOrElement HTMLTableSectionElement
+instance IsRadioNodeListOrElement HTMLTableRowElement
+instance IsRadioNodeListOrElement HTMLTableElement
+instance IsRadioNodeListOrElement HTMLTableColElement
+instance IsRadioNodeListOrElement HTMLTableCellElement
+instance IsRadioNodeListOrElement HTMLTableCaptionElement
+instance IsRadioNodeListOrElement HTMLStyleElement
+instance IsRadioNodeListOrElement HTMLSpanElement
+instance IsRadioNodeListOrElement HTMLSourceElement
+instance IsRadioNodeListOrElement HTMLSlotElement
+instance IsRadioNodeListOrElement HTMLSelectElement
+instance IsRadioNodeListOrElement HTMLScriptElement
+instance IsRadioNodeListOrElement HTMLQuoteElement
+instance IsRadioNodeListOrElement HTMLProgressElement
+instance IsRadioNodeListOrElement HTMLPreElement
+instance IsRadioNodeListOrElement HTMLPictureElement
+instance IsRadioNodeListOrElement HTMLParamElement
+instance IsRadioNodeListOrElement HTMLParagraphElement
+instance IsRadioNodeListOrElement HTMLOutputElement
+instance IsRadioNodeListOrElement HTMLOptionElement
+instance IsRadioNodeListOrElement HTMLOptGroupElement
+instance IsRadioNodeListOrElement HTMLObjectElement
+instance IsRadioNodeListOrElement HTMLOListElement
+instance IsRadioNodeListOrElement HTMLModElement
+instance IsRadioNodeListOrElement HTMLMeterElement
+instance IsRadioNodeListOrElement HTMLMetaElement
+instance IsRadioNodeListOrElement HTMLMenuElement
+instance IsRadioNodeListOrElement HTMLMediaElement
+instance IsRadioNodeListOrElement HTMLMarqueeElement
+instance IsRadioNodeListOrElement HTMLMapElement
+instance IsRadioNodeListOrElement HTMLLinkElement
+instance IsRadioNodeListOrElement HTMLLegendElement
+instance IsRadioNodeListOrElement HTMLLabelElement
+instance IsRadioNodeListOrElement HTMLLIElement
+instance IsRadioNodeListOrElement HTMLKeygenElement
+instance IsRadioNodeListOrElement HTMLInputElement
+instance IsRadioNodeListOrElement HTMLImageElement
+instance IsRadioNodeListOrElement HTMLIFrameElement
+instance IsRadioNodeListOrElement HTMLHtmlElement
+instance IsRadioNodeListOrElement HTMLHeadingElement
+instance IsRadioNodeListOrElement HTMLHeadElement
+instance IsRadioNodeListOrElement HTMLHRElement
+instance IsRadioNodeListOrElement HTMLFrameSetElement
+instance IsRadioNodeListOrElement HTMLFrameElement
+instance IsRadioNodeListOrElement HTMLFormElement
+instance IsRadioNodeListOrElement HTMLFontElement
+instance IsRadioNodeListOrElement HTMLFieldSetElement
+instance IsRadioNodeListOrElement HTMLEmbedElement
+instance IsRadioNodeListOrElement HTMLElement
+instance IsRadioNodeListOrElement HTMLDivElement
+instance IsRadioNodeListOrElement HTMLDirectoryElement
+instance IsRadioNodeListOrElement HTMLDetailsElement
+instance IsRadioNodeListOrElement HTMLDataListElement
+instance IsRadioNodeListOrElement HTMLDataElement
+instance IsRadioNodeListOrElement HTMLDListElement
+instance IsRadioNodeListOrElement HTMLCanvasElement
+instance IsRadioNodeListOrElement HTMLButtonElement
+instance IsRadioNodeListOrElement HTMLBodyElement
+instance IsRadioNodeListOrElement HTMLBaseElement
+instance IsRadioNodeListOrElement HTMLBRElement
+instance IsRadioNodeListOrElement HTMLAudioElement
+instance IsRadioNodeListOrElement HTMLAttachmentElement
+instance IsRadioNodeListOrElement HTMLAreaElement
+instance IsRadioNodeListOrElement HTMLAppletElement
+instance IsRadioNodeListOrElement HTMLAnchorElement
+instance IsRadioNodeListOrElement RadioNodeList
+
+newtype RenderingContext = RenderingContext { unRenderingContext :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsRenderingContext o
+
+toRenderingContext :: IsRenderingContext o => o -> RenderingContext
+toRenderingContext = RenderingContext . coerce
+
+instance IsRenderingContext RenderingContext
+instance IsRenderingContext WebGLRenderingContextBase
+instance IsRenderingContext WebGLRenderingContext
+instance IsRenderingContext WebGL2RenderingContext
+instance IsRenderingContext CanvasRenderingContext2D
+
+newtype SQLValue = SQLValue { unSQLValue :: JSVal }
+
+instance PToJSVal SQLValue where
+  pToJSVal = unSQLValue
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SQLValue where
+  pFromJSVal = SQLValue
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SQLValue where
+  toJSVal = return . unSQLValue
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SQLValue where
+  fromJSVal = return . fmap SQLValue . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o) => IsSQLValue o
+
+instance IsSQLValue SQLValue
+instance IsSQLValue (Maybe Text)
+instance IsSQLValue (Maybe JSString)
+instance IsSQLValue (Maybe String)
+instance IsSQLValue Double
+
+newtype StringOrArrayBuffer = StringOrArrayBuffer { unStringOrArrayBuffer :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o) => IsStringOrArrayBuffer o
+
+instance IsStringOrArrayBuffer StringOrArrayBuffer
+instance IsStringOrArrayBuffer ArrayBuffer
+instance IsStringOrArrayBuffer Text
+instance IsStringOrArrayBuffer JSString
+instance IsStringOrArrayBuffer String
+
+newtype StringOrBinaryData = StringOrBinaryData { unStringOrBinaryData :: JSVal }
+
+instance PToJSVal StringOrBinaryData where
+  pToJSVal = unStringOrBinaryData
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal StringOrBinaryData where
+  pFromJSVal = StringOrBinaryData
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal StringOrBinaryData where
+  toJSVal = return . unStringOrBinaryData
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal StringOrBinaryData where
+  fromJSVal = return . fmap StringOrBinaryData . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o) => IsStringOrBinaryData o
+
+instance IsStringOrBinaryData StringOrBinaryData
+instance IsStringOrBinaryData BinaryData
+instance IsStringOrBinaryData BufferSource
+instance IsStringOrBinaryData ArrayBufferView
+instance IsStringOrBinaryData ArrayBuffer
+instance IsStringOrBinaryData Text
+instance IsStringOrBinaryData JSString
+instance IsStringOrBinaryData String
+
+newtype StringOrStrings = StringOrStrings { unStringOrStrings :: JSVal }
+
+instance PToJSVal StringOrStrings where
+  pToJSVal = unStringOrStrings
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal StringOrStrings where
+  pFromJSVal = StringOrStrings
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal StringOrStrings where
+  toJSVal = return . unStringOrStrings
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal StringOrStrings where
+  fromJSVal = return . fmap StringOrStrings . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o) => IsStringOrStrings o
+
+instance IsStringOrStrings StringOrStrings
+instance IsStringOrStrings [Text]
+instance IsStringOrStrings [JSString]
+instance IsStringOrStrings [String]
+instance IsStringOrStrings Text
+instance IsStringOrStrings JSString
+instance IsStringOrStrings String
+
+newtype TexImageSource = TexImageSource { unTexImageSource :: JSVal }
+
+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 #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsTexImageSource o
+
+toTexImageSource :: IsTexImageSource o => o -> TexImageSource
+toTexImageSource = TexImageSource . coerce
+
+instance IsTexImageSource TexImageSource
+instance IsTexImageSource ImageData
+instance IsTexImageSource HTMLImageElement
+instance IsTexImageSource HTMLVideoElement
+instance IsTexImageSource HTMLCanvasElement
+
+newtype Track = Track { unTrack :: JSVal }
+
+instance PToJSVal Track where
+  pToJSVal = unTrack
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal Track where
+  pFromJSVal = Track
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal Track where
+  toJSVal = return . unTrack
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal Track where
+  fromJSVal = return . fmap Track . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o, PFromJSVal o, PToJSVal o, Coercible o JSVal) => IsTrack o
+
+toTrack :: IsTrack o => o -> Track
+toTrack = Track . coerce
+
+instance IsTrack Track
+instance IsTrack TextTrack
+instance IsTrack AudioTrack
+instance IsTrack VideoTrack
+
+newtype URLSearchParamsInit = URLSearchParamsInit { unURLSearchParamsInit :: JSVal }
+
+instance PToJSVal URLSearchParamsInit where
+  pToJSVal = unURLSearchParamsInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal URLSearchParamsInit where
+  pFromJSVal = URLSearchParamsInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal URLSearchParamsInit where
+  toJSVal = return . unURLSearchParamsInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal URLSearchParamsInit where
+  fromJSVal = return . fmap URLSearchParamsInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o) => IsURLSearchParamsInit o
+
+instance IsURLSearchParamsInit URLSearchParamsInit
+instance IsURLSearchParamsInit Text
+instance IsURLSearchParamsInit JSString
+instance IsURLSearchParamsInit String
+instance IsURLSearchParamsInit [[Text]]
+instance IsURLSearchParamsInit [[JSString]]
+instance IsURLSearchParamsInit [[String]]
+
+newtype XMLHttpRequestBody = XMLHttpRequestBody { unXMLHttpRequestBody :: JSVal }
+
+instance PToJSVal XMLHttpRequestBody where
+  pToJSVal = unXMLHttpRequestBody
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal XMLHttpRequestBody where
+  pFromJSVal = XMLHttpRequestBody
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal XMLHttpRequestBody where
+  toJSVal = return . unXMLHttpRequestBody
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal XMLHttpRequestBody where
+  fromJSVal = return . fmap XMLHttpRequestBody . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+class (FromJSVal o, ToJSVal o) => IsXMLHttpRequestBody o
+
+instance IsXMLHttpRequestBody XMLHttpRequestBody
+instance IsXMLHttpRequestBody BodyInit
+instance IsXMLHttpRequestBody Blob
+instance IsXMLHttpRequestBody BinaryData
+instance IsXMLHttpRequestBody BufferSource
+instance IsXMLHttpRequestBody ArrayBufferView
+instance IsXMLHttpRequestBody ArrayBuffer
+instance IsXMLHttpRequestBody FormData
+instance IsXMLHttpRequestBody Text
+instance IsXMLHttpRequestBody JSString
+instance IsXMLHttpRequestBody String
+instance IsXMLHttpRequestBody Document
+instance IsXMLHttpRequestBody XMLDocument
+instance IsXMLHttpRequestBody HTMLDocument
+
+
+-- | Functions for this inteface are in "GHCJS.DOM.ANGLEInstancedArrays".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ANGLEInstancedArrays Mozilla ANGLEInstancedArrays documentation>
+newtype ANGLEInstancedArrays = ANGLEInstancedArrays { unANGLEInstancedArrays :: JSVal }
+
+instance Eq (ANGLEInstancedArrays) where
+  (ANGLEInstancedArrays a) == (ANGLEInstancedArrays b) = js_eq a b
+
+instance PToJSVal ANGLEInstancedArrays where
+  pToJSVal = unANGLEInstancedArrays
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ANGLEInstancedArrays where
+  pFromJSVal = ANGLEInstancedArrays
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ANGLEInstancedArrays where
+  toJSVal = return . unANGLEInstancedArrays
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ANGLEInstancedArrays where
+  fromJSVal = return . fmap ANGLEInstancedArrays . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ANGLEInstancedArrays where
+  typeGType _ = gTypeANGLEInstancedArrays
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ANGLEInstancedArrays\"]" gTypeANGLEInstancedArrays :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AbstractWorker".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AbstractWorker Mozilla AbstractWorker documentation>
+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 #-}
+
+class (IsGObject o) => IsAbstractWorker o
+toAbstractWorker :: IsAbstractWorker o => o -> AbstractWorker
+toAbstractWorker = AbstractWorker . coerce
+
+instance IsAbstractWorker AbstractWorker
+instance IsGObject AbstractWorker where
+  typeGType _ = gTypeAbstractWorker
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AbstractWorker\"]" gTypeAbstractWorker :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Acceleration".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Acceleration Mozilla Acceleration documentation>
+newtype Acceleration = Acceleration { unAcceleration :: JSVal }
+
+instance Eq (Acceleration) where
+  (Acceleration a) == (Acceleration b) = js_eq a b
+
+instance PToJSVal Acceleration where
+  pToJSVal = unAcceleration
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal Acceleration where
+  pFromJSVal = Acceleration
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal Acceleration where
+  toJSVal = return . unAcceleration
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal Acceleration where
+  fromJSVal = return . fmap Acceleration . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject Acceleration where
+  typeGType _ = gTypeAcceleration
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Acceleration\"]" gTypeAcceleration :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AddEventListenerOptions".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventListenerOptions"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AddEventListenerOptions Mozilla AddEventListenerOptions documentation>
+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 #-}
+
+instance IsEventListenerOptions AddEventListenerOptions
+instance IsGObject AddEventListenerOptions where
+  typeGType _ = gTypeAddEventListenerOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AddEventListenerOptions\"]" gTypeAddEventListenerOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AesCbcParams".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CryptoAlgorithmParameters"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AesCbcParams Mozilla AesCbcParams documentation>
+newtype AesCbcParams = AesCbcParams { unAesCbcParams :: JSVal }
+
+instance Eq (AesCbcParams) where
+  (AesCbcParams a) == (AesCbcParams b) = js_eq a b
+
+instance PToJSVal AesCbcParams where
+  pToJSVal = unAesCbcParams
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal AesCbcParams where
+  pFromJSVal = AesCbcParams
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal AesCbcParams where
+  toJSVal = return . unAesCbcParams
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal AesCbcParams where
+  fromJSVal = return . fmap AesCbcParams . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsCryptoAlgorithmParameters AesCbcParams
+instance IsGObject AesCbcParams where
+  typeGType _ = gTypeAesCbcParams
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AesCbcParams\"]" gTypeAesCbcParams :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AesKeyGenParams".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CryptoAlgorithmParameters"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AesKeyGenParams Mozilla AesKeyGenParams documentation>
+newtype AesKeyGenParams = AesKeyGenParams { unAesKeyGenParams :: JSVal }
+
+instance Eq (AesKeyGenParams) where
+  (AesKeyGenParams a) == (AesKeyGenParams b) = js_eq a b
+
+instance PToJSVal AesKeyGenParams where
+  pToJSVal = unAesKeyGenParams
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal AesKeyGenParams where
+  pFromJSVal = AesKeyGenParams
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal AesKeyGenParams where
+  toJSVal = return . unAesKeyGenParams
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal AesKeyGenParams where
+  fromJSVal = return . fmap AesKeyGenParams . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsCryptoAlgorithmParameters AesKeyGenParams
+instance IsGObject AesKeyGenParams where
+  typeGType _ = gTypeAesKeyGenParams
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AesKeyGenParams\"]" gTypeAesKeyGenParams :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AnalyserNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode Mozilla AnalyserNode documentation>
+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 #-}
+
+instance IsAudioNode AnalyserNode
+instance IsEventTarget AnalyserNode
+instance IsGObject AnalyserNode where
+  typeGType _ = gTypeAnalyserNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AnalyserNode\"]" gTypeAnalyserNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Animatable".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Animatable Mozilla Animatable documentation>
+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 #-}
+
+class (IsGObject o) => IsAnimatable o
+toAnimatable :: IsAnimatable o => o -> Animatable
+toAnimatable = Animatable . coerce
+
+instance IsAnimatable Animatable
+instance IsGObject Animatable where
+  typeGType _ = gTypeAnimatable
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Animatable\"]" gTypeAnimatable :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Animation".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Animation Mozilla Animation documentation>
+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 #-}
+
+instance IsGObject Animation where
+  typeGType _ = gTypeAnimation
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Animation\"]" gTypeAnimation :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AnimationEffect".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AnimationEffect Mozilla AnimationEffect documentation>
+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 #-}
+
+class (IsGObject o) => IsAnimationEffect o
+toAnimationEffect :: IsAnimationEffect o => o -> AnimationEffect
+toAnimationEffect = AnimationEffect . coerce
+
+instance IsAnimationEffect AnimationEffect
+instance IsGObject AnimationEffect where
+  typeGType _ = gTypeAnimationEffect
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AnimationEffect\"]" gTypeAnimationEffect :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AnimationEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent Mozilla AnimationEvent documentation>
+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 #-}
+
+instance IsEvent AnimationEvent
+instance IsGObject AnimationEvent where
+  typeGType _ = gTypeAnimationEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AnimationEvent\"]" gTypeAnimationEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AnimationEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AnimationEventInit Mozilla AnimationEventInit documentation>
+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 #-}
+
+instance IsEventInit AnimationEventInit
+instance IsGObject AnimationEventInit where
+  typeGType _ = gTypeAnimationEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AnimationEventInit\"]" gTypeAnimationEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AnimationTimeline".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AnimationTimeline Mozilla AnimationTimeline documentation>
+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 #-}
+
+class (IsGObject o) => IsAnimationTimeline o
+toAnimationTimeline :: IsAnimationTimeline o => o -> AnimationTimeline
+toAnimationTimeline = AnimationTimeline . coerce
+
+instance IsAnimationTimeline AnimationTimeline
+instance IsGObject AnimationTimeline where
+  typeGType _ = gTypeAnimationTimeline
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AnimationTimeline\"]" gTypeAnimationTimeline :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayLineItem".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayLineItem Mozilla ApplePayLineItem documentation>
+newtype ApplePayLineItem = ApplePayLineItem { unApplePayLineItem :: JSVal }
+
+instance Eq (ApplePayLineItem) where
+  (ApplePayLineItem a) == (ApplePayLineItem b) = js_eq a b
+
+instance PToJSVal ApplePayLineItem where
+  pToJSVal = unApplePayLineItem
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayLineItem where
+  pFromJSVal = ApplePayLineItem
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayLineItem where
+  toJSVal = return . unApplePayLineItem
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayLineItem where
+  fromJSVal = return . fmap ApplePayLineItem . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ApplePayLineItem where
+  typeGType _ = gTypeApplePayLineItem
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayLineItem\"]" gTypeApplePayLineItem :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayPayment".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayPayment Mozilla ApplePayPayment documentation>
+newtype ApplePayPayment = ApplePayPayment { unApplePayPayment :: JSVal }
+
+instance Eq (ApplePayPayment) where
+  (ApplePayPayment a) == (ApplePayPayment b) = js_eq a b
+
+instance PToJSVal ApplePayPayment where
+  pToJSVal = unApplePayPayment
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayPayment where
+  pFromJSVal = ApplePayPayment
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayPayment where
+  toJSVal = return . unApplePayPayment
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayPayment where
+  fromJSVal = return . fmap ApplePayPayment . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ApplePayPayment where
+  typeGType _ = gTypeApplePayPayment
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayPayment\"]" gTypeApplePayPayment :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayPaymentAuthorizedEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayPaymentAuthorizedEvent Mozilla ApplePayPaymentAuthorizedEvent documentation>
+newtype ApplePayPaymentAuthorizedEvent = ApplePayPaymentAuthorizedEvent { unApplePayPaymentAuthorizedEvent :: JSVal }
+
+instance Eq (ApplePayPaymentAuthorizedEvent) where
+  (ApplePayPaymentAuthorizedEvent a) == (ApplePayPaymentAuthorizedEvent b) = js_eq a b
+
+instance PToJSVal ApplePayPaymentAuthorizedEvent where
+  pToJSVal = unApplePayPaymentAuthorizedEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayPaymentAuthorizedEvent where
+  pFromJSVal = ApplePayPaymentAuthorizedEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayPaymentAuthorizedEvent where
+  toJSVal = return . unApplePayPaymentAuthorizedEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayPaymentAuthorizedEvent where
+  fromJSVal = return . fmap ApplePayPaymentAuthorizedEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent ApplePayPaymentAuthorizedEvent
+instance IsGObject ApplePayPaymentAuthorizedEvent where
+  typeGType _ = gTypeApplePayPaymentAuthorizedEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayPaymentAuthorizedEvent\"]" gTypeApplePayPaymentAuthorizedEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayPaymentContact".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayPaymentContact Mozilla ApplePayPaymentContact documentation>
+newtype ApplePayPaymentContact = ApplePayPaymentContact { unApplePayPaymentContact :: JSVal }
+
+instance Eq (ApplePayPaymentContact) where
+  (ApplePayPaymentContact a) == (ApplePayPaymentContact b) = js_eq a b
+
+instance PToJSVal ApplePayPaymentContact where
+  pToJSVal = unApplePayPaymentContact
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayPaymentContact where
+  pFromJSVal = ApplePayPaymentContact
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayPaymentContact where
+  toJSVal = return . unApplePayPaymentContact
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayPaymentContact where
+  fromJSVal = return . fmap ApplePayPaymentContact . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ApplePayPaymentContact where
+  typeGType _ = gTypeApplePayPaymentContact
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayPaymentContact\"]" gTypeApplePayPaymentContact :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayPaymentMethod".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayPaymentMethod Mozilla ApplePayPaymentMethod documentation>
+newtype ApplePayPaymentMethod = ApplePayPaymentMethod { unApplePayPaymentMethod :: JSVal }
+
+instance Eq (ApplePayPaymentMethod) where
+  (ApplePayPaymentMethod a) == (ApplePayPaymentMethod b) = js_eq a b
+
+instance PToJSVal ApplePayPaymentMethod where
+  pToJSVal = unApplePayPaymentMethod
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayPaymentMethod where
+  pFromJSVal = ApplePayPaymentMethod
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayPaymentMethod where
+  toJSVal = return . unApplePayPaymentMethod
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayPaymentMethod where
+  fromJSVal = return . fmap ApplePayPaymentMethod . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ApplePayPaymentMethod where
+  typeGType _ = gTypeApplePayPaymentMethod
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayPaymentMethod\"]" gTypeApplePayPaymentMethod :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayPaymentMethodSelectedEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayPaymentMethodSelectedEvent Mozilla ApplePayPaymentMethodSelectedEvent documentation>
+newtype ApplePayPaymentMethodSelectedEvent = ApplePayPaymentMethodSelectedEvent { unApplePayPaymentMethodSelectedEvent :: JSVal }
+
+instance Eq (ApplePayPaymentMethodSelectedEvent) where
+  (ApplePayPaymentMethodSelectedEvent a) == (ApplePayPaymentMethodSelectedEvent b) = js_eq a b
+
+instance PToJSVal ApplePayPaymentMethodSelectedEvent where
+  pToJSVal = unApplePayPaymentMethodSelectedEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayPaymentMethodSelectedEvent where
+  pFromJSVal = ApplePayPaymentMethodSelectedEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayPaymentMethodSelectedEvent where
+  toJSVal = return . unApplePayPaymentMethodSelectedEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayPaymentMethodSelectedEvent where
+  fromJSVal = return . fmap ApplePayPaymentMethodSelectedEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent ApplePayPaymentMethodSelectedEvent
+instance IsGObject ApplePayPaymentMethodSelectedEvent where
+  typeGType _ = gTypeApplePayPaymentMethodSelectedEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayPaymentMethodSelectedEvent\"]" gTypeApplePayPaymentMethodSelectedEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayPaymentPass".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayPaymentPass Mozilla ApplePayPaymentPass documentation>
+newtype ApplePayPaymentPass = ApplePayPaymentPass { unApplePayPaymentPass :: JSVal }
+
+instance Eq (ApplePayPaymentPass) where
+  (ApplePayPaymentPass a) == (ApplePayPaymentPass b) = js_eq a b
+
+instance PToJSVal ApplePayPaymentPass where
+  pToJSVal = unApplePayPaymentPass
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayPaymentPass where
+  pFromJSVal = ApplePayPaymentPass
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayPaymentPass where
+  toJSVal = return . unApplePayPaymentPass
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayPaymentPass where
+  fromJSVal = return . fmap ApplePayPaymentPass . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ApplePayPaymentPass where
+  typeGType _ = gTypeApplePayPaymentPass
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayPaymentPass\"]" gTypeApplePayPaymentPass :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayPaymentRequest".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayPaymentRequest Mozilla ApplePayPaymentRequest documentation>
+newtype ApplePayPaymentRequest = ApplePayPaymentRequest { unApplePayPaymentRequest :: JSVal }
+
+instance Eq (ApplePayPaymentRequest) where
+  (ApplePayPaymentRequest a) == (ApplePayPaymentRequest b) = js_eq a b
+
+instance PToJSVal ApplePayPaymentRequest where
+  pToJSVal = unApplePayPaymentRequest
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayPaymentRequest where
+  pFromJSVal = ApplePayPaymentRequest
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayPaymentRequest where
+  toJSVal = return . unApplePayPaymentRequest
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayPaymentRequest where
+  fromJSVal = return . fmap ApplePayPaymentRequest . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ApplePayPaymentRequest where
+  typeGType _ = gTypeApplePayPaymentRequest
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayPaymentRequest\"]" gTypeApplePayPaymentRequest :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayPaymentToken".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayPaymentToken Mozilla ApplePayPaymentToken documentation>
+newtype ApplePayPaymentToken = ApplePayPaymentToken { unApplePayPaymentToken :: JSVal }
+
+instance Eq (ApplePayPaymentToken) where
+  (ApplePayPaymentToken a) == (ApplePayPaymentToken b) = js_eq a b
+
+instance PToJSVal ApplePayPaymentToken where
+  pToJSVal = unApplePayPaymentToken
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayPaymentToken where
+  pFromJSVal = ApplePayPaymentToken
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayPaymentToken where
+  toJSVal = return . unApplePayPaymentToken
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayPaymentToken where
+  fromJSVal = return . fmap ApplePayPaymentToken . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ApplePayPaymentToken where
+  typeGType _ = gTypeApplePayPaymentToken
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayPaymentToken\"]" gTypeApplePayPaymentToken :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePaySession".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePaySession Mozilla ApplePaySession documentation>
+newtype ApplePaySession = ApplePaySession { unApplePaySession :: JSVal }
+
+instance Eq (ApplePaySession) where
+  (ApplePaySession a) == (ApplePaySession b) = js_eq a b
+
+instance PToJSVal ApplePaySession where
+  pToJSVal = unApplePaySession
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePaySession where
+  pFromJSVal = ApplePaySession
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePaySession where
+  toJSVal = return . unApplePaySession
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePaySession where
+  fromJSVal = return . fmap ApplePaySession . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventTarget ApplePaySession
+instance IsGObject ApplePaySession where
+  typeGType _ = gTypeApplePaySession
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePaySession\"]" gTypeApplePaySession :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayShippingContactSelectedEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayShippingContactSelectedEvent Mozilla ApplePayShippingContactSelectedEvent documentation>
+newtype ApplePayShippingContactSelectedEvent = ApplePayShippingContactSelectedEvent { unApplePayShippingContactSelectedEvent :: JSVal }
+
+instance Eq (ApplePayShippingContactSelectedEvent) where
+  (ApplePayShippingContactSelectedEvent a) == (ApplePayShippingContactSelectedEvent b) = js_eq a b
+
+instance PToJSVal ApplePayShippingContactSelectedEvent where
+  pToJSVal = unApplePayShippingContactSelectedEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayShippingContactSelectedEvent where
+  pFromJSVal = ApplePayShippingContactSelectedEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayShippingContactSelectedEvent where
+  toJSVal = return . unApplePayShippingContactSelectedEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayShippingContactSelectedEvent where
+  fromJSVal = return . fmap ApplePayShippingContactSelectedEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent ApplePayShippingContactSelectedEvent
+instance IsGObject ApplePayShippingContactSelectedEvent where
+  typeGType _ = gTypeApplePayShippingContactSelectedEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayShippingContactSelectedEvent\"]" gTypeApplePayShippingContactSelectedEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayShippingMethod".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayShippingMethod Mozilla ApplePayShippingMethod documentation>
+newtype ApplePayShippingMethod = ApplePayShippingMethod { unApplePayShippingMethod :: JSVal }
+
+instance Eq (ApplePayShippingMethod) where
+  (ApplePayShippingMethod a) == (ApplePayShippingMethod b) = js_eq a b
+
+instance PToJSVal ApplePayShippingMethod where
+  pToJSVal = unApplePayShippingMethod
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayShippingMethod where
+  pFromJSVal = ApplePayShippingMethod
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayShippingMethod where
+  toJSVal = return . unApplePayShippingMethod
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayShippingMethod where
+  fromJSVal = return . fmap ApplePayShippingMethod . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ApplePayShippingMethod where
+  typeGType _ = gTypeApplePayShippingMethod
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayShippingMethod\"]" gTypeApplePayShippingMethod :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayShippingMethodSelectedEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayShippingMethodSelectedEvent Mozilla ApplePayShippingMethodSelectedEvent documentation>
+newtype ApplePayShippingMethodSelectedEvent = ApplePayShippingMethodSelectedEvent { unApplePayShippingMethodSelectedEvent :: JSVal }
+
+instance Eq (ApplePayShippingMethodSelectedEvent) where
+  (ApplePayShippingMethodSelectedEvent a) == (ApplePayShippingMethodSelectedEvent b) = js_eq a b
+
+instance PToJSVal ApplePayShippingMethodSelectedEvent where
+  pToJSVal = unApplePayShippingMethodSelectedEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayShippingMethodSelectedEvent where
+  pFromJSVal = ApplePayShippingMethodSelectedEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayShippingMethodSelectedEvent where
+  toJSVal = return . unApplePayShippingMethodSelectedEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayShippingMethodSelectedEvent where
+  fromJSVal = return . fmap ApplePayShippingMethodSelectedEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent ApplePayShippingMethodSelectedEvent
+instance IsGObject ApplePayShippingMethodSelectedEvent where
+  typeGType _ = gTypeApplePayShippingMethodSelectedEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayShippingMethodSelectedEvent\"]" gTypeApplePayShippingMethodSelectedEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplePayValidateMerchantEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplePayValidateMerchantEvent Mozilla ApplePayValidateMerchantEvent documentation>
+newtype ApplePayValidateMerchantEvent = ApplePayValidateMerchantEvent { unApplePayValidateMerchantEvent :: JSVal }
+
+instance Eq (ApplePayValidateMerchantEvent) where
+  (ApplePayValidateMerchantEvent a) == (ApplePayValidateMerchantEvent b) = js_eq a b
+
+instance PToJSVal ApplePayValidateMerchantEvent where
+  pToJSVal = unApplePayValidateMerchantEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplePayValidateMerchantEvent where
+  pFromJSVal = ApplePayValidateMerchantEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplePayValidateMerchantEvent where
+  toJSVal = return . unApplePayValidateMerchantEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplePayValidateMerchantEvent where
+  fromJSVal = return . fmap ApplePayValidateMerchantEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent ApplePayValidateMerchantEvent
+instance IsGObject ApplePayValidateMerchantEvent where
+  typeGType _ = gTypeApplePayValidateMerchantEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplePayValidateMerchantEvent\"]" gTypeApplePayValidateMerchantEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ApplicationCache".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ApplicationCache Mozilla ApplicationCache documentation>
+newtype ApplicationCache = ApplicationCache { unApplicationCache :: JSVal }
+
+instance Eq (ApplicationCache) where
+  (ApplicationCache a) == (ApplicationCache b) = js_eq a b
+
+instance PToJSVal ApplicationCache where
+  pToJSVal = unApplicationCache
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ApplicationCache where
+  pFromJSVal = ApplicationCache
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ApplicationCache where
+  toJSVal = return . unApplicationCache
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ApplicationCache where
+  fromJSVal = return . fmap ApplicationCache . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventTarget ApplicationCache
+instance IsGObject ApplicationCache where
+  typeGType _ = gTypeApplicationCache
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ApplicationCache\"]" gTypeApplicationCache :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AssignedNodesOptions".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AssignedNodesOptions Mozilla AssignedNodesOptions documentation>
+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 #-}
+
+instance IsGObject AssignedNodesOptions where
+  typeGType _ = gTypeAssignedNodesOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AssignedNodesOptions\"]" gTypeAssignedNodesOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Attr".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Attr Mozilla Attr documentation>
+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 #-}
+
+instance IsNode Attr
+instance IsEventTarget Attr
+instance IsGObject Attr where
+  typeGType _ = gTypeAttr
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Attr\"]" gTypeAttr :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AudioBuffer".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer Mozilla AudioBuffer documentation>
+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 #-}
+
+instance IsGObject AudioBuffer where
+  typeGType _ = gTypeAudioBuffer
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AudioBuffer\"]" gTypeAudioBuffer :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AudioBufferSourceNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode Mozilla AudioBufferSourceNode documentation>
+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 #-}
+
+instance IsAudioNode AudioBufferSourceNode
+instance IsEventTarget AudioBufferSourceNode
+instance IsGObject AudioBufferSourceNode where
+  typeGType _ = gTypeAudioBufferSourceNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AudioBufferSourceNode\"]" gTypeAudioBufferSourceNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AudioContext".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioContext Mozilla AudioContext documentation>
+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 #-}
+
+class (IsEventTarget o, IsGObject o) => IsAudioContext o
+toAudioContext :: IsAudioContext o => o -> AudioContext
+toAudioContext = AudioContext . coerce
+
+instance IsAudioContext AudioContext
+instance IsEventTarget AudioContext
+instance IsGObject AudioContext where
+  typeGType _ = gTypeAudioContext
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AudioContext\"]" gTypeAudioContext :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AudioDestinationNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioDestinationNode Mozilla AudioDestinationNode documentation>
+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 #-}
+
+instance IsAudioNode AudioDestinationNode
+instance IsEventTarget AudioDestinationNode
+instance IsGObject AudioDestinationNode where
+  typeGType _ = gTypeAudioDestinationNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AudioDestinationNode\"]" gTypeAudioDestinationNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AudioListener".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioListener Mozilla AudioListener documentation>
+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 #-}
+
+instance IsGObject AudioListener where
+  typeGType _ = gTypeAudioListener
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AudioListener\"]" gTypeAudioListener :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AudioNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioNode Mozilla AudioNode documentation>
+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 #-}
+
+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 #-}
+foreign import javascript unsafe "window[\"AudioNode\"]" gTypeAudioNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AudioParam".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioParam Mozilla AudioParam documentation>
+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 #-}
+
+instance IsGObject AudioParam where
+  typeGType _ = gTypeAudioParam
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AudioParam\"]" gTypeAudioParam :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AudioProcessingEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioProcessingEvent Mozilla AudioProcessingEvent documentation>
+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 #-}
+
+instance IsEvent AudioProcessingEvent
+instance IsGObject AudioProcessingEvent where
+  typeGType _ = gTypeAudioProcessingEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AudioProcessingEvent\"]" gTypeAudioProcessingEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AudioTrack".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack Mozilla AudioTrack documentation>
+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 #-}
+
+instance IsGObject AudioTrack where
+  typeGType _ = gTypeAudioTrack
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AudioTrack\"]" gTypeAudioTrack :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AudioTrackList".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AudioTrackList Mozilla AudioTrackList documentation>
+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 #-}
+
+instance IsEventTarget AudioTrackList
+instance IsGObject AudioTrackList where
+  typeGType _ = gTypeAudioTrackList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AudioTrackList\"]" gTypeAudioTrackList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AutocompleteErrorEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AutocompleteErrorEvent Mozilla AutocompleteErrorEvent documentation>
+newtype AutocompleteErrorEvent = AutocompleteErrorEvent { unAutocompleteErrorEvent :: JSVal }
+
+instance Eq (AutocompleteErrorEvent) where
+  (AutocompleteErrorEvent a) == (AutocompleteErrorEvent b) = js_eq a b
+
+instance PToJSVal AutocompleteErrorEvent where
+  pToJSVal = unAutocompleteErrorEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal AutocompleteErrorEvent where
+  pFromJSVal = AutocompleteErrorEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal AutocompleteErrorEvent where
+  toJSVal = return . unAutocompleteErrorEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal AutocompleteErrorEvent where
+  fromJSVal = return . fmap AutocompleteErrorEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent AutocompleteErrorEvent
+instance IsGObject AutocompleteErrorEvent where
+  typeGType _ = gTypeAutocompleteErrorEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AutocompleteErrorEvent\"]" gTypeAutocompleteErrorEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.AutocompleteErrorEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/AutocompleteErrorEventInit Mozilla AutocompleteErrorEventInit documentation>
+newtype AutocompleteErrorEventInit = AutocompleteErrorEventInit { unAutocompleteErrorEventInit :: JSVal }
+
+instance Eq (AutocompleteErrorEventInit) where
+  (AutocompleteErrorEventInit a) == (AutocompleteErrorEventInit b) = js_eq a b
+
+instance PToJSVal AutocompleteErrorEventInit where
+  pToJSVal = unAutocompleteErrorEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal AutocompleteErrorEventInit where
+  pFromJSVal = AutocompleteErrorEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal AutocompleteErrorEventInit where
+  toJSVal = return . unAutocompleteErrorEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal AutocompleteErrorEventInit where
+  fromJSVal = return . fmap AutocompleteErrorEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit AutocompleteErrorEventInit
+instance IsGObject AutocompleteErrorEventInit where
+  typeGType _ = gTypeAutocompleteErrorEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"AutocompleteErrorEventInit\"]" gTypeAutocompleteErrorEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.BarProp".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/BarProp Mozilla BarProp documentation>
+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 #-}
+
+instance IsGObject BarProp where
+  typeGType _ = gTypeBarProp
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"BarProp\"]" gTypeBarProp :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.BeforeLoadEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/BeforeLoadEvent Mozilla BeforeLoadEvent documentation>
+newtype BeforeLoadEvent = BeforeLoadEvent { unBeforeLoadEvent :: JSVal }
+
+instance Eq (BeforeLoadEvent) where
+  (BeforeLoadEvent a) == (BeforeLoadEvent b) = js_eq a b
+
+instance PToJSVal BeforeLoadEvent where
+  pToJSVal = unBeforeLoadEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal BeforeLoadEvent where
+  pFromJSVal = BeforeLoadEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal BeforeLoadEvent where
+  toJSVal = return . unBeforeLoadEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal BeforeLoadEvent where
+  fromJSVal = return . fmap BeforeLoadEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent BeforeLoadEvent
+instance IsGObject BeforeLoadEvent where
+  typeGType _ = gTypeBeforeLoadEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"BeforeLoadEvent\"]" gTypeBeforeLoadEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.BeforeLoadEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/BeforeLoadEventInit Mozilla BeforeLoadEventInit documentation>
+newtype BeforeLoadEventInit = BeforeLoadEventInit { unBeforeLoadEventInit :: JSVal }
+
+instance Eq (BeforeLoadEventInit) where
+  (BeforeLoadEventInit a) == (BeforeLoadEventInit b) = js_eq a b
+
+instance PToJSVal BeforeLoadEventInit where
+  pToJSVal = unBeforeLoadEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal BeforeLoadEventInit where
+  pFromJSVal = BeforeLoadEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal BeforeLoadEventInit where
+  toJSVal = return . unBeforeLoadEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal BeforeLoadEventInit where
+  fromJSVal = return . fmap BeforeLoadEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit BeforeLoadEventInit
+instance IsGObject BeforeLoadEventInit where
+  typeGType _ = gTypeBeforeLoadEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"BeforeLoadEventInit\"]" gTypeBeforeLoadEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.BeforeUnloadEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/BeforeUnloadEvent Mozilla BeforeUnloadEvent documentation>
+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 #-}
+
+instance IsEvent BeforeUnloadEvent
+instance IsGObject BeforeUnloadEvent where
+  typeGType _ = gTypeBeforeUnloadEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"BeforeUnloadEvent\"]" gTypeBeforeUnloadEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.BiquadFilterNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode Mozilla BiquadFilterNode documentation>
+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 #-}
+
+instance IsAudioNode BiquadFilterNode
+instance IsEventTarget BiquadFilterNode
+instance IsGObject BiquadFilterNode where
+  typeGType _ = gTypeBiquadFilterNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"BiquadFilterNode\"]" gTypeBiquadFilterNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Blob".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Blob Mozilla Blob documentation>
+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 #-}
+
+class (IsGObject o) => IsBlob o
+toBlob :: IsBlob o => o -> Blob
+toBlob = Blob . coerce
+
+instance IsBlob Blob
+instance IsGObject Blob where
+  typeGType _ = gTypeBlob
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Blob\"]" gTypeBlob :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.BlobPropertyBag".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/BlobPropertyBag Mozilla BlobPropertyBag documentation>
+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 #-}
+
+class (IsGObject o) => IsBlobPropertyBag o
+toBlobPropertyBag :: IsBlobPropertyBag o => o -> BlobPropertyBag
+toBlobPropertyBag = BlobPropertyBag . coerce
+
+instance IsBlobPropertyBag BlobPropertyBag
+instance IsGObject BlobPropertyBag where
+  typeGType _ = gTypeBlobPropertyBag
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"BlobPropertyBag\"]" gTypeBlobPropertyBag :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Body".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Body Mozilla Body documentation>
+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 #-}
+
+class (IsGObject o) => IsBody o
+toBody :: IsBody o => o -> Body
+toBody = Body . coerce
+
+instance IsBody Body
+instance IsGObject Body where
+  typeGType _ = gTypeBody
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Body\"]" gTypeBody :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ByteLengthQueuingStrategy".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ByteLengthQueuingStrategy Mozilla ByteLengthQueuingStrategy documentation>
+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 #-}
+
+instance IsGObject ByteLengthQueuingStrategy where
+  typeGType _ = gTypeByteLengthQueuingStrategy
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ByteLengthQueuingStrategy\"]" gTypeByteLengthQueuingStrategy :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CDATASection".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Text"
+--     * "GHCJS.DOM.CharacterData"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Slotable"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CDATASection Mozilla CDATASection documentation>
+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 #-}
+
+instance IsText CDATASection
+instance IsCharacterData CDATASection
+instance IsNode CDATASection
+instance IsEventTarget CDATASection
+instance IsNonDocumentTypeChildNode CDATASection
+instance IsChildNode CDATASection
+instance IsSlotable CDATASection
+instance IsGObject CDATASection where
+  typeGType _ = gTypeCDATASection
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CDATASection\"]" gTypeCDATASection :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSS".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSS Mozilla CSS documentation>
+newtype CSS = CSS { unCSS :: JSVal }
+
+instance Eq (CSS) where
+  (CSS a) == (CSS b) = js_eq a b
+
+instance PToJSVal CSS where
+  pToJSVal = unCSS
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CSS where
+  pFromJSVal = CSS
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CSS where
+  toJSVal = return . unCSS
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CSS where
+  fromJSVal = return . fmap CSS . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject CSS where
+  typeGType _ = gTypeCSS
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSS\"]" gTypeCSS :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSFontFaceLoadEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceLoadEvent Mozilla CSSFontFaceLoadEvent documentation>
+newtype CSSFontFaceLoadEvent = CSSFontFaceLoadEvent { unCSSFontFaceLoadEvent :: JSVal }
+
+instance Eq (CSSFontFaceLoadEvent) where
+  (CSSFontFaceLoadEvent a) == (CSSFontFaceLoadEvent b) = js_eq a b
+
+instance PToJSVal CSSFontFaceLoadEvent where
+  pToJSVal = unCSSFontFaceLoadEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CSSFontFaceLoadEvent where
+  pFromJSVal = CSSFontFaceLoadEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CSSFontFaceLoadEvent where
+  toJSVal = return . unCSSFontFaceLoadEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CSSFontFaceLoadEvent where
+  fromJSVal = return . fmap CSSFontFaceLoadEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent CSSFontFaceLoadEvent
+instance IsGObject CSSFontFaceLoadEvent where
+  typeGType _ = gTypeCSSFontFaceLoadEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSFontFaceLoadEvent\"]" gTypeCSSFontFaceLoadEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSFontFaceLoadEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceLoadEventInit Mozilla CSSFontFaceLoadEventInit documentation>
+newtype CSSFontFaceLoadEventInit = CSSFontFaceLoadEventInit { unCSSFontFaceLoadEventInit :: JSVal }
+
+instance Eq (CSSFontFaceLoadEventInit) where
+  (CSSFontFaceLoadEventInit a) == (CSSFontFaceLoadEventInit b) = js_eq a b
+
+instance PToJSVal CSSFontFaceLoadEventInit where
+  pToJSVal = unCSSFontFaceLoadEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CSSFontFaceLoadEventInit where
+  pFromJSVal = CSSFontFaceLoadEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CSSFontFaceLoadEventInit where
+  toJSVal = return . unCSSFontFaceLoadEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CSSFontFaceLoadEventInit where
+  fromJSVal = return . fmap CSSFontFaceLoadEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit CSSFontFaceLoadEventInit
+instance IsGObject CSSFontFaceLoadEventInit where
+  typeGType _ = gTypeCSSFontFaceLoadEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSFontFaceLoadEventInit\"]" gTypeCSSFontFaceLoadEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSFontFaceRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFaceRule Mozilla CSSFontFaceRule documentation>
+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 #-}
+
+instance IsCSSRule CSSFontFaceRule
+instance IsGObject CSSFontFaceRule where
+  typeGType _ = gTypeCSSFontFaceRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSFontFaceRule\"]" gTypeCSSFontFaceRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSImportRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule Mozilla CSSImportRule documentation>
+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 #-}
+
+instance IsCSSRule CSSImportRule
+instance IsGObject CSSImportRule where
+  typeGType _ = gTypeCSSImportRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSImportRule\"]" gTypeCSSImportRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSKeyframeRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframeRule Mozilla CSSKeyframeRule documentation>
+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 #-}
+
+instance IsCSSRule CSSKeyframeRule
+instance IsGObject CSSKeyframeRule where
+  typeGType _ = gTypeCSSKeyframeRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSKeyframeRule\"]" gTypeCSSKeyframeRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSKeyframesRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSKeyframesRule Mozilla CSSKeyframesRule documentation>
+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 #-}
+
+instance IsCSSRule CSSKeyframesRule
+instance IsGObject CSSKeyframesRule where
+  typeGType _ = gTypeCSSKeyframesRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSKeyframesRule\"]" gTypeCSSKeyframesRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSMediaRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule Mozilla CSSMediaRule documentation>
+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 #-}
+
+instance IsCSSRule CSSMediaRule
+instance IsGObject CSSMediaRule where
+  typeGType _ = gTypeCSSMediaRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSMediaRule\"]" gTypeCSSMediaRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSNamespaceRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSNamespaceRule Mozilla CSSNamespaceRule documentation>
+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 #-}
+
+instance IsCSSRule CSSNamespaceRule
+instance IsGObject CSSNamespaceRule where
+  typeGType _ = gTypeCSSNamespaceRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSNamespaceRule\"]" gTypeCSSNamespaceRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSPageRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSPageRule Mozilla CSSPageRule documentation>
+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 #-}
+
+instance IsCSSRule CSSPageRule
+instance IsGObject CSSPageRule where
+  typeGType _ = gTypeCSSPageRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSPageRule\"]" gTypeCSSPageRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSPrimitiveValue".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSValue"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSPrimitiveValue Mozilla CSSPrimitiveValue documentation>
+newtype CSSPrimitiveValue = CSSPrimitiveValue { unCSSPrimitiveValue :: JSVal }
+
+instance Eq (CSSPrimitiveValue) where
+  (CSSPrimitiveValue a) == (CSSPrimitiveValue b) = js_eq a b
+
+instance PToJSVal CSSPrimitiveValue where
+  pToJSVal = unCSSPrimitiveValue
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CSSPrimitiveValue where
+  pFromJSVal = CSSPrimitiveValue
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CSSPrimitiveValue where
+  toJSVal = return . unCSSPrimitiveValue
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CSSPrimitiveValue where
+  fromJSVal = return . fmap CSSPrimitiveValue . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsCSSValue CSSPrimitiveValue
+instance IsGObject CSSPrimitiveValue where
+  typeGType _ = gTypeCSSPrimitiveValue
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSPrimitiveValue\"]" gTypeCSSPrimitiveValue :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSRule".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSRule Mozilla CSSRule documentation>
+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 #-}
+
+class (IsGObject o) => IsCSSRule o
+toCSSRule :: IsCSSRule o => o -> CSSRule
+toCSSRule = CSSRule . coerce
+
+instance IsCSSRule CSSRule
+instance IsGObject CSSRule where
+  typeGType _ = gTypeCSSRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSRule\"]" gTypeCSSRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSRuleList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSRuleList Mozilla CSSRuleList documentation>
+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 #-}
+
+instance IsGObject CSSRuleList where
+  typeGType _ = gTypeCSSRuleList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSRuleList\"]" gTypeCSSRuleList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSStyleDeclaration".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration Mozilla CSSStyleDeclaration documentation>
+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 #-}
+
+instance IsGObject CSSStyleDeclaration where
+  typeGType _ = gTypeCSSStyleDeclaration
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSStyleDeclaration\"]" gTypeCSSStyleDeclaration :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSStyleRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleRule Mozilla CSSStyleRule documentation>
+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 #-}
+
+instance IsCSSRule CSSStyleRule
+instance IsGObject CSSStyleRule where
+  typeGType _ = gTypeCSSStyleRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSStyleRule\"]" gTypeCSSStyleRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSStyleSheet".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.StyleSheet"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet Mozilla CSSStyleSheet documentation>
+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 #-}
+
+instance IsStyleSheet CSSStyleSheet
+instance IsGObject CSSStyleSheet where
+  typeGType _ = gTypeCSSStyleSheet
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSStyleSheet\"]" gTypeCSSStyleSheet :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSSupportsRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSSupportsRule Mozilla CSSSupportsRule documentation>
+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 #-}
+
+instance IsCSSRule CSSSupportsRule
+instance IsGObject CSSSupportsRule where
+  typeGType _ = gTypeCSSSupportsRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSSupportsRule\"]" gTypeCSSSupportsRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSUnknownRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSUnknownRule Mozilla CSSUnknownRule documentation>
+newtype CSSUnknownRule = CSSUnknownRule { unCSSUnknownRule :: JSVal }
+
+instance Eq (CSSUnknownRule) where
+  (CSSUnknownRule a) == (CSSUnknownRule b) = js_eq a b
+
+instance PToJSVal CSSUnknownRule where
+  pToJSVal = unCSSUnknownRule
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CSSUnknownRule where
+  pFromJSVal = CSSUnknownRule
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CSSUnknownRule where
+  toJSVal = return . unCSSUnknownRule
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CSSUnknownRule where
+  fromJSVal = return . fmap CSSUnknownRule . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsCSSRule CSSUnknownRule
+instance IsGObject CSSUnknownRule where
+  typeGType _ = gTypeCSSUnknownRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSUnknownRule\"]" gTypeCSSUnknownRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSValue".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSValue Mozilla CSSValue documentation>
+newtype CSSValue = CSSValue { unCSSValue :: JSVal }
+
+instance Eq (CSSValue) where
+  (CSSValue a) == (CSSValue b) = js_eq a b
+
+instance PToJSVal CSSValue where
+  pToJSVal = unCSSValue
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CSSValue where
+  pFromJSVal = CSSValue
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CSSValue where
+  toJSVal = return . unCSSValue
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CSSValue where
+  fromJSVal = return . fmap CSSValue . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class (IsGObject o) => IsCSSValue o
+toCSSValue :: IsCSSValue o => o -> CSSValue
+toCSSValue = CSSValue . coerce
+
+instance IsCSSValue CSSValue
+instance IsGObject CSSValue where
+  typeGType _ = gTypeCSSValue
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSValue\"]" gTypeCSSValue :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CSSValueList".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSValue"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CSSValueList Mozilla CSSValueList documentation>
+newtype CSSValueList = CSSValueList { unCSSValueList :: JSVal }
+
+instance Eq (CSSValueList) where
+  (CSSValueList a) == (CSSValueList b) = js_eq a b
+
+instance PToJSVal CSSValueList where
+  pToJSVal = unCSSValueList
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CSSValueList where
+  pFromJSVal = CSSValueList
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CSSValueList where
+  toJSVal = return . unCSSValueList
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CSSValueList where
+  fromJSVal = return . fmap CSSValueList . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsCSSValue CSSValueList
+instance IsGObject CSSValueList where
+  typeGType _ = gTypeCSSValueList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CSSValueList\"]" gTypeCSSValueList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CanvasGradient".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasGradient Mozilla CanvasGradient documentation>
+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 #-}
+
+instance IsGObject CanvasGradient where
+  typeGType _ = gTypeCanvasGradient
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CanvasGradient\"]" gTypeCanvasGradient :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CanvasPath".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPath Mozilla CanvasPath documentation>
+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 #-}
+
+class (IsGObject o) => IsCanvasPath o
+toCanvasPath :: IsCanvasPath o => o -> CanvasPath
+toCanvasPath = CanvasPath . coerce
+
+instance IsCanvasPath CanvasPath
+instance IsGObject CanvasPath where
+  typeGType _ = gTypeCanvasPath
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CanvasPath\"]" gTypeCanvasPath :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CanvasPattern".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasPattern Mozilla CanvasPattern documentation>
+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 #-}
+
+instance IsGObject CanvasPattern where
+  typeGType _ = gTypeCanvasPattern
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CanvasPattern\"]" gTypeCanvasPattern :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CanvasProxy".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasProxy Mozilla CanvasProxy documentation>
+newtype CanvasProxy = CanvasProxy { unCanvasProxy :: JSVal }
+
+instance Eq (CanvasProxy) where
+  (CanvasProxy a) == (CanvasProxy b) = js_eq a b
+
+instance PToJSVal CanvasProxy where
+  pToJSVal = unCanvasProxy
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CanvasProxy where
+  pFromJSVal = CanvasProxy
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CanvasProxy where
+  toJSVal = return . unCanvasProxy
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CanvasProxy where
+  fromJSVal = return . fmap CanvasProxy . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject CanvasProxy where
+  typeGType _ = gTypeCanvasProxy
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CanvasProxy\"]" gTypeCanvasProxy :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CanvasRenderingContext2D".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CanvasPath"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D Mozilla CanvasRenderingContext2D documentation>
+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 #-}
+
+instance IsCanvasPath CanvasRenderingContext2D
+instance IsGObject CanvasRenderingContext2D where
+  typeGType _ = gTypeCanvasRenderingContext2D
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CanvasRenderingContext2D\"]" gTypeCanvasRenderingContext2D :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ChannelMergerNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ChannelMergerNode Mozilla ChannelMergerNode documentation>
+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 #-}
+
+instance IsAudioNode ChannelMergerNode
+instance IsEventTarget ChannelMergerNode
+instance IsGObject ChannelMergerNode where
+  typeGType _ = gTypeChannelMergerNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ChannelMergerNode\"]" gTypeChannelMergerNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ChannelSplitterNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ChannelSplitterNode Mozilla ChannelSplitterNode documentation>
+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 #-}
+
+instance IsAudioNode ChannelSplitterNode
+instance IsEventTarget ChannelSplitterNode
+instance IsGObject ChannelSplitterNode where
+  typeGType _ = gTypeChannelSplitterNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ChannelSplitterNode\"]" gTypeChannelSplitterNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CharacterData".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CharacterData Mozilla CharacterData documentation>
+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 #-}
+
+class (IsNode o, IsEventTarget o, IsNonDocumentTypeChildNode o, IsChildNode o, IsGObject o) => IsCharacterData o
+toCharacterData :: IsCharacterData o => o -> CharacterData
+toCharacterData = CharacterData . coerce
+
+instance IsCharacterData CharacterData
+instance IsNode CharacterData
+instance IsEventTarget CharacterData
+instance IsNonDocumentTypeChildNode CharacterData
+instance IsChildNode CharacterData
+instance IsGObject CharacterData where
+  typeGType _ = gTypeCharacterData
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CharacterData\"]" gTypeCharacterData :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ChildNode".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ChildNode Mozilla ChildNode documentation>
+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 #-}
+
+class (IsGObject o) => IsChildNode o
+toChildNode :: IsChildNode o => o -> ChildNode
+toChildNode = ChildNode . coerce
+
+instance IsChildNode ChildNode
+instance IsGObject ChildNode where
+  typeGType _ = gTypeChildNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ChildNode\"]" gTypeChildNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ClientRect".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ClientRect Mozilla ClientRect documentation>
+newtype ClientRect = ClientRect { unClientRect :: JSVal }
+
+instance Eq (ClientRect) where
+  (ClientRect a) == (ClientRect b) = js_eq a b
+
+instance PToJSVal ClientRect where
+  pToJSVal = unClientRect
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ClientRect where
+  pFromJSVal = ClientRect
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ClientRect where
+  toJSVal = return . unClientRect
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ClientRect where
+  fromJSVal = return . fmap ClientRect . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ClientRect where
+  typeGType _ = gTypeClientRect
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ClientRect\"]" gTypeClientRect :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ClientRectList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ClientRectList Mozilla ClientRectList documentation>
+newtype ClientRectList = ClientRectList { unClientRectList :: JSVal }
+
+instance Eq (ClientRectList) where
+  (ClientRectList a) == (ClientRectList b) = js_eq a b
+
+instance PToJSVal ClientRectList where
+  pToJSVal = unClientRectList
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ClientRectList where
+  pFromJSVal = ClientRectList
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ClientRectList where
+  toJSVal = return . unClientRectList
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ClientRectList where
+  fromJSVal = return . fmap ClientRectList . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ClientRectList where
+  typeGType _ = gTypeClientRectList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ClientRectList\"]" gTypeClientRectList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ClipboardEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent Mozilla ClipboardEvent documentation>
+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 #-}
+
+instance IsEvent ClipboardEvent
+instance IsGObject ClipboardEvent where
+  typeGType _ = gTypeClipboardEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ClipboardEvent\"]" gTypeClipboardEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ClipboardEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEventInit Mozilla ClipboardEventInit documentation>
+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 #-}
+
+instance IsEventInit ClipboardEventInit
+instance IsGObject ClipboardEventInit where
+  typeGType _ = gTypeClipboardEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ClipboardEventInit\"]" gTypeClipboardEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CloseEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent Mozilla CloseEvent documentation>
+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 #-}
+
+instance IsEvent CloseEvent
+instance IsGObject CloseEvent where
+  typeGType _ = gTypeCloseEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CloseEvent\"]" gTypeCloseEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CloseEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CloseEventInit Mozilla CloseEventInit documentation>
+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 #-}
+
+instance IsEventInit CloseEventInit
+instance IsGObject CloseEventInit where
+  typeGType _ = gTypeCloseEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CloseEventInit\"]" gTypeCloseEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CommandLineAPIHost".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CommandLineAPIHost Mozilla CommandLineAPIHost documentation>
+newtype CommandLineAPIHost = CommandLineAPIHost { unCommandLineAPIHost :: JSVal }
+
+instance Eq (CommandLineAPIHost) where
+  (CommandLineAPIHost a) == (CommandLineAPIHost b) = js_eq a b
+
+instance PToJSVal CommandLineAPIHost where
+  pToJSVal = unCommandLineAPIHost
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CommandLineAPIHost where
+  pFromJSVal = CommandLineAPIHost
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CommandLineAPIHost where
+  toJSVal = return . unCommandLineAPIHost
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CommandLineAPIHost where
+  fromJSVal = return . fmap CommandLineAPIHost . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject CommandLineAPIHost where
+  typeGType _ = gTypeCommandLineAPIHost
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CommandLineAPIHost\"]" gTypeCommandLineAPIHost :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Comment".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CharacterData"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Comment Mozilla Comment documentation>
+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 #-}
+
+instance IsCharacterData Comment
+instance IsNode Comment
+instance IsEventTarget Comment
+instance IsNonDocumentTypeChildNode Comment
+instance IsChildNode Comment
+instance IsGObject Comment where
+  typeGType _ = gTypeComment
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Comment\"]" gTypeComment :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CompositionEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEvent"
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent Mozilla CompositionEvent documentation>
+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 #-}
+
+instance IsUIEvent CompositionEvent
+instance IsEvent CompositionEvent
+instance IsGObject CompositionEvent where
+  typeGType _ = gTypeCompositionEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CompositionEvent\"]" gTypeCompositionEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CompositionEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEventInit"
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CompositionEventInit Mozilla CompositionEventInit documentation>
+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 #-}
+
+instance IsUIEventInit CompositionEventInit
+instance IsEventInit CompositionEventInit
+instance IsGObject CompositionEventInit where
+  typeGType _ = gTypeCompositionEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CompositionEventInit\"]" gTypeCompositionEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ConstrainBooleanParameters".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ConstrainBooleanParameters Mozilla ConstrainBooleanParameters documentation>
+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 #-}
+
+instance IsGObject ConstrainBooleanParameters where
+  typeGType _ = gTypeConstrainBooleanParameters
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ConstrainBooleanParameters\"]" gTypeConstrainBooleanParameters :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ConstrainDOMStringParameters".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ConstrainDOMStringParameters Mozilla ConstrainDOMStringParameters documentation>
+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 #-}
+
+instance IsGObject ConstrainDOMStringParameters where
+  typeGType _ = gTypeConstrainDOMStringParameters
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ConstrainDOMStringParameters\"]" gTypeConstrainDOMStringParameters :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ConstrainDoubleRange".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.DoubleRange"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ConstrainDoubleRange Mozilla ConstrainDoubleRange documentation>
+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 #-}
+
+instance IsDoubleRange ConstrainDoubleRange
+instance IsGObject ConstrainDoubleRange where
+  typeGType _ = gTypeConstrainDoubleRange
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ConstrainDoubleRange\"]" gTypeConstrainDoubleRange :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ConstrainLongRange".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.LongRange"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ConstrainLongRange Mozilla ConstrainLongRange documentation>
+newtype ConstrainLongRange = ConstrainLongRange { unConstrainLongRange :: JSVal }
+
+instance Eq (ConstrainLongRange) where
+  (ConstrainLongRange a) == (ConstrainLongRange b) = js_eq a b
+
+instance PToJSVal ConstrainLongRange where
+  pToJSVal = unConstrainLongRange
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ConstrainLongRange where
+  pFromJSVal = ConstrainLongRange
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ConstrainLongRange where
+  toJSVal = return . unConstrainLongRange
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ConstrainLongRange where
+  fromJSVal = return . fmap ConstrainLongRange . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsLongRange ConstrainLongRange
+instance IsGObject ConstrainLongRange where
+  typeGType _ = gTypeConstrainLongRange
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ConstrainLongRange\"]" gTypeConstrainLongRange :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ConvolverNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode Mozilla ConvolverNode documentation>
+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 #-}
+
+instance IsAudioNode ConvolverNode
+instance IsEventTarget ConvolverNode
+instance IsGObject ConvolverNode where
+  typeGType _ = gTypeConvolverNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ConvolverNode\"]" gTypeConvolverNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Coordinates".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Coordinates Mozilla Coordinates documentation>
+newtype Coordinates = Coordinates { unCoordinates :: JSVal }
+
+instance Eq (Coordinates) where
+  (Coordinates a) == (Coordinates b) = js_eq a b
+
+instance PToJSVal Coordinates where
+  pToJSVal = unCoordinates
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal Coordinates where
+  pFromJSVal = Coordinates
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal Coordinates where
+  toJSVal = return . unCoordinates
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal Coordinates where
+  fromJSVal = return . fmap Coordinates . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject Coordinates where
+  typeGType _ = gTypeCoordinates
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Coordinates\"]" gTypeCoordinates :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CountQueuingStrategy".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CountQueuingStrategy Mozilla CountQueuingStrategy documentation>
+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 #-}
+
+instance IsGObject CountQueuingStrategy where
+  typeGType _ = gTypeCountQueuingStrategy
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CountQueuingStrategy\"]" gTypeCountQueuingStrategy :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Counter".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Counter Mozilla Counter documentation>
+newtype Counter = Counter { unCounter :: JSVal }
+
+instance Eq (Counter) where
+  (Counter a) == (Counter b) = js_eq a b
+
+instance PToJSVal Counter where
+  pToJSVal = unCounter
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal Counter where
+  pFromJSVal = Counter
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal Counter where
+  toJSVal = return . unCounter
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal Counter where
+  fromJSVal = return . fmap Counter . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject Counter where
+  typeGType _ = gTypeCounter
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Counter\"]" gTypeCounter :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Crypto".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Crypto Mozilla Crypto documentation>
+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 #-}
+
+instance IsGObject Crypto where
+  typeGType _ = gTypeCrypto
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Crypto\"]" gTypeCrypto :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CryptoAlgorithmParameters".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CryptoAlgorithmParameters Mozilla CryptoAlgorithmParameters documentation>
+newtype CryptoAlgorithmParameters = CryptoAlgorithmParameters { unCryptoAlgorithmParameters :: JSVal }
+
+instance Eq (CryptoAlgorithmParameters) where
+  (CryptoAlgorithmParameters a) == (CryptoAlgorithmParameters b) = js_eq a b
+
+instance PToJSVal CryptoAlgorithmParameters where
+  pToJSVal = unCryptoAlgorithmParameters
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal CryptoAlgorithmParameters where
+  pFromJSVal = CryptoAlgorithmParameters
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal CryptoAlgorithmParameters where
+  toJSVal = return . unCryptoAlgorithmParameters
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal CryptoAlgorithmParameters where
+  fromJSVal = return . fmap CryptoAlgorithmParameters . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class (IsGObject o) => IsCryptoAlgorithmParameters o
+toCryptoAlgorithmParameters :: IsCryptoAlgorithmParameters o => o -> CryptoAlgorithmParameters
+toCryptoAlgorithmParameters = CryptoAlgorithmParameters . coerce
+
+instance IsCryptoAlgorithmParameters CryptoAlgorithmParameters
+instance IsGObject CryptoAlgorithmParameters where
+  typeGType _ = gTypeCryptoAlgorithmParameters
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CryptoAlgorithmParameters\"]" gTypeCryptoAlgorithmParameters :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CryptoKey".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey Mozilla CryptoKey documentation>
+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 #-}
+
+instance IsGObject CryptoKey where
+  typeGType _ = gTypeCryptoKey
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CryptoKey\"]" gTypeCryptoKey :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CryptoKeyPair".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CryptoKeyPair Mozilla CryptoKeyPair documentation>
+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 #-}
+
+instance IsGObject CryptoKeyPair where
+  typeGType _ = gTypeCryptoKeyPair
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CryptoKeyPair\"]" gTypeCryptoKeyPair :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CustomElementRegistry".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry Mozilla CustomElementRegistry documentation>
+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 #-}
+
+instance IsGObject CustomElementRegistry where
+  typeGType _ = gTypeCustomElementRegistry
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CustomElementRegistry\"]" gTypeCustomElementRegistry :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CustomEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent Mozilla CustomEvent documentation>
+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 #-}
+
+instance IsEvent CustomEvent
+instance IsGObject CustomEvent where
+  typeGType _ = gTypeCustomEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CustomEvent\"]" gTypeCustomEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.CustomEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/CustomEventInit Mozilla CustomEventInit documentation>
+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 #-}
+
+instance IsEventInit CustomEventInit
+instance IsGObject CustomEventInit where
+  typeGType _ = gTypeCustomEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"CustomEventInit\"]" gTypeCustomEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMError".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMError Mozilla DOMError documentation>
+newtype DOMError = DOMError { unDOMError :: JSVal }
+
+instance Eq (DOMError) where
+  (DOMError a) == (DOMError b) = js_eq a b
+
+instance PToJSVal DOMError where
+  pToJSVal = unDOMError
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal DOMError where
+  pFromJSVal = DOMError
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal DOMError where
+  toJSVal = return . unDOMError
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal DOMError where
+  fromJSVal = return . fmap DOMError . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class (IsGObject o) => IsDOMError o
+toDOMError :: IsDOMError o => o -> DOMError
+toDOMError = DOMError . coerce
+
+instance IsDOMError DOMError
+instance IsGObject DOMError where
+  typeGType _ = gTypeDOMError
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMError\"]" gTypeDOMError :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMException".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMException Mozilla DOMException documentation>
+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 #-}
+
+instance IsGObject DOMException where
+  typeGType _ = gTypeDOMException
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMException\"]" gTypeDOMException :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMImplementation".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation Mozilla DOMImplementation documentation>
+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 #-}
+
+instance IsGObject DOMImplementation where
+  typeGType _ = gTypeDOMImplementation
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMImplementation\"]" gTypeDOMImplementation :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMNamedFlowCollection".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlowCollection Mozilla WebKitNamedFlowCollection documentation>
+newtype DOMNamedFlowCollection = DOMNamedFlowCollection { unDOMNamedFlowCollection :: JSVal }
+
+instance Eq (DOMNamedFlowCollection) where
+  (DOMNamedFlowCollection a) == (DOMNamedFlowCollection b) = js_eq a b
+
+instance PToJSVal DOMNamedFlowCollection where
+  pToJSVal = unDOMNamedFlowCollection
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal DOMNamedFlowCollection where
+  pFromJSVal = DOMNamedFlowCollection
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal DOMNamedFlowCollection where
+  toJSVal = return . unDOMNamedFlowCollection
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal DOMNamedFlowCollection where
+  fromJSVal = return . fmap DOMNamedFlowCollection . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject DOMNamedFlowCollection where
+  typeGType _ = gTypeDOMNamedFlowCollection
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitNamedFlowCollection\"]" gTypeDOMNamedFlowCollection :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMParser".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMParser Mozilla DOMParser documentation>
+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 #-}
+
+instance IsGObject DOMParser where
+  typeGType _ = gTypeDOMParser
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMParser\"]" gTypeDOMParser :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMPoint".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.DOMPointReadOnly"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint Mozilla DOMPoint documentation>
+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 #-}
+
+instance IsDOMPointReadOnly DOMPoint
+instance IsGObject DOMPoint where
+  typeGType _ = gTypeDOMPoint
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMPoint\"]" gTypeDOMPoint :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMPointInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMPointInit Mozilla DOMPointInit documentation>
+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 #-}
+
+instance IsGObject DOMPointInit where
+  typeGType _ = gTypeDOMPointInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMPointInit\"]" gTypeDOMPointInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMPointReadOnly".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly Mozilla DOMPointReadOnly documentation>
+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 #-}
+
+class (IsGObject o) => IsDOMPointReadOnly o
+toDOMPointReadOnly :: IsDOMPointReadOnly o => o -> DOMPointReadOnly
+toDOMPointReadOnly = DOMPointReadOnly . coerce
+
+instance IsDOMPointReadOnly DOMPointReadOnly
+instance IsGObject DOMPointReadOnly where
+  typeGType _ = gTypeDOMPointReadOnly
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMPointReadOnly\"]" gTypeDOMPointReadOnly :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMRect".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.DOMRectReadOnly"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMRect Mozilla DOMRect documentation>
+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 #-}
+
+instance IsDOMRectReadOnly DOMRect
+instance IsGObject DOMRect where
+  typeGType _ = gTypeDOMRect
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMRect\"]" gTypeDOMRect :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMRectInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectInit Mozilla DOMRectInit documentation>
+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 #-}
+
+instance IsGObject DOMRectInit where
+  typeGType _ = gTypeDOMRectInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMRectInit\"]" gTypeDOMRectInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMRectReadOnly".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly Mozilla DOMRectReadOnly documentation>
+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 #-}
+
+class (IsGObject o) => IsDOMRectReadOnly o
+toDOMRectReadOnly :: IsDOMRectReadOnly o => o -> DOMRectReadOnly
+toDOMRectReadOnly = DOMRectReadOnly . coerce
+
+instance IsDOMRectReadOnly DOMRectReadOnly
+instance IsGObject DOMRectReadOnly where
+  typeGType _ = gTypeDOMRectReadOnly
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMRectReadOnly\"]" gTypeDOMRectReadOnly :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMStringList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringList Mozilla DOMStringList documentation>
+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 #-}
+
+instance IsGObject DOMStringList where
+  typeGType _ = gTypeDOMStringList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMStringList\"]" gTypeDOMStringList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMStringMap".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMStringMap Mozilla DOMStringMap documentation>
+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 #-}
+
+instance IsGObject DOMStringMap where
+  typeGType _ = gTypeDOMStringMap
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMStringMap\"]" gTypeDOMStringMap :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DOMTokenList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList Mozilla DOMTokenList documentation>
+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 #-}
+
+instance IsGObject DOMTokenList where
+  typeGType _ = gTypeDOMTokenList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DOMTokenList\"]" gTypeDOMTokenList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DataCue".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.TextTrackCue"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitDataCue Mozilla WebKitDataCue documentation>
+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 #-}
+
+instance IsTextTrackCue DataCue
+instance IsEventTarget DataCue
+instance IsGObject DataCue where
+  typeGType _ = gTypeDataCue
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitDataCue\"]" gTypeDataCue :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DataTransfer".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer Mozilla DataTransfer documentation>
+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 #-}
+
+instance IsGObject DataTransfer where
+  typeGType _ = gTypeDataTransfer
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DataTransfer\"]" gTypeDataTransfer :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DataTransferItem".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem Mozilla DataTransferItem documentation>
+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 #-}
+
+instance IsGObject DataTransferItem where
+  typeGType _ = gTypeDataTransferItem
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DataTransferItem\"]" gTypeDataTransferItem :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DataTransferItemList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList Mozilla DataTransferItemList documentation>
+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 #-}
+
+instance IsGObject DataTransferItemList where
+  typeGType _ = gTypeDataTransferItemList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DataTransferItemList\"]" gTypeDataTransferItemList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Database".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Database Mozilla Database documentation>
+newtype Database = Database { unDatabase :: JSVal }
+
+instance Eq (Database) where
+  (Database a) == (Database b) = js_eq a b
+
+instance PToJSVal Database where
+  pToJSVal = unDatabase
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal Database where
+  pFromJSVal = Database
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal Database where
+  toJSVal = return . unDatabase
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal Database where
+  fromJSVal = return . fmap Database . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject Database where
+  typeGType _ = gTypeDatabase
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Database\"]" gTypeDatabase :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DedicatedWorkerGlobalScope".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.WorkerGlobalScope"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.WindowOrWorkerGlobalScope"
+--     * "GHCJS.DOM.GlobalPerformance"
+--     * "GHCJS.DOM.GlobalCrypto"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope Mozilla DedicatedWorkerGlobalScope documentation>
+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 #-}
+
+instance IsWorkerGlobalScope DedicatedWorkerGlobalScope
+instance IsEventTarget DedicatedWorkerGlobalScope
+instance IsWindowOrWorkerGlobalScope DedicatedWorkerGlobalScope
+instance IsGlobalPerformance DedicatedWorkerGlobalScope
+instance IsGlobalCrypto DedicatedWorkerGlobalScope
+instance IsGObject DedicatedWorkerGlobalScope where
+  typeGType _ = gTypeDedicatedWorkerGlobalScope
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DedicatedWorkerGlobalScope\"]" gTypeDedicatedWorkerGlobalScope :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DelayNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DelayNode Mozilla DelayNode documentation>
+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 #-}
+
+instance IsAudioNode DelayNode
+instance IsEventTarget DelayNode
+instance IsGObject DelayNode where
+  typeGType _ = gTypeDelayNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DelayNode\"]" gTypeDelayNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DeviceMotionEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent Mozilla DeviceMotionEvent documentation>
+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 #-}
+
+instance IsEvent DeviceMotionEvent
+instance IsGObject DeviceMotionEvent where
+  typeGType _ = gTypeDeviceMotionEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DeviceMotionEvent\"]" gTypeDeviceMotionEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DeviceOrientationEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DeviceOrientationEvent Mozilla DeviceOrientationEvent documentation>
+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 #-}
+
+instance IsEvent DeviceOrientationEvent
+instance IsGObject DeviceOrientationEvent where
+  typeGType _ = gTypeDeviceOrientationEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DeviceOrientationEvent\"]" gTypeDeviceOrientationEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DeviceProximityEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DeviceProximityEvent Mozilla DeviceProximityEvent documentation>
+newtype DeviceProximityEvent = DeviceProximityEvent { unDeviceProximityEvent :: JSVal }
+
+instance Eq (DeviceProximityEvent) where
+  (DeviceProximityEvent a) == (DeviceProximityEvent b) = js_eq a b
+
+instance PToJSVal DeviceProximityEvent where
+  pToJSVal = unDeviceProximityEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal DeviceProximityEvent where
+  pFromJSVal = DeviceProximityEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal DeviceProximityEvent where
+  toJSVal = return . unDeviceProximityEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal DeviceProximityEvent where
+  fromJSVal = return . fmap DeviceProximityEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent DeviceProximityEvent
+instance IsGObject DeviceProximityEvent where
+  typeGType _ = gTypeDeviceProximityEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DeviceProximityEvent\"]" gTypeDeviceProximityEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DeviceProximityEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DeviceProximityEventInit Mozilla DeviceProximityEventInit documentation>
+newtype DeviceProximityEventInit = DeviceProximityEventInit { unDeviceProximityEventInit :: JSVal }
+
+instance Eq (DeviceProximityEventInit) where
+  (DeviceProximityEventInit a) == (DeviceProximityEventInit b) = js_eq a b
+
+instance PToJSVal DeviceProximityEventInit where
+  pToJSVal = unDeviceProximityEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal DeviceProximityEventInit where
+  pFromJSVal = DeviceProximityEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal DeviceProximityEventInit where
+  toJSVal = return . unDeviceProximityEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal DeviceProximityEventInit where
+  fromJSVal = return . fmap DeviceProximityEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit DeviceProximityEventInit
+instance IsGObject DeviceProximityEventInit where
+  typeGType _ = gTypeDeviceProximityEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DeviceProximityEventInit\"]" gTypeDeviceProximityEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Document".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.DocumentOrShadowRoot"
+--     * "GHCJS.DOM.NonElementParentNode"
+--     * "GHCJS.DOM.ParentNode"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Document Mozilla Document documentation>
+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 #-}
+
+class (IsNode o, IsEventTarget o, IsGlobalEventHandlers o, IsDocumentOrShadowRoot o, IsNonElementParentNode o, IsParentNode o, IsGObject o) => IsDocument o
+toDocument :: IsDocument o => o -> Document
+toDocument = Document . coerce
+
+instance IsDocument Document
+instance IsNode Document
+instance IsEventTarget Document
+instance IsGlobalEventHandlers Document
+instance IsDocumentOrShadowRoot Document
+instance IsNonElementParentNode Document
+instance IsParentNode Document
+instance IsGObject Document where
+  typeGType _ = gTypeDocument
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Document\"]" gTypeDocument :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DocumentFragment".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.NonElementParentNode"
+--     * "GHCJS.DOM.ParentNode"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment Mozilla DocumentFragment documentation>
+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 #-}
+
+class (IsNode o, IsEventTarget o, IsNonElementParentNode o, IsParentNode o, IsGObject o) => IsDocumentFragment o
+toDocumentFragment :: IsDocumentFragment o => o -> DocumentFragment
+toDocumentFragment = DocumentFragment . coerce
+
+instance IsDocumentFragment DocumentFragment
+instance IsNode DocumentFragment
+instance IsEventTarget DocumentFragment
+instance IsNonElementParentNode DocumentFragment
+instance IsParentNode DocumentFragment
+instance IsGObject DocumentFragment where
+  typeGType _ = gTypeDocumentFragment
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DocumentFragment\"]" gTypeDocumentFragment :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DocumentOrShadowRoot".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot Mozilla DocumentOrShadowRoot documentation>
+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 #-}
+
+class (IsGObject o) => IsDocumentOrShadowRoot o
+toDocumentOrShadowRoot :: IsDocumentOrShadowRoot o => o -> DocumentOrShadowRoot
+toDocumentOrShadowRoot = DocumentOrShadowRoot . coerce
+
+instance IsDocumentOrShadowRoot DocumentOrShadowRoot
+instance IsGObject DocumentOrShadowRoot where
+  typeGType _ = gTypeDocumentOrShadowRoot
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DocumentOrShadowRoot\"]" gTypeDocumentOrShadowRoot :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DocumentTimeline".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AnimationTimeline"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DocumentTimeline Mozilla DocumentTimeline documentation>
+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 #-}
+
+instance IsAnimationTimeline DocumentTimeline
+instance IsGObject DocumentTimeline where
+  typeGType _ = gTypeDocumentTimeline
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DocumentTimeline\"]" gTypeDocumentTimeline :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DocumentType".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.ChildNode"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DocumentType Mozilla DocumentType documentation>
+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 #-}
+
+instance IsNode DocumentType
+instance IsEventTarget DocumentType
+instance IsChildNode DocumentType
+instance IsGObject DocumentType where
+  typeGType _ = gTypeDocumentType
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DocumentType\"]" gTypeDocumentType :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DoubleRange".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DoubleRange Mozilla DoubleRange documentation>
+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 #-}
+
+class (IsGObject o) => IsDoubleRange o
+toDoubleRange :: IsDoubleRange o => o -> DoubleRange
+toDoubleRange = DoubleRange . coerce
+
+instance IsDoubleRange DoubleRange
+instance IsGObject DoubleRange where
+  typeGType _ = gTypeDoubleRange
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DoubleRange\"]" gTypeDoubleRange :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.DynamicsCompressorNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode Mozilla DynamicsCompressorNode documentation>
+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 #-}
+
+instance IsAudioNode DynamicsCompressorNode
+instance IsEventTarget DynamicsCompressorNode
+instance IsGObject DynamicsCompressorNode where
+  typeGType _ = gTypeDynamicsCompressorNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"DynamicsCompressorNode\"]" gTypeDynamicsCompressorNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EXTBlendMinMax".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EXTBlendMinMax Mozilla EXTBlendMinMax documentation>
+newtype EXTBlendMinMax = EXTBlendMinMax { unEXTBlendMinMax :: JSVal }
+
+instance Eq (EXTBlendMinMax) where
+  (EXTBlendMinMax a) == (EXTBlendMinMax b) = js_eq a b
+
+instance PToJSVal EXTBlendMinMax where
+  pToJSVal = unEXTBlendMinMax
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal EXTBlendMinMax where
+  pFromJSVal = EXTBlendMinMax
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal EXTBlendMinMax where
+  toJSVal = return . unEXTBlendMinMax
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal EXTBlendMinMax where
+  fromJSVal = return . fmap EXTBlendMinMax . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject EXTBlendMinMax where
+  typeGType _ = gTypeEXTBlendMinMax
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"EXTBlendMinMax\"]" gTypeEXTBlendMinMax :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EXTFragDepth".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EXTFragDepth Mozilla EXTFragDepth documentation>
+newtype EXTFragDepth = EXTFragDepth { unEXTFragDepth :: JSVal }
+
+instance Eq (EXTFragDepth) where
+  (EXTFragDepth a) == (EXTFragDepth b) = js_eq a b
+
+instance PToJSVal EXTFragDepth where
+  pToJSVal = unEXTFragDepth
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal EXTFragDepth where
+  pFromJSVal = EXTFragDepth
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal EXTFragDepth where
+  toJSVal = return . unEXTFragDepth
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal EXTFragDepth where
+  fromJSVal = return . fmap EXTFragDepth . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject EXTFragDepth where
+  typeGType _ = gTypeEXTFragDepth
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"EXTFragDepth\"]" gTypeEXTFragDepth :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EXTShaderTextureLOD".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EXTShaderTextureLOD Mozilla EXTShaderTextureLOD documentation>
+newtype EXTShaderTextureLOD = EXTShaderTextureLOD { unEXTShaderTextureLOD :: JSVal }
+
+instance Eq (EXTShaderTextureLOD) where
+  (EXTShaderTextureLOD a) == (EXTShaderTextureLOD b) = js_eq a b
+
+instance PToJSVal EXTShaderTextureLOD where
+  pToJSVal = unEXTShaderTextureLOD
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal EXTShaderTextureLOD where
+  pFromJSVal = EXTShaderTextureLOD
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal EXTShaderTextureLOD where
+  toJSVal = return . unEXTShaderTextureLOD
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal EXTShaderTextureLOD where
+  fromJSVal = return . fmap EXTShaderTextureLOD . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject EXTShaderTextureLOD where
+  typeGType _ = gTypeEXTShaderTextureLOD
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"EXTShaderTextureLOD\"]" gTypeEXTShaderTextureLOD :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EXTTextureFilterAnisotropic".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EXTTextureFilterAnisotropic Mozilla EXTTextureFilterAnisotropic documentation>
+newtype EXTTextureFilterAnisotropic = EXTTextureFilterAnisotropic { unEXTTextureFilterAnisotropic :: JSVal }
+
+instance Eq (EXTTextureFilterAnisotropic) where
+  (EXTTextureFilterAnisotropic a) == (EXTTextureFilterAnisotropic b) = js_eq a b
+
+instance PToJSVal EXTTextureFilterAnisotropic where
+  pToJSVal = unEXTTextureFilterAnisotropic
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal EXTTextureFilterAnisotropic where
+  pFromJSVal = EXTTextureFilterAnisotropic
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal EXTTextureFilterAnisotropic where
+  toJSVal = return . unEXTTextureFilterAnisotropic
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal EXTTextureFilterAnisotropic where
+  fromJSVal = return . fmap EXTTextureFilterAnisotropic . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject EXTTextureFilterAnisotropic where
+  typeGType _ = gTypeEXTTextureFilterAnisotropic
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"EXTTextureFilterAnisotropic\"]" gTypeEXTTextureFilterAnisotropic :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EXTsRGB".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EXTsRGB Mozilla EXTsRGB documentation>
+newtype EXTsRGB = EXTsRGB { unEXTsRGB :: JSVal }
+
+instance Eq (EXTsRGB) where
+  (EXTsRGB a) == (EXTsRGB b) = js_eq a b
+
+instance PToJSVal EXTsRGB where
+  pToJSVal = unEXTsRGB
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal EXTsRGB where
+  pFromJSVal = EXTsRGB
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal EXTsRGB where
+  toJSVal = return . unEXTsRGB
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal EXTsRGB where
+  fromJSVal = return . fmap EXTsRGB . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject EXTsRGB where
+  typeGType _ = gTypeEXTsRGB
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"EXTsRGB\"]" gTypeEXTsRGB :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Element".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Element Mozilla Element documentation>
+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 #-}
+
+class (IsNode o, IsEventTarget o, IsSlotable o, IsParentNode o, IsNonDocumentTypeChildNode o, IsChildNode o, IsAnimatable o, IsGObject o) => IsElement o
+toElement :: IsElement o => o -> Element
+toElement = Element . coerce
+
+instance IsElement Element
+instance IsNode Element
+instance IsEventTarget Element
+instance IsSlotable Element
+instance IsParentNode Element
+instance IsNonDocumentTypeChildNode Element
+instance IsChildNode Element
+instance IsAnimatable Element
+instance IsGObject Element where
+  typeGType _ = gTypeElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Element\"]" gTypeElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ErrorEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent Mozilla ErrorEvent documentation>
+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 #-}
+
+instance IsEvent ErrorEvent
+instance IsGObject ErrorEvent where
+  typeGType _ = gTypeErrorEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ErrorEvent\"]" gTypeErrorEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ErrorEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ErrorEventInit Mozilla ErrorEventInit documentation>
+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 #-}
+
+instance IsEventInit ErrorEventInit
+instance IsGObject ErrorEventInit where
+  typeGType _ = gTypeErrorEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ErrorEventInit\"]" gTypeErrorEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Event".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Event Mozilla Event documentation>
+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 #-}
+
+class (IsGObject o) => IsEvent o
+toEvent :: IsEvent o => o -> Event
+toEvent = Event . coerce
+
+instance IsEvent Event
+instance IsGObject Event where
+  typeGType _ = gTypeEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Event\"]" gTypeEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EventInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EventInit Mozilla EventInit documentation>
+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 #-}
+
+class (IsGObject o) => IsEventInit o
+toEventInit :: IsEventInit o => o -> EventInit
+toEventInit = EventInit . coerce
+
+instance IsEventInit EventInit
+instance IsGObject EventInit where
+  typeGType _ = gTypeEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"EventInit\"]" gTypeEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EventListener".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EventListener Mozilla EventListener documentation>
+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 #-}
+
+instance IsGObject EventListener where
+  typeGType _ = gTypeEventListener
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"EventListener\"]" gTypeEventListener :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EventListenerOptions".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EventListenerOptions Mozilla EventListenerOptions documentation>
+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 #-}
+
+class (IsGObject o) => IsEventListenerOptions o
+toEventListenerOptions :: IsEventListenerOptions o => o -> EventListenerOptions
+toEventListenerOptions = EventListenerOptions . coerce
+
+instance IsEventListenerOptions EventListenerOptions
+instance IsGObject EventListenerOptions where
+  typeGType _ = gTypeEventListenerOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"EventListenerOptions\"]" gTypeEventListenerOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EventModifierInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEventInit"
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EventModifierInit Mozilla EventModifierInit documentation>
+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 #-}
+
+class (IsUIEventInit o, IsEventInit 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 #-}
+foreign import javascript unsafe "window[\"EventModifierInit\"]" gTypeEventModifierInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EventSource".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EventSource Mozilla EventSource documentation>
+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 #-}
+
+instance IsEventTarget EventSource
+instance IsGObject EventSource where
+  typeGType _ = gTypeEventSource
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"EventSource\"]" gTypeEventSource :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EventSourceInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EventSourceInit Mozilla EventSourceInit documentation>
+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 #-}
+
+instance IsGObject EventSourceInit where
+  typeGType _ = gTypeEventSourceInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"EventSourceInit\"]" gTypeEventSourceInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.EventTarget".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/EventTarget Mozilla EventTarget documentation>
+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 #-}
+
+class (IsGObject o) => IsEventTarget o
+toEventTarget :: IsEventTarget o => o -> EventTarget
+toEventTarget = EventTarget . coerce
+
+instance IsEventTarget EventTarget
+instance IsGObject EventTarget where
+  typeGType _ = gTypeEventTarget
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"EventTarget\"]" gTypeEventTarget :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.File".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Blob"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/File Mozilla File documentation>
+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 #-}
+
+instance IsBlob File
+instance IsGObject File where
+  typeGType _ = gTypeFile
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"File\"]" gTypeFile :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FileError".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FileError Mozilla FileError documentation>
+newtype FileError = FileError { unFileError :: JSVal }
+
+instance Eq (FileError) where
+  (FileError a) == (FileError b) = js_eq a b
+
+instance PToJSVal FileError where
+  pToJSVal = unFileError
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal FileError where
+  pFromJSVal = FileError
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal FileError where
+  toJSVal = return . unFileError
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal FileError where
+  fromJSVal = return . fmap FileError . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject FileError where
+  typeGType _ = gTypeFileError
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FileError\"]" gTypeFileError :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FileException".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FileException Mozilla FileException documentation>
+newtype FileException = FileException { unFileException :: JSVal }
+
+instance Eq (FileException) where
+  (FileException a) == (FileException b) = js_eq a b
+
+instance PToJSVal FileException where
+  pToJSVal = unFileException
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal FileException where
+  pFromJSVal = FileException
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal FileException where
+  toJSVal = return . unFileException
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal FileException where
+  fromJSVal = return . fmap FileException . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject FileException where
+  typeGType _ = gTypeFileException
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FileException\"]" gTypeFileException :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FileList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FileList Mozilla FileList documentation>
+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 #-}
+
+instance IsGObject FileList where
+  typeGType _ = gTypeFileList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FileList\"]" gTypeFileList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FilePropertyBag".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.BlobPropertyBag"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FilePropertyBag Mozilla FilePropertyBag documentation>
+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 #-}
+
+instance IsBlobPropertyBag FilePropertyBag
+instance IsGObject FilePropertyBag where
+  typeGType _ = gTypeFilePropertyBag
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FilePropertyBag\"]" gTypeFilePropertyBag :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FileReader".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FileReader Mozilla FileReader documentation>
+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 #-}
+
+instance IsEventTarget FileReader
+instance IsGObject FileReader where
+  typeGType _ = gTypeFileReader
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FileReader\"]" gTypeFileReader :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FileReaderSync".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync Mozilla FileReaderSync documentation>
+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 #-}
+
+instance IsGObject FileReaderSync where
+  typeGType _ = gTypeFileReaderSync
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FileReaderSync\"]" gTypeFileReaderSync :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FocusEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEvent"
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent Mozilla FocusEvent documentation>
+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 #-}
+
+instance IsUIEvent FocusEvent
+instance IsEvent FocusEvent
+instance IsGObject FocusEvent where
+  typeGType _ = gTypeFocusEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FocusEvent\"]" gTypeFocusEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FocusEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEventInit"
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FocusEventInit Mozilla FocusEventInit documentation>
+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 #-}
+
+instance IsUIEventInit FocusEventInit
+instance IsEventInit FocusEventInit
+instance IsGObject FocusEventInit where
+  typeGType _ = gTypeFocusEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FocusEventInit\"]" gTypeFocusEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FontFace".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FontFace Mozilla FontFace documentation>
+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 #-}
+
+instance IsGObject FontFace where
+  typeGType _ = gTypeFontFace
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FontFace\"]" gTypeFontFace :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FontFaceDescriptors".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceDescriptors Mozilla FontFaceDescriptors documentation>
+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 #-}
+
+instance IsGObject FontFaceDescriptors where
+  typeGType _ = gTypeFontFaceDescriptors
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FontFaceDescriptors\"]" gTypeFontFaceDescriptors :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FontFaceSet".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet Mozilla FontFaceSet documentation>
+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 #-}
+
+instance IsEventTarget FontFaceSet
+instance IsGObject FontFaceSet where
+  typeGType _ = gTypeFontFaceSet
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FontFaceSet\"]" gTypeFontFaceSet :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.FormData".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/FormData Mozilla FormData documentation>
+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 #-}
+
+instance IsGObject FormData where
+  typeGType _ = gTypeFormData
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"FormData\"]" gTypeFormData :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.GainNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/GainNode Mozilla GainNode documentation>
+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 #-}
+
+instance IsAudioNode GainNode
+instance IsEventTarget GainNode
+instance IsGObject GainNode where
+  typeGType _ = gTypeGainNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"GainNode\"]" gTypeGainNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Gamepad".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Gamepad Mozilla Gamepad documentation>
+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 #-}
+
+instance IsGObject Gamepad where
+  typeGType _ = gTypeGamepad
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Gamepad\"]" gTypeGamepad :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.GamepadButton".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton Mozilla GamepadButton documentation>
+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 #-}
+
+instance IsGObject GamepadButton where
+  typeGType _ = gTypeGamepadButton
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"GamepadButton\"]" gTypeGamepadButton :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.GamepadEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent Mozilla GamepadEvent documentation>
+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 #-}
+
+instance IsEvent GamepadEvent
+instance IsGObject GamepadEvent where
+  typeGType _ = gTypeGamepadEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"GamepadEvent\"]" gTypeGamepadEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.GamepadEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/GamepadEventInit Mozilla GamepadEventInit documentation>
+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 #-}
+
+instance IsEventInit GamepadEventInit
+instance IsGObject GamepadEventInit where
+  typeGType _ = gTypeGamepadEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"GamepadEventInit\"]" gTypeGamepadEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Geolocation".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Geolocation Mozilla Geolocation documentation>
+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 #-}
+
+instance IsGObject Geolocation where
+  typeGType _ = gTypeGeolocation
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Geolocation\"]" gTypeGeolocation :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Geoposition".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Geoposition Mozilla Geoposition documentation>
+newtype Geoposition = Geoposition { unGeoposition :: JSVal }
+
+instance Eq (Geoposition) where
+  (Geoposition a) == (Geoposition b) = js_eq a b
+
+instance PToJSVal Geoposition where
+  pToJSVal = unGeoposition
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal Geoposition where
+  pFromJSVal = Geoposition
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal Geoposition where
+  toJSVal = return . unGeoposition
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal Geoposition where
+  fromJSVal = return . fmap Geoposition . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject Geoposition where
+  typeGType _ = gTypeGeoposition
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Geoposition\"]" gTypeGeoposition :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.GetRootNodeOptions".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/GetRootNodeOptions Mozilla GetRootNodeOptions documentation>
+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 #-}
+
+instance IsGObject GetRootNodeOptions where
+  typeGType _ = gTypeGetRootNodeOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"GetRootNodeOptions\"]" gTypeGetRootNodeOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.GlobalCrypto".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/GlobalCrypto Mozilla GlobalCrypto documentation>
+newtype GlobalCrypto = GlobalCrypto { unGlobalCrypto :: JSVal }
+
+instance Eq (GlobalCrypto) where
+  (GlobalCrypto a) == (GlobalCrypto b) = js_eq a b
+
+instance PToJSVal GlobalCrypto where
+  pToJSVal = unGlobalCrypto
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal GlobalCrypto where
+  pFromJSVal = GlobalCrypto
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal GlobalCrypto where
+  toJSVal = return . unGlobalCrypto
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal GlobalCrypto where
+  fromJSVal = return . fmap GlobalCrypto . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class (IsGObject o) => IsGlobalCrypto o
+toGlobalCrypto :: IsGlobalCrypto o => o -> GlobalCrypto
+toGlobalCrypto = GlobalCrypto . coerce
+
+instance IsGlobalCrypto GlobalCrypto
+instance IsGObject GlobalCrypto where
+  typeGType _ = gTypeGlobalCrypto
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"GlobalCrypto\"]" gTypeGlobalCrypto :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.GlobalEventHandlers".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers Mozilla GlobalEventHandlers documentation>
+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 #-}
+
+class (IsGObject o) => IsGlobalEventHandlers o
+toGlobalEventHandlers :: IsGlobalEventHandlers o => o -> GlobalEventHandlers
+toGlobalEventHandlers = GlobalEventHandlers . coerce
+
+instance IsGlobalEventHandlers GlobalEventHandlers
+instance IsGObject GlobalEventHandlers where
+  typeGType _ = gTypeGlobalEventHandlers
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"GlobalEventHandlers\"]" gTypeGlobalEventHandlers :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.GlobalPerformance".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/GlobalPerformance Mozilla GlobalPerformance documentation>
+newtype GlobalPerformance = GlobalPerformance { unGlobalPerformance :: JSVal }
+
+instance Eq (GlobalPerformance) where
+  (GlobalPerformance a) == (GlobalPerformance b) = js_eq a b
+
+instance PToJSVal GlobalPerformance where
+  pToJSVal = unGlobalPerformance
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal GlobalPerformance where
+  pFromJSVal = GlobalPerformance
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal GlobalPerformance where
+  toJSVal = return . unGlobalPerformance
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal GlobalPerformance where
+  fromJSVal = return . fmap GlobalPerformance . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class (IsGObject o) => IsGlobalPerformance o
+toGlobalPerformance :: IsGlobalPerformance o => o -> GlobalPerformance
+toGlobalPerformance = GlobalPerformance . coerce
+
+instance IsGlobalPerformance GlobalPerformance
+instance IsGObject GlobalPerformance where
+  typeGType _ = gTypeGlobalPerformance
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"GlobalPerformance\"]" gTypeGlobalPerformance :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLAllCollection".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAllCollection Mozilla HTMLAllCollection documentation>
+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 #-}
+
+instance IsGObject HTMLAllCollection where
+  typeGType _ = gTypeHTMLAllCollection
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLAllCollection\"]" gTypeHTMLAllCollection :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLAnchorElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.HTMLHyperlinkElementUtils"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement Mozilla HTMLAnchorElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLAnchorElement
+instance IsElement HTMLAnchorElement
+instance IsNode HTMLAnchorElement
+instance IsEventTarget HTMLAnchorElement
+instance IsSlotable HTMLAnchorElement
+instance IsParentNode HTMLAnchorElement
+instance IsNonDocumentTypeChildNode HTMLAnchorElement
+instance IsChildNode HTMLAnchorElement
+instance IsAnimatable HTMLAnchorElement
+instance IsGlobalEventHandlers HTMLAnchorElement
+instance IsHTMLHyperlinkElementUtils HTMLAnchorElement
+instance IsGObject HTMLAnchorElement where
+  typeGType _ = gTypeHTMLAnchorElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLAnchorElement\"]" gTypeHTMLAnchorElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLAppletElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAppletElement Mozilla HTMLAppletElement documentation>
+newtype HTMLAppletElement = HTMLAppletElement { unHTMLAppletElement :: JSVal }
+
+instance Eq (HTMLAppletElement) where
+  (HTMLAppletElement a) == (HTMLAppletElement b) = js_eq a b
+
+instance PToJSVal HTMLAppletElement where
+  pToJSVal = unHTMLAppletElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal HTMLAppletElement where
+  pFromJSVal = HTMLAppletElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal HTMLAppletElement where
+  toJSVal = return . unHTMLAppletElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal HTMLAppletElement where
+  fromJSVal = return . fmap HTMLAppletElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsHTMLElement HTMLAppletElement
+instance IsElement HTMLAppletElement
+instance IsNode HTMLAppletElement
+instance IsEventTarget HTMLAppletElement
+instance IsSlotable HTMLAppletElement
+instance IsParentNode HTMLAppletElement
+instance IsNonDocumentTypeChildNode HTMLAppletElement
+instance IsChildNode HTMLAppletElement
+instance IsAnimatable HTMLAppletElement
+instance IsGlobalEventHandlers HTMLAppletElement
+instance IsGObject HTMLAppletElement where
+  typeGType _ = gTypeHTMLAppletElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLAppletElement\"]" gTypeHTMLAppletElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLAreaElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.HTMLHyperlinkElementUtils"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAreaElement Mozilla HTMLAreaElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLAreaElement
+instance IsElement HTMLAreaElement
+instance IsNode HTMLAreaElement
+instance IsEventTarget HTMLAreaElement
+instance IsSlotable HTMLAreaElement
+instance IsParentNode HTMLAreaElement
+instance IsNonDocumentTypeChildNode HTMLAreaElement
+instance IsChildNode HTMLAreaElement
+instance IsAnimatable HTMLAreaElement
+instance IsGlobalEventHandlers HTMLAreaElement
+instance IsHTMLHyperlinkElementUtils HTMLAreaElement
+instance IsGObject HTMLAreaElement where
+  typeGType _ = gTypeHTMLAreaElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLAreaElement\"]" gTypeHTMLAreaElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLAttachmentElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAttachmentElement Mozilla HTMLAttachmentElement documentation>
+newtype HTMLAttachmentElement = HTMLAttachmentElement { unHTMLAttachmentElement :: JSVal }
+
+instance Eq (HTMLAttachmentElement) where
+  (HTMLAttachmentElement a) == (HTMLAttachmentElement b) = js_eq a b
+
+instance PToJSVal HTMLAttachmentElement where
+  pToJSVal = unHTMLAttachmentElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal HTMLAttachmentElement where
+  pFromJSVal = HTMLAttachmentElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal HTMLAttachmentElement where
+  toJSVal = return . unHTMLAttachmentElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal HTMLAttachmentElement where
+  fromJSVal = return . fmap HTMLAttachmentElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsHTMLElement HTMLAttachmentElement
+instance IsElement HTMLAttachmentElement
+instance IsNode HTMLAttachmentElement
+instance IsEventTarget HTMLAttachmentElement
+instance IsSlotable HTMLAttachmentElement
+instance IsParentNode HTMLAttachmentElement
+instance IsNonDocumentTypeChildNode HTMLAttachmentElement
+instance IsChildNode HTMLAttachmentElement
+instance IsAnimatable HTMLAttachmentElement
+instance IsGlobalEventHandlers HTMLAttachmentElement
+instance IsGObject HTMLAttachmentElement where
+  typeGType _ = gTypeHTMLAttachmentElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLAttachmentElement\"]" gTypeHTMLAttachmentElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLAudioElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLMediaElement"
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement Mozilla HTMLAudioElement documentation>
+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 #-}
+
+instance IsHTMLMediaElement HTMLAudioElement
+instance IsHTMLElement HTMLAudioElement
+instance IsElement HTMLAudioElement
+instance IsNode HTMLAudioElement
+instance IsEventTarget HTMLAudioElement
+instance IsSlotable HTMLAudioElement
+instance IsParentNode HTMLAudioElement
+instance IsNonDocumentTypeChildNode HTMLAudioElement
+instance IsChildNode HTMLAudioElement
+instance IsAnimatable HTMLAudioElement
+instance IsGlobalEventHandlers HTMLAudioElement
+instance IsGObject HTMLAudioElement where
+  typeGType _ = gTypeHTMLAudioElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLAudioElement\"]" gTypeHTMLAudioElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLBRElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBRElement Mozilla HTMLBRElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLBRElement
+instance IsElement HTMLBRElement
+instance IsNode HTMLBRElement
+instance IsEventTarget HTMLBRElement
+instance IsSlotable HTMLBRElement
+instance IsParentNode HTMLBRElement
+instance IsNonDocumentTypeChildNode HTMLBRElement
+instance IsChildNode HTMLBRElement
+instance IsAnimatable HTMLBRElement
+instance IsGlobalEventHandlers HTMLBRElement
+instance IsGObject HTMLBRElement where
+  typeGType _ = gTypeHTMLBRElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLBRElement\"]" gTypeHTMLBRElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLBaseElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBaseElement Mozilla HTMLBaseElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLBaseElement
+instance IsElement HTMLBaseElement
+instance IsNode HTMLBaseElement
+instance IsEventTarget HTMLBaseElement
+instance IsSlotable HTMLBaseElement
+instance IsParentNode HTMLBaseElement
+instance IsNonDocumentTypeChildNode HTMLBaseElement
+instance IsChildNode HTMLBaseElement
+instance IsAnimatable HTMLBaseElement
+instance IsGlobalEventHandlers HTMLBaseElement
+instance IsGObject HTMLBaseElement where
+  typeGType _ = gTypeHTMLBaseElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLBaseElement\"]" gTypeHTMLBaseElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLBodyElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.WindowEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLBodyElement Mozilla HTMLBodyElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLBodyElement
+instance IsElement HTMLBodyElement
+instance IsNode HTMLBodyElement
+instance IsEventTarget HTMLBodyElement
+instance IsSlotable HTMLBodyElement
+instance IsParentNode HTMLBodyElement
+instance IsNonDocumentTypeChildNode HTMLBodyElement
+instance IsChildNode HTMLBodyElement
+instance IsAnimatable HTMLBodyElement
+instance IsGlobalEventHandlers HTMLBodyElement
+instance IsWindowEventHandlers HTMLBodyElement
+instance IsGObject HTMLBodyElement where
+  typeGType _ = gTypeHTMLBodyElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLBodyElement\"]" gTypeHTMLBodyElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLButtonElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement Mozilla HTMLButtonElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLButtonElement
+instance IsElement HTMLButtonElement
+instance IsNode HTMLButtonElement
+instance IsEventTarget HTMLButtonElement
+instance IsSlotable HTMLButtonElement
+instance IsParentNode HTMLButtonElement
+instance IsNonDocumentTypeChildNode HTMLButtonElement
+instance IsChildNode HTMLButtonElement
+instance IsAnimatable HTMLButtonElement
+instance IsGlobalEventHandlers HTMLButtonElement
+instance IsGObject HTMLButtonElement where
+  typeGType _ = gTypeHTMLButtonElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLButtonElement\"]" gTypeHTMLButtonElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLCanvasElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement Mozilla HTMLCanvasElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLCanvasElement
+instance IsElement HTMLCanvasElement
+instance IsNode HTMLCanvasElement
+instance IsEventTarget HTMLCanvasElement
+instance IsSlotable HTMLCanvasElement
+instance IsParentNode HTMLCanvasElement
+instance IsNonDocumentTypeChildNode HTMLCanvasElement
+instance IsChildNode HTMLCanvasElement
+instance IsAnimatable HTMLCanvasElement
+instance IsGlobalEventHandlers HTMLCanvasElement
+instance IsGObject HTMLCanvasElement where
+  typeGType _ = gTypeHTMLCanvasElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLCanvasElement\"]" gTypeHTMLCanvasElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLCollection".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection Mozilla HTMLCollection documentation>
+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 #-}
+
+class (IsGObject o) => IsHTMLCollection o
+toHTMLCollection :: IsHTMLCollection o => o -> HTMLCollection
+toHTMLCollection = HTMLCollection . coerce
+
+instance IsHTMLCollection HTMLCollection
+instance IsGObject HTMLCollection where
+  typeGType _ = gTypeHTMLCollection
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLCollection\"]" gTypeHTMLCollection :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLDListElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDListElement Mozilla HTMLDListElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLDListElement
+instance IsElement HTMLDListElement
+instance IsNode HTMLDListElement
+instance IsEventTarget HTMLDListElement
+instance IsSlotable HTMLDListElement
+instance IsParentNode HTMLDListElement
+instance IsNonDocumentTypeChildNode HTMLDListElement
+instance IsChildNode HTMLDListElement
+instance IsAnimatable HTMLDListElement
+instance IsGlobalEventHandlers HTMLDListElement
+instance IsGObject HTMLDListElement where
+  typeGType _ = gTypeHTMLDListElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLDListElement\"]" gTypeHTMLDListElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLDataElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataElement Mozilla HTMLDataElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLDataElement
+instance IsElement HTMLDataElement
+instance IsNode HTMLDataElement
+instance IsEventTarget HTMLDataElement
+instance IsSlotable HTMLDataElement
+instance IsParentNode HTMLDataElement
+instance IsNonDocumentTypeChildNode HTMLDataElement
+instance IsChildNode HTMLDataElement
+instance IsAnimatable HTMLDataElement
+instance IsGlobalEventHandlers HTMLDataElement
+instance IsGObject HTMLDataElement where
+  typeGType _ = gTypeHTMLDataElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLDataElement\"]" gTypeHTMLDataElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLDataListElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDataListElement Mozilla HTMLDataListElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLDataListElement
+instance IsElement HTMLDataListElement
+instance IsNode HTMLDataListElement
+instance IsEventTarget HTMLDataListElement
+instance IsSlotable HTMLDataListElement
+instance IsParentNode HTMLDataListElement
+instance IsNonDocumentTypeChildNode HTMLDataListElement
+instance IsChildNode HTMLDataListElement
+instance IsAnimatable HTMLDataListElement
+instance IsGlobalEventHandlers HTMLDataListElement
+instance IsGObject HTMLDataListElement where
+  typeGType _ = gTypeHTMLDataListElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLDataListElement\"]" gTypeHTMLDataListElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLDetailsElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDetailsElement Mozilla HTMLDetailsElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLDetailsElement
+instance IsElement HTMLDetailsElement
+instance IsNode HTMLDetailsElement
+instance IsEventTarget HTMLDetailsElement
+instance IsSlotable HTMLDetailsElement
+instance IsParentNode HTMLDetailsElement
+instance IsNonDocumentTypeChildNode HTMLDetailsElement
+instance IsChildNode HTMLDetailsElement
+instance IsAnimatable HTMLDetailsElement
+instance IsGlobalEventHandlers HTMLDetailsElement
+instance IsGObject HTMLDetailsElement where
+  typeGType _ = gTypeHTMLDetailsElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLDetailsElement\"]" gTypeHTMLDetailsElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLDirectoryElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDirectoryElement Mozilla HTMLDirectoryElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLDirectoryElement
+instance IsElement HTMLDirectoryElement
+instance IsNode HTMLDirectoryElement
+instance IsEventTarget HTMLDirectoryElement
+instance IsSlotable HTMLDirectoryElement
+instance IsParentNode HTMLDirectoryElement
+instance IsNonDocumentTypeChildNode HTMLDirectoryElement
+instance IsChildNode HTMLDirectoryElement
+instance IsAnimatable HTMLDirectoryElement
+instance IsGlobalEventHandlers HTMLDirectoryElement
+instance IsGObject HTMLDirectoryElement where
+  typeGType _ = gTypeHTMLDirectoryElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLDirectoryElement\"]" gTypeHTMLDirectoryElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLDivElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement Mozilla HTMLDivElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLDivElement
+instance IsElement HTMLDivElement
+instance IsNode HTMLDivElement
+instance IsEventTarget HTMLDivElement
+instance IsSlotable HTMLDivElement
+instance IsParentNode HTMLDivElement
+instance IsNonDocumentTypeChildNode HTMLDivElement
+instance IsChildNode HTMLDivElement
+instance IsAnimatable HTMLDivElement
+instance IsGlobalEventHandlers HTMLDivElement
+instance IsGObject HTMLDivElement where
+  typeGType _ = gTypeHTMLDivElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLDivElement\"]" gTypeHTMLDivElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLDocument".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Document"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.DocumentOrShadowRoot"
+--     * "GHCJS.DOM.NonElementParentNode"
+--     * "GHCJS.DOM.ParentNode"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLDocument Mozilla HTMLDocument documentation>
+newtype HTMLDocument = HTMLDocument { unHTMLDocument :: JSVal }
+
+instance Eq (HTMLDocument) where
+  (HTMLDocument a) == (HTMLDocument b) = js_eq a b
+
+instance PToJSVal HTMLDocument where
+  pToJSVal = unHTMLDocument
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal HTMLDocument where
+  pFromJSVal = HTMLDocument
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal HTMLDocument where
+  toJSVal = return . unHTMLDocument
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal HTMLDocument where
+  fromJSVal = return . fmap HTMLDocument . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsDocument HTMLDocument
+instance IsNode HTMLDocument
+instance IsEventTarget HTMLDocument
+instance IsGlobalEventHandlers HTMLDocument
+instance IsDocumentOrShadowRoot HTMLDocument
+instance IsNonElementParentNode HTMLDocument
+instance IsParentNode HTMLDocument
+instance IsGObject HTMLDocument where
+  typeGType _ = gTypeHTMLDocument
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLDocument\"]" gTypeHTMLDocument :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement Mozilla HTMLElement documentation>
+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 #-}
+
+class (IsElement o, IsNode o, IsEventTarget o, IsSlotable o, IsParentNode o, IsNonDocumentTypeChildNode o, IsChildNode o, IsAnimatable o, IsGlobalEventHandlers o, IsGObject o) => IsHTMLElement o
+toHTMLElement :: IsHTMLElement o => o -> HTMLElement
+toHTMLElement = HTMLElement . coerce
+
+instance IsHTMLElement HTMLElement
+instance IsElement HTMLElement
+instance IsNode HTMLElement
+instance IsEventTarget HTMLElement
+instance IsSlotable HTMLElement
+instance IsParentNode HTMLElement
+instance IsNonDocumentTypeChildNode HTMLElement
+instance IsChildNode HTMLElement
+instance IsAnimatable HTMLElement
+instance IsGlobalEventHandlers HTMLElement
+instance IsGObject HTMLElement where
+  typeGType _ = gTypeHTMLElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLElement\"]" gTypeHTMLElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLEmbedElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLEmbedElement Mozilla HTMLEmbedElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLEmbedElement
+instance IsElement HTMLEmbedElement
+instance IsNode HTMLEmbedElement
+instance IsEventTarget HTMLEmbedElement
+instance IsSlotable HTMLEmbedElement
+instance IsParentNode HTMLEmbedElement
+instance IsNonDocumentTypeChildNode HTMLEmbedElement
+instance IsChildNode HTMLEmbedElement
+instance IsAnimatable HTMLEmbedElement
+instance IsGlobalEventHandlers HTMLEmbedElement
+instance IsGObject HTMLEmbedElement where
+  typeGType _ = gTypeHTMLEmbedElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLEmbedElement\"]" gTypeHTMLEmbedElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLFieldSetElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFieldSetElement Mozilla HTMLFieldSetElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLFieldSetElement
+instance IsElement HTMLFieldSetElement
+instance IsNode HTMLFieldSetElement
+instance IsEventTarget HTMLFieldSetElement
+instance IsSlotable HTMLFieldSetElement
+instance IsParentNode HTMLFieldSetElement
+instance IsNonDocumentTypeChildNode HTMLFieldSetElement
+instance IsChildNode HTMLFieldSetElement
+instance IsAnimatable HTMLFieldSetElement
+instance IsGlobalEventHandlers HTMLFieldSetElement
+instance IsGObject HTMLFieldSetElement where
+  typeGType _ = gTypeHTMLFieldSetElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLFieldSetElement\"]" gTypeHTMLFieldSetElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLFontElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFontElement Mozilla HTMLFontElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLFontElement
+instance IsElement HTMLFontElement
+instance IsNode HTMLFontElement
+instance IsEventTarget HTMLFontElement
+instance IsSlotable HTMLFontElement
+instance IsParentNode HTMLFontElement
+instance IsNonDocumentTypeChildNode HTMLFontElement
+instance IsChildNode HTMLFontElement
+instance IsAnimatable HTMLFontElement
+instance IsGlobalEventHandlers HTMLFontElement
+instance IsGObject HTMLFontElement where
+  typeGType _ = gTypeHTMLFontElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLFontElement\"]" gTypeHTMLFontElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLFormControlsCollection".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLCollection"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection Mozilla HTMLFormControlsCollection documentation>
+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 #-}
+
+instance IsHTMLCollection HTMLFormControlsCollection
+instance IsGObject HTMLFormControlsCollection where
+  typeGType _ = gTypeHTMLFormControlsCollection
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLFormControlsCollection\"]" gTypeHTMLFormControlsCollection :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLFormElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement Mozilla HTMLFormElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLFormElement
+instance IsElement HTMLFormElement
+instance IsNode HTMLFormElement
+instance IsEventTarget HTMLFormElement
+instance IsSlotable HTMLFormElement
+instance IsParentNode HTMLFormElement
+instance IsNonDocumentTypeChildNode HTMLFormElement
+instance IsChildNode HTMLFormElement
+instance IsAnimatable HTMLFormElement
+instance IsGlobalEventHandlers HTMLFormElement
+instance IsGObject HTMLFormElement where
+  typeGType _ = gTypeHTMLFormElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLFormElement\"]" gTypeHTMLFormElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLFrameElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameElement Mozilla HTMLFrameElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLFrameElement
+instance IsElement HTMLFrameElement
+instance IsNode HTMLFrameElement
+instance IsEventTarget HTMLFrameElement
+instance IsSlotable HTMLFrameElement
+instance IsParentNode HTMLFrameElement
+instance IsNonDocumentTypeChildNode HTMLFrameElement
+instance IsChildNode HTMLFrameElement
+instance IsAnimatable HTMLFrameElement
+instance IsGlobalEventHandlers HTMLFrameElement
+instance IsGObject HTMLFrameElement where
+  typeGType _ = gTypeHTMLFrameElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLFrameElement\"]" gTypeHTMLFrameElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLFrameSetElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.WindowEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFrameSetElement Mozilla HTMLFrameSetElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLFrameSetElement
+instance IsElement HTMLFrameSetElement
+instance IsNode HTMLFrameSetElement
+instance IsEventTarget HTMLFrameSetElement
+instance IsSlotable HTMLFrameSetElement
+instance IsParentNode HTMLFrameSetElement
+instance IsNonDocumentTypeChildNode HTMLFrameSetElement
+instance IsChildNode HTMLFrameSetElement
+instance IsAnimatable HTMLFrameSetElement
+instance IsGlobalEventHandlers HTMLFrameSetElement
+instance IsWindowEventHandlers HTMLFrameSetElement
+instance IsGObject HTMLFrameSetElement where
+  typeGType _ = gTypeHTMLFrameSetElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLFrameSetElement\"]" gTypeHTMLFrameSetElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLHRElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHRElement Mozilla HTMLHRElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLHRElement
+instance IsElement HTMLHRElement
+instance IsNode HTMLHRElement
+instance IsEventTarget HTMLHRElement
+instance IsSlotable HTMLHRElement
+instance IsParentNode HTMLHRElement
+instance IsNonDocumentTypeChildNode HTMLHRElement
+instance IsChildNode HTMLHRElement
+instance IsAnimatable HTMLHRElement
+instance IsGlobalEventHandlers HTMLHRElement
+instance IsGObject HTMLHRElement where
+  typeGType _ = gTypeHTMLHRElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLHRElement\"]" gTypeHTMLHRElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLHeadElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadElement Mozilla HTMLHeadElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLHeadElement
+instance IsElement HTMLHeadElement
+instance IsNode HTMLHeadElement
+instance IsEventTarget HTMLHeadElement
+instance IsSlotable HTMLHeadElement
+instance IsParentNode HTMLHeadElement
+instance IsNonDocumentTypeChildNode HTMLHeadElement
+instance IsChildNode HTMLHeadElement
+instance IsAnimatable HTMLHeadElement
+instance IsGlobalEventHandlers HTMLHeadElement
+instance IsGObject HTMLHeadElement where
+  typeGType _ = gTypeHTMLHeadElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLHeadElement\"]" gTypeHTMLHeadElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLHeadingElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHeadingElement Mozilla HTMLHeadingElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLHeadingElement
+instance IsElement HTMLHeadingElement
+instance IsNode HTMLHeadingElement
+instance IsEventTarget HTMLHeadingElement
+instance IsSlotable HTMLHeadingElement
+instance IsParentNode HTMLHeadingElement
+instance IsNonDocumentTypeChildNode HTMLHeadingElement
+instance IsChildNode HTMLHeadingElement
+instance IsAnimatable HTMLHeadingElement
+instance IsGlobalEventHandlers HTMLHeadingElement
+instance IsGObject HTMLHeadingElement where
+  typeGType _ = gTypeHTMLHeadingElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLHeadingElement\"]" gTypeHTMLHeadingElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLHtmlElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHtmlElement Mozilla HTMLHtmlElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLHtmlElement
+instance IsElement HTMLHtmlElement
+instance IsNode HTMLHtmlElement
+instance IsEventTarget HTMLHtmlElement
+instance IsSlotable HTMLHtmlElement
+instance IsParentNode HTMLHtmlElement
+instance IsNonDocumentTypeChildNode HTMLHtmlElement
+instance IsChildNode HTMLHtmlElement
+instance IsAnimatable HTMLHtmlElement
+instance IsGlobalEventHandlers HTMLHtmlElement
+instance IsGObject HTMLHtmlElement where
+  typeGType _ = gTypeHTMLHtmlElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLHtmlElement\"]" gTypeHTMLHtmlElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLHyperlinkElementUtils".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils Mozilla HTMLHyperlinkElementUtils documentation>
+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 #-}
+
+class (IsGObject o) => IsHTMLHyperlinkElementUtils o
+toHTMLHyperlinkElementUtils :: IsHTMLHyperlinkElementUtils o => o -> HTMLHyperlinkElementUtils
+toHTMLHyperlinkElementUtils = HTMLHyperlinkElementUtils . coerce
+
+instance IsHTMLHyperlinkElementUtils HTMLHyperlinkElementUtils
+instance IsGObject HTMLHyperlinkElementUtils where
+  typeGType _ = gTypeHTMLHyperlinkElementUtils
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLHyperlinkElementUtils\"]" gTypeHTMLHyperlinkElementUtils :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLIFrameElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement Mozilla HTMLIFrameElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLIFrameElement
+instance IsElement HTMLIFrameElement
+instance IsNode HTMLIFrameElement
+instance IsEventTarget HTMLIFrameElement
+instance IsSlotable HTMLIFrameElement
+instance IsParentNode HTMLIFrameElement
+instance IsNonDocumentTypeChildNode HTMLIFrameElement
+instance IsChildNode HTMLIFrameElement
+instance IsAnimatable HTMLIFrameElement
+instance IsGlobalEventHandlers HTMLIFrameElement
+instance IsGObject HTMLIFrameElement where
+  typeGType _ = gTypeHTMLIFrameElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLIFrameElement\"]" gTypeHTMLIFrameElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLImageElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement Mozilla HTMLImageElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLImageElement
+instance IsElement HTMLImageElement
+instance IsNode HTMLImageElement
+instance IsEventTarget HTMLImageElement
+instance IsSlotable HTMLImageElement
+instance IsParentNode HTMLImageElement
+instance IsNonDocumentTypeChildNode HTMLImageElement
+instance IsChildNode HTMLImageElement
+instance IsAnimatable HTMLImageElement
+instance IsGlobalEventHandlers HTMLImageElement
+instance IsGObject HTMLImageElement where
+  typeGType _ = gTypeHTMLImageElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLImageElement\"]" gTypeHTMLImageElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLInputElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement Mozilla HTMLInputElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLInputElement
+instance IsElement HTMLInputElement
+instance IsNode HTMLInputElement
+instance IsEventTarget HTMLInputElement
+instance IsSlotable HTMLInputElement
+instance IsParentNode HTMLInputElement
+instance IsNonDocumentTypeChildNode HTMLInputElement
+instance IsChildNode HTMLInputElement
+instance IsAnimatable HTMLInputElement
+instance IsGlobalEventHandlers HTMLInputElement
+instance IsGObject HTMLInputElement where
+  typeGType _ = gTypeHTMLInputElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLInputElement\"]" gTypeHTMLInputElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLKeygenElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLKeygenElement Mozilla HTMLKeygenElement documentation>
+newtype HTMLKeygenElement = HTMLKeygenElement { unHTMLKeygenElement :: JSVal }
+
+instance Eq (HTMLKeygenElement) where
+  (HTMLKeygenElement a) == (HTMLKeygenElement b) = js_eq a b
+
+instance PToJSVal HTMLKeygenElement where
+  pToJSVal = unHTMLKeygenElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal HTMLKeygenElement where
+  pFromJSVal = HTMLKeygenElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal HTMLKeygenElement where
+  toJSVal = return . unHTMLKeygenElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal HTMLKeygenElement where
+  fromJSVal = return . fmap HTMLKeygenElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsHTMLElement HTMLKeygenElement
+instance IsElement HTMLKeygenElement
+instance IsNode HTMLKeygenElement
+instance IsEventTarget HTMLKeygenElement
+instance IsSlotable HTMLKeygenElement
+instance IsParentNode HTMLKeygenElement
+instance IsNonDocumentTypeChildNode HTMLKeygenElement
+instance IsChildNode HTMLKeygenElement
+instance IsAnimatable HTMLKeygenElement
+instance IsGlobalEventHandlers HTMLKeygenElement
+instance IsGObject HTMLKeygenElement where
+  typeGType _ = gTypeHTMLKeygenElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLKeygenElement\"]" gTypeHTMLKeygenElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLLIElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLIElement Mozilla HTMLLIElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLLIElement
+instance IsElement HTMLLIElement
+instance IsNode HTMLLIElement
+instance IsEventTarget HTMLLIElement
+instance IsSlotable HTMLLIElement
+instance IsParentNode HTMLLIElement
+instance IsNonDocumentTypeChildNode HTMLLIElement
+instance IsChildNode HTMLLIElement
+instance IsAnimatable HTMLLIElement
+instance IsGlobalEventHandlers HTMLLIElement
+instance IsGObject HTMLLIElement where
+  typeGType _ = gTypeHTMLLIElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLLIElement\"]" gTypeHTMLLIElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLLabelElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement Mozilla HTMLLabelElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLLabelElement
+instance IsElement HTMLLabelElement
+instance IsNode HTMLLabelElement
+instance IsEventTarget HTMLLabelElement
+instance IsSlotable HTMLLabelElement
+instance IsParentNode HTMLLabelElement
+instance IsNonDocumentTypeChildNode HTMLLabelElement
+instance IsChildNode HTMLLabelElement
+instance IsAnimatable HTMLLabelElement
+instance IsGlobalEventHandlers HTMLLabelElement
+instance IsGObject HTMLLabelElement where
+  typeGType _ = gTypeHTMLLabelElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLLabelElement\"]" gTypeHTMLLabelElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLLegendElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLegendElement Mozilla HTMLLegendElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLLegendElement
+instance IsElement HTMLLegendElement
+instance IsNode HTMLLegendElement
+instance IsEventTarget HTMLLegendElement
+instance IsSlotable HTMLLegendElement
+instance IsParentNode HTMLLegendElement
+instance IsNonDocumentTypeChildNode HTMLLegendElement
+instance IsChildNode HTMLLegendElement
+instance IsAnimatable HTMLLegendElement
+instance IsGlobalEventHandlers HTMLLegendElement
+instance IsGObject HTMLLegendElement where
+  typeGType _ = gTypeHTMLLegendElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLLegendElement\"]" gTypeHTMLLegendElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLLinkElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement Mozilla HTMLLinkElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLLinkElement
+instance IsElement HTMLLinkElement
+instance IsNode HTMLLinkElement
+instance IsEventTarget HTMLLinkElement
+instance IsSlotable HTMLLinkElement
+instance IsParentNode HTMLLinkElement
+instance IsNonDocumentTypeChildNode HTMLLinkElement
+instance IsChildNode HTMLLinkElement
+instance IsAnimatable HTMLLinkElement
+instance IsGlobalEventHandlers HTMLLinkElement
+instance IsGObject HTMLLinkElement where
+  typeGType _ = gTypeHTMLLinkElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLLinkElement\"]" gTypeHTMLLinkElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLMapElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement Mozilla HTMLMapElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLMapElement
+instance IsElement HTMLMapElement
+instance IsNode HTMLMapElement
+instance IsEventTarget HTMLMapElement
+instance IsSlotable HTMLMapElement
+instance IsParentNode HTMLMapElement
+instance IsNonDocumentTypeChildNode HTMLMapElement
+instance IsChildNode HTMLMapElement
+instance IsAnimatable HTMLMapElement
+instance IsGlobalEventHandlers HTMLMapElement
+instance IsGObject HTMLMapElement where
+  typeGType _ = gTypeHTMLMapElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLMapElement\"]" gTypeHTMLMapElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLMarqueeElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMarqueeElement Mozilla HTMLMarqueeElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLMarqueeElement
+instance IsElement HTMLMarqueeElement
+instance IsNode HTMLMarqueeElement
+instance IsEventTarget HTMLMarqueeElement
+instance IsSlotable HTMLMarqueeElement
+instance IsParentNode HTMLMarqueeElement
+instance IsNonDocumentTypeChildNode HTMLMarqueeElement
+instance IsChildNode HTMLMarqueeElement
+instance IsAnimatable HTMLMarqueeElement
+instance IsGlobalEventHandlers HTMLMarqueeElement
+instance IsGObject HTMLMarqueeElement where
+  typeGType _ = gTypeHTMLMarqueeElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLMarqueeElement\"]" gTypeHTMLMarqueeElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLMediaElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement Mozilla HTMLMediaElement documentation>
+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 #-}
+
+class (IsHTMLElement o, IsElement o, IsNode o, IsEventTarget o, IsSlotable o, IsParentNode o, IsNonDocumentTypeChildNode o, IsChildNode o, IsAnimatable o, IsGlobalEventHandlers o, IsGObject o) => IsHTMLMediaElement o
+toHTMLMediaElement :: IsHTMLMediaElement o => o -> HTMLMediaElement
+toHTMLMediaElement = HTMLMediaElement . coerce
+
+instance IsHTMLMediaElement HTMLMediaElement
+instance IsHTMLElement HTMLMediaElement
+instance IsElement HTMLMediaElement
+instance IsNode HTMLMediaElement
+instance IsEventTarget HTMLMediaElement
+instance IsSlotable HTMLMediaElement
+instance IsParentNode HTMLMediaElement
+instance IsNonDocumentTypeChildNode HTMLMediaElement
+instance IsChildNode HTMLMediaElement
+instance IsAnimatable HTMLMediaElement
+instance IsGlobalEventHandlers HTMLMediaElement
+instance IsGObject HTMLMediaElement where
+  typeGType _ = gTypeHTMLMediaElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLMediaElement\"]" gTypeHTMLMediaElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLMenuElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMenuElement Mozilla HTMLMenuElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLMenuElement
+instance IsElement HTMLMenuElement
+instance IsNode HTMLMenuElement
+instance IsEventTarget HTMLMenuElement
+instance IsSlotable HTMLMenuElement
+instance IsParentNode HTMLMenuElement
+instance IsNonDocumentTypeChildNode HTMLMenuElement
+instance IsChildNode HTMLMenuElement
+instance IsAnimatable HTMLMenuElement
+instance IsGlobalEventHandlers HTMLMenuElement
+instance IsGObject HTMLMenuElement where
+  typeGType _ = gTypeHTMLMenuElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLMenuElement\"]" gTypeHTMLMenuElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLMetaElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement Mozilla HTMLMetaElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLMetaElement
+instance IsElement HTMLMetaElement
+instance IsNode HTMLMetaElement
+instance IsEventTarget HTMLMetaElement
+instance IsSlotable HTMLMetaElement
+instance IsParentNode HTMLMetaElement
+instance IsNonDocumentTypeChildNode HTMLMetaElement
+instance IsChildNode HTMLMetaElement
+instance IsAnimatable HTMLMetaElement
+instance IsGlobalEventHandlers HTMLMetaElement
+instance IsGObject HTMLMetaElement where
+  typeGType _ = gTypeHTMLMetaElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLMetaElement\"]" gTypeHTMLMetaElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLMeterElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLMeterElement Mozilla HTMLMeterElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLMeterElement
+instance IsElement HTMLMeterElement
+instance IsNode HTMLMeterElement
+instance IsEventTarget HTMLMeterElement
+instance IsSlotable HTMLMeterElement
+instance IsParentNode HTMLMeterElement
+instance IsNonDocumentTypeChildNode HTMLMeterElement
+instance IsChildNode HTMLMeterElement
+instance IsAnimatable HTMLMeterElement
+instance IsGlobalEventHandlers HTMLMeterElement
+instance IsGObject HTMLMeterElement where
+  typeGType _ = gTypeHTMLMeterElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLMeterElement\"]" gTypeHTMLMeterElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLModElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLModElement Mozilla HTMLModElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLModElement
+instance IsElement HTMLModElement
+instance IsNode HTMLModElement
+instance IsEventTarget HTMLModElement
+instance IsSlotable HTMLModElement
+instance IsParentNode HTMLModElement
+instance IsNonDocumentTypeChildNode HTMLModElement
+instance IsChildNode HTMLModElement
+instance IsAnimatable HTMLModElement
+instance IsGlobalEventHandlers HTMLModElement
+instance IsGObject HTMLModElement where
+  typeGType _ = gTypeHTMLModElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLModElement\"]" gTypeHTMLModElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLOListElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOListElement Mozilla HTMLOListElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLOListElement
+instance IsElement HTMLOListElement
+instance IsNode HTMLOListElement
+instance IsEventTarget HTMLOListElement
+instance IsSlotable HTMLOListElement
+instance IsParentNode HTMLOListElement
+instance IsNonDocumentTypeChildNode HTMLOListElement
+instance IsChildNode HTMLOListElement
+instance IsAnimatable HTMLOListElement
+instance IsGlobalEventHandlers HTMLOListElement
+instance IsGObject HTMLOListElement where
+  typeGType _ = gTypeHTMLOListElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLOListElement\"]" gTypeHTMLOListElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLObjectElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement Mozilla HTMLObjectElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLObjectElement
+instance IsElement HTMLObjectElement
+instance IsNode HTMLObjectElement
+instance IsEventTarget HTMLObjectElement
+instance IsSlotable HTMLObjectElement
+instance IsParentNode HTMLObjectElement
+instance IsNonDocumentTypeChildNode HTMLObjectElement
+instance IsChildNode HTMLObjectElement
+instance IsAnimatable HTMLObjectElement
+instance IsGlobalEventHandlers HTMLObjectElement
+instance IsGObject HTMLObjectElement where
+  typeGType _ = gTypeHTMLObjectElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLObjectElement\"]" gTypeHTMLObjectElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLOptGroupElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement Mozilla HTMLOptGroupElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLOptGroupElement
+instance IsElement HTMLOptGroupElement
+instance IsNode HTMLOptGroupElement
+instance IsEventTarget HTMLOptGroupElement
+instance IsSlotable HTMLOptGroupElement
+instance IsParentNode HTMLOptGroupElement
+instance IsNonDocumentTypeChildNode HTMLOptGroupElement
+instance IsChildNode HTMLOptGroupElement
+instance IsAnimatable HTMLOptGroupElement
+instance IsGlobalEventHandlers HTMLOptGroupElement
+instance IsGObject HTMLOptGroupElement where
+  typeGType _ = gTypeHTMLOptGroupElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLOptGroupElement\"]" gTypeHTMLOptGroupElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLOptionElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement Mozilla HTMLOptionElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLOptionElement
+instance IsElement HTMLOptionElement
+instance IsNode HTMLOptionElement
+instance IsEventTarget HTMLOptionElement
+instance IsSlotable HTMLOptionElement
+instance IsParentNode HTMLOptionElement
+instance IsNonDocumentTypeChildNode HTMLOptionElement
+instance IsChildNode HTMLOptionElement
+instance IsAnimatable HTMLOptionElement
+instance IsGlobalEventHandlers HTMLOptionElement
+instance IsGObject HTMLOptionElement where
+  typeGType _ = gTypeHTMLOptionElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLOptionElement\"]" gTypeHTMLOptionElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLOptionsCollection".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLCollection"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection Mozilla HTMLOptionsCollection documentation>
+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 #-}
+
+instance IsHTMLCollection HTMLOptionsCollection
+instance IsGObject HTMLOptionsCollection where
+  typeGType _ = gTypeHTMLOptionsCollection
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLOptionsCollection\"]" gTypeHTMLOptionsCollection :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLOutputElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement Mozilla HTMLOutputElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLOutputElement
+instance IsElement HTMLOutputElement
+instance IsNode HTMLOutputElement
+instance IsEventTarget HTMLOutputElement
+instance IsSlotable HTMLOutputElement
+instance IsParentNode HTMLOutputElement
+instance IsNonDocumentTypeChildNode HTMLOutputElement
+instance IsChildNode HTMLOutputElement
+instance IsAnimatable HTMLOutputElement
+instance IsGlobalEventHandlers HTMLOutputElement
+instance IsGObject HTMLOutputElement where
+  typeGType _ = gTypeHTMLOutputElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLOutputElement\"]" gTypeHTMLOutputElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLParagraphElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParagraphElement Mozilla HTMLParagraphElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLParagraphElement
+instance IsElement HTMLParagraphElement
+instance IsNode HTMLParagraphElement
+instance IsEventTarget HTMLParagraphElement
+instance IsSlotable HTMLParagraphElement
+instance IsParentNode HTMLParagraphElement
+instance IsNonDocumentTypeChildNode HTMLParagraphElement
+instance IsChildNode HTMLParagraphElement
+instance IsAnimatable HTMLParagraphElement
+instance IsGlobalEventHandlers HTMLParagraphElement
+instance IsGObject HTMLParagraphElement where
+  typeGType _ = gTypeHTMLParagraphElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLParagraphElement\"]" gTypeHTMLParagraphElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLParamElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLParamElement Mozilla HTMLParamElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLParamElement
+instance IsElement HTMLParamElement
+instance IsNode HTMLParamElement
+instance IsEventTarget HTMLParamElement
+instance IsSlotable HTMLParamElement
+instance IsParentNode HTMLParamElement
+instance IsNonDocumentTypeChildNode HTMLParamElement
+instance IsChildNode HTMLParamElement
+instance IsAnimatable HTMLParamElement
+instance IsGlobalEventHandlers HTMLParamElement
+instance IsGObject HTMLParamElement where
+  typeGType _ = gTypeHTMLParamElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLParamElement\"]" gTypeHTMLParamElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLPictureElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLPictureElement Mozilla HTMLPictureElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLPictureElement
+instance IsElement HTMLPictureElement
+instance IsNode HTMLPictureElement
+instance IsEventTarget HTMLPictureElement
+instance IsSlotable HTMLPictureElement
+instance IsParentNode HTMLPictureElement
+instance IsNonDocumentTypeChildNode HTMLPictureElement
+instance IsChildNode HTMLPictureElement
+instance IsAnimatable HTMLPictureElement
+instance IsGlobalEventHandlers HTMLPictureElement
+instance IsGObject HTMLPictureElement where
+  typeGType _ = gTypeHTMLPictureElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLPictureElement\"]" gTypeHTMLPictureElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLPreElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLPreElement Mozilla HTMLPreElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLPreElement
+instance IsElement HTMLPreElement
+instance IsNode HTMLPreElement
+instance IsEventTarget HTMLPreElement
+instance IsSlotable HTMLPreElement
+instance IsParentNode HTMLPreElement
+instance IsNonDocumentTypeChildNode HTMLPreElement
+instance IsChildNode HTMLPreElement
+instance IsAnimatable HTMLPreElement
+instance IsGlobalEventHandlers HTMLPreElement
+instance IsGObject HTMLPreElement where
+  typeGType _ = gTypeHTMLPreElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLPreElement\"]" gTypeHTMLPreElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLProgressElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement Mozilla HTMLProgressElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLProgressElement
+instance IsElement HTMLProgressElement
+instance IsNode HTMLProgressElement
+instance IsEventTarget HTMLProgressElement
+instance IsSlotable HTMLProgressElement
+instance IsParentNode HTMLProgressElement
+instance IsNonDocumentTypeChildNode HTMLProgressElement
+instance IsChildNode HTMLProgressElement
+instance IsAnimatable HTMLProgressElement
+instance IsGlobalEventHandlers HTMLProgressElement
+instance IsGObject HTMLProgressElement where
+  typeGType _ = gTypeHTMLProgressElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLProgressElement\"]" gTypeHTMLProgressElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLQuoteElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLQuoteElement Mozilla HTMLQuoteElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLQuoteElement
+instance IsElement HTMLQuoteElement
+instance IsNode HTMLQuoteElement
+instance IsEventTarget HTMLQuoteElement
+instance IsSlotable HTMLQuoteElement
+instance IsParentNode HTMLQuoteElement
+instance IsNonDocumentTypeChildNode HTMLQuoteElement
+instance IsChildNode HTMLQuoteElement
+instance IsAnimatable HTMLQuoteElement
+instance IsGlobalEventHandlers HTMLQuoteElement
+instance IsGObject HTMLQuoteElement where
+  typeGType _ = gTypeHTMLQuoteElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLQuoteElement\"]" gTypeHTMLQuoteElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLScriptElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement Mozilla HTMLScriptElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLScriptElement
+instance IsElement HTMLScriptElement
+instance IsNode HTMLScriptElement
+instance IsEventTarget HTMLScriptElement
+instance IsSlotable HTMLScriptElement
+instance IsParentNode HTMLScriptElement
+instance IsNonDocumentTypeChildNode HTMLScriptElement
+instance IsChildNode HTMLScriptElement
+instance IsAnimatable HTMLScriptElement
+instance IsGlobalEventHandlers HTMLScriptElement
+instance IsGObject HTMLScriptElement where
+  typeGType _ = gTypeHTMLScriptElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLScriptElement\"]" gTypeHTMLScriptElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLSelectElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement Mozilla HTMLSelectElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLSelectElement
+instance IsElement HTMLSelectElement
+instance IsNode HTMLSelectElement
+instance IsEventTarget HTMLSelectElement
+instance IsSlotable HTMLSelectElement
+instance IsParentNode HTMLSelectElement
+instance IsNonDocumentTypeChildNode HTMLSelectElement
+instance IsChildNode HTMLSelectElement
+instance IsAnimatable HTMLSelectElement
+instance IsGlobalEventHandlers HTMLSelectElement
+instance IsGObject HTMLSelectElement where
+  typeGType _ = gTypeHTMLSelectElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLSelectElement\"]" gTypeHTMLSelectElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLSlotElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement Mozilla HTMLSlotElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLSlotElement
+instance IsElement HTMLSlotElement
+instance IsNode HTMLSlotElement
+instance IsEventTarget HTMLSlotElement
+instance IsSlotable HTMLSlotElement
+instance IsParentNode HTMLSlotElement
+instance IsNonDocumentTypeChildNode HTMLSlotElement
+instance IsChildNode HTMLSlotElement
+instance IsAnimatable HTMLSlotElement
+instance IsGlobalEventHandlers HTMLSlotElement
+instance IsGObject HTMLSlotElement where
+  typeGType _ = gTypeHTMLSlotElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLSlotElement\"]" gTypeHTMLSlotElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLSourceElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSourceElement Mozilla HTMLSourceElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLSourceElement
+instance IsElement HTMLSourceElement
+instance IsNode HTMLSourceElement
+instance IsEventTarget HTMLSourceElement
+instance IsSlotable HTMLSourceElement
+instance IsParentNode HTMLSourceElement
+instance IsNonDocumentTypeChildNode HTMLSourceElement
+instance IsChildNode HTMLSourceElement
+instance IsAnimatable HTMLSourceElement
+instance IsGlobalEventHandlers HTMLSourceElement
+instance IsGObject HTMLSourceElement where
+  typeGType _ = gTypeHTMLSourceElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLSourceElement\"]" gTypeHTMLSourceElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLSpanElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement Mozilla HTMLSpanElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLSpanElement
+instance IsElement HTMLSpanElement
+instance IsNode HTMLSpanElement
+instance IsEventTarget HTMLSpanElement
+instance IsSlotable HTMLSpanElement
+instance IsParentNode HTMLSpanElement
+instance IsNonDocumentTypeChildNode HTMLSpanElement
+instance IsChildNode HTMLSpanElement
+instance IsAnimatable HTMLSpanElement
+instance IsGlobalEventHandlers HTMLSpanElement
+instance IsGObject HTMLSpanElement where
+  typeGType _ = gTypeHTMLSpanElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLSpanElement\"]" gTypeHTMLSpanElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLStyleElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement Mozilla HTMLStyleElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLStyleElement
+instance IsElement HTMLStyleElement
+instance IsNode HTMLStyleElement
+instance IsEventTarget HTMLStyleElement
+instance IsSlotable HTMLStyleElement
+instance IsParentNode HTMLStyleElement
+instance IsNonDocumentTypeChildNode HTMLStyleElement
+instance IsChildNode HTMLStyleElement
+instance IsAnimatable HTMLStyleElement
+instance IsGlobalEventHandlers HTMLStyleElement
+instance IsGObject HTMLStyleElement where
+  typeGType _ = gTypeHTMLStyleElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLStyleElement\"]" gTypeHTMLStyleElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLTableCaptionElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCaptionElement Mozilla HTMLTableCaptionElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLTableCaptionElement
+instance IsElement HTMLTableCaptionElement
+instance IsNode HTMLTableCaptionElement
+instance IsEventTarget HTMLTableCaptionElement
+instance IsSlotable HTMLTableCaptionElement
+instance IsParentNode HTMLTableCaptionElement
+instance IsNonDocumentTypeChildNode HTMLTableCaptionElement
+instance IsChildNode HTMLTableCaptionElement
+instance IsAnimatable HTMLTableCaptionElement
+instance IsGlobalEventHandlers HTMLTableCaptionElement
+instance IsGObject HTMLTableCaptionElement where
+  typeGType _ = gTypeHTMLTableCaptionElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLTableCaptionElement\"]" gTypeHTMLTableCaptionElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLTableCellElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableCellElement Mozilla HTMLTableCellElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLTableCellElement
+instance IsElement HTMLTableCellElement
+instance IsNode HTMLTableCellElement
+instance IsEventTarget HTMLTableCellElement
+instance IsSlotable HTMLTableCellElement
+instance IsParentNode HTMLTableCellElement
+instance IsNonDocumentTypeChildNode HTMLTableCellElement
+instance IsChildNode HTMLTableCellElement
+instance IsAnimatable HTMLTableCellElement
+instance IsGlobalEventHandlers HTMLTableCellElement
+instance IsGObject HTMLTableCellElement where
+  typeGType _ = gTypeHTMLTableCellElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLTableCellElement\"]" gTypeHTMLTableCellElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLTableColElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableColElement Mozilla HTMLTableColElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLTableColElement
+instance IsElement HTMLTableColElement
+instance IsNode HTMLTableColElement
+instance IsEventTarget HTMLTableColElement
+instance IsSlotable HTMLTableColElement
+instance IsParentNode HTMLTableColElement
+instance IsNonDocumentTypeChildNode HTMLTableColElement
+instance IsChildNode HTMLTableColElement
+instance IsAnimatable HTMLTableColElement
+instance IsGlobalEventHandlers HTMLTableColElement
+instance IsGObject HTMLTableColElement where
+  typeGType _ = gTypeHTMLTableColElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLTableColElement\"]" gTypeHTMLTableColElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLTableElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableElement Mozilla HTMLTableElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLTableElement
+instance IsElement HTMLTableElement
+instance IsNode HTMLTableElement
+instance IsEventTarget HTMLTableElement
+instance IsSlotable HTMLTableElement
+instance IsParentNode HTMLTableElement
+instance IsNonDocumentTypeChildNode HTMLTableElement
+instance IsChildNode HTMLTableElement
+instance IsAnimatable HTMLTableElement
+instance IsGlobalEventHandlers HTMLTableElement
+instance IsGObject HTMLTableElement where
+  typeGType _ = gTypeHTMLTableElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLTableElement\"]" gTypeHTMLTableElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLTableRowElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableRowElement Mozilla HTMLTableRowElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLTableRowElement
+instance IsElement HTMLTableRowElement
+instance IsNode HTMLTableRowElement
+instance IsEventTarget HTMLTableRowElement
+instance IsSlotable HTMLTableRowElement
+instance IsParentNode HTMLTableRowElement
+instance IsNonDocumentTypeChildNode HTMLTableRowElement
+instance IsChildNode HTMLTableRowElement
+instance IsAnimatable HTMLTableRowElement
+instance IsGlobalEventHandlers HTMLTableRowElement
+instance IsGObject HTMLTableRowElement where
+  typeGType _ = gTypeHTMLTableRowElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLTableRowElement\"]" gTypeHTMLTableRowElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLTableSectionElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTableSectionElement Mozilla HTMLTableSectionElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLTableSectionElement
+instance IsElement HTMLTableSectionElement
+instance IsNode HTMLTableSectionElement
+instance IsEventTarget HTMLTableSectionElement
+instance IsSlotable HTMLTableSectionElement
+instance IsParentNode HTMLTableSectionElement
+instance IsNonDocumentTypeChildNode HTMLTableSectionElement
+instance IsChildNode HTMLTableSectionElement
+instance IsAnimatable HTMLTableSectionElement
+instance IsGlobalEventHandlers HTMLTableSectionElement
+instance IsGObject HTMLTableSectionElement where
+  typeGType _ = gTypeHTMLTableSectionElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLTableSectionElement\"]" gTypeHTMLTableSectionElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLTemplateElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement Mozilla HTMLTemplateElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLTemplateElement
+instance IsElement HTMLTemplateElement
+instance IsNode HTMLTemplateElement
+instance IsEventTarget HTMLTemplateElement
+instance IsSlotable HTMLTemplateElement
+instance IsParentNode HTMLTemplateElement
+instance IsNonDocumentTypeChildNode HTMLTemplateElement
+instance IsChildNode HTMLTemplateElement
+instance IsAnimatable HTMLTemplateElement
+instance IsGlobalEventHandlers HTMLTemplateElement
+instance IsGObject HTMLTemplateElement where
+  typeGType _ = gTypeHTMLTemplateElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLTemplateElement\"]" gTypeHTMLTemplateElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLTextAreaElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement Mozilla HTMLTextAreaElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLTextAreaElement
+instance IsElement HTMLTextAreaElement
+instance IsNode HTMLTextAreaElement
+instance IsEventTarget HTMLTextAreaElement
+instance IsSlotable HTMLTextAreaElement
+instance IsParentNode HTMLTextAreaElement
+instance IsNonDocumentTypeChildNode HTMLTextAreaElement
+instance IsChildNode HTMLTextAreaElement
+instance IsAnimatable HTMLTextAreaElement
+instance IsGlobalEventHandlers HTMLTextAreaElement
+instance IsGObject HTMLTextAreaElement where
+  typeGType _ = gTypeHTMLTextAreaElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLTextAreaElement\"]" gTypeHTMLTextAreaElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLTimeElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTimeElement Mozilla HTMLTimeElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLTimeElement
+instance IsElement HTMLTimeElement
+instance IsNode HTMLTimeElement
+instance IsEventTarget HTMLTimeElement
+instance IsSlotable HTMLTimeElement
+instance IsParentNode HTMLTimeElement
+instance IsNonDocumentTypeChildNode HTMLTimeElement
+instance IsChildNode HTMLTimeElement
+instance IsAnimatable HTMLTimeElement
+instance IsGlobalEventHandlers HTMLTimeElement
+instance IsGObject HTMLTimeElement where
+  typeGType _ = gTypeHTMLTimeElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLTimeElement\"]" gTypeHTMLTimeElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLTitleElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTitleElement Mozilla HTMLTitleElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLTitleElement
+instance IsElement HTMLTitleElement
+instance IsNode HTMLTitleElement
+instance IsEventTarget HTMLTitleElement
+instance IsSlotable HTMLTitleElement
+instance IsParentNode HTMLTitleElement
+instance IsNonDocumentTypeChildNode HTMLTitleElement
+instance IsChildNode HTMLTitleElement
+instance IsAnimatable HTMLTitleElement
+instance IsGlobalEventHandlers HTMLTitleElement
+instance IsGObject HTMLTitleElement where
+  typeGType _ = gTypeHTMLTitleElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLTitleElement\"]" gTypeHTMLTitleElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLTrackElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement Mozilla HTMLTrackElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLTrackElement
+instance IsElement HTMLTrackElement
+instance IsNode HTMLTrackElement
+instance IsEventTarget HTMLTrackElement
+instance IsSlotable HTMLTrackElement
+instance IsParentNode HTMLTrackElement
+instance IsNonDocumentTypeChildNode HTMLTrackElement
+instance IsChildNode HTMLTrackElement
+instance IsAnimatable HTMLTrackElement
+instance IsGlobalEventHandlers HTMLTrackElement
+instance IsGObject HTMLTrackElement where
+  typeGType _ = gTypeHTMLTrackElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLTrackElement\"]" gTypeHTMLTrackElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLUListElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUListElement Mozilla HTMLUListElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLUListElement
+instance IsElement HTMLUListElement
+instance IsNode HTMLUListElement
+instance IsEventTarget HTMLUListElement
+instance IsSlotable HTMLUListElement
+instance IsParentNode HTMLUListElement
+instance IsNonDocumentTypeChildNode HTMLUListElement
+instance IsChildNode HTMLUListElement
+instance IsAnimatable HTMLUListElement
+instance IsGlobalEventHandlers HTMLUListElement
+instance IsGObject HTMLUListElement where
+  typeGType _ = gTypeHTMLUListElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLUListElement\"]" gTypeHTMLUListElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLUnknownElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement Mozilla HTMLUnknownElement documentation>
+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 #-}
+
+instance IsHTMLElement HTMLUnknownElement
+instance IsElement HTMLUnknownElement
+instance IsNode HTMLUnknownElement
+instance IsEventTarget HTMLUnknownElement
+instance IsSlotable HTMLUnknownElement
+instance IsParentNode HTMLUnknownElement
+instance IsNonDocumentTypeChildNode HTMLUnknownElement
+instance IsChildNode HTMLUnknownElement
+instance IsAnimatable HTMLUnknownElement
+instance IsGlobalEventHandlers HTMLUnknownElement
+instance IsGObject HTMLUnknownElement where
+  typeGType _ = gTypeHTMLUnknownElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLUnknownElement\"]" gTypeHTMLUnknownElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HTMLVideoElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.HTMLMediaElement"
+--     * "GHCJS.DOM.HTMLElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement Mozilla HTMLVideoElement documentation>
+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 #-}
+
+instance IsHTMLMediaElement HTMLVideoElement
+instance IsHTMLElement HTMLVideoElement
+instance IsElement HTMLVideoElement
+instance IsNode HTMLVideoElement
+instance IsEventTarget HTMLVideoElement
+instance IsSlotable HTMLVideoElement
+instance IsParentNode HTMLVideoElement
+instance IsNonDocumentTypeChildNode HTMLVideoElement
+instance IsChildNode HTMLVideoElement
+instance IsAnimatable HTMLVideoElement
+instance IsGlobalEventHandlers HTMLVideoElement
+instance IsGObject HTMLVideoElement where
+  typeGType _ = gTypeHTMLVideoElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HTMLVideoElement\"]" gTypeHTMLVideoElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HashChangeEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HashChangeEvent Mozilla HashChangeEvent documentation>
+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 #-}
+
+instance IsEvent HashChangeEvent
+instance IsGObject HashChangeEvent where
+  typeGType _ = gTypeHashChangeEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HashChangeEvent\"]" gTypeHashChangeEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HashChangeEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HashChangeEventInit Mozilla HashChangeEventInit documentation>
+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 #-}
+
+instance IsEventInit HashChangeEventInit
+instance IsGObject HashChangeEventInit where
+  typeGType _ = gTypeHashChangeEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HashChangeEventInit\"]" gTypeHashChangeEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Headers".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Headers Mozilla Headers documentation>
+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 #-}
+
+instance IsGObject Headers where
+  typeGType _ = gTypeHeaders
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Headers\"]" gTypeHeaders :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.History".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/History Mozilla History documentation>
+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 #-}
+
+instance IsGObject History where
+  typeGType _ = gTypeHistory
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"History\"]" gTypeHistory :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.HmacKeyParams".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CryptoAlgorithmParameters"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/HmacKeyParams Mozilla HmacKeyParams documentation>
+newtype HmacKeyParams = HmacKeyParams { unHmacKeyParams :: JSVal }
+
+instance Eq (HmacKeyParams) where
+  (HmacKeyParams a) == (HmacKeyParams b) = js_eq a b
+
+instance PToJSVal HmacKeyParams where
+  pToJSVal = unHmacKeyParams
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal HmacKeyParams where
+  pFromJSVal = HmacKeyParams
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal HmacKeyParams where
+  toJSVal = return . unHmacKeyParams
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal HmacKeyParams where
+  fromJSVal = return . fmap HmacKeyParams . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsCryptoAlgorithmParameters HmacKeyParams
+instance IsGObject HmacKeyParams where
+  typeGType _ = gTypeHmacKeyParams
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"HmacKeyParams\"]" gTypeHmacKeyParams :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBCursor".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor Mozilla IDBCursor documentation>
+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 #-}
+
+class (IsGObject o) => IsIDBCursor o
+toIDBCursor :: IsIDBCursor o => o -> IDBCursor
+toIDBCursor = IDBCursor . coerce
+
+instance IsIDBCursor IDBCursor
+instance IsGObject IDBCursor where
+  typeGType _ = gTypeIDBCursor
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBCursor\"]" gTypeIDBCursor :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBCursorWithValue".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.IDBCursor"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursorWithValue Mozilla IDBCursorWithValue documentation>
+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 #-}
+
+instance IsIDBCursor IDBCursorWithValue
+instance IsGObject IDBCursorWithValue where
+  typeGType _ = gTypeIDBCursorWithValue
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBCursorWithValue\"]" gTypeIDBCursorWithValue :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBDatabase".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase Mozilla IDBDatabase documentation>
+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 #-}
+
+instance IsEventTarget IDBDatabase
+instance IsGObject IDBDatabase where
+  typeGType _ = gTypeIDBDatabase
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBDatabase\"]" gTypeIDBDatabase :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBFactory".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory Mozilla IDBFactory documentation>
+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 #-}
+
+instance IsGObject IDBFactory where
+  typeGType _ = gTypeIDBFactory
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBFactory\"]" gTypeIDBFactory :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBIndex".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex Mozilla IDBIndex documentation>
+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 #-}
+
+instance IsGObject IDBIndex where
+  typeGType _ = gTypeIDBIndex
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBIndex\"]" gTypeIDBIndex :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBIndexParameters".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBIndexParameters Mozilla IDBIndexParameters documentation>
+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 #-}
+
+instance IsGObject IDBIndexParameters where
+  typeGType _ = gTypeIDBIndexParameters
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBIndexParameters\"]" gTypeIDBIndexParameters :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBKeyRange".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBKeyRange Mozilla IDBKeyRange documentation>
+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 #-}
+
+instance IsGObject IDBKeyRange where
+  typeGType _ = gTypeIDBKeyRange
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBKeyRange\"]" gTypeIDBKeyRange :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBObjectStore".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore Mozilla IDBObjectStore documentation>
+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 #-}
+
+instance IsGObject IDBObjectStore where
+  typeGType _ = gTypeIDBObjectStore
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBObjectStore\"]" gTypeIDBObjectStore :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBObjectStoreParameters".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStoreParameters Mozilla IDBObjectStoreParameters documentation>
+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 #-}
+
+instance IsGObject IDBObjectStoreParameters where
+  typeGType _ = gTypeIDBObjectStoreParameters
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBObjectStoreParameters\"]" gTypeIDBObjectStoreParameters :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBOpenDBRequest".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.IDBRequest"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBOpenDBRequest Mozilla IDBOpenDBRequest documentation>
+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 #-}
+
+instance IsIDBRequest IDBOpenDBRequest
+instance IsEventTarget IDBOpenDBRequest
+instance IsGObject IDBOpenDBRequest where
+  typeGType _ = gTypeIDBOpenDBRequest
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBOpenDBRequest\"]" gTypeIDBOpenDBRequest :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBRequest".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest Mozilla IDBRequest documentation>
+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 #-}
+
+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 #-}
+foreign import javascript unsafe "window[\"IDBRequest\"]" gTypeIDBRequest :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBTransaction".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction Mozilla IDBTransaction documentation>
+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 #-}
+
+instance IsEventTarget IDBTransaction
+instance IsGObject IDBTransaction where
+  typeGType _ = gTypeIDBTransaction
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBTransaction\"]" gTypeIDBTransaction :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBVersionChangeEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEvent Mozilla IDBVersionChangeEvent documentation>
+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 #-}
+
+instance IsEvent IDBVersionChangeEvent
+instance IsGObject IDBVersionChangeEvent where
+  typeGType _ = gTypeIDBVersionChangeEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBVersionChangeEvent\"]" gTypeIDBVersionChangeEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IDBVersionChangeEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEventInit Mozilla IDBVersionChangeEventInit documentation>
+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 #-}
+
+instance IsEventInit IDBVersionChangeEventInit
+instance IsGObject IDBVersionChangeEventInit where
+  typeGType _ = gTypeIDBVersionChangeEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IDBVersionChangeEventInit\"]" gTypeIDBVersionChangeEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ImageData".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ImageData Mozilla ImageData documentation>
+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 #-}
+
+instance IsGObject ImageData where
+  typeGType _ = gTypeImageData
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ImageData\"]" gTypeImageData :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.InputEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEvent"
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/InputEvent Mozilla InputEvent documentation>
+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 #-}
+
+instance IsUIEvent InputEvent
+instance IsEvent InputEvent
+instance IsGObject InputEvent where
+  typeGType _ = gTypeInputEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"InputEvent\"]" gTypeInputEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.InputEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEventInit"
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/InputEventInit Mozilla InputEventInit documentation>
+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 #-}
+
+instance IsUIEventInit InputEventInit
+instance IsEventInit InputEventInit
+instance IsGObject InputEventInit where
+  typeGType _ = gTypeInputEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"InputEventInit\"]" gTypeInputEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.InspectorFrontendHost".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/InspectorFrontendHost Mozilla InspectorFrontendHost documentation>
+newtype InspectorFrontendHost = InspectorFrontendHost { unInspectorFrontendHost :: JSVal }
+
+instance Eq (InspectorFrontendHost) where
+  (InspectorFrontendHost a) == (InspectorFrontendHost b) = js_eq a b
+
+instance PToJSVal InspectorFrontendHost where
+  pToJSVal = unInspectorFrontendHost
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal InspectorFrontendHost where
+  pFromJSVal = InspectorFrontendHost
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal InspectorFrontendHost where
+  toJSVal = return . unInspectorFrontendHost
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal InspectorFrontendHost where
+  fromJSVal = return . fmap InspectorFrontendHost . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject InspectorFrontendHost where
+  typeGType _ = gTypeInspectorFrontendHost
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"InspectorFrontendHost\"]" gTypeInspectorFrontendHost :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IntersectionObserver".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver Mozilla IntersectionObserver documentation>
+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 #-}
+
+instance IsGObject IntersectionObserver where
+  typeGType _ = gTypeIntersectionObserver
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IntersectionObserver\"]" gTypeIntersectionObserver :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IntersectionObserverEntry".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry Mozilla IntersectionObserverEntry documentation>
+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 #-}
+
+instance IsGObject IntersectionObserverEntry where
+  typeGType _ = gTypeIntersectionObserverEntry
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IntersectionObserverEntry\"]" gTypeIntersectionObserverEntry :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IntersectionObserverEntryInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntryInit Mozilla IntersectionObserverEntryInit documentation>
+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 #-}
+
+instance IsGObject IntersectionObserverEntryInit where
+  typeGType _ = gTypeIntersectionObserverEntryInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IntersectionObserverEntryInit\"]" gTypeIntersectionObserverEntryInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.IntersectionObserverInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverInit Mozilla IntersectionObserverInit documentation>
+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 #-}
+
+instance IsGObject IntersectionObserverInit where
+  typeGType _ = gTypeIntersectionObserverInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"IntersectionObserverInit\"]" gTypeIntersectionObserverInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.JsonWebKey".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/JsonWebKey Mozilla JsonWebKey documentation>
+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 #-}
+
+instance IsGObject JsonWebKey where
+  typeGType _ = gTypeJsonWebKey
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"JsonWebKey\"]" gTypeJsonWebKey :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.KeyboardEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEvent"
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent Mozilla KeyboardEvent documentation>
+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 #-}
+
+instance IsUIEvent KeyboardEvent
+instance IsEvent KeyboardEvent
+instance IsGObject KeyboardEvent where
+  typeGType _ = gTypeKeyboardEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"KeyboardEvent\"]" gTypeKeyboardEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.KeyboardEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventModifierInit"
+--     * "GHCJS.DOM.UIEventInit"
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEventInit Mozilla KeyboardEventInit documentation>
+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 #-}
+
+instance IsEventModifierInit KeyboardEventInit
+instance IsUIEventInit KeyboardEventInit
+instance IsEventInit KeyboardEventInit
+instance IsGObject KeyboardEventInit where
+  typeGType _ = gTypeKeyboardEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"KeyboardEventInit\"]" gTypeKeyboardEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.KeyframeEffect".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AnimationEffect"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect Mozilla KeyframeEffect documentation>
+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 #-}
+
+instance IsAnimationEffect KeyframeEffect
+instance IsGObject KeyframeEffect where
+  typeGType _ = gTypeKeyframeEffect
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"KeyframeEffect\"]" gTypeKeyframeEffect :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Location".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Location Mozilla Location documentation>
+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 #-}
+
+instance IsGObject Location where
+  typeGType _ = gTypeLocation
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Location\"]" gTypeLocation :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.LongRange".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/LongRange Mozilla LongRange documentation>
+newtype LongRange = LongRange { unLongRange :: JSVal }
+
+instance Eq (LongRange) where
+  (LongRange a) == (LongRange b) = js_eq a b
+
+instance PToJSVal LongRange where
+  pToJSVal = unLongRange
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal LongRange where
+  pFromJSVal = LongRange
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal LongRange where
+  toJSVal = return . unLongRange
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal LongRange where
+  fromJSVal = return . fmap LongRange . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class (IsGObject o) => IsLongRange o
+toLongRange :: IsLongRange o => o -> LongRange
+toLongRange = LongRange . coerce
+
+instance IsLongRange LongRange
+instance IsGObject LongRange where
+  typeGType _ = gTypeLongRange
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"LongRange\"]" gTypeLongRange :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaController".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaController Mozilla MediaController documentation>
+newtype MediaController = MediaController { unMediaController :: JSVal }
+
+instance Eq (MediaController) where
+  (MediaController a) == (MediaController b) = js_eq a b
+
+instance PToJSVal MediaController where
+  pToJSVal = unMediaController
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal MediaController where
+  pFromJSVal = MediaController
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal MediaController where
+  toJSVal = return . unMediaController
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal MediaController where
+  fromJSVal = return . fmap MediaController . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventTarget MediaController
+instance IsGObject MediaController where
+  typeGType _ = gTypeMediaController
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaController\"]" gTypeMediaController :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaControlsHost".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaControlsHost Mozilla MediaControlsHost documentation>
+newtype MediaControlsHost = MediaControlsHost { unMediaControlsHost :: JSVal }
+
+instance Eq (MediaControlsHost) where
+  (MediaControlsHost a) == (MediaControlsHost b) = js_eq a b
+
+instance PToJSVal MediaControlsHost where
+  pToJSVal = unMediaControlsHost
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal MediaControlsHost where
+  pFromJSVal = MediaControlsHost
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal MediaControlsHost where
+  toJSVal = return . unMediaControlsHost
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal MediaControlsHost where
+  fromJSVal = return . fmap MediaControlsHost . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject MediaControlsHost where
+  typeGType _ = gTypeMediaControlsHost
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaControlsHost\"]" gTypeMediaControlsHost :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaDeviceInfo".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo Mozilla MediaDeviceInfo documentation>
+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 #-}
+
+instance IsGObject MediaDeviceInfo where
+  typeGType _ = gTypeMediaDeviceInfo
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaDeviceInfo\"]" gTypeMediaDeviceInfo :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaDevices".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices Mozilla MediaDevices documentation>
+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 #-}
+
+instance IsGObject MediaDevices where
+  typeGType _ = gTypeMediaDevices
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaDevices\"]" gTypeMediaDevices :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaElementAudioSourceNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaElementAudioSourceNode Mozilla MediaElementAudioSourceNode documentation>
+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 #-}
+
+instance IsAudioNode MediaElementAudioSourceNode
+instance IsEventTarget MediaElementAudioSourceNode
+instance IsGObject MediaElementAudioSourceNode where
+  typeGType _ = gTypeMediaElementAudioSourceNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaElementAudioSourceNode\"]" gTypeMediaElementAudioSourceNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaEncryptedEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaEncryptedEvent Mozilla MediaEncryptedEvent documentation>
+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 #-}
+
+instance IsEvent MediaEncryptedEvent
+instance IsGObject MediaEncryptedEvent where
+  typeGType _ = gTypeMediaEncryptedEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaEncryptedEvent\"]" gTypeMediaEncryptedEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaEncryptedEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaEncryptedEventInit Mozilla MediaEncryptedEventInit documentation>
+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 #-}
+
+instance IsEventInit MediaEncryptedEventInit
+instance IsGObject MediaEncryptedEventInit where
+  typeGType _ = gTypeMediaEncryptedEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaEncryptedEventInit\"]" gTypeMediaEncryptedEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaError".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaError Mozilla MediaError documentation>
+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 #-}
+
+instance IsGObject MediaError where
+  typeGType _ = gTypeMediaError
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaError\"]" gTypeMediaError :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaKeyMessageEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent Mozilla WebKitMediaKeyMessageEvent documentation>
+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 #-}
+
+instance IsEvent MediaKeyMessageEvent
+instance IsGObject MediaKeyMessageEvent where
+  typeGType _ = gTypeMediaKeyMessageEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitMediaKeyMessageEvent\"]" gTypeMediaKeyMessageEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaKeyMessageEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyMessageEventInit Mozilla MediaKeyMessageEventInit documentation>
+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 #-}
+
+instance IsEventInit MediaKeyMessageEventInit
+instance IsGObject MediaKeyMessageEventInit where
+  typeGType _ = gTypeMediaKeyMessageEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaKeyMessageEventInit\"]" gTypeMediaKeyMessageEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaKeySession".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession Mozilla WebKitMediaKeySession documentation>
+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 #-}
+
+instance IsEventTarget MediaKeySession
+instance IsGObject MediaKeySession where
+  typeGType _ = gTypeMediaKeySession
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitMediaKeySession\"]" gTypeMediaKeySession :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaKeyStatusMap".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeyStatusMap Mozilla MediaKeyStatusMap documentation>
+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 #-}
+
+instance IsGObject MediaKeyStatusMap where
+  typeGType _ = gTypeMediaKeyStatusMap
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaKeyStatusMap\"]" gTypeMediaKeyStatusMap :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaKeySystemAccess".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemAccess Mozilla MediaKeySystemAccess documentation>
+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 #-}
+
+instance IsGObject MediaKeySystemAccess where
+  typeGType _ = gTypeMediaKeySystemAccess
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaKeySystemAccess\"]" gTypeMediaKeySystemAccess :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaKeySystemConfiguration".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemConfiguration Mozilla MediaKeySystemConfiguration documentation>
+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 #-}
+
+instance IsGObject MediaKeySystemConfiguration where
+  typeGType _ = gTypeMediaKeySystemConfiguration
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaKeySystemConfiguration\"]" gTypeMediaKeySystemConfiguration :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaKeySystemMediaCapability".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemMediaCapability Mozilla MediaKeySystemMediaCapability documentation>
+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 #-}
+
+instance IsGObject MediaKeySystemMediaCapability where
+  typeGType _ = gTypeMediaKeySystemMediaCapability
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaKeySystemMediaCapability\"]" gTypeMediaKeySystemMediaCapability :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaKeys".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys Mozilla WebKitMediaKeys documentation>
+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 #-}
+
+instance IsGObject MediaKeys where
+  typeGType _ = gTypeMediaKeys
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitMediaKeys\"]" gTypeMediaKeys :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaList Mozilla MediaList documentation>
+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 #-}
+
+instance IsGObject MediaList where
+  typeGType _ = gTypeMediaList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaList\"]" gTypeMediaList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaMetadata".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaMetadata Mozilla MediaMetadata documentation>
+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 #-}
+
+instance IsGObject MediaMetadata where
+  typeGType _ = gTypeMediaMetadata
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaMetadata\"]" gTypeMediaMetadata :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaQueryList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList Mozilla MediaQueryList documentation>
+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 #-}
+
+instance IsGObject MediaQueryList where
+  typeGType _ = gTypeMediaQueryList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaQueryList\"]" gTypeMediaQueryList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaRemoteControls".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaRemoteControls Mozilla MediaRemoteControls documentation>
+newtype MediaRemoteControls = MediaRemoteControls { unMediaRemoteControls :: JSVal }
+
+instance Eq (MediaRemoteControls) where
+  (MediaRemoteControls a) == (MediaRemoteControls b) = js_eq a b
+
+instance PToJSVal MediaRemoteControls where
+  pToJSVal = unMediaRemoteControls
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal MediaRemoteControls where
+  pFromJSVal = MediaRemoteControls
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal MediaRemoteControls where
+  toJSVal = return . unMediaRemoteControls
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal MediaRemoteControls where
+  fromJSVal = return . fmap MediaRemoteControls . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventTarget MediaRemoteControls
+instance IsGObject MediaRemoteControls where
+  typeGType _ = gTypeMediaRemoteControls
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaRemoteControls\"]" gTypeMediaRemoteControls :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaSession".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaSession Mozilla MediaSession documentation>
+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 #-}
+
+instance IsGObject MediaSession where
+  typeGType _ = gTypeMediaSession
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaSession\"]" gTypeMediaSession :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaSource".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaSource Mozilla MediaSource documentation>
+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 #-}
+
+instance IsEventTarget MediaSource
+instance IsGObject MediaSource where
+  typeGType _ = gTypeMediaSource
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaSource\"]" gTypeMediaSource :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaStream".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/webkitMediaStream Mozilla webkitMediaStream documentation>
+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 #-}
+
+instance IsEventTarget MediaStream
+instance IsGObject MediaStream where
+  typeGType _ = gTypeMediaStream
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"webkitMediaStream\"]" gTypeMediaStream :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaStreamAudioDestinationNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioDestinationNode Mozilla MediaStreamAudioDestinationNode documentation>
+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 #-}
+
+instance IsAudioNode MediaStreamAudioDestinationNode
+instance IsEventTarget MediaStreamAudioDestinationNode
+instance IsGObject MediaStreamAudioDestinationNode where
+  typeGType _ = gTypeMediaStreamAudioDestinationNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaStreamAudioDestinationNode\"]" gTypeMediaStreamAudioDestinationNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaStreamAudioSourceNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioSourceNode Mozilla MediaStreamAudioSourceNode documentation>
+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 #-}
+
+instance IsAudioNode MediaStreamAudioSourceNode
+instance IsEventTarget MediaStreamAudioSourceNode
+instance IsGObject MediaStreamAudioSourceNode where
+  typeGType _ = gTypeMediaStreamAudioSourceNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaStreamAudioSourceNode\"]" gTypeMediaStreamAudioSourceNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaStreamConstraints".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints Mozilla MediaStreamConstraints documentation>
+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 #-}
+
+instance IsGObject MediaStreamConstraints where
+  typeGType _ = gTypeMediaStreamConstraints
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaStreamConstraints\"]" gTypeMediaStreamConstraints :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaStreamEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamEvent Mozilla MediaStreamEvent documentation>
+newtype MediaStreamEvent = MediaStreamEvent { unMediaStreamEvent :: JSVal }
+
+instance Eq (MediaStreamEvent) where
+  (MediaStreamEvent a) == (MediaStreamEvent b) = js_eq a b
+
+instance PToJSVal MediaStreamEvent where
+  pToJSVal = unMediaStreamEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal MediaStreamEvent where
+  pFromJSVal = MediaStreamEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal MediaStreamEvent where
+  toJSVal = return . unMediaStreamEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal MediaStreamEvent where
+  fromJSVal = return . fmap MediaStreamEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent MediaStreamEvent
+instance IsGObject MediaStreamEvent where
+  typeGType _ = gTypeMediaStreamEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaStreamEvent\"]" gTypeMediaStreamEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaStreamEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamEventInit Mozilla MediaStreamEventInit documentation>
+newtype MediaStreamEventInit = MediaStreamEventInit { unMediaStreamEventInit :: JSVal }
+
+instance Eq (MediaStreamEventInit) where
+  (MediaStreamEventInit a) == (MediaStreamEventInit b) = js_eq a b
+
+instance PToJSVal MediaStreamEventInit where
+  pToJSVal = unMediaStreamEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal MediaStreamEventInit where
+  pFromJSVal = MediaStreamEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal MediaStreamEventInit where
+  toJSVal = return . unMediaStreamEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal MediaStreamEventInit where
+  fromJSVal = return . fmap MediaStreamEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit MediaStreamEventInit
+instance IsGObject MediaStreamEventInit where
+  typeGType _ = gTypeMediaStreamEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaStreamEventInit\"]" gTypeMediaStreamEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaStreamTrack".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack Mozilla MediaStreamTrack documentation>
+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 #-}
+
+instance IsEventTarget MediaStreamTrack
+instance IsGObject MediaStreamTrack where
+  typeGType _ = gTypeMediaStreamTrack
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaStreamTrack\"]" gTypeMediaStreamTrack :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaStreamTrackEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackEvent Mozilla MediaStreamTrackEvent documentation>
+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 #-}
+
+instance IsEvent MediaStreamTrackEvent
+instance IsGObject MediaStreamTrackEvent where
+  typeGType _ = gTypeMediaStreamTrackEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaStreamTrackEvent\"]" gTypeMediaStreamTrackEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaStreamTrackEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrackEventInit Mozilla MediaStreamTrackEventInit documentation>
+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 #-}
+
+instance IsEventInit MediaStreamTrackEventInit
+instance IsGObject MediaStreamTrackEventInit where
+  typeGType _ = gTypeMediaStreamTrackEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaStreamTrackEventInit\"]" gTypeMediaStreamTrackEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaTrackCapabilities".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackCapabilities Mozilla MediaTrackCapabilities documentation>
+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 #-}
+
+instance IsGObject MediaTrackCapabilities where
+  typeGType _ = gTypeMediaTrackCapabilities
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaTrackCapabilities\"]" gTypeMediaTrackCapabilities :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaTrackConstraintSet".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraintSet Mozilla MediaTrackConstraintSet documentation>
+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 #-}
+
+class (IsGObject o) => IsMediaTrackConstraintSet o
+toMediaTrackConstraintSet :: IsMediaTrackConstraintSet o => o -> MediaTrackConstraintSet
+toMediaTrackConstraintSet = MediaTrackConstraintSet . coerce
+
+instance IsMediaTrackConstraintSet MediaTrackConstraintSet
+instance IsGObject MediaTrackConstraintSet where
+  typeGType _ = gTypeMediaTrackConstraintSet
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaTrackConstraintSet\"]" gTypeMediaTrackConstraintSet :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaTrackConstraints".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.MediaTrackConstraintSet"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints Mozilla MediaTrackConstraints documentation>
+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 #-}
+
+instance IsMediaTrackConstraintSet MediaTrackConstraints
+instance IsGObject MediaTrackConstraints where
+  typeGType _ = gTypeMediaTrackConstraints
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaTrackConstraints\"]" gTypeMediaTrackConstraints :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaTrackSettings".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSettings Mozilla MediaTrackSettings documentation>
+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 #-}
+
+instance IsGObject MediaTrackSettings where
+  typeGType _ = gTypeMediaTrackSettings
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaTrackSettings\"]" gTypeMediaTrackSettings :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MediaTrackSupportedConstraints".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSupportedConstraints Mozilla MediaTrackSupportedConstraints documentation>
+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 #-}
+
+instance IsGObject MediaTrackSupportedConstraints where
+  typeGType _ = gTypeMediaTrackSupportedConstraints
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MediaTrackSupportedConstraints\"]" gTypeMediaTrackSupportedConstraints :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MessageChannel".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel Mozilla MessageChannel documentation>
+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 #-}
+
+instance IsGObject MessageChannel where
+  typeGType _ = gTypeMessageChannel
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MessageChannel\"]" gTypeMessageChannel :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MessageEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent Mozilla MessageEvent documentation>
+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 #-}
+
+instance IsEvent MessageEvent
+instance IsGObject MessageEvent where
+  typeGType _ = gTypeMessageEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MessageEvent\"]" gTypeMessageEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MessageEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MessageEventInit Mozilla MessageEventInit documentation>
+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 #-}
+
+instance IsEventInit MessageEventInit
+instance IsGObject MessageEventInit where
+  typeGType _ = gTypeMessageEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MessageEventInit\"]" gTypeMessageEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MessagePort".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MessagePort Mozilla MessagePort documentation>
+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 #-}
+
+instance IsEventTarget MessagePort
+instance IsGObject MessagePort where
+  typeGType _ = gTypeMessagePort
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MessagePort\"]" gTypeMessagePort :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MimeType".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MimeType Mozilla MimeType documentation>
+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 #-}
+
+instance IsGObject MimeType where
+  typeGType _ = gTypeMimeType
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MimeType\"]" gTypeMimeType :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MimeTypeArray".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MimeTypeArray Mozilla MimeTypeArray documentation>
+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 #-}
+
+instance IsGObject MimeTypeArray where
+  typeGType _ = gTypeMimeTypeArray
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MimeTypeArray\"]" gTypeMimeTypeArray :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MouseEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEvent"
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent Mozilla MouseEvent documentation>
+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 #-}
+
+class (IsUIEvent o, IsEvent 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 #-}
+foreign import javascript unsafe "window[\"MouseEvent\"]" gTypeMouseEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MouseEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventModifierInit"
+--     * "GHCJS.DOM.UIEventInit"
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MouseEventInit Mozilla MouseEventInit documentation>
+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 #-}
+
+class (IsEventModifierInit o, IsUIEventInit o, IsEventInit 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 #-}
+foreign import javascript unsafe "window[\"MouseEventInit\"]" gTypeMouseEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MutationEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent Mozilla MutationEvent documentation>
+newtype MutationEvent = MutationEvent { unMutationEvent :: JSVal }
+
+instance Eq (MutationEvent) where
+  (MutationEvent a) == (MutationEvent b) = js_eq a b
+
+instance PToJSVal MutationEvent where
+  pToJSVal = unMutationEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal MutationEvent where
+  pFromJSVal = MutationEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal MutationEvent where
+  toJSVal = return . unMutationEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal MutationEvent where
+  fromJSVal = return . fmap MutationEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent MutationEvent
+instance IsGObject MutationEvent where
+  typeGType _ = gTypeMutationEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MutationEvent\"]" gTypeMutationEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MutationObserver".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver Mozilla MutationObserver documentation>
+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 #-}
+
+instance IsGObject MutationObserver where
+  typeGType _ = gTypeMutationObserver
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MutationObserver\"]" gTypeMutationObserver :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MutationObserverInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MutationObserverInit Mozilla MutationObserverInit documentation>
+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 #-}
+
+instance IsGObject MutationObserverInit where
+  typeGType _ = gTypeMutationObserverInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MutationObserverInit\"]" gTypeMutationObserverInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.MutationRecord".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord Mozilla MutationRecord documentation>
+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 #-}
+
+instance IsGObject MutationRecord where
+  typeGType _ = gTypeMutationRecord
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"MutationRecord\"]" gTypeMutationRecord :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NamedNodeMap".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap Mozilla NamedNodeMap documentation>
+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 #-}
+
+instance IsGObject NamedNodeMap where
+  typeGType _ = gTypeNamedNodeMap
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NamedNodeMap\"]" gTypeNamedNodeMap :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Navigator".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.NavigatorOnLine"
+--     * "GHCJS.DOM.NavigatorLanguage"
+--     * "GHCJS.DOM.NavigatorID"
+--     * "GHCJS.DOM.NavigatorConcurrentHardware"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Navigator Mozilla Navigator documentation>
+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 #-}
+
+instance IsNavigatorOnLine Navigator
+instance IsNavigatorLanguage Navigator
+instance IsNavigatorID Navigator
+instance IsNavigatorConcurrentHardware Navigator
+instance IsGObject Navigator where
+  typeGType _ = gTypeNavigator
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Navigator\"]" gTypeNavigator :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NavigatorConcurrentHardware".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorConcurrentHardware Mozilla NavigatorConcurrentHardware documentation>
+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 #-}
+
+class (IsGObject o) => IsNavigatorConcurrentHardware o
+toNavigatorConcurrentHardware :: IsNavigatorConcurrentHardware o => o -> NavigatorConcurrentHardware
+toNavigatorConcurrentHardware = NavigatorConcurrentHardware . coerce
+
+instance IsNavigatorConcurrentHardware NavigatorConcurrentHardware
+instance IsGObject NavigatorConcurrentHardware where
+  typeGType _ = gTypeNavigatorConcurrentHardware
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NavigatorConcurrentHardware\"]" gTypeNavigatorConcurrentHardware :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NavigatorID".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID Mozilla NavigatorID documentation>
+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 #-}
+
+class (IsGObject o) => IsNavigatorID o
+toNavigatorID :: IsNavigatorID o => o -> NavigatorID
+toNavigatorID = NavigatorID . coerce
+
+instance IsNavigatorID NavigatorID
+instance IsGObject NavigatorID where
+  typeGType _ = gTypeNavigatorID
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NavigatorID\"]" gTypeNavigatorID :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NavigatorLanguage".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLanguage Mozilla NavigatorLanguage documentation>
+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 #-}
+
+class (IsGObject o) => IsNavigatorLanguage o
+toNavigatorLanguage :: IsNavigatorLanguage o => o -> NavigatorLanguage
+toNavigatorLanguage = NavigatorLanguage . coerce
+
+instance IsNavigatorLanguage NavigatorLanguage
+instance IsGObject NavigatorLanguage where
+  typeGType _ = gTypeNavigatorLanguage
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NavigatorLanguage\"]" gTypeNavigatorLanguage :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NavigatorOnLine".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine Mozilla NavigatorOnLine documentation>
+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 #-}
+
+class (IsGObject o) => IsNavigatorOnLine o
+toNavigatorOnLine :: IsNavigatorOnLine o => o -> NavigatorOnLine
+toNavigatorOnLine = NavigatorOnLine . coerce
+
+instance IsNavigatorOnLine NavigatorOnLine
+instance IsGObject NavigatorOnLine where
+  typeGType _ = gTypeNavigatorOnLine
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NavigatorOnLine\"]" gTypeNavigatorOnLine :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NavigatorUserMediaError".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.DOMError"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMediaError Mozilla NavigatorUserMediaError documentation>
+newtype NavigatorUserMediaError = NavigatorUserMediaError { unNavigatorUserMediaError :: JSVal }
+
+instance Eq (NavigatorUserMediaError) where
+  (NavigatorUserMediaError a) == (NavigatorUserMediaError b) = js_eq a b
+
+instance PToJSVal NavigatorUserMediaError where
+  pToJSVal = unNavigatorUserMediaError
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal NavigatorUserMediaError where
+  pFromJSVal = NavigatorUserMediaError
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal NavigatorUserMediaError where
+  toJSVal = return . unNavigatorUserMediaError
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal NavigatorUserMediaError where
+  fromJSVal = return . fmap NavigatorUserMediaError . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsDOMError NavigatorUserMediaError
+instance IsGObject NavigatorUserMediaError where
+  typeGType _ = gTypeNavigatorUserMediaError
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NavigatorUserMediaError\"]" gTypeNavigatorUserMediaError :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Node".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Node Mozilla Node documentation>
+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 #-}
+
+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 #-}
+foreign import javascript unsafe "window[\"Node\"]" gTypeNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NodeIterator".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator Mozilla NodeIterator documentation>
+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 #-}
+
+instance IsGObject NodeIterator where
+  typeGType _ = gTypeNodeIterator
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NodeIterator\"]" gTypeNodeIterator :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NodeList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NodeList Mozilla NodeList documentation>
+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 #-}
+
+class (IsGObject o) => IsNodeList o
+toNodeList :: IsNodeList o => o -> NodeList
+toNodeList = NodeList . coerce
+
+instance IsNodeList NodeList
+instance IsGObject NodeList where
+  typeGType _ = gTypeNodeList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NodeList\"]" gTypeNodeList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NonDocumentTypeChildNode".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NonDocumentTypeChildNode Mozilla NonDocumentTypeChildNode documentation>
+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 #-}
+
+class (IsGObject o) => IsNonDocumentTypeChildNode o
+toNonDocumentTypeChildNode :: IsNonDocumentTypeChildNode o => o -> NonDocumentTypeChildNode
+toNonDocumentTypeChildNode = NonDocumentTypeChildNode . coerce
+
+instance IsNonDocumentTypeChildNode NonDocumentTypeChildNode
+instance IsGObject NonDocumentTypeChildNode where
+  typeGType _ = gTypeNonDocumentTypeChildNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NonDocumentTypeChildNode\"]" gTypeNonDocumentTypeChildNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NonElementParentNode".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NonElementParentNode Mozilla NonElementParentNode documentation>
+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 #-}
+
+class (IsGObject o) => IsNonElementParentNode o
+toNonElementParentNode :: IsNonElementParentNode o => o -> NonElementParentNode
+toNonElementParentNode = NonElementParentNode . coerce
+
+instance IsNonElementParentNode NonElementParentNode
+instance IsGObject NonElementParentNode where
+  typeGType _ = gTypeNonElementParentNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NonElementParentNode\"]" gTypeNonElementParentNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Notification".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Notification Mozilla Notification documentation>
+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 #-}
+
+instance IsEventTarget Notification
+instance IsGObject Notification where
+  typeGType _ = gTypeNotification
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Notification\"]" gTypeNotification :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NotificationCenter".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NotificationCenter Mozilla NotificationCenter documentation>
+newtype NotificationCenter = NotificationCenter { unNotificationCenter :: JSVal }
+
+instance Eq (NotificationCenter) where
+  (NotificationCenter a) == (NotificationCenter b) = js_eq a b
+
+instance PToJSVal NotificationCenter where
+  pToJSVal = unNotificationCenter
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal NotificationCenter where
+  pFromJSVal = NotificationCenter
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal NotificationCenter where
+  toJSVal = return . unNotificationCenter
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal NotificationCenter where
+  fromJSVal = return . fmap NotificationCenter . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject NotificationCenter where
+  typeGType _ = gTypeNotificationCenter
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NotificationCenter\"]" gTypeNotificationCenter :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.NotificationOptions".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/NotificationOptions Mozilla NotificationOptions documentation>
+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 #-}
+
+instance IsGObject NotificationOptions where
+  typeGType _ = gTypeNotificationOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"NotificationOptions\"]" gTypeNotificationOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OESElementIndexUint".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESElementIndexUint Mozilla OESElementIndexUint documentation>
+newtype OESElementIndexUint = OESElementIndexUint { unOESElementIndexUint :: JSVal }
+
+instance Eq (OESElementIndexUint) where
+  (OESElementIndexUint a) == (OESElementIndexUint b) = js_eq a b
+
+instance PToJSVal OESElementIndexUint where
+  pToJSVal = unOESElementIndexUint
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal OESElementIndexUint where
+  pFromJSVal = OESElementIndexUint
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal OESElementIndexUint where
+  toJSVal = return . unOESElementIndexUint
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal OESElementIndexUint where
+  fromJSVal = return . fmap OESElementIndexUint . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject OESElementIndexUint where
+  typeGType _ = gTypeOESElementIndexUint
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OESElementIndexUint\"]" gTypeOESElementIndexUint :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OESStandardDerivatives".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESStandardDerivatives Mozilla OESStandardDerivatives documentation>
+newtype OESStandardDerivatives = OESStandardDerivatives { unOESStandardDerivatives :: JSVal }
+
+instance Eq (OESStandardDerivatives) where
+  (OESStandardDerivatives a) == (OESStandardDerivatives b) = js_eq a b
+
+instance PToJSVal OESStandardDerivatives where
+  pToJSVal = unOESStandardDerivatives
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal OESStandardDerivatives where
+  pFromJSVal = OESStandardDerivatives
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal OESStandardDerivatives where
+  toJSVal = return . unOESStandardDerivatives
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal OESStandardDerivatives where
+  fromJSVal = return . fmap OESStandardDerivatives . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject OESStandardDerivatives where
+  typeGType _ = gTypeOESStandardDerivatives
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OESStandardDerivatives\"]" gTypeOESStandardDerivatives :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OESTextureFloat".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureFloat Mozilla OESTextureFloat documentation>
+newtype OESTextureFloat = OESTextureFloat { unOESTextureFloat :: JSVal }
+
+instance Eq (OESTextureFloat) where
+  (OESTextureFloat a) == (OESTextureFloat b) = js_eq a b
+
+instance PToJSVal OESTextureFloat where
+  pToJSVal = unOESTextureFloat
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal OESTextureFloat where
+  pFromJSVal = OESTextureFloat
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal OESTextureFloat where
+  toJSVal = return . unOESTextureFloat
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal OESTextureFloat where
+  fromJSVal = return . fmap OESTextureFloat . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject OESTextureFloat where
+  typeGType _ = gTypeOESTextureFloat
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OESTextureFloat\"]" gTypeOESTextureFloat :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OESTextureFloatLinear".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureFloatLinear Mozilla OESTextureFloatLinear documentation>
+newtype OESTextureFloatLinear = OESTextureFloatLinear { unOESTextureFloatLinear :: JSVal }
+
+instance Eq (OESTextureFloatLinear) where
+  (OESTextureFloatLinear a) == (OESTextureFloatLinear b) = js_eq a b
+
+instance PToJSVal OESTextureFloatLinear where
+  pToJSVal = unOESTextureFloatLinear
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal OESTextureFloatLinear where
+  pFromJSVal = OESTextureFloatLinear
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal OESTextureFloatLinear where
+  toJSVal = return . unOESTextureFloatLinear
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal OESTextureFloatLinear where
+  fromJSVal = return . fmap OESTextureFloatLinear . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject OESTextureFloatLinear where
+  typeGType _ = gTypeOESTextureFloatLinear
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OESTextureFloatLinear\"]" gTypeOESTextureFloatLinear :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OESTextureHalfFloat".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureHalfFloat Mozilla OESTextureHalfFloat documentation>
+newtype OESTextureHalfFloat = OESTextureHalfFloat { unOESTextureHalfFloat :: JSVal }
+
+instance Eq (OESTextureHalfFloat) where
+  (OESTextureHalfFloat a) == (OESTextureHalfFloat b) = js_eq a b
+
+instance PToJSVal OESTextureHalfFloat where
+  pToJSVal = unOESTextureHalfFloat
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal OESTextureHalfFloat where
+  pFromJSVal = OESTextureHalfFloat
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal OESTextureHalfFloat where
+  toJSVal = return . unOESTextureHalfFloat
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal OESTextureHalfFloat where
+  fromJSVal = return . fmap OESTextureHalfFloat . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject OESTextureHalfFloat where
+  typeGType _ = gTypeOESTextureHalfFloat
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OESTextureHalfFloat\"]" gTypeOESTextureHalfFloat :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OESTextureHalfFloatLinear".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESTextureHalfFloatLinear Mozilla OESTextureHalfFloatLinear documentation>
+newtype OESTextureHalfFloatLinear = OESTextureHalfFloatLinear { unOESTextureHalfFloatLinear :: JSVal }
+
+instance Eq (OESTextureHalfFloatLinear) where
+  (OESTextureHalfFloatLinear a) == (OESTextureHalfFloatLinear b) = js_eq a b
+
+instance PToJSVal OESTextureHalfFloatLinear where
+  pToJSVal = unOESTextureHalfFloatLinear
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal OESTextureHalfFloatLinear where
+  pFromJSVal = OESTextureHalfFloatLinear
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal OESTextureHalfFloatLinear where
+  toJSVal = return . unOESTextureHalfFloatLinear
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal OESTextureHalfFloatLinear where
+  fromJSVal = return . fmap OESTextureHalfFloatLinear . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject OESTextureHalfFloatLinear where
+  typeGType _ = gTypeOESTextureHalfFloatLinear
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OESTextureHalfFloatLinear\"]" gTypeOESTextureHalfFloatLinear :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OESVertexArrayObject".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OESVertexArrayObject Mozilla OESVertexArrayObject documentation>
+newtype OESVertexArrayObject = OESVertexArrayObject { unOESVertexArrayObject :: JSVal }
+
+instance Eq (OESVertexArrayObject) where
+  (OESVertexArrayObject a) == (OESVertexArrayObject b) = js_eq a b
+
+instance PToJSVal OESVertexArrayObject where
+  pToJSVal = unOESVertexArrayObject
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal OESVertexArrayObject where
+  pFromJSVal = OESVertexArrayObject
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal OESVertexArrayObject where
+  toJSVal = return . unOESVertexArrayObject
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal OESVertexArrayObject where
+  fromJSVal = return . fmap OESVertexArrayObject . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject OESVertexArrayObject where
+  typeGType _ = gTypeOESVertexArrayObject
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OESVertexArrayObject\"]" gTypeOESVertexArrayObject :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OfflineAudioCompletionEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioCompletionEvent Mozilla OfflineAudioCompletionEvent documentation>
+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 #-}
+
+instance IsEvent OfflineAudioCompletionEvent
+instance IsGObject OfflineAudioCompletionEvent where
+  typeGType _ = gTypeOfflineAudioCompletionEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OfflineAudioCompletionEvent\"]" gTypeOfflineAudioCompletionEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OfflineAudioContext".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioContext"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OfflineAudioContext Mozilla OfflineAudioContext documentation>
+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 #-}
+
+instance IsAudioContext OfflineAudioContext
+instance IsEventTarget OfflineAudioContext
+instance IsGObject OfflineAudioContext where
+  typeGType _ = gTypeOfflineAudioContext
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OfflineAudioContext\"]" gTypeOfflineAudioContext :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OscillatorNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode Mozilla OscillatorNode documentation>
+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 #-}
+
+instance IsAudioNode OscillatorNode
+instance IsEventTarget OscillatorNode
+instance IsGObject OscillatorNode where
+  typeGType _ = gTypeOscillatorNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OscillatorNode\"]" gTypeOscillatorNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OverconstrainedError".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OverconstrainedError Mozilla OverconstrainedError documentation>
+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 #-}
+
+instance IsGObject OverconstrainedError where
+  typeGType _ = gTypeOverconstrainedError
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OverconstrainedError\"]" gTypeOverconstrainedError :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OverconstrainedErrorEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OverconstrainedErrorEvent Mozilla OverconstrainedErrorEvent documentation>
+newtype OverconstrainedErrorEvent = OverconstrainedErrorEvent { unOverconstrainedErrorEvent :: JSVal }
+
+instance Eq (OverconstrainedErrorEvent) where
+  (OverconstrainedErrorEvent a) == (OverconstrainedErrorEvent b) = js_eq a b
+
+instance PToJSVal OverconstrainedErrorEvent where
+  pToJSVal = unOverconstrainedErrorEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal OverconstrainedErrorEvent where
+  pFromJSVal = OverconstrainedErrorEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal OverconstrainedErrorEvent where
+  toJSVal = return . unOverconstrainedErrorEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal OverconstrainedErrorEvent where
+  fromJSVal = return . fmap OverconstrainedErrorEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent OverconstrainedErrorEvent
+instance IsGObject OverconstrainedErrorEvent where
+  typeGType _ = gTypeOverconstrainedErrorEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OverconstrainedErrorEvent\"]" gTypeOverconstrainedErrorEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OverconstrainedErrorEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OverconstrainedErrorEventInit Mozilla OverconstrainedErrorEventInit documentation>
+newtype OverconstrainedErrorEventInit = OverconstrainedErrorEventInit { unOverconstrainedErrorEventInit :: JSVal }
+
+instance Eq (OverconstrainedErrorEventInit) where
+  (OverconstrainedErrorEventInit a) == (OverconstrainedErrorEventInit b) = js_eq a b
+
+instance PToJSVal OverconstrainedErrorEventInit where
+  pToJSVal = unOverconstrainedErrorEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal OverconstrainedErrorEventInit where
+  pFromJSVal = OverconstrainedErrorEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal OverconstrainedErrorEventInit where
+  toJSVal = return . unOverconstrainedErrorEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal OverconstrainedErrorEventInit where
+  fromJSVal = return . fmap OverconstrainedErrorEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit OverconstrainedErrorEventInit
+instance IsGObject OverconstrainedErrorEventInit where
+  typeGType _ = gTypeOverconstrainedErrorEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OverconstrainedErrorEventInit\"]" gTypeOverconstrainedErrorEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OverflowEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OverflowEvent Mozilla OverflowEvent documentation>
+newtype OverflowEvent = OverflowEvent { unOverflowEvent :: JSVal }
+
+instance Eq (OverflowEvent) where
+  (OverflowEvent a) == (OverflowEvent b) = js_eq a b
+
+instance PToJSVal OverflowEvent where
+  pToJSVal = unOverflowEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal OverflowEvent where
+  pFromJSVal = OverflowEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal OverflowEvent where
+  toJSVal = return . unOverflowEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal OverflowEvent where
+  fromJSVal = return . fmap OverflowEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent OverflowEvent
+instance IsGObject OverflowEvent where
+  typeGType _ = gTypeOverflowEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OverflowEvent\"]" gTypeOverflowEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.OverflowEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/OverflowEventInit Mozilla OverflowEventInit documentation>
+newtype OverflowEventInit = OverflowEventInit { unOverflowEventInit :: JSVal }
+
+instance Eq (OverflowEventInit) where
+  (OverflowEventInit a) == (OverflowEventInit b) = js_eq a b
+
+instance PToJSVal OverflowEventInit where
+  pToJSVal = unOverflowEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal OverflowEventInit where
+  pFromJSVal = OverflowEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal OverflowEventInit where
+  toJSVal = return . unOverflowEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal OverflowEventInit where
+  fromJSVal = return . fmap OverflowEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit OverflowEventInit
+instance IsGObject OverflowEventInit where
+  typeGType _ = gTypeOverflowEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"OverflowEventInit\"]" gTypeOverflowEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PageTransitionEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PageTransitionEvent Mozilla PageTransitionEvent documentation>
+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 #-}
+
+instance IsEvent PageTransitionEvent
+instance IsGObject PageTransitionEvent where
+  typeGType _ = gTypePageTransitionEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PageTransitionEvent\"]" gTypePageTransitionEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PageTransitionEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PageTransitionEventInit Mozilla PageTransitionEventInit documentation>
+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 #-}
+
+instance IsEventInit PageTransitionEventInit
+instance IsGObject PageTransitionEventInit where
+  typeGType _ = gTypePageTransitionEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PageTransitionEventInit\"]" gTypePageTransitionEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PannerNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/webkitAudioPannerNode Mozilla webkitAudioPannerNode documentation>
+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 #-}
+
+instance IsAudioNode PannerNode
+instance IsEventTarget PannerNode
+instance IsGObject PannerNode where
+  typeGType _ = gTypePannerNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"webkitAudioPannerNode\"]" gTypePannerNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ParentNode".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ParentNode Mozilla ParentNode documentation>
+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 #-}
+
+class (IsGObject o) => IsParentNode o
+toParentNode :: IsParentNode o => o -> ParentNode
+toParentNode = ParentNode . coerce
+
+instance IsParentNode ParentNode
+instance IsGObject ParentNode where
+  typeGType _ = gTypeParentNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ParentNode\"]" gTypeParentNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Path2D".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CanvasPath"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Path2D Mozilla Path2D documentation>
+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 #-}
+
+instance IsCanvasPath Path2D
+instance IsGObject Path2D where
+  typeGType _ = gTypePath2D
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Path2D\"]" gTypePath2D :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Performance".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Performance Mozilla Performance documentation>
+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 #-}
+
+instance IsEventTarget Performance
+instance IsGObject Performance where
+  typeGType _ = gTypePerformance
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Performance\"]" gTypePerformance :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PerformanceEntry".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry Mozilla PerformanceEntry documentation>
+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 #-}
+
+class (IsGObject o) => IsPerformanceEntry o
+toPerformanceEntry :: IsPerformanceEntry o => o -> PerformanceEntry
+toPerformanceEntry = PerformanceEntry . coerce
+
+instance IsPerformanceEntry PerformanceEntry
+instance IsGObject PerformanceEntry where
+  typeGType _ = gTypePerformanceEntry
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PerformanceEntry\"]" gTypePerformanceEntry :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PerformanceMark".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.PerformanceEntry"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceMark Mozilla PerformanceMark documentation>
+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 #-}
+
+instance IsPerformanceEntry PerformanceMark
+instance IsGObject PerformanceMark where
+  typeGType _ = gTypePerformanceMark
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PerformanceMark\"]" gTypePerformanceMark :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PerformanceMeasure".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.PerformanceEntry"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceMeasure Mozilla PerformanceMeasure documentation>
+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 #-}
+
+instance IsPerformanceEntry PerformanceMeasure
+instance IsGObject PerformanceMeasure where
+  typeGType _ = gTypePerformanceMeasure
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PerformanceMeasure\"]" gTypePerformanceMeasure :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PerformanceNavigation".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigation Mozilla PerformanceNavigation documentation>
+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 #-}
+
+instance IsGObject PerformanceNavigation where
+  typeGType _ = gTypePerformanceNavigation
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PerformanceNavigation\"]" gTypePerformanceNavigation :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PerformanceObserver".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver Mozilla PerformanceObserver documentation>
+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 #-}
+
+instance IsGObject PerformanceObserver where
+  typeGType _ = gTypePerformanceObserver
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PerformanceObserver\"]" gTypePerformanceObserver :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PerformanceObserverEntryList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverEntryList Mozilla PerformanceObserverEntryList documentation>
+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 #-}
+
+instance IsGObject PerformanceObserverEntryList where
+  typeGType _ = gTypePerformanceObserverEntryList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PerformanceObserverEntryList\"]" gTypePerformanceObserverEntryList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PerformanceObserverInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverInit Mozilla PerformanceObserverInit documentation>
+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 #-}
+
+instance IsGObject PerformanceObserverInit where
+  typeGType _ = gTypePerformanceObserverInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PerformanceObserverInit\"]" gTypePerformanceObserverInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PerformanceResourceTiming".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.PerformanceEntry"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming Mozilla PerformanceResourceTiming documentation>
+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 #-}
+
+instance IsPerformanceEntry PerformanceResourceTiming
+instance IsGObject PerformanceResourceTiming where
+  typeGType _ = gTypePerformanceResourceTiming
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PerformanceResourceTiming\"]" gTypePerformanceResourceTiming :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PerformanceTiming".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming Mozilla PerformanceTiming documentation>
+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 #-}
+
+instance IsGObject PerformanceTiming where
+  typeGType _ = gTypePerformanceTiming
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PerformanceTiming\"]" gTypePerformanceTiming :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PeriodicWave".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PeriodicWave Mozilla PeriodicWave documentation>
+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 #-}
+
+instance IsGObject PeriodicWave where
+  typeGType _ = gTypePeriodicWave
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PeriodicWave\"]" gTypePeriodicWave :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Plugin".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Plugin Mozilla Plugin documentation>
+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 #-}
+
+instance IsGObject Plugin where
+  typeGType _ = gTypePlugin
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Plugin\"]" gTypePlugin :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PluginArray".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PluginArray Mozilla PluginArray documentation>
+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 #-}
+
+instance IsGObject PluginArray where
+  typeGType _ = gTypePluginArray
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PluginArray\"]" gTypePluginArray :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PopStateEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PopStateEvent Mozilla PopStateEvent documentation>
+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 #-}
+
+instance IsEvent PopStateEvent
+instance IsGObject PopStateEvent where
+  typeGType _ = gTypePopStateEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PopStateEvent\"]" gTypePopStateEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PopStateEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PopStateEventInit Mozilla PopStateEventInit documentation>
+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 #-}
+
+instance IsEventInit PopStateEventInit
+instance IsGObject PopStateEventInit where
+  typeGType _ = gTypePopStateEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PopStateEventInit\"]" gTypePopStateEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PositionError".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PositionError Mozilla PositionError documentation>
+newtype PositionError = PositionError { unPositionError :: JSVal }
+
+instance Eq (PositionError) where
+  (PositionError a) == (PositionError b) = js_eq a b
+
+instance PToJSVal PositionError where
+  pToJSVal = unPositionError
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal PositionError where
+  pFromJSVal = PositionError
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal PositionError where
+  toJSVal = return . unPositionError
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal PositionError where
+  fromJSVal = return . fmap PositionError . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject PositionError where
+  typeGType _ = gTypePositionError
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PositionError\"]" gTypePositionError :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.PositionOptions".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions Mozilla PositionOptions documentation>
+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 #-}
+
+instance IsGObject PositionOptions where
+  typeGType _ = gTypePositionOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"PositionOptions\"]" gTypePositionOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ProcessingInstruction".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CharacterData"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ProcessingInstruction Mozilla ProcessingInstruction documentation>
+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 #-}
+
+instance IsCharacterData ProcessingInstruction
+instance IsNode ProcessingInstruction
+instance IsEventTarget ProcessingInstruction
+instance IsNonDocumentTypeChildNode ProcessingInstruction
+instance IsChildNode ProcessingInstruction
+instance IsGObject ProcessingInstruction where
+  typeGType _ = gTypeProcessingInstruction
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ProcessingInstruction\"]" gTypeProcessingInstruction :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ProgressEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ProgressEvent Mozilla ProgressEvent documentation>
+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 #-}
+
+class (IsEvent o, IsGObject o) => IsProgressEvent o
+toProgressEvent :: IsProgressEvent o => o -> ProgressEvent
+toProgressEvent = ProgressEvent . coerce
+
+instance IsProgressEvent ProgressEvent
+instance IsEvent ProgressEvent
+instance IsGObject ProgressEvent where
+  typeGType _ = gTypeProgressEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ProgressEvent\"]" gTypeProgressEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ProgressEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ProgressEventInit Mozilla ProgressEventInit documentation>
+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 #-}
+
+instance IsEventInit ProgressEventInit
+instance IsGObject ProgressEventInit where
+  typeGType _ = gTypeProgressEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ProgressEventInit\"]" gTypeProgressEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.QuickTimePluginReplacement".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement Mozilla QuickTimePluginReplacement documentation>
+newtype QuickTimePluginReplacement = QuickTimePluginReplacement { unQuickTimePluginReplacement :: JSVal }
+
+instance Eq (QuickTimePluginReplacement) where
+  (QuickTimePluginReplacement a) == (QuickTimePluginReplacement b) = js_eq a b
+
+instance PToJSVal QuickTimePluginReplacement where
+  pToJSVal = unQuickTimePluginReplacement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal QuickTimePluginReplacement where
+  pFromJSVal = QuickTimePluginReplacement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal QuickTimePluginReplacement where
+  toJSVal = return . unQuickTimePluginReplacement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal QuickTimePluginReplacement where
+  fromJSVal = return . fmap QuickTimePluginReplacement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject QuickTimePluginReplacement where
+  typeGType _ = gTypeQuickTimePluginReplacement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"QuickTimePluginReplacement\"]" gTypeQuickTimePluginReplacement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RGBColor".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RGBColor Mozilla RGBColor documentation>
+newtype RGBColor = RGBColor { unRGBColor :: JSVal }
+
+instance Eq (RGBColor) where
+  (RGBColor a) == (RGBColor b) = js_eq a b
+
+instance PToJSVal RGBColor where
+  pToJSVal = unRGBColor
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal RGBColor where
+  pFromJSVal = RGBColor
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal RGBColor where
+  toJSVal = return . unRGBColor
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal RGBColor where
+  fromJSVal = return . fmap RGBColor . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject RGBColor where
+  typeGType _ = gTypeRGBColor
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RGBColor\"]" gTypeRGBColor :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCAnswerOptions".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.RTCOfferAnswerOptions"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCAnswerOptions Mozilla RTCAnswerOptions documentation>
+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 #-}
+
+instance IsRTCOfferAnswerOptions RTCAnswerOptions
+instance IsGObject RTCAnswerOptions where
+  typeGType _ = gTypeRTCAnswerOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCAnswerOptions\"]" gTypeRTCAnswerOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCConfiguration".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration Mozilla RTCConfiguration documentation>
+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 #-}
+
+instance IsGObject RTCConfiguration where
+  typeGType _ = gTypeRTCConfiguration
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCConfiguration\"]" gTypeRTCConfiguration :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCDTMFSender".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender Mozilla RTCDTMFSender documentation>
+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 #-}
+
+instance IsEventTarget RTCDTMFSender
+instance IsGObject RTCDTMFSender where
+  typeGType _ = gTypeRTCDTMFSender
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCDTMFSender\"]" gTypeRTCDTMFSender :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCDTMFToneChangeEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFToneChangeEvent Mozilla RTCDTMFToneChangeEvent documentation>
+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 #-}
+
+instance IsEvent RTCDTMFToneChangeEvent
+instance IsGObject RTCDTMFToneChangeEvent where
+  typeGType _ = gTypeRTCDTMFToneChangeEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCDTMFToneChangeEvent\"]" gTypeRTCDTMFToneChangeEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCDTMFToneChangeEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFToneChangeEventInit Mozilla RTCDTMFToneChangeEventInit documentation>
+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 #-}
+
+instance IsEventInit RTCDTMFToneChangeEventInit
+instance IsGObject RTCDTMFToneChangeEventInit where
+  typeGType _ = gTypeRTCDTMFToneChangeEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCDTMFToneChangeEventInit\"]" gTypeRTCDTMFToneChangeEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCDataChannel".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel Mozilla RTCDataChannel documentation>
+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 #-}
+
+instance IsEventTarget RTCDataChannel
+instance IsGObject RTCDataChannel where
+  typeGType _ = gTypeRTCDataChannel
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCDataChannel\"]" gTypeRTCDataChannel :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCDataChannelEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannelEvent Mozilla RTCDataChannelEvent documentation>
+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 #-}
+
+instance IsEvent RTCDataChannelEvent
+instance IsGObject RTCDataChannelEvent where
+  typeGType _ = gTypeRTCDataChannelEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCDataChannelEvent\"]" gTypeRTCDataChannelEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCDataChannelInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannelInit Mozilla RTCDataChannelInit documentation>
+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 #-}
+
+instance IsGObject RTCDataChannelInit where
+  typeGType _ = gTypeRTCDataChannelInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCDataChannelInit\"]" gTypeRTCDataChannelInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCIceCandidate".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate Mozilla RTCIceCandidate documentation>
+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 #-}
+
+instance IsGObject RTCIceCandidate where
+  typeGType _ = gTypeRTCIceCandidate
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCIceCandidate\"]" gTypeRTCIceCandidate :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCIceCandidateEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidateEvent Mozilla RTCIceCandidateEvent documentation>
+newtype RTCIceCandidateEvent = RTCIceCandidateEvent { unRTCIceCandidateEvent :: JSVal }
+
+instance Eq (RTCIceCandidateEvent) where
+  (RTCIceCandidateEvent a) == (RTCIceCandidateEvent b) = js_eq a b
+
+instance PToJSVal RTCIceCandidateEvent where
+  pToJSVal = unRTCIceCandidateEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal RTCIceCandidateEvent where
+  pFromJSVal = RTCIceCandidateEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal RTCIceCandidateEvent where
+  toJSVal = return . unRTCIceCandidateEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal RTCIceCandidateEvent where
+  fromJSVal = return . fmap RTCIceCandidateEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent RTCIceCandidateEvent
+instance IsGObject RTCIceCandidateEvent where
+  typeGType _ = gTypeRTCIceCandidateEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCIceCandidateEvent\"]" gTypeRTCIceCandidateEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCIceCandidateInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidateInit Mozilla RTCIceCandidateInit documentation>
+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 #-}
+
+instance IsGObject RTCIceCandidateInit where
+  typeGType _ = gTypeRTCIceCandidateInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCIceCandidateInit\"]" gTypeRTCIceCandidateInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCIceServer".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer Mozilla RTCIceServer documentation>
+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 #-}
+
+instance IsGObject RTCIceServer where
+  typeGType _ = gTypeRTCIceServer
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCIceServer\"]" gTypeRTCIceServer :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCOfferAnswerOptions".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCOfferAnswerOptions Mozilla RTCOfferAnswerOptions documentation>
+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 #-}
+
+class (IsGObject o) => IsRTCOfferAnswerOptions o
+toRTCOfferAnswerOptions :: IsRTCOfferAnswerOptions o => o -> RTCOfferAnswerOptions
+toRTCOfferAnswerOptions = RTCOfferAnswerOptions . coerce
+
+instance IsRTCOfferAnswerOptions RTCOfferAnswerOptions
+instance IsGObject RTCOfferAnswerOptions where
+  typeGType _ = gTypeRTCOfferAnswerOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCOfferAnswerOptions\"]" gTypeRTCOfferAnswerOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCOfferOptions".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.RTCOfferAnswerOptions"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCOfferOptions Mozilla RTCOfferOptions documentation>
+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 #-}
+
+instance IsRTCOfferAnswerOptions RTCOfferOptions
+instance IsGObject RTCOfferOptions where
+  typeGType _ = gTypeRTCOfferOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCOfferOptions\"]" gTypeRTCOfferOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCPeerConnection".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/webkitRTCPeerConnection Mozilla webkitRTCPeerConnection documentation>
+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 #-}
+
+instance IsEventTarget RTCPeerConnection
+instance IsGObject RTCPeerConnection where
+  typeGType _ = gTypeRTCPeerConnection
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"webkitRTCPeerConnection\"]" gTypeRTCPeerConnection :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCRtpReceiver".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpReceiver Mozilla RTCRtpReceiver documentation>
+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 #-}
+
+instance IsGObject RTCRtpReceiver where
+  typeGType _ = gTypeRTCRtpReceiver
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCRtpReceiver\"]" gTypeRTCRtpReceiver :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCRtpSender".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpSender Mozilla RTCRtpSender documentation>
+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 #-}
+
+instance IsGObject RTCRtpSender where
+  typeGType _ = gTypeRTCRtpSender
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCRtpSender\"]" gTypeRTCRtpSender :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCRtpTransceiver".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver Mozilla RTCRtpTransceiver documentation>
+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 #-}
+
+instance IsGObject RTCRtpTransceiver where
+  typeGType _ = gTypeRTCRtpTransceiver
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCRtpTransceiver\"]" gTypeRTCRtpTransceiver :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCRtpTransceiverInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiverInit Mozilla RTCRtpTransceiverInit documentation>
+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 #-}
+
+instance IsGObject RTCRtpTransceiverInit where
+  typeGType _ = gTypeRTCRtpTransceiverInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCRtpTransceiverInit\"]" gTypeRTCRtpTransceiverInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCSessionDescription".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescription Mozilla RTCSessionDescription documentation>
+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 #-}
+
+instance IsGObject RTCSessionDescription where
+  typeGType _ = gTypeRTCSessionDescription
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCSessionDescription\"]" gTypeRTCSessionDescription :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCSessionDescriptionInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescriptionInit Mozilla RTCSessionDescriptionInit documentation>
+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 #-}
+
+instance IsGObject RTCSessionDescriptionInit where
+  typeGType _ = gTypeRTCSessionDescriptionInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCSessionDescriptionInit\"]" gTypeRTCSessionDescriptionInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCStatsReport".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport Mozilla RTCStatsReport documentation>
+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 #-}
+
+instance IsGObject RTCStatsReport where
+  typeGType _ = gTypeRTCStatsReport
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCStatsReport\"]" gTypeRTCStatsReport :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCTrackEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCTrackEvent Mozilla RTCTrackEvent documentation>
+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 #-}
+
+instance IsEvent RTCTrackEvent
+instance IsGObject RTCTrackEvent where
+  typeGType _ = gTypeRTCTrackEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCTrackEvent\"]" gTypeRTCTrackEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RTCTrackEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RTCTrackEventInit Mozilla RTCTrackEventInit documentation>
+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 #-}
+
+instance IsEventInit RTCTrackEventInit
+instance IsGObject RTCTrackEventInit where
+  typeGType _ = gTypeRTCTrackEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RTCTrackEventInit\"]" gTypeRTCTrackEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RadioNodeList".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.NodeList"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList Mozilla RadioNodeList documentation>
+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 #-}
+
+instance IsNodeList RadioNodeList
+instance IsGObject RadioNodeList where
+  typeGType _ = gTypeRadioNodeList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RadioNodeList\"]" gTypeRadioNodeList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Range".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Range Mozilla Range documentation>
+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 #-}
+
+instance IsGObject Range where
+  typeGType _ = gTypeRange
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Range\"]" gTypeRange :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ReadableByteStreamController".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController Mozilla ReadableByteStreamController documentation>
+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 #-}
+
+instance IsGObject ReadableByteStreamController where
+  typeGType _ = gTypeReadableByteStreamController
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ReadableByteStreamController\"]" gTypeReadableByteStreamController :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ReadableStream".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream Mozilla ReadableStream documentation>
+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 #-}
+
+instance IsGObject ReadableStream where
+  typeGType _ = gTypeReadableStream
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ReadableStream\"]" gTypeReadableStream :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ReadableStreamDefaultController".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController Mozilla ReadableStreamDefaultController documentation>
+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 #-}
+
+instance IsGObject ReadableStreamDefaultController where
+  typeGType _ = gTypeReadableStreamDefaultController
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ReadableStreamDefaultController\"]" gTypeReadableStreamDefaultController :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ReadableStreamDefaultReader".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader Mozilla ReadableStreamDefaultReader documentation>
+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 #-}
+
+instance IsGObject ReadableStreamDefaultReader where
+  typeGType _ = gTypeReadableStreamDefaultReader
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ReadableStreamDefaultReader\"]" gTypeReadableStreamDefaultReader :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ReadableStreamSource".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamSource Mozilla ReadableStreamSource documentation>
+newtype ReadableStreamSource = ReadableStreamSource { unReadableStreamSource :: JSVal }
+
+instance Eq (ReadableStreamSource) where
+  (ReadableStreamSource a) == (ReadableStreamSource b) = js_eq a b
+
+instance PToJSVal ReadableStreamSource where
+  pToJSVal = unReadableStreamSource
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal ReadableStreamSource where
+  pFromJSVal = ReadableStreamSource
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal ReadableStreamSource where
+  toJSVal = return . unReadableStreamSource
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal ReadableStreamSource where
+  fromJSVal = return . fmap ReadableStreamSource . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject ReadableStreamSource where
+  typeGType _ = gTypeReadableStreamSource
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ReadableStreamSource\"]" gTypeReadableStreamSource :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Rect".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Rect Mozilla Rect documentation>
+newtype Rect = Rect { unRect :: JSVal }
+
+instance Eq (Rect) where
+  (Rect a) == (Rect b) = js_eq a b
+
+instance PToJSVal Rect where
+  pToJSVal = unRect
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal Rect where
+  pFromJSVal = Rect
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal Rect where
+  toJSVal = return . unRect
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal Rect where
+  fromJSVal = return . fmap Rect . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject Rect where
+  typeGType _ = gTypeRect
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Rect\"]" gTypeRect :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Request".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Body"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Request Mozilla Request documentation>
+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 #-}
+
+instance IsBody Request
+instance IsGObject Request where
+  typeGType _ = gTypeRequest
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Request\"]" gTypeRequest :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RequestInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RequestInit Mozilla RequestInit documentation>
+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 #-}
+
+instance IsGObject RequestInit where
+  typeGType _ = gTypeRequestInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RequestInit\"]" gTypeRequestInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Response".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Response Mozilla Response documentation>
+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 #-}
+
+instance IsGObject Response where
+  typeGType _ = gTypeResponse
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Response\"]" gTypeResponse :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RotationRate".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RotationRate Mozilla RotationRate documentation>
+newtype RotationRate = RotationRate { unRotationRate :: JSVal }
+
+instance Eq (RotationRate) where
+  (RotationRate a) == (RotationRate b) = js_eq a b
+
+instance PToJSVal RotationRate where
+  pToJSVal = unRotationRate
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal RotationRate where
+  pFromJSVal = RotationRate
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal RotationRate where
+  toJSVal = return . unRotationRate
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal RotationRate where
+  fromJSVal = return . fmap RotationRate . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject RotationRate where
+  typeGType _ = gTypeRotationRate
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RotationRate\"]" gTypeRotationRate :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RsaHashedImportParams".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CryptoAlgorithmParameters"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedImportParams Mozilla RsaHashedImportParams documentation>
+newtype RsaHashedImportParams = RsaHashedImportParams { unRsaHashedImportParams :: JSVal }
+
+instance Eq (RsaHashedImportParams) where
+  (RsaHashedImportParams a) == (RsaHashedImportParams b) = js_eq a b
+
+instance PToJSVal RsaHashedImportParams where
+  pToJSVal = unRsaHashedImportParams
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal RsaHashedImportParams where
+  pFromJSVal = RsaHashedImportParams
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal RsaHashedImportParams where
+  toJSVal = return . unRsaHashedImportParams
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal RsaHashedImportParams where
+  fromJSVal = return . fmap RsaHashedImportParams . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsCryptoAlgorithmParameters RsaHashedImportParams
+instance IsGObject RsaHashedImportParams where
+  typeGType _ = gTypeRsaHashedImportParams
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RsaHashedImportParams\"]" gTypeRsaHashedImportParams :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RsaHashedKeyGenParams".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.RsaKeyGenParams"
+--     * "GHCJS.DOM.CryptoAlgorithmParameters"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams Mozilla RsaHashedKeyGenParams documentation>
+newtype RsaHashedKeyGenParams = RsaHashedKeyGenParams { unRsaHashedKeyGenParams :: JSVal }
+
+instance Eq (RsaHashedKeyGenParams) where
+  (RsaHashedKeyGenParams a) == (RsaHashedKeyGenParams b) = js_eq a b
+
+instance PToJSVal RsaHashedKeyGenParams where
+  pToJSVal = unRsaHashedKeyGenParams
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal RsaHashedKeyGenParams where
+  pFromJSVal = RsaHashedKeyGenParams
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal RsaHashedKeyGenParams where
+  toJSVal = return . unRsaHashedKeyGenParams
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal RsaHashedKeyGenParams where
+  fromJSVal = return . fmap RsaHashedKeyGenParams . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsRsaKeyGenParams RsaHashedKeyGenParams
+instance IsCryptoAlgorithmParameters RsaHashedKeyGenParams
+instance IsGObject RsaHashedKeyGenParams where
+  typeGType _ = gTypeRsaHashedKeyGenParams
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RsaHashedKeyGenParams\"]" gTypeRsaHashedKeyGenParams :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RsaKeyGenParams".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CryptoAlgorithmParameters"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RsaKeyGenParams Mozilla RsaKeyGenParams documentation>
+newtype RsaKeyGenParams = RsaKeyGenParams { unRsaKeyGenParams :: JSVal }
+
+instance Eq (RsaKeyGenParams) where
+  (RsaKeyGenParams a) == (RsaKeyGenParams b) = js_eq a b
+
+instance PToJSVal RsaKeyGenParams where
+  pToJSVal = unRsaKeyGenParams
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal RsaKeyGenParams where
+  pFromJSVal = RsaKeyGenParams
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal RsaKeyGenParams where
+  toJSVal = return . unRsaKeyGenParams
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal RsaKeyGenParams where
+  fromJSVal = return . fmap RsaKeyGenParams . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class (IsCryptoAlgorithmParameters o, IsGObject o) => IsRsaKeyGenParams o
+toRsaKeyGenParams :: IsRsaKeyGenParams o => o -> RsaKeyGenParams
+toRsaKeyGenParams = RsaKeyGenParams . coerce
+
+instance IsRsaKeyGenParams RsaKeyGenParams
+instance IsCryptoAlgorithmParameters RsaKeyGenParams
+instance IsGObject RsaKeyGenParams where
+  typeGType _ = gTypeRsaKeyGenParams
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RsaKeyGenParams\"]" gTypeRsaKeyGenParams :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RsaOaepParams".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CryptoAlgorithmParameters"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RsaOaepParams Mozilla RsaOaepParams documentation>
+newtype RsaOaepParams = RsaOaepParams { unRsaOaepParams :: JSVal }
+
+instance Eq (RsaOaepParams) where
+  (RsaOaepParams a) == (RsaOaepParams b) = js_eq a b
+
+instance PToJSVal RsaOaepParams where
+  pToJSVal = unRsaOaepParams
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal RsaOaepParams where
+  pFromJSVal = RsaOaepParams
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal RsaOaepParams where
+  toJSVal = return . unRsaOaepParams
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal RsaOaepParams where
+  fromJSVal = return . fmap RsaOaepParams . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsCryptoAlgorithmParameters RsaOaepParams
+instance IsGObject RsaOaepParams where
+  typeGType _ = gTypeRsaOaepParams
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RsaOaepParams\"]" gTypeRsaOaepParams :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.RsaOtherPrimesInfo".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/RsaOtherPrimesInfo Mozilla RsaOtherPrimesInfo documentation>
+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 #-}
+
+instance IsGObject RsaOtherPrimesInfo where
+  typeGType _ = gTypeRsaOtherPrimesInfo
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"RsaOtherPrimesInfo\"]" gTypeRsaOtherPrimesInfo :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SQLError".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SQLError Mozilla SQLError documentation>
+newtype SQLError = SQLError { unSQLError :: JSVal }
+
+instance Eq (SQLError) where
+  (SQLError a) == (SQLError b) = js_eq a b
+
+instance PToJSVal SQLError where
+  pToJSVal = unSQLError
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SQLError where
+  pFromJSVal = SQLError
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SQLError where
+  toJSVal = return . unSQLError
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SQLError where
+  fromJSVal = return . fmap SQLError . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject SQLError where
+  typeGType _ = gTypeSQLError
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SQLError\"]" gTypeSQLError :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SQLException".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SQLException Mozilla SQLException documentation>
+newtype SQLException = SQLException { unSQLException :: JSVal }
+
+instance Eq (SQLException) where
+  (SQLException a) == (SQLException b) = js_eq a b
+
+instance PToJSVal SQLException where
+  pToJSVal = unSQLException
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SQLException where
+  pFromJSVal = SQLException
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SQLException where
+  toJSVal = return . unSQLException
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SQLException where
+  fromJSVal = return . fmap SQLException . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject SQLException where
+  typeGType _ = gTypeSQLException
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SQLException\"]" gTypeSQLException :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SQLResultSet".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSet Mozilla SQLResultSet documentation>
+newtype SQLResultSet = SQLResultSet { unSQLResultSet :: JSVal }
+
+instance Eq (SQLResultSet) where
+  (SQLResultSet a) == (SQLResultSet b) = js_eq a b
+
+instance PToJSVal SQLResultSet where
+  pToJSVal = unSQLResultSet
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SQLResultSet where
+  pFromJSVal = SQLResultSet
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SQLResultSet where
+  toJSVal = return . unSQLResultSet
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SQLResultSet where
+  fromJSVal = return . fmap SQLResultSet . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject SQLResultSet where
+  typeGType _ = gTypeSQLResultSet
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SQLResultSet\"]" gTypeSQLResultSet :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SQLResultSetRowList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SQLResultSetRowList Mozilla SQLResultSetRowList documentation>
+newtype SQLResultSetRowList = SQLResultSetRowList { unSQLResultSetRowList :: JSVal }
+
+instance Eq (SQLResultSetRowList) where
+  (SQLResultSetRowList a) == (SQLResultSetRowList b) = js_eq a b
+
+instance PToJSVal SQLResultSetRowList where
+  pToJSVal = unSQLResultSetRowList
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SQLResultSetRowList where
+  pFromJSVal = SQLResultSetRowList
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SQLResultSetRowList where
+  toJSVal = return . unSQLResultSetRowList
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SQLResultSetRowList where
+  fromJSVal = return . fmap SQLResultSetRowList . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject SQLResultSetRowList where
+  typeGType _ = gTypeSQLResultSetRowList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SQLResultSetRowList\"]" gTypeSQLResultSetRowList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SQLTransaction".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransaction Mozilla SQLTransaction documentation>
+newtype SQLTransaction = SQLTransaction { unSQLTransaction :: JSVal }
+
+instance Eq (SQLTransaction) where
+  (SQLTransaction a) == (SQLTransaction b) = js_eq a b
+
+instance PToJSVal SQLTransaction where
+  pToJSVal = unSQLTransaction
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SQLTransaction where
+  pFromJSVal = SQLTransaction
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SQLTransaction where
+  toJSVal = return . unSQLTransaction
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SQLTransaction where
+  fromJSVal = return . fmap SQLTransaction . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject SQLTransaction where
+  typeGType _ = gTypeSQLTransaction
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SQLTransaction\"]" gTypeSQLTransaction :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAElement Mozilla SVGAElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGAElement
+instance IsSVGElement SVGAElement
+instance IsElement SVGAElement
+instance IsNode SVGAElement
+instance IsEventTarget SVGAElement
+instance IsSlotable SVGAElement
+instance IsParentNode SVGAElement
+instance IsNonDocumentTypeChildNode SVGAElement
+instance IsChildNode SVGAElement
+instance IsAnimatable SVGAElement
+instance IsGlobalEventHandlers SVGAElement
+instance IsSVGTests SVGAElement
+instance IsSVGURIReference SVGAElement
+instance IsSVGExternalResourcesRequired SVGAElement
+instance IsGObject SVGAElement where
+  typeGType _ = gTypeSVGAElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAElement\"]" gTypeSVGAElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAltGlyphDefElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphDefElement Mozilla SVGAltGlyphDefElement documentation>
+newtype SVGAltGlyphDefElement = SVGAltGlyphDefElement { unSVGAltGlyphDefElement :: JSVal }
+
+instance Eq (SVGAltGlyphDefElement) where
+  (SVGAltGlyphDefElement a) == (SVGAltGlyphDefElement b) = js_eq a b
+
+instance PToJSVal SVGAltGlyphDefElement where
+  pToJSVal = unSVGAltGlyphDefElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGAltGlyphDefElement where
+  pFromJSVal = SVGAltGlyphDefElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGAltGlyphDefElement where
+  toJSVal = return . unSVGAltGlyphDefElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGAltGlyphDefElement where
+  fromJSVal = return . fmap SVGAltGlyphDefElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGAltGlyphDefElement
+instance IsElement SVGAltGlyphDefElement
+instance IsNode SVGAltGlyphDefElement
+instance IsEventTarget SVGAltGlyphDefElement
+instance IsSlotable SVGAltGlyphDefElement
+instance IsParentNode SVGAltGlyphDefElement
+instance IsNonDocumentTypeChildNode SVGAltGlyphDefElement
+instance IsChildNode SVGAltGlyphDefElement
+instance IsAnimatable SVGAltGlyphDefElement
+instance IsGlobalEventHandlers SVGAltGlyphDefElement
+instance IsGObject SVGAltGlyphDefElement where
+  typeGType _ = gTypeSVGAltGlyphDefElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAltGlyphDefElement\"]" gTypeSVGAltGlyphDefElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAltGlyphElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGTextPositioningElement"
+--     * "GHCJS.DOM.SVGTextContentElement"
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--     * "GHCJS.DOM.SVGURIReference"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphElement Mozilla SVGAltGlyphElement documentation>
+newtype SVGAltGlyphElement = SVGAltGlyphElement { unSVGAltGlyphElement :: JSVal }
+
+instance Eq (SVGAltGlyphElement) where
+  (SVGAltGlyphElement a) == (SVGAltGlyphElement b) = js_eq a b
+
+instance PToJSVal SVGAltGlyphElement where
+  pToJSVal = unSVGAltGlyphElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGAltGlyphElement where
+  pFromJSVal = SVGAltGlyphElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGAltGlyphElement where
+  toJSVal = return . unSVGAltGlyphElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGAltGlyphElement where
+  fromJSVal = return . fmap SVGAltGlyphElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGTextPositioningElement SVGAltGlyphElement
+instance IsSVGTextContentElement SVGAltGlyphElement
+instance IsSVGGraphicsElement SVGAltGlyphElement
+instance IsSVGElement SVGAltGlyphElement
+instance IsElement SVGAltGlyphElement
+instance IsNode SVGAltGlyphElement
+instance IsEventTarget SVGAltGlyphElement
+instance IsSlotable SVGAltGlyphElement
+instance IsParentNode SVGAltGlyphElement
+instance IsNonDocumentTypeChildNode SVGAltGlyphElement
+instance IsChildNode SVGAltGlyphElement
+instance IsAnimatable SVGAltGlyphElement
+instance IsGlobalEventHandlers SVGAltGlyphElement
+instance IsSVGTests SVGAltGlyphElement
+instance IsSVGExternalResourcesRequired SVGAltGlyphElement
+instance IsSVGURIReference SVGAltGlyphElement
+instance IsGObject SVGAltGlyphElement where
+  typeGType _ = gTypeSVGAltGlyphElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAltGlyphElement\"]" gTypeSVGAltGlyphElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAltGlyphItemElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAltGlyphItemElement Mozilla SVGAltGlyphItemElement documentation>
+newtype SVGAltGlyphItemElement = SVGAltGlyphItemElement { unSVGAltGlyphItemElement :: JSVal }
+
+instance Eq (SVGAltGlyphItemElement) where
+  (SVGAltGlyphItemElement a) == (SVGAltGlyphItemElement b) = js_eq a b
+
+instance PToJSVal SVGAltGlyphItemElement where
+  pToJSVal = unSVGAltGlyphItemElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGAltGlyphItemElement where
+  pFromJSVal = SVGAltGlyphItemElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGAltGlyphItemElement where
+  toJSVal = return . unSVGAltGlyphItemElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGAltGlyphItemElement where
+  fromJSVal = return . fmap SVGAltGlyphItemElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGAltGlyphItemElement
+instance IsElement SVGAltGlyphItemElement
+instance IsNode SVGAltGlyphItemElement
+instance IsEventTarget SVGAltGlyphItemElement
+instance IsSlotable SVGAltGlyphItemElement
+instance IsParentNode SVGAltGlyphItemElement
+instance IsNonDocumentTypeChildNode SVGAltGlyphItemElement
+instance IsChildNode SVGAltGlyphItemElement
+instance IsAnimatable SVGAltGlyphItemElement
+instance IsGlobalEventHandlers SVGAltGlyphItemElement
+instance IsGObject SVGAltGlyphItemElement where
+  typeGType _ = gTypeSVGAltGlyphItemElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAltGlyphItemElement\"]" gTypeSVGAltGlyphItemElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAngle".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAngle Mozilla SVGAngle documentation>
+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 #-}
+
+instance IsGObject SVGAngle where
+  typeGType _ = gTypeSVGAngle
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAngle\"]" gTypeSVGAngle :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimateColorElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGAnimationElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateColorElement Mozilla SVGAnimateColorElement documentation>
+newtype SVGAnimateColorElement = SVGAnimateColorElement { unSVGAnimateColorElement :: JSVal }
+
+instance Eq (SVGAnimateColorElement) where
+  (SVGAnimateColorElement a) == (SVGAnimateColorElement b) = js_eq a b
+
+instance PToJSVal SVGAnimateColorElement where
+  pToJSVal = unSVGAnimateColorElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGAnimateColorElement where
+  pFromJSVal = SVGAnimateColorElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGAnimateColorElement where
+  toJSVal = return . unSVGAnimateColorElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGAnimateColorElement where
+  fromJSVal = return . fmap SVGAnimateColorElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGAnimationElement SVGAnimateColorElement
+instance IsSVGElement SVGAnimateColorElement
+instance IsElement SVGAnimateColorElement
+instance IsNode SVGAnimateColorElement
+instance IsEventTarget SVGAnimateColorElement
+instance IsSlotable SVGAnimateColorElement
+instance IsParentNode SVGAnimateColorElement
+instance IsNonDocumentTypeChildNode SVGAnimateColorElement
+instance IsChildNode SVGAnimateColorElement
+instance IsAnimatable SVGAnimateColorElement
+instance IsGlobalEventHandlers SVGAnimateColorElement
+instance IsSVGTests SVGAnimateColorElement
+instance IsSVGExternalResourcesRequired SVGAnimateColorElement
+instance IsGObject SVGAnimateColorElement where
+  typeGType _ = gTypeSVGAnimateColorElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimateColorElement\"]" gTypeSVGAnimateColorElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimateElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGAnimationElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateElement Mozilla SVGAnimateElement documentation>
+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 #-}
+
+instance IsSVGAnimationElement SVGAnimateElement
+instance IsSVGElement SVGAnimateElement
+instance IsElement SVGAnimateElement
+instance IsNode SVGAnimateElement
+instance IsEventTarget SVGAnimateElement
+instance IsSlotable SVGAnimateElement
+instance IsParentNode SVGAnimateElement
+instance IsNonDocumentTypeChildNode SVGAnimateElement
+instance IsChildNode SVGAnimateElement
+instance IsAnimatable SVGAnimateElement
+instance IsGlobalEventHandlers SVGAnimateElement
+instance IsSVGTests SVGAnimateElement
+instance IsSVGExternalResourcesRequired SVGAnimateElement
+instance IsGObject SVGAnimateElement where
+  typeGType _ = gTypeSVGAnimateElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimateElement\"]" gTypeSVGAnimateElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimateMotionElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGAnimationElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateMotionElement Mozilla SVGAnimateMotionElement documentation>
+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 #-}
+
+instance IsSVGAnimationElement SVGAnimateMotionElement
+instance IsSVGElement SVGAnimateMotionElement
+instance IsElement SVGAnimateMotionElement
+instance IsNode SVGAnimateMotionElement
+instance IsEventTarget SVGAnimateMotionElement
+instance IsSlotable SVGAnimateMotionElement
+instance IsParentNode SVGAnimateMotionElement
+instance IsNonDocumentTypeChildNode SVGAnimateMotionElement
+instance IsChildNode SVGAnimateMotionElement
+instance IsAnimatable SVGAnimateMotionElement
+instance IsGlobalEventHandlers SVGAnimateMotionElement
+instance IsSVGTests SVGAnimateMotionElement
+instance IsSVGExternalResourcesRequired SVGAnimateMotionElement
+instance IsGObject SVGAnimateMotionElement where
+  typeGType _ = gTypeSVGAnimateMotionElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimateMotionElement\"]" gTypeSVGAnimateMotionElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimateTransformElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGAnimationElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimateTransformElement Mozilla SVGAnimateTransformElement documentation>
+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 #-}
+
+instance IsSVGAnimationElement SVGAnimateTransformElement
+instance IsSVGElement SVGAnimateTransformElement
+instance IsElement SVGAnimateTransformElement
+instance IsNode SVGAnimateTransformElement
+instance IsEventTarget SVGAnimateTransformElement
+instance IsSlotable SVGAnimateTransformElement
+instance IsParentNode SVGAnimateTransformElement
+instance IsNonDocumentTypeChildNode SVGAnimateTransformElement
+instance IsChildNode SVGAnimateTransformElement
+instance IsAnimatable SVGAnimateTransformElement
+instance IsGlobalEventHandlers SVGAnimateTransformElement
+instance IsSVGTests SVGAnimateTransformElement
+instance IsSVGExternalResourcesRequired SVGAnimateTransformElement
+instance IsGObject SVGAnimateTransformElement where
+  typeGType _ = gTypeSVGAnimateTransformElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimateTransformElement\"]" gTypeSVGAnimateTransformElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedAngle".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedAngle Mozilla SVGAnimatedAngle documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedAngle where
+  typeGType _ = gTypeSVGAnimatedAngle
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedAngle\"]" gTypeSVGAnimatedAngle :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedBoolean".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedBoolean Mozilla SVGAnimatedBoolean documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedBoolean where
+  typeGType _ = gTypeSVGAnimatedBoolean
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedBoolean\"]" gTypeSVGAnimatedBoolean :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedEnumeration".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedEnumeration Mozilla SVGAnimatedEnumeration documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedEnumeration where
+  typeGType _ = gTypeSVGAnimatedEnumeration
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedEnumeration\"]" gTypeSVGAnimatedEnumeration :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedInteger".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedInteger Mozilla SVGAnimatedInteger documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedInteger where
+  typeGType _ = gTypeSVGAnimatedInteger
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedInteger\"]" gTypeSVGAnimatedInteger :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedLength".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLength Mozilla SVGAnimatedLength documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedLength where
+  typeGType _ = gTypeSVGAnimatedLength
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedLength\"]" gTypeSVGAnimatedLength :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedLengthList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedLengthList Mozilla SVGAnimatedLengthList documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedLengthList where
+  typeGType _ = gTypeSVGAnimatedLengthList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedLengthList\"]" gTypeSVGAnimatedLengthList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedNumber".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumber Mozilla SVGAnimatedNumber documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedNumber where
+  typeGType _ = gTypeSVGAnimatedNumber
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedNumber\"]" gTypeSVGAnimatedNumber :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedNumberList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedNumberList Mozilla SVGAnimatedNumberList documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedNumberList where
+  typeGType _ = gTypeSVGAnimatedNumberList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedNumberList\"]" gTypeSVGAnimatedNumberList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedPreserveAspectRatio".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedPreserveAspectRatio Mozilla SVGAnimatedPreserveAspectRatio documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedPreserveAspectRatio where
+  typeGType _ = gTypeSVGAnimatedPreserveAspectRatio
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedPreserveAspectRatio\"]" gTypeSVGAnimatedPreserveAspectRatio :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedRect".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedRect Mozilla SVGAnimatedRect documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedRect where
+  typeGType _ = gTypeSVGAnimatedRect
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedRect\"]" gTypeSVGAnimatedRect :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedString".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedString Mozilla SVGAnimatedString documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedString where
+  typeGType _ = gTypeSVGAnimatedString
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedString\"]" gTypeSVGAnimatedString :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimatedTransformList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimatedTransformList Mozilla SVGAnimatedTransformList documentation>
+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 #-}
+
+instance IsGObject SVGAnimatedTransformList where
+  typeGType _ = gTypeSVGAnimatedTransformList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimatedTransformList\"]" gTypeSVGAnimatedTransformList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGAnimationElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGAnimationElement Mozilla SVGAnimationElement documentation>
+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 #-}
+
+class (IsSVGElement o, IsElement o, IsNode o, IsEventTarget o, IsSlotable o, IsParentNode o, IsNonDocumentTypeChildNode o, IsChildNode o, IsAnimatable o, IsGlobalEventHandlers o, IsSVGTests o, IsSVGExternalResourcesRequired o, IsGObject o) => IsSVGAnimationElement o
+toSVGAnimationElement :: IsSVGAnimationElement o => o -> SVGAnimationElement
+toSVGAnimationElement = SVGAnimationElement . coerce
+
+instance IsSVGAnimationElement SVGAnimationElement
+instance IsSVGElement SVGAnimationElement
+instance IsElement SVGAnimationElement
+instance IsNode SVGAnimationElement
+instance IsEventTarget SVGAnimationElement
+instance IsSlotable SVGAnimationElement
+instance IsParentNode SVGAnimationElement
+instance IsNonDocumentTypeChildNode SVGAnimationElement
+instance IsChildNode SVGAnimationElement
+instance IsAnimatable SVGAnimationElement
+instance IsGlobalEventHandlers SVGAnimationElement
+instance IsSVGTests SVGAnimationElement
+instance IsSVGExternalResourcesRequired SVGAnimationElement
+instance IsGObject SVGAnimationElement where
+  typeGType _ = gTypeSVGAnimationElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGAnimationElement\"]" gTypeSVGAnimationElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGCircleElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGCircleElement Mozilla SVGCircleElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGCircleElement
+instance IsSVGElement SVGCircleElement
+instance IsElement SVGCircleElement
+instance IsNode SVGCircleElement
+instance IsEventTarget SVGCircleElement
+instance IsSlotable SVGCircleElement
+instance IsParentNode SVGCircleElement
+instance IsNonDocumentTypeChildNode SVGCircleElement
+instance IsChildNode SVGCircleElement
+instance IsAnimatable SVGCircleElement
+instance IsGlobalEventHandlers SVGCircleElement
+instance IsSVGTests SVGCircleElement
+instance IsSVGExternalResourcesRequired SVGCircleElement
+instance IsGObject SVGCircleElement where
+  typeGType _ = gTypeSVGCircleElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGCircleElement\"]" gTypeSVGCircleElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGClipPathElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGClipPathElement Mozilla SVGClipPathElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGClipPathElement
+instance IsSVGElement SVGClipPathElement
+instance IsElement SVGClipPathElement
+instance IsNode SVGClipPathElement
+instance IsEventTarget SVGClipPathElement
+instance IsSlotable SVGClipPathElement
+instance IsParentNode SVGClipPathElement
+instance IsNonDocumentTypeChildNode SVGClipPathElement
+instance IsChildNode SVGClipPathElement
+instance IsAnimatable SVGClipPathElement
+instance IsGlobalEventHandlers SVGClipPathElement
+instance IsSVGTests SVGClipPathElement
+instance IsSVGExternalResourcesRequired SVGClipPathElement
+instance IsGObject SVGClipPathElement where
+  typeGType _ = gTypeSVGClipPathElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGClipPathElement\"]" gTypeSVGClipPathElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGComponentTransferFunctionElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGComponentTransferFunctionElement Mozilla SVGComponentTransferFunctionElement documentation>
+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 #-}
+
+class (IsSVGElement o, IsElement o, IsNode o, IsEventTarget o, IsSlotable o, IsParentNode o, IsNonDocumentTypeChildNode o, IsChildNode o, IsAnimatable o, IsGlobalEventHandlers o, IsGObject o) => IsSVGComponentTransferFunctionElement o
+toSVGComponentTransferFunctionElement :: IsSVGComponentTransferFunctionElement o => o -> SVGComponentTransferFunctionElement
+toSVGComponentTransferFunctionElement = SVGComponentTransferFunctionElement . coerce
+
+instance IsSVGComponentTransferFunctionElement SVGComponentTransferFunctionElement
+instance IsSVGElement SVGComponentTransferFunctionElement
+instance IsElement SVGComponentTransferFunctionElement
+instance IsNode SVGComponentTransferFunctionElement
+instance IsEventTarget SVGComponentTransferFunctionElement
+instance IsSlotable SVGComponentTransferFunctionElement
+instance IsParentNode SVGComponentTransferFunctionElement
+instance IsNonDocumentTypeChildNode SVGComponentTransferFunctionElement
+instance IsChildNode SVGComponentTransferFunctionElement
+instance IsAnimatable SVGComponentTransferFunctionElement
+instance IsGlobalEventHandlers SVGComponentTransferFunctionElement
+instance IsGObject SVGComponentTransferFunctionElement where
+  typeGType _ = gTypeSVGComponentTransferFunctionElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGComponentTransferFunctionElement\"]" gTypeSVGComponentTransferFunctionElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGCursorElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGCursorElement Mozilla SVGCursorElement documentation>
+newtype SVGCursorElement = SVGCursorElement { unSVGCursorElement :: JSVal }
+
+instance Eq (SVGCursorElement) where
+  (SVGCursorElement a) == (SVGCursorElement b) = js_eq a b
+
+instance PToJSVal SVGCursorElement where
+  pToJSVal = unSVGCursorElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGCursorElement where
+  pFromJSVal = SVGCursorElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGCursorElement where
+  toJSVal = return . unSVGCursorElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGCursorElement where
+  fromJSVal = return . fmap SVGCursorElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGCursorElement
+instance IsElement SVGCursorElement
+instance IsNode SVGCursorElement
+instance IsEventTarget SVGCursorElement
+instance IsSlotable SVGCursorElement
+instance IsParentNode SVGCursorElement
+instance IsNonDocumentTypeChildNode SVGCursorElement
+instance IsChildNode SVGCursorElement
+instance IsAnimatable SVGCursorElement
+instance IsGlobalEventHandlers SVGCursorElement
+instance IsSVGURIReference SVGCursorElement
+instance IsSVGTests SVGCursorElement
+instance IsSVGExternalResourcesRequired SVGCursorElement
+instance IsGObject SVGCursorElement where
+  typeGType _ = gTypeSVGCursorElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGCursorElement\"]" gTypeSVGCursorElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGDefsElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGDefsElement Mozilla SVGDefsElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGDefsElement
+instance IsSVGElement SVGDefsElement
+instance IsElement SVGDefsElement
+instance IsNode SVGDefsElement
+instance IsEventTarget SVGDefsElement
+instance IsSlotable SVGDefsElement
+instance IsParentNode SVGDefsElement
+instance IsNonDocumentTypeChildNode SVGDefsElement
+instance IsChildNode SVGDefsElement
+instance IsAnimatable SVGDefsElement
+instance IsGlobalEventHandlers SVGDefsElement
+instance IsSVGTests SVGDefsElement
+instance IsSVGExternalResourcesRequired SVGDefsElement
+instance IsGObject SVGDefsElement where
+  typeGType _ = gTypeSVGDefsElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGDefsElement\"]" gTypeSVGDefsElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGDescElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGDescElement Mozilla SVGDescElement documentation>
+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 #-}
+
+instance IsSVGElement SVGDescElement
+instance IsElement SVGDescElement
+instance IsNode SVGDescElement
+instance IsEventTarget SVGDescElement
+instance IsSlotable SVGDescElement
+instance IsParentNode SVGDescElement
+instance IsNonDocumentTypeChildNode SVGDescElement
+instance IsChildNode SVGDescElement
+instance IsAnimatable SVGDescElement
+instance IsGlobalEventHandlers SVGDescElement
+instance IsGObject SVGDescElement where
+  typeGType _ = gTypeSVGDescElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGDescElement\"]" gTypeSVGDescElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGElement Mozilla SVGElement documentation>
+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 #-}
+
+class (IsElement o, IsNode o, IsEventTarget o, IsSlotable o, IsParentNode o, IsNonDocumentTypeChildNode o, IsChildNode o, IsAnimatable o, IsGlobalEventHandlers o, IsGObject o) => IsSVGElement o
+toSVGElement :: IsSVGElement o => o -> SVGElement
+toSVGElement = SVGElement . coerce
+
+instance IsSVGElement SVGElement
+instance IsElement SVGElement
+instance IsNode SVGElement
+instance IsEventTarget SVGElement
+instance IsSlotable SVGElement
+instance IsParentNode SVGElement
+instance IsNonDocumentTypeChildNode SVGElement
+instance IsChildNode SVGElement
+instance IsAnimatable SVGElement
+instance IsGlobalEventHandlers SVGElement
+instance IsGObject SVGElement where
+  typeGType _ = gTypeSVGElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGElement\"]" gTypeSVGElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGEllipseElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGEllipseElement Mozilla SVGEllipseElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGEllipseElement
+instance IsSVGElement SVGEllipseElement
+instance IsElement SVGEllipseElement
+instance IsNode SVGEllipseElement
+instance IsEventTarget SVGEllipseElement
+instance IsSlotable SVGEllipseElement
+instance IsParentNode SVGEllipseElement
+instance IsNonDocumentTypeChildNode SVGEllipseElement
+instance IsChildNode SVGEllipseElement
+instance IsAnimatable SVGEllipseElement
+instance IsGlobalEventHandlers SVGEllipseElement
+instance IsSVGTests SVGEllipseElement
+instance IsSVGExternalResourcesRequired SVGEllipseElement
+instance IsGObject SVGEllipseElement where
+  typeGType _ = gTypeSVGEllipseElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGEllipseElement\"]" gTypeSVGEllipseElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGException".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGException Mozilla SVGException documentation>
+newtype SVGException = SVGException { unSVGException :: JSVal }
+
+instance Eq (SVGException) where
+  (SVGException a) == (SVGException b) = js_eq a b
+
+instance PToJSVal SVGException where
+  pToJSVal = unSVGException
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGException where
+  pFromJSVal = SVGException
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGException where
+  toJSVal = return . unSVGException
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGException where
+  fromJSVal = return . fmap SVGException . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject SVGException where
+  typeGType _ = gTypeSVGException
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGException\"]" gTypeSVGException :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGExternalResourcesRequired".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGExternalResourcesRequired Mozilla SVGExternalResourcesRequired documentation>
+newtype SVGExternalResourcesRequired = SVGExternalResourcesRequired { unSVGExternalResourcesRequired :: JSVal }
+
+instance Eq (SVGExternalResourcesRequired) where
+  (SVGExternalResourcesRequired a) == (SVGExternalResourcesRequired b) = js_eq a b
+
+instance PToJSVal SVGExternalResourcesRequired where
+  pToJSVal = unSVGExternalResourcesRequired
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGExternalResourcesRequired where
+  pFromJSVal = SVGExternalResourcesRequired
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGExternalResourcesRequired where
+  toJSVal = return . unSVGExternalResourcesRequired
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGExternalResourcesRequired where
+  fromJSVal = return . fmap SVGExternalResourcesRequired . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class (IsGObject o) => IsSVGExternalResourcesRequired o
+toSVGExternalResourcesRequired :: IsSVGExternalResourcesRequired o => o -> SVGExternalResourcesRequired
+toSVGExternalResourcesRequired = SVGExternalResourcesRequired . coerce
+
+instance IsSVGExternalResourcesRequired SVGExternalResourcesRequired
+instance IsGObject SVGExternalResourcesRequired where
+  typeGType _ = gTypeSVGExternalResourcesRequired
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGExternalResourcesRequired\"]" gTypeSVGExternalResourcesRequired :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEBlendElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEBlendElement Mozilla SVGFEBlendElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEBlendElement
+instance IsElement SVGFEBlendElement
+instance IsNode SVGFEBlendElement
+instance IsEventTarget SVGFEBlendElement
+instance IsSlotable SVGFEBlendElement
+instance IsParentNode SVGFEBlendElement
+instance IsNonDocumentTypeChildNode SVGFEBlendElement
+instance IsChildNode SVGFEBlendElement
+instance IsAnimatable SVGFEBlendElement
+instance IsGlobalEventHandlers SVGFEBlendElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEBlendElement
+instance IsGObject SVGFEBlendElement where
+  typeGType _ = gTypeSVGFEBlendElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEBlendElement\"]" gTypeSVGFEBlendElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEColorMatrixElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEColorMatrixElement Mozilla SVGFEColorMatrixElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEColorMatrixElement
+instance IsElement SVGFEColorMatrixElement
+instance IsNode SVGFEColorMatrixElement
+instance IsEventTarget SVGFEColorMatrixElement
+instance IsSlotable SVGFEColorMatrixElement
+instance IsParentNode SVGFEColorMatrixElement
+instance IsNonDocumentTypeChildNode SVGFEColorMatrixElement
+instance IsChildNode SVGFEColorMatrixElement
+instance IsAnimatable SVGFEColorMatrixElement
+instance IsGlobalEventHandlers SVGFEColorMatrixElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEColorMatrixElement
+instance IsGObject SVGFEColorMatrixElement where
+  typeGType _ = gTypeSVGFEColorMatrixElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEColorMatrixElement\"]" gTypeSVGFEColorMatrixElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEComponentTransferElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEComponentTransferElement Mozilla SVGFEComponentTransferElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEComponentTransferElement
+instance IsElement SVGFEComponentTransferElement
+instance IsNode SVGFEComponentTransferElement
+instance IsEventTarget SVGFEComponentTransferElement
+instance IsSlotable SVGFEComponentTransferElement
+instance IsParentNode SVGFEComponentTransferElement
+instance IsNonDocumentTypeChildNode SVGFEComponentTransferElement
+instance IsChildNode SVGFEComponentTransferElement
+instance IsAnimatable SVGFEComponentTransferElement
+instance IsGlobalEventHandlers SVGFEComponentTransferElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEComponentTransferElement
+instance IsGObject SVGFEComponentTransferElement where
+  typeGType _ = gTypeSVGFEComponentTransferElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEComponentTransferElement\"]" gTypeSVGFEComponentTransferElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFECompositeElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFECompositeElement Mozilla SVGFECompositeElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFECompositeElement
+instance IsElement SVGFECompositeElement
+instance IsNode SVGFECompositeElement
+instance IsEventTarget SVGFECompositeElement
+instance IsSlotable SVGFECompositeElement
+instance IsParentNode SVGFECompositeElement
+instance IsNonDocumentTypeChildNode SVGFECompositeElement
+instance IsChildNode SVGFECompositeElement
+instance IsAnimatable SVGFECompositeElement
+instance IsGlobalEventHandlers SVGFECompositeElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFECompositeElement
+instance IsGObject SVGFECompositeElement where
+  typeGType _ = gTypeSVGFECompositeElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFECompositeElement\"]" gTypeSVGFECompositeElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEConvolveMatrixElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEConvolveMatrixElement Mozilla SVGFEConvolveMatrixElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEConvolveMatrixElement
+instance IsElement SVGFEConvolveMatrixElement
+instance IsNode SVGFEConvolveMatrixElement
+instance IsEventTarget SVGFEConvolveMatrixElement
+instance IsSlotable SVGFEConvolveMatrixElement
+instance IsParentNode SVGFEConvolveMatrixElement
+instance IsNonDocumentTypeChildNode SVGFEConvolveMatrixElement
+instance IsChildNode SVGFEConvolveMatrixElement
+instance IsAnimatable SVGFEConvolveMatrixElement
+instance IsGlobalEventHandlers SVGFEConvolveMatrixElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEConvolveMatrixElement
+instance IsGObject SVGFEConvolveMatrixElement where
+  typeGType _ = gTypeSVGFEConvolveMatrixElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEConvolveMatrixElement\"]" gTypeSVGFEConvolveMatrixElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEDiffuseLightingElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDiffuseLightingElement Mozilla SVGFEDiffuseLightingElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEDiffuseLightingElement
+instance IsElement SVGFEDiffuseLightingElement
+instance IsNode SVGFEDiffuseLightingElement
+instance IsEventTarget SVGFEDiffuseLightingElement
+instance IsSlotable SVGFEDiffuseLightingElement
+instance IsParentNode SVGFEDiffuseLightingElement
+instance IsNonDocumentTypeChildNode SVGFEDiffuseLightingElement
+instance IsChildNode SVGFEDiffuseLightingElement
+instance IsAnimatable SVGFEDiffuseLightingElement
+instance IsGlobalEventHandlers SVGFEDiffuseLightingElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEDiffuseLightingElement
+instance IsGObject SVGFEDiffuseLightingElement where
+  typeGType _ = gTypeSVGFEDiffuseLightingElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEDiffuseLightingElement\"]" gTypeSVGFEDiffuseLightingElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEDisplacementMapElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDisplacementMapElement Mozilla SVGFEDisplacementMapElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEDisplacementMapElement
+instance IsElement SVGFEDisplacementMapElement
+instance IsNode SVGFEDisplacementMapElement
+instance IsEventTarget SVGFEDisplacementMapElement
+instance IsSlotable SVGFEDisplacementMapElement
+instance IsParentNode SVGFEDisplacementMapElement
+instance IsNonDocumentTypeChildNode SVGFEDisplacementMapElement
+instance IsChildNode SVGFEDisplacementMapElement
+instance IsAnimatable SVGFEDisplacementMapElement
+instance IsGlobalEventHandlers SVGFEDisplacementMapElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEDisplacementMapElement
+instance IsGObject SVGFEDisplacementMapElement where
+  typeGType _ = gTypeSVGFEDisplacementMapElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEDisplacementMapElement\"]" gTypeSVGFEDisplacementMapElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEDistantLightElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDistantLightElement Mozilla SVGFEDistantLightElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEDistantLightElement
+instance IsElement SVGFEDistantLightElement
+instance IsNode SVGFEDistantLightElement
+instance IsEventTarget SVGFEDistantLightElement
+instance IsSlotable SVGFEDistantLightElement
+instance IsParentNode SVGFEDistantLightElement
+instance IsNonDocumentTypeChildNode SVGFEDistantLightElement
+instance IsChildNode SVGFEDistantLightElement
+instance IsAnimatable SVGFEDistantLightElement
+instance IsGlobalEventHandlers SVGFEDistantLightElement
+instance IsGObject SVGFEDistantLightElement where
+  typeGType _ = gTypeSVGFEDistantLightElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEDistantLightElement\"]" gTypeSVGFEDistantLightElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEDropShadowElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEDropShadowElement Mozilla SVGFEDropShadowElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEDropShadowElement
+instance IsElement SVGFEDropShadowElement
+instance IsNode SVGFEDropShadowElement
+instance IsEventTarget SVGFEDropShadowElement
+instance IsSlotable SVGFEDropShadowElement
+instance IsParentNode SVGFEDropShadowElement
+instance IsNonDocumentTypeChildNode SVGFEDropShadowElement
+instance IsChildNode SVGFEDropShadowElement
+instance IsAnimatable SVGFEDropShadowElement
+instance IsGlobalEventHandlers SVGFEDropShadowElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEDropShadowElement
+instance IsGObject SVGFEDropShadowElement where
+  typeGType _ = gTypeSVGFEDropShadowElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEDropShadowElement\"]" gTypeSVGFEDropShadowElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEFloodElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFloodElement Mozilla SVGFEFloodElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEFloodElement
+instance IsElement SVGFEFloodElement
+instance IsNode SVGFEFloodElement
+instance IsEventTarget SVGFEFloodElement
+instance IsSlotable SVGFEFloodElement
+instance IsParentNode SVGFEFloodElement
+instance IsNonDocumentTypeChildNode SVGFEFloodElement
+instance IsChildNode SVGFEFloodElement
+instance IsAnimatable SVGFEFloodElement
+instance IsGlobalEventHandlers SVGFEFloodElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEFloodElement
+instance IsGObject SVGFEFloodElement where
+  typeGType _ = gTypeSVGFEFloodElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEFloodElement\"]" gTypeSVGFEFloodElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEFuncAElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGComponentTransferFunctionElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncAElement Mozilla SVGFEFuncAElement documentation>
+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 #-}
+
+instance IsSVGComponentTransferFunctionElement SVGFEFuncAElement
+instance IsSVGElement SVGFEFuncAElement
+instance IsElement SVGFEFuncAElement
+instance IsNode SVGFEFuncAElement
+instance IsEventTarget SVGFEFuncAElement
+instance IsSlotable SVGFEFuncAElement
+instance IsParentNode SVGFEFuncAElement
+instance IsNonDocumentTypeChildNode SVGFEFuncAElement
+instance IsChildNode SVGFEFuncAElement
+instance IsAnimatable SVGFEFuncAElement
+instance IsGlobalEventHandlers SVGFEFuncAElement
+instance IsGObject SVGFEFuncAElement where
+  typeGType _ = gTypeSVGFEFuncAElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEFuncAElement\"]" gTypeSVGFEFuncAElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEFuncBElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGComponentTransferFunctionElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncBElement Mozilla SVGFEFuncBElement documentation>
+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 #-}
+
+instance IsSVGComponentTransferFunctionElement SVGFEFuncBElement
+instance IsSVGElement SVGFEFuncBElement
+instance IsElement SVGFEFuncBElement
+instance IsNode SVGFEFuncBElement
+instance IsEventTarget SVGFEFuncBElement
+instance IsSlotable SVGFEFuncBElement
+instance IsParentNode SVGFEFuncBElement
+instance IsNonDocumentTypeChildNode SVGFEFuncBElement
+instance IsChildNode SVGFEFuncBElement
+instance IsAnimatable SVGFEFuncBElement
+instance IsGlobalEventHandlers SVGFEFuncBElement
+instance IsGObject SVGFEFuncBElement where
+  typeGType _ = gTypeSVGFEFuncBElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEFuncBElement\"]" gTypeSVGFEFuncBElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEFuncGElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGComponentTransferFunctionElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncGElement Mozilla SVGFEFuncGElement documentation>
+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 #-}
+
+instance IsSVGComponentTransferFunctionElement SVGFEFuncGElement
+instance IsSVGElement SVGFEFuncGElement
+instance IsElement SVGFEFuncGElement
+instance IsNode SVGFEFuncGElement
+instance IsEventTarget SVGFEFuncGElement
+instance IsSlotable SVGFEFuncGElement
+instance IsParentNode SVGFEFuncGElement
+instance IsNonDocumentTypeChildNode SVGFEFuncGElement
+instance IsChildNode SVGFEFuncGElement
+instance IsAnimatable SVGFEFuncGElement
+instance IsGlobalEventHandlers SVGFEFuncGElement
+instance IsGObject SVGFEFuncGElement where
+  typeGType _ = gTypeSVGFEFuncGElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEFuncGElement\"]" gTypeSVGFEFuncGElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEFuncRElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGComponentTransferFunctionElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEFuncRElement Mozilla SVGFEFuncRElement documentation>
+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 #-}
+
+instance IsSVGComponentTransferFunctionElement SVGFEFuncRElement
+instance IsSVGElement SVGFEFuncRElement
+instance IsElement SVGFEFuncRElement
+instance IsNode SVGFEFuncRElement
+instance IsEventTarget SVGFEFuncRElement
+instance IsSlotable SVGFEFuncRElement
+instance IsParentNode SVGFEFuncRElement
+instance IsNonDocumentTypeChildNode SVGFEFuncRElement
+instance IsChildNode SVGFEFuncRElement
+instance IsAnimatable SVGFEFuncRElement
+instance IsGlobalEventHandlers SVGFEFuncRElement
+instance IsGObject SVGFEFuncRElement where
+  typeGType _ = gTypeSVGFEFuncRElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEFuncRElement\"]" gTypeSVGFEFuncRElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEGaussianBlurElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEGaussianBlurElement Mozilla SVGFEGaussianBlurElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEGaussianBlurElement
+instance IsElement SVGFEGaussianBlurElement
+instance IsNode SVGFEGaussianBlurElement
+instance IsEventTarget SVGFEGaussianBlurElement
+instance IsSlotable SVGFEGaussianBlurElement
+instance IsParentNode SVGFEGaussianBlurElement
+instance IsNonDocumentTypeChildNode SVGFEGaussianBlurElement
+instance IsChildNode SVGFEGaussianBlurElement
+instance IsAnimatable SVGFEGaussianBlurElement
+instance IsGlobalEventHandlers SVGFEGaussianBlurElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEGaussianBlurElement
+instance IsGObject SVGFEGaussianBlurElement where
+  typeGType _ = gTypeSVGFEGaussianBlurElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEGaussianBlurElement\"]" gTypeSVGFEGaussianBlurElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEImageElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEImageElement Mozilla SVGFEImageElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEImageElement
+instance IsElement SVGFEImageElement
+instance IsNode SVGFEImageElement
+instance IsEventTarget SVGFEImageElement
+instance IsSlotable SVGFEImageElement
+instance IsParentNode SVGFEImageElement
+instance IsNonDocumentTypeChildNode SVGFEImageElement
+instance IsChildNode SVGFEImageElement
+instance IsAnimatable SVGFEImageElement
+instance IsGlobalEventHandlers SVGFEImageElement
+instance IsSVGURIReference SVGFEImageElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEImageElement
+instance IsSVGExternalResourcesRequired SVGFEImageElement
+instance IsGObject SVGFEImageElement where
+  typeGType _ = gTypeSVGFEImageElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEImageElement\"]" gTypeSVGFEImageElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEMergeElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeElement Mozilla SVGFEMergeElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEMergeElement
+instance IsElement SVGFEMergeElement
+instance IsNode SVGFEMergeElement
+instance IsEventTarget SVGFEMergeElement
+instance IsSlotable SVGFEMergeElement
+instance IsParentNode SVGFEMergeElement
+instance IsNonDocumentTypeChildNode SVGFEMergeElement
+instance IsChildNode SVGFEMergeElement
+instance IsAnimatable SVGFEMergeElement
+instance IsGlobalEventHandlers SVGFEMergeElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEMergeElement
+instance IsGObject SVGFEMergeElement where
+  typeGType _ = gTypeSVGFEMergeElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEMergeElement\"]" gTypeSVGFEMergeElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEMergeNodeElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMergeNodeElement Mozilla SVGFEMergeNodeElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEMergeNodeElement
+instance IsElement SVGFEMergeNodeElement
+instance IsNode SVGFEMergeNodeElement
+instance IsEventTarget SVGFEMergeNodeElement
+instance IsSlotable SVGFEMergeNodeElement
+instance IsParentNode SVGFEMergeNodeElement
+instance IsNonDocumentTypeChildNode SVGFEMergeNodeElement
+instance IsChildNode SVGFEMergeNodeElement
+instance IsAnimatable SVGFEMergeNodeElement
+instance IsGlobalEventHandlers SVGFEMergeNodeElement
+instance IsGObject SVGFEMergeNodeElement where
+  typeGType _ = gTypeSVGFEMergeNodeElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEMergeNodeElement\"]" gTypeSVGFEMergeNodeElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEMorphologyElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEMorphologyElement Mozilla SVGFEMorphologyElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEMorphologyElement
+instance IsElement SVGFEMorphologyElement
+instance IsNode SVGFEMorphologyElement
+instance IsEventTarget SVGFEMorphologyElement
+instance IsSlotable SVGFEMorphologyElement
+instance IsParentNode SVGFEMorphologyElement
+instance IsNonDocumentTypeChildNode SVGFEMorphologyElement
+instance IsChildNode SVGFEMorphologyElement
+instance IsAnimatable SVGFEMorphologyElement
+instance IsGlobalEventHandlers SVGFEMorphologyElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEMorphologyElement
+instance IsGObject SVGFEMorphologyElement where
+  typeGType _ = gTypeSVGFEMorphologyElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEMorphologyElement\"]" gTypeSVGFEMorphologyElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEOffsetElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEOffsetElement Mozilla SVGFEOffsetElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEOffsetElement
+instance IsElement SVGFEOffsetElement
+instance IsNode SVGFEOffsetElement
+instance IsEventTarget SVGFEOffsetElement
+instance IsSlotable SVGFEOffsetElement
+instance IsParentNode SVGFEOffsetElement
+instance IsNonDocumentTypeChildNode SVGFEOffsetElement
+instance IsChildNode SVGFEOffsetElement
+instance IsAnimatable SVGFEOffsetElement
+instance IsGlobalEventHandlers SVGFEOffsetElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFEOffsetElement
+instance IsGObject SVGFEOffsetElement where
+  typeGType _ = gTypeSVGFEOffsetElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEOffsetElement\"]" gTypeSVGFEOffsetElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFEPointLightElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFEPointLightElement Mozilla SVGFEPointLightElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFEPointLightElement
+instance IsElement SVGFEPointLightElement
+instance IsNode SVGFEPointLightElement
+instance IsEventTarget SVGFEPointLightElement
+instance IsSlotable SVGFEPointLightElement
+instance IsParentNode SVGFEPointLightElement
+instance IsNonDocumentTypeChildNode SVGFEPointLightElement
+instance IsChildNode SVGFEPointLightElement
+instance IsAnimatable SVGFEPointLightElement
+instance IsGlobalEventHandlers SVGFEPointLightElement
+instance IsGObject SVGFEPointLightElement where
+  typeGType _ = gTypeSVGFEPointLightElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFEPointLightElement\"]" gTypeSVGFEPointLightElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFESpecularLightingElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpecularLightingElement Mozilla SVGFESpecularLightingElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFESpecularLightingElement
+instance IsElement SVGFESpecularLightingElement
+instance IsNode SVGFESpecularLightingElement
+instance IsEventTarget SVGFESpecularLightingElement
+instance IsSlotable SVGFESpecularLightingElement
+instance IsParentNode SVGFESpecularLightingElement
+instance IsNonDocumentTypeChildNode SVGFESpecularLightingElement
+instance IsChildNode SVGFESpecularLightingElement
+instance IsAnimatable SVGFESpecularLightingElement
+instance IsGlobalEventHandlers SVGFESpecularLightingElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFESpecularLightingElement
+instance IsGObject SVGFESpecularLightingElement where
+  typeGType _ = gTypeSVGFESpecularLightingElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFESpecularLightingElement\"]" gTypeSVGFESpecularLightingElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFESpotLightElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFESpotLightElement Mozilla SVGFESpotLightElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFESpotLightElement
+instance IsElement SVGFESpotLightElement
+instance IsNode SVGFESpotLightElement
+instance IsEventTarget SVGFESpotLightElement
+instance IsSlotable SVGFESpotLightElement
+instance IsParentNode SVGFESpotLightElement
+instance IsNonDocumentTypeChildNode SVGFESpotLightElement
+instance IsChildNode SVGFESpotLightElement
+instance IsAnimatable SVGFESpotLightElement
+instance IsGlobalEventHandlers SVGFESpotLightElement
+instance IsGObject SVGFESpotLightElement where
+  typeGType _ = gTypeSVGFESpotLightElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFESpotLightElement\"]" gTypeSVGFESpotLightElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFETileElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETileElement Mozilla SVGFETileElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFETileElement
+instance IsElement SVGFETileElement
+instance IsNode SVGFETileElement
+instance IsEventTarget SVGFETileElement
+instance IsSlotable SVGFETileElement
+instance IsParentNode SVGFETileElement
+instance IsNonDocumentTypeChildNode SVGFETileElement
+instance IsChildNode SVGFETileElement
+instance IsAnimatable SVGFETileElement
+instance IsGlobalEventHandlers SVGFETileElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFETileElement
+instance IsGObject SVGFETileElement where
+  typeGType _ = gTypeSVGFETileElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFETileElement\"]" gTypeSVGFETileElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFETurbulenceElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFETurbulenceElement Mozilla SVGFETurbulenceElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFETurbulenceElement
+instance IsElement SVGFETurbulenceElement
+instance IsNode SVGFETurbulenceElement
+instance IsEventTarget SVGFETurbulenceElement
+instance IsSlotable SVGFETurbulenceElement
+instance IsParentNode SVGFETurbulenceElement
+instance IsNonDocumentTypeChildNode SVGFETurbulenceElement
+instance IsChildNode SVGFETurbulenceElement
+instance IsAnimatable SVGFETurbulenceElement
+instance IsGlobalEventHandlers SVGFETurbulenceElement
+instance IsSVGFilterPrimitiveStandardAttributes SVGFETurbulenceElement
+instance IsGObject SVGFETurbulenceElement where
+  typeGType _ = gTypeSVGFETurbulenceElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFETurbulenceElement\"]" gTypeSVGFETurbulenceElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFilterElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterElement Mozilla SVGFilterElement documentation>
+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 #-}
+
+instance IsSVGElement SVGFilterElement
+instance IsElement SVGFilterElement
+instance IsNode SVGFilterElement
+instance IsEventTarget SVGFilterElement
+instance IsSlotable SVGFilterElement
+instance IsParentNode SVGFilterElement
+instance IsNonDocumentTypeChildNode SVGFilterElement
+instance IsChildNode SVGFilterElement
+instance IsAnimatable SVGFilterElement
+instance IsGlobalEventHandlers SVGFilterElement
+instance IsSVGURIReference SVGFilterElement
+instance IsSVGExternalResourcesRequired SVGFilterElement
+instance IsGObject SVGFilterElement where
+  typeGType _ = gTypeSVGFilterElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFilterElement\"]" gTypeSVGFilterElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFilterPrimitiveStandardAttributes".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFilterPrimitiveStandardAttributes Mozilla SVGFilterPrimitiveStandardAttributes documentation>
+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 #-}
+
+class (IsGObject o) => IsSVGFilterPrimitiveStandardAttributes o
+toSVGFilterPrimitiveStandardAttributes :: IsSVGFilterPrimitiveStandardAttributes o => o -> SVGFilterPrimitiveStandardAttributes
+toSVGFilterPrimitiveStandardAttributes = SVGFilterPrimitiveStandardAttributes . coerce
+
+instance IsSVGFilterPrimitiveStandardAttributes SVGFilterPrimitiveStandardAttributes
+instance IsGObject SVGFilterPrimitiveStandardAttributes where
+  typeGType _ = gTypeSVGFilterPrimitiveStandardAttributes
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFilterPrimitiveStandardAttributes\"]" gTypeSVGFilterPrimitiveStandardAttributes :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFitToViewBox".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFitToViewBox Mozilla SVGFitToViewBox documentation>
+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 #-}
+
+class (IsGObject o) => IsSVGFitToViewBox o
+toSVGFitToViewBox :: IsSVGFitToViewBox o => o -> SVGFitToViewBox
+toSVGFitToViewBox = SVGFitToViewBox . coerce
+
+instance IsSVGFitToViewBox SVGFitToViewBox
+instance IsGObject SVGFitToViewBox where
+  typeGType _ = gTypeSVGFitToViewBox
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFitToViewBox\"]" gTypeSVGFitToViewBox :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFontElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontElement Mozilla SVGFontElement documentation>
+newtype SVGFontElement = SVGFontElement { unSVGFontElement :: JSVal }
+
+instance Eq (SVGFontElement) where
+  (SVGFontElement a) == (SVGFontElement b) = js_eq a b
+
+instance PToJSVal SVGFontElement where
+  pToJSVal = unSVGFontElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGFontElement where
+  pFromJSVal = SVGFontElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGFontElement where
+  toJSVal = return . unSVGFontElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGFontElement where
+  fromJSVal = return . fmap SVGFontElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGFontElement
+instance IsElement SVGFontElement
+instance IsNode SVGFontElement
+instance IsEventTarget SVGFontElement
+instance IsSlotable SVGFontElement
+instance IsParentNode SVGFontElement
+instance IsNonDocumentTypeChildNode SVGFontElement
+instance IsChildNode SVGFontElement
+instance IsAnimatable SVGFontElement
+instance IsGlobalEventHandlers SVGFontElement
+instance IsGObject SVGFontElement where
+  typeGType _ = gTypeSVGFontElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFontElement\"]" gTypeSVGFontElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFontFaceElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceElement Mozilla SVGFontFaceElement documentation>
+newtype SVGFontFaceElement = SVGFontFaceElement { unSVGFontFaceElement :: JSVal }
+
+instance Eq (SVGFontFaceElement) where
+  (SVGFontFaceElement a) == (SVGFontFaceElement b) = js_eq a b
+
+instance PToJSVal SVGFontFaceElement where
+  pToJSVal = unSVGFontFaceElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGFontFaceElement where
+  pFromJSVal = SVGFontFaceElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGFontFaceElement where
+  toJSVal = return . unSVGFontFaceElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGFontFaceElement where
+  fromJSVal = return . fmap SVGFontFaceElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGFontFaceElement
+instance IsElement SVGFontFaceElement
+instance IsNode SVGFontFaceElement
+instance IsEventTarget SVGFontFaceElement
+instance IsSlotable SVGFontFaceElement
+instance IsParentNode SVGFontFaceElement
+instance IsNonDocumentTypeChildNode SVGFontFaceElement
+instance IsChildNode SVGFontFaceElement
+instance IsAnimatable SVGFontFaceElement
+instance IsGlobalEventHandlers SVGFontFaceElement
+instance IsGObject SVGFontFaceElement where
+  typeGType _ = gTypeSVGFontFaceElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFontFaceElement\"]" gTypeSVGFontFaceElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFontFaceFormatElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceFormatElement Mozilla SVGFontFaceFormatElement documentation>
+newtype SVGFontFaceFormatElement = SVGFontFaceFormatElement { unSVGFontFaceFormatElement :: JSVal }
+
+instance Eq (SVGFontFaceFormatElement) where
+  (SVGFontFaceFormatElement a) == (SVGFontFaceFormatElement b) = js_eq a b
+
+instance PToJSVal SVGFontFaceFormatElement where
+  pToJSVal = unSVGFontFaceFormatElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGFontFaceFormatElement where
+  pFromJSVal = SVGFontFaceFormatElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGFontFaceFormatElement where
+  toJSVal = return . unSVGFontFaceFormatElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGFontFaceFormatElement where
+  fromJSVal = return . fmap SVGFontFaceFormatElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGFontFaceFormatElement
+instance IsElement SVGFontFaceFormatElement
+instance IsNode SVGFontFaceFormatElement
+instance IsEventTarget SVGFontFaceFormatElement
+instance IsSlotable SVGFontFaceFormatElement
+instance IsParentNode SVGFontFaceFormatElement
+instance IsNonDocumentTypeChildNode SVGFontFaceFormatElement
+instance IsChildNode SVGFontFaceFormatElement
+instance IsAnimatable SVGFontFaceFormatElement
+instance IsGlobalEventHandlers SVGFontFaceFormatElement
+instance IsGObject SVGFontFaceFormatElement where
+  typeGType _ = gTypeSVGFontFaceFormatElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFontFaceFormatElement\"]" gTypeSVGFontFaceFormatElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFontFaceNameElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceNameElement Mozilla SVGFontFaceNameElement documentation>
+newtype SVGFontFaceNameElement = SVGFontFaceNameElement { unSVGFontFaceNameElement :: JSVal }
+
+instance Eq (SVGFontFaceNameElement) where
+  (SVGFontFaceNameElement a) == (SVGFontFaceNameElement b) = js_eq a b
+
+instance PToJSVal SVGFontFaceNameElement where
+  pToJSVal = unSVGFontFaceNameElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGFontFaceNameElement where
+  pFromJSVal = SVGFontFaceNameElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGFontFaceNameElement where
+  toJSVal = return . unSVGFontFaceNameElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGFontFaceNameElement where
+  fromJSVal = return . fmap SVGFontFaceNameElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGFontFaceNameElement
+instance IsElement SVGFontFaceNameElement
+instance IsNode SVGFontFaceNameElement
+instance IsEventTarget SVGFontFaceNameElement
+instance IsSlotable SVGFontFaceNameElement
+instance IsParentNode SVGFontFaceNameElement
+instance IsNonDocumentTypeChildNode SVGFontFaceNameElement
+instance IsChildNode SVGFontFaceNameElement
+instance IsAnimatable SVGFontFaceNameElement
+instance IsGlobalEventHandlers SVGFontFaceNameElement
+instance IsGObject SVGFontFaceNameElement where
+  typeGType _ = gTypeSVGFontFaceNameElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFontFaceNameElement\"]" gTypeSVGFontFaceNameElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFontFaceSrcElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceSrcElement Mozilla SVGFontFaceSrcElement documentation>
+newtype SVGFontFaceSrcElement = SVGFontFaceSrcElement { unSVGFontFaceSrcElement :: JSVal }
+
+instance Eq (SVGFontFaceSrcElement) where
+  (SVGFontFaceSrcElement a) == (SVGFontFaceSrcElement b) = js_eq a b
+
+instance PToJSVal SVGFontFaceSrcElement where
+  pToJSVal = unSVGFontFaceSrcElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGFontFaceSrcElement where
+  pFromJSVal = SVGFontFaceSrcElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGFontFaceSrcElement where
+  toJSVal = return . unSVGFontFaceSrcElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGFontFaceSrcElement where
+  fromJSVal = return . fmap SVGFontFaceSrcElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGFontFaceSrcElement
+instance IsElement SVGFontFaceSrcElement
+instance IsNode SVGFontFaceSrcElement
+instance IsEventTarget SVGFontFaceSrcElement
+instance IsSlotable SVGFontFaceSrcElement
+instance IsParentNode SVGFontFaceSrcElement
+instance IsNonDocumentTypeChildNode SVGFontFaceSrcElement
+instance IsChildNode SVGFontFaceSrcElement
+instance IsAnimatable SVGFontFaceSrcElement
+instance IsGlobalEventHandlers SVGFontFaceSrcElement
+instance IsGObject SVGFontFaceSrcElement where
+  typeGType _ = gTypeSVGFontFaceSrcElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFontFaceSrcElement\"]" gTypeSVGFontFaceSrcElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGFontFaceUriElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGFontFaceUriElement Mozilla SVGFontFaceUriElement documentation>
+newtype SVGFontFaceUriElement = SVGFontFaceUriElement { unSVGFontFaceUriElement :: JSVal }
+
+instance Eq (SVGFontFaceUriElement) where
+  (SVGFontFaceUriElement a) == (SVGFontFaceUriElement b) = js_eq a b
+
+instance PToJSVal SVGFontFaceUriElement where
+  pToJSVal = unSVGFontFaceUriElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGFontFaceUriElement where
+  pFromJSVal = SVGFontFaceUriElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGFontFaceUriElement where
+  toJSVal = return . unSVGFontFaceUriElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGFontFaceUriElement where
+  fromJSVal = return . fmap SVGFontFaceUriElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGFontFaceUriElement
+instance IsElement SVGFontFaceUriElement
+instance IsNode SVGFontFaceUriElement
+instance IsEventTarget SVGFontFaceUriElement
+instance IsSlotable SVGFontFaceUriElement
+instance IsParentNode SVGFontFaceUriElement
+instance IsNonDocumentTypeChildNode SVGFontFaceUriElement
+instance IsChildNode SVGFontFaceUriElement
+instance IsAnimatable SVGFontFaceUriElement
+instance IsGlobalEventHandlers SVGFontFaceUriElement
+instance IsGObject SVGFontFaceUriElement where
+  typeGType _ = gTypeSVGFontFaceUriElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGFontFaceUriElement\"]" gTypeSVGFontFaceUriElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGForeignObjectElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGForeignObjectElement Mozilla SVGForeignObjectElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGForeignObjectElement
+instance IsSVGElement SVGForeignObjectElement
+instance IsElement SVGForeignObjectElement
+instance IsNode SVGForeignObjectElement
+instance IsEventTarget SVGForeignObjectElement
+instance IsSlotable SVGForeignObjectElement
+instance IsParentNode SVGForeignObjectElement
+instance IsNonDocumentTypeChildNode SVGForeignObjectElement
+instance IsChildNode SVGForeignObjectElement
+instance IsAnimatable SVGForeignObjectElement
+instance IsGlobalEventHandlers SVGForeignObjectElement
+instance IsSVGTests SVGForeignObjectElement
+instance IsSVGExternalResourcesRequired SVGForeignObjectElement
+instance IsGObject SVGForeignObjectElement where
+  typeGType _ = gTypeSVGForeignObjectElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGForeignObjectElement\"]" gTypeSVGForeignObjectElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGGElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGElement Mozilla SVGGElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGGElement
+instance IsSVGElement SVGGElement
+instance IsElement SVGGElement
+instance IsNode SVGGElement
+instance IsEventTarget SVGGElement
+instance IsSlotable SVGGElement
+instance IsParentNode SVGGElement
+instance IsNonDocumentTypeChildNode SVGGElement
+instance IsChildNode SVGGElement
+instance IsAnimatable SVGGElement
+instance IsGlobalEventHandlers SVGGElement
+instance IsSVGTests SVGGElement
+instance IsSVGExternalResourcesRequired SVGGElement
+instance IsGObject SVGGElement where
+  typeGType _ = gTypeSVGGElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGGElement\"]" gTypeSVGGElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGGlyphElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphElement Mozilla SVGGlyphElement documentation>
+newtype SVGGlyphElement = SVGGlyphElement { unSVGGlyphElement :: JSVal }
+
+instance Eq (SVGGlyphElement) where
+  (SVGGlyphElement a) == (SVGGlyphElement b) = js_eq a b
+
+instance PToJSVal SVGGlyphElement where
+  pToJSVal = unSVGGlyphElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGGlyphElement where
+  pFromJSVal = SVGGlyphElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGGlyphElement where
+  toJSVal = return . unSVGGlyphElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGGlyphElement where
+  fromJSVal = return . fmap SVGGlyphElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGGlyphElement
+instance IsElement SVGGlyphElement
+instance IsNode SVGGlyphElement
+instance IsEventTarget SVGGlyphElement
+instance IsSlotable SVGGlyphElement
+instance IsParentNode SVGGlyphElement
+instance IsNonDocumentTypeChildNode SVGGlyphElement
+instance IsChildNode SVGGlyphElement
+instance IsAnimatable SVGGlyphElement
+instance IsGlobalEventHandlers SVGGlyphElement
+instance IsGObject SVGGlyphElement where
+  typeGType _ = gTypeSVGGlyphElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGGlyphElement\"]" gTypeSVGGlyphElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGGlyphRefElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGURIReference"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGlyphRefElement Mozilla SVGGlyphRefElement documentation>
+newtype SVGGlyphRefElement = SVGGlyphRefElement { unSVGGlyphRefElement :: JSVal }
+
+instance Eq (SVGGlyphRefElement) where
+  (SVGGlyphRefElement a) == (SVGGlyphRefElement b) = js_eq a b
+
+instance PToJSVal SVGGlyphRefElement where
+  pToJSVal = unSVGGlyphRefElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGGlyphRefElement where
+  pFromJSVal = SVGGlyphRefElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGGlyphRefElement where
+  toJSVal = return . unSVGGlyphRefElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGGlyphRefElement where
+  fromJSVal = return . fmap SVGGlyphRefElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGGlyphRefElement
+instance IsElement SVGGlyphRefElement
+instance IsNode SVGGlyphRefElement
+instance IsEventTarget SVGGlyphRefElement
+instance IsSlotable SVGGlyphRefElement
+instance IsParentNode SVGGlyphRefElement
+instance IsNonDocumentTypeChildNode SVGGlyphRefElement
+instance IsChildNode SVGGlyphRefElement
+instance IsAnimatable SVGGlyphRefElement
+instance IsGlobalEventHandlers SVGGlyphRefElement
+instance IsSVGURIReference SVGGlyphRefElement
+instance IsGObject SVGGlyphRefElement where
+  typeGType _ = gTypeSVGGlyphRefElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGGlyphRefElement\"]" gTypeSVGGlyphRefElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGGradientElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGradientElement Mozilla SVGGradientElement documentation>
+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 #-}
+
+class (IsSVGElement o, IsElement o, IsNode o, IsEventTarget o, IsSlotable o, IsParentNode o, IsNonDocumentTypeChildNode o, IsChildNode o, IsAnimatable o, IsGlobalEventHandlers o, IsSVGURIReference o, IsSVGExternalResourcesRequired o, IsGObject o) => IsSVGGradientElement o
+toSVGGradientElement :: IsSVGGradientElement o => o -> SVGGradientElement
+toSVGGradientElement = SVGGradientElement . coerce
+
+instance IsSVGGradientElement SVGGradientElement
+instance IsSVGElement SVGGradientElement
+instance IsElement SVGGradientElement
+instance IsNode SVGGradientElement
+instance IsEventTarget SVGGradientElement
+instance IsSlotable SVGGradientElement
+instance IsParentNode SVGGradientElement
+instance IsNonDocumentTypeChildNode SVGGradientElement
+instance IsChildNode SVGGradientElement
+instance IsAnimatable SVGGradientElement
+instance IsGlobalEventHandlers SVGGradientElement
+instance IsSVGURIReference SVGGradientElement
+instance IsSVGExternalResourcesRequired SVGGradientElement
+instance IsGObject SVGGradientElement where
+  typeGType _ = gTypeSVGGradientElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGGradientElement\"]" gTypeSVGGradientElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGGraphicsElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement Mozilla SVGGraphicsElement documentation>
+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 #-}
+
+class (IsSVGElement o, IsElement o, IsNode o, IsEventTarget o, IsSlotable o, IsParentNode o, IsNonDocumentTypeChildNode o, IsChildNode o, IsAnimatable o, IsGlobalEventHandlers o, IsSVGTests o, IsGObject o) => IsSVGGraphicsElement o
+toSVGGraphicsElement :: IsSVGGraphicsElement o => o -> SVGGraphicsElement
+toSVGGraphicsElement = SVGGraphicsElement . coerce
+
+instance IsSVGGraphicsElement SVGGraphicsElement
+instance IsSVGElement SVGGraphicsElement
+instance IsElement SVGGraphicsElement
+instance IsNode SVGGraphicsElement
+instance IsEventTarget SVGGraphicsElement
+instance IsSlotable SVGGraphicsElement
+instance IsParentNode SVGGraphicsElement
+instance IsNonDocumentTypeChildNode SVGGraphicsElement
+instance IsChildNode SVGGraphicsElement
+instance IsAnimatable SVGGraphicsElement
+instance IsGlobalEventHandlers SVGGraphicsElement
+instance IsSVGTests SVGGraphicsElement
+instance IsGObject SVGGraphicsElement where
+  typeGType _ = gTypeSVGGraphicsElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGGraphicsElement\"]" gTypeSVGGraphicsElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGHKernElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGHKernElement Mozilla SVGHKernElement documentation>
+newtype SVGHKernElement = SVGHKernElement { unSVGHKernElement :: JSVal }
+
+instance Eq (SVGHKernElement) where
+  (SVGHKernElement a) == (SVGHKernElement b) = js_eq a b
+
+instance PToJSVal SVGHKernElement where
+  pToJSVal = unSVGHKernElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGHKernElement where
+  pFromJSVal = SVGHKernElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGHKernElement where
+  toJSVal = return . unSVGHKernElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGHKernElement where
+  fromJSVal = return . fmap SVGHKernElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGHKernElement
+instance IsElement SVGHKernElement
+instance IsNode SVGHKernElement
+instance IsEventTarget SVGHKernElement
+instance IsSlotable SVGHKernElement
+instance IsParentNode SVGHKernElement
+instance IsNonDocumentTypeChildNode SVGHKernElement
+instance IsChildNode SVGHKernElement
+instance IsAnimatable SVGHKernElement
+instance IsGlobalEventHandlers SVGHKernElement
+instance IsGObject SVGHKernElement where
+  typeGType _ = gTypeSVGHKernElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGHKernElement\"]" gTypeSVGHKernElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGImageElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement Mozilla SVGImageElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGImageElement
+instance IsSVGElement SVGImageElement
+instance IsElement SVGImageElement
+instance IsNode SVGImageElement
+instance IsEventTarget SVGImageElement
+instance IsSlotable SVGImageElement
+instance IsParentNode SVGImageElement
+instance IsNonDocumentTypeChildNode SVGImageElement
+instance IsChildNode SVGImageElement
+instance IsAnimatable SVGImageElement
+instance IsGlobalEventHandlers SVGImageElement
+instance IsSVGTests SVGImageElement
+instance IsSVGURIReference SVGImageElement
+instance IsSVGExternalResourcesRequired SVGImageElement
+instance IsGObject SVGImageElement where
+  typeGType _ = gTypeSVGImageElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGImageElement\"]" gTypeSVGImageElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGLength".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLength Mozilla SVGLength documentation>
+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 #-}
+
+instance IsGObject SVGLength where
+  typeGType _ = gTypeSVGLength
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGLength\"]" gTypeSVGLength :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGLengthList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList Mozilla SVGLengthList documentation>
+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 #-}
+
+instance IsGObject SVGLengthList where
+  typeGType _ = gTypeSVGLengthList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGLengthList\"]" gTypeSVGLengthList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGLineElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLineElement Mozilla SVGLineElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGLineElement
+instance IsSVGElement SVGLineElement
+instance IsElement SVGLineElement
+instance IsNode SVGLineElement
+instance IsEventTarget SVGLineElement
+instance IsSlotable SVGLineElement
+instance IsParentNode SVGLineElement
+instance IsNonDocumentTypeChildNode SVGLineElement
+instance IsChildNode SVGLineElement
+instance IsAnimatable SVGLineElement
+instance IsGlobalEventHandlers SVGLineElement
+instance IsSVGTests SVGLineElement
+instance IsSVGExternalResourcesRequired SVGLineElement
+instance IsGObject SVGLineElement where
+  typeGType _ = gTypeSVGLineElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGLineElement\"]" gTypeSVGLineElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGLinearGradientElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGradientElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGLinearGradientElement Mozilla SVGLinearGradientElement documentation>
+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 #-}
+
+instance IsSVGGradientElement SVGLinearGradientElement
+instance IsSVGElement SVGLinearGradientElement
+instance IsElement SVGLinearGradientElement
+instance IsNode SVGLinearGradientElement
+instance IsEventTarget SVGLinearGradientElement
+instance IsSlotable SVGLinearGradientElement
+instance IsParentNode SVGLinearGradientElement
+instance IsNonDocumentTypeChildNode SVGLinearGradientElement
+instance IsChildNode SVGLinearGradientElement
+instance IsAnimatable SVGLinearGradientElement
+instance IsGlobalEventHandlers SVGLinearGradientElement
+instance IsSVGURIReference SVGLinearGradientElement
+instance IsSVGExternalResourcesRequired SVGLinearGradientElement
+instance IsGObject SVGLinearGradientElement where
+  typeGType _ = gTypeSVGLinearGradientElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGLinearGradientElement\"]" gTypeSVGLinearGradientElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGMPathElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMPathElement Mozilla SVGMPathElement documentation>
+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 #-}
+
+instance IsSVGElement SVGMPathElement
+instance IsElement SVGMPathElement
+instance IsNode SVGMPathElement
+instance IsEventTarget SVGMPathElement
+instance IsSlotable SVGMPathElement
+instance IsParentNode SVGMPathElement
+instance IsNonDocumentTypeChildNode SVGMPathElement
+instance IsChildNode SVGMPathElement
+instance IsAnimatable SVGMPathElement
+instance IsGlobalEventHandlers SVGMPathElement
+instance IsSVGURIReference SVGMPathElement
+instance IsSVGExternalResourcesRequired SVGMPathElement
+instance IsGObject SVGMPathElement where
+  typeGType _ = gTypeSVGMPathElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGMPathElement\"]" gTypeSVGMPathElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGMarkerElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFitToViewBox"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMarkerElement Mozilla SVGMarkerElement documentation>
+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 #-}
+
+instance IsSVGElement SVGMarkerElement
+instance IsElement SVGMarkerElement
+instance IsNode SVGMarkerElement
+instance IsEventTarget SVGMarkerElement
+instance IsSlotable SVGMarkerElement
+instance IsParentNode SVGMarkerElement
+instance IsNonDocumentTypeChildNode SVGMarkerElement
+instance IsChildNode SVGMarkerElement
+instance IsAnimatable SVGMarkerElement
+instance IsGlobalEventHandlers SVGMarkerElement
+instance IsSVGFitToViewBox SVGMarkerElement
+instance IsSVGExternalResourcesRequired SVGMarkerElement
+instance IsGObject SVGMarkerElement where
+  typeGType _ = gTypeSVGMarkerElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGMarkerElement\"]" gTypeSVGMarkerElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGMaskElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMaskElement Mozilla SVGMaskElement documentation>
+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 #-}
+
+instance IsSVGElement SVGMaskElement
+instance IsElement SVGMaskElement
+instance IsNode SVGMaskElement
+instance IsEventTarget SVGMaskElement
+instance IsSlotable SVGMaskElement
+instance IsParentNode SVGMaskElement
+instance IsNonDocumentTypeChildNode SVGMaskElement
+instance IsChildNode SVGMaskElement
+instance IsAnimatable SVGMaskElement
+instance IsGlobalEventHandlers SVGMaskElement
+instance IsSVGTests SVGMaskElement
+instance IsSVGExternalResourcesRequired SVGMaskElement
+instance IsGObject SVGMaskElement where
+  typeGType _ = gTypeSVGMaskElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGMaskElement\"]" gTypeSVGMaskElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGMatrix".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix Mozilla SVGMatrix documentation>
+newtype SVGMatrix = SVGMatrix { unSVGMatrix :: JSVal }
+
+instance Eq (SVGMatrix) where
+  (SVGMatrix a) == (SVGMatrix b) = js_eq a b
+
+instance PToJSVal SVGMatrix where
+  pToJSVal = unSVGMatrix
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGMatrix where
+  pFromJSVal = SVGMatrix
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGMatrix where
+  toJSVal = return . unSVGMatrix
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGMatrix where
+  fromJSVal = return . fmap SVGMatrix . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject SVGMatrix where
+  typeGType _ = gTypeSVGMatrix
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGMatrix\"]" gTypeSVGMatrix :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGMetadataElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMetadataElement Mozilla SVGMetadataElement documentation>
+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 #-}
+
+instance IsSVGElement SVGMetadataElement
+instance IsElement SVGMetadataElement
+instance IsNode SVGMetadataElement
+instance IsEventTarget SVGMetadataElement
+instance IsSlotable SVGMetadataElement
+instance IsParentNode SVGMetadataElement
+instance IsNonDocumentTypeChildNode SVGMetadataElement
+instance IsChildNode SVGMetadataElement
+instance IsAnimatable SVGMetadataElement
+instance IsGlobalEventHandlers SVGMetadataElement
+instance IsGObject SVGMetadataElement where
+  typeGType _ = gTypeSVGMetadataElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGMetadataElement\"]" gTypeSVGMetadataElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGMissingGlyphElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGMissingGlyphElement Mozilla SVGMissingGlyphElement documentation>
+newtype SVGMissingGlyphElement = SVGMissingGlyphElement { unSVGMissingGlyphElement :: JSVal }
+
+instance Eq (SVGMissingGlyphElement) where
+  (SVGMissingGlyphElement a) == (SVGMissingGlyphElement b) = js_eq a b
+
+instance PToJSVal SVGMissingGlyphElement where
+  pToJSVal = unSVGMissingGlyphElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGMissingGlyphElement where
+  pFromJSVal = SVGMissingGlyphElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGMissingGlyphElement where
+  toJSVal = return . unSVGMissingGlyphElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGMissingGlyphElement where
+  fromJSVal = return . fmap SVGMissingGlyphElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGMissingGlyphElement
+instance IsElement SVGMissingGlyphElement
+instance IsNode SVGMissingGlyphElement
+instance IsEventTarget SVGMissingGlyphElement
+instance IsSlotable SVGMissingGlyphElement
+instance IsParentNode SVGMissingGlyphElement
+instance IsNonDocumentTypeChildNode SVGMissingGlyphElement
+instance IsChildNode SVGMissingGlyphElement
+instance IsAnimatable SVGMissingGlyphElement
+instance IsGlobalEventHandlers SVGMissingGlyphElement
+instance IsGObject SVGMissingGlyphElement where
+  typeGType _ = gTypeSVGMissingGlyphElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGMissingGlyphElement\"]" gTypeSVGMissingGlyphElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGNumber".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumber Mozilla SVGNumber documentation>
+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 #-}
+
+instance IsGObject SVGNumber where
+  typeGType _ = gTypeSVGNumber
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGNumber\"]" gTypeSVGNumber :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGNumberList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGNumberList Mozilla SVGNumberList documentation>
+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 #-}
+
+instance IsGObject SVGNumberList where
+  typeGType _ = gTypeSVGNumberList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGNumberList\"]" gTypeSVGNumberList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathElement Mozilla SVGPathElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGPathElement
+instance IsSVGElement SVGPathElement
+instance IsElement SVGPathElement
+instance IsNode SVGPathElement
+instance IsEventTarget SVGPathElement
+instance IsSlotable SVGPathElement
+instance IsParentNode SVGPathElement
+instance IsNonDocumentTypeChildNode SVGPathElement
+instance IsChildNode SVGPathElement
+instance IsAnimatable SVGPathElement
+instance IsGlobalEventHandlers SVGPathElement
+instance IsSVGTests SVGPathElement
+instance IsSVGExternalResourcesRequired SVGPathElement
+instance IsGObject SVGPathElement where
+  typeGType _ = gTypeSVGPathElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathElement\"]" gTypeSVGPathElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSeg".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSeg Mozilla SVGPathSeg documentation>
+newtype SVGPathSeg = SVGPathSeg { unSVGPathSeg :: JSVal }
+
+instance Eq (SVGPathSeg) where
+  (SVGPathSeg a) == (SVGPathSeg b) = js_eq a b
+
+instance PToJSVal SVGPathSeg where
+  pToJSVal = unSVGPathSeg
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSeg where
+  pFromJSVal = SVGPathSeg
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSeg where
+  toJSVal = return . unSVGPathSeg
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSeg where
+  fromJSVal = return . fmap SVGPathSeg . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class (IsGObject o) => IsSVGPathSeg o
+toSVGPathSeg :: IsSVGPathSeg o => o -> SVGPathSeg
+toSVGPathSeg = SVGPathSeg . coerce
+
+instance IsSVGPathSeg SVGPathSeg
+instance IsGObject SVGPathSeg where
+  typeGType _ = gTypeSVGPathSeg
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSeg\"]" gTypeSVGPathSeg :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegArcAbs".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcAbs Mozilla SVGPathSegArcAbs documentation>
+newtype SVGPathSegArcAbs = SVGPathSegArcAbs { unSVGPathSegArcAbs :: JSVal }
+
+instance Eq (SVGPathSegArcAbs) where
+  (SVGPathSegArcAbs a) == (SVGPathSegArcAbs b) = js_eq a b
+
+instance PToJSVal SVGPathSegArcAbs where
+  pToJSVal = unSVGPathSegArcAbs
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegArcAbs where
+  pFromJSVal = SVGPathSegArcAbs
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegArcAbs where
+  toJSVal = return . unSVGPathSegArcAbs
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegArcAbs where
+  fromJSVal = return . fmap SVGPathSegArcAbs . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegArcAbs
+instance IsGObject SVGPathSegArcAbs where
+  typeGType _ = gTypeSVGPathSegArcAbs
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegArcAbs\"]" gTypeSVGPathSegArcAbs :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegArcRel".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegArcRel Mozilla SVGPathSegArcRel documentation>
+newtype SVGPathSegArcRel = SVGPathSegArcRel { unSVGPathSegArcRel :: JSVal }
+
+instance Eq (SVGPathSegArcRel) where
+  (SVGPathSegArcRel a) == (SVGPathSegArcRel b) = js_eq a b
+
+instance PToJSVal SVGPathSegArcRel where
+  pToJSVal = unSVGPathSegArcRel
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegArcRel where
+  pFromJSVal = SVGPathSegArcRel
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegArcRel where
+  toJSVal = return . unSVGPathSegArcRel
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegArcRel where
+  fromJSVal = return . fmap SVGPathSegArcRel . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegArcRel
+instance IsGObject SVGPathSegArcRel where
+  typeGType _ = gTypeSVGPathSegArcRel
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegArcRel\"]" gTypeSVGPathSegArcRel :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegClosePath".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegClosePath Mozilla SVGPathSegClosePath documentation>
+newtype SVGPathSegClosePath = SVGPathSegClosePath { unSVGPathSegClosePath :: JSVal }
+
+instance Eq (SVGPathSegClosePath) where
+  (SVGPathSegClosePath a) == (SVGPathSegClosePath b) = js_eq a b
+
+instance PToJSVal SVGPathSegClosePath where
+  pToJSVal = unSVGPathSegClosePath
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegClosePath where
+  pFromJSVal = SVGPathSegClosePath
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegClosePath where
+  toJSVal = return . unSVGPathSegClosePath
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegClosePath where
+  fromJSVal = return . fmap SVGPathSegClosePath . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegClosePath
+instance IsGObject SVGPathSegClosePath where
+  typeGType _ = gTypeSVGPathSegClosePath
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegClosePath\"]" gTypeSVGPathSegClosePath :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoCubicAbs".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicAbs Mozilla SVGPathSegCurvetoCubicAbs documentation>
+newtype SVGPathSegCurvetoCubicAbs = SVGPathSegCurvetoCubicAbs { unSVGPathSegCurvetoCubicAbs :: JSVal }
+
+instance Eq (SVGPathSegCurvetoCubicAbs) where
+  (SVGPathSegCurvetoCubicAbs a) == (SVGPathSegCurvetoCubicAbs b) = js_eq a b
+
+instance PToJSVal SVGPathSegCurvetoCubicAbs where
+  pToJSVal = unSVGPathSegCurvetoCubicAbs
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegCurvetoCubicAbs where
+  pFromJSVal = SVGPathSegCurvetoCubicAbs
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegCurvetoCubicAbs where
+  toJSVal = return . unSVGPathSegCurvetoCubicAbs
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegCurvetoCubicAbs where
+  fromJSVal = return . fmap SVGPathSegCurvetoCubicAbs . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegCurvetoCubicAbs
+instance IsGObject SVGPathSegCurvetoCubicAbs where
+  typeGType _ = gTypeSVGPathSegCurvetoCubicAbs
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegCurvetoCubicAbs\"]" gTypeSVGPathSegCurvetoCubicAbs :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoCubicRel".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicRel Mozilla SVGPathSegCurvetoCubicRel documentation>
+newtype SVGPathSegCurvetoCubicRel = SVGPathSegCurvetoCubicRel { unSVGPathSegCurvetoCubicRel :: JSVal }
+
+instance Eq (SVGPathSegCurvetoCubicRel) where
+  (SVGPathSegCurvetoCubicRel a) == (SVGPathSegCurvetoCubicRel b) = js_eq a b
+
+instance PToJSVal SVGPathSegCurvetoCubicRel where
+  pToJSVal = unSVGPathSegCurvetoCubicRel
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegCurvetoCubicRel where
+  pFromJSVal = SVGPathSegCurvetoCubicRel
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegCurvetoCubicRel where
+  toJSVal = return . unSVGPathSegCurvetoCubicRel
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegCurvetoCubicRel where
+  fromJSVal = return . fmap SVGPathSegCurvetoCubicRel . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegCurvetoCubicRel
+instance IsGObject SVGPathSegCurvetoCubicRel where
+  typeGType _ = gTypeSVGPathSegCurvetoCubicRel
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegCurvetoCubicRel\"]" gTypeSVGPathSegCurvetoCubicRel :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoCubicSmoothAbs".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothAbs Mozilla SVGPathSegCurvetoCubicSmoothAbs documentation>
+newtype SVGPathSegCurvetoCubicSmoothAbs = SVGPathSegCurvetoCubicSmoothAbs { unSVGPathSegCurvetoCubicSmoothAbs :: JSVal }
+
+instance Eq (SVGPathSegCurvetoCubicSmoothAbs) where
+  (SVGPathSegCurvetoCubicSmoothAbs a) == (SVGPathSegCurvetoCubicSmoothAbs b) = js_eq a b
+
+instance PToJSVal SVGPathSegCurvetoCubicSmoothAbs where
+  pToJSVal = unSVGPathSegCurvetoCubicSmoothAbs
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegCurvetoCubicSmoothAbs where
+  pFromJSVal = SVGPathSegCurvetoCubicSmoothAbs
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegCurvetoCubicSmoothAbs where
+  toJSVal = return . unSVGPathSegCurvetoCubicSmoothAbs
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegCurvetoCubicSmoothAbs where
+  fromJSVal = return . fmap SVGPathSegCurvetoCubicSmoothAbs . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegCurvetoCubicSmoothAbs
+instance IsGObject SVGPathSegCurvetoCubicSmoothAbs where
+  typeGType _ = gTypeSVGPathSegCurvetoCubicSmoothAbs
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegCurvetoCubicSmoothAbs\"]" gTypeSVGPathSegCurvetoCubicSmoothAbs :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoCubicSmoothRel".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoCubicSmoothRel Mozilla SVGPathSegCurvetoCubicSmoothRel documentation>
+newtype SVGPathSegCurvetoCubicSmoothRel = SVGPathSegCurvetoCubicSmoothRel { unSVGPathSegCurvetoCubicSmoothRel :: JSVal }
+
+instance Eq (SVGPathSegCurvetoCubicSmoothRel) where
+  (SVGPathSegCurvetoCubicSmoothRel a) == (SVGPathSegCurvetoCubicSmoothRel b) = js_eq a b
+
+instance PToJSVal SVGPathSegCurvetoCubicSmoothRel where
+  pToJSVal = unSVGPathSegCurvetoCubicSmoothRel
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegCurvetoCubicSmoothRel where
+  pFromJSVal = SVGPathSegCurvetoCubicSmoothRel
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegCurvetoCubicSmoothRel where
+  toJSVal = return . unSVGPathSegCurvetoCubicSmoothRel
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegCurvetoCubicSmoothRel where
+  fromJSVal = return . fmap SVGPathSegCurvetoCubicSmoothRel . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegCurvetoCubicSmoothRel
+instance IsGObject SVGPathSegCurvetoCubicSmoothRel where
+  typeGType _ = gTypeSVGPathSegCurvetoCubicSmoothRel
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegCurvetoCubicSmoothRel\"]" gTypeSVGPathSegCurvetoCubicSmoothRel :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoQuadraticAbs".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticAbs Mozilla SVGPathSegCurvetoQuadraticAbs documentation>
+newtype SVGPathSegCurvetoQuadraticAbs = SVGPathSegCurvetoQuadraticAbs { unSVGPathSegCurvetoQuadraticAbs :: JSVal }
+
+instance Eq (SVGPathSegCurvetoQuadraticAbs) where
+  (SVGPathSegCurvetoQuadraticAbs a) == (SVGPathSegCurvetoQuadraticAbs b) = js_eq a b
+
+instance PToJSVal SVGPathSegCurvetoQuadraticAbs where
+  pToJSVal = unSVGPathSegCurvetoQuadraticAbs
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegCurvetoQuadraticAbs where
+  pFromJSVal = SVGPathSegCurvetoQuadraticAbs
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegCurvetoQuadraticAbs where
+  toJSVal = return . unSVGPathSegCurvetoQuadraticAbs
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegCurvetoQuadraticAbs where
+  fromJSVal = return . fmap SVGPathSegCurvetoQuadraticAbs . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegCurvetoQuadraticAbs
+instance IsGObject SVGPathSegCurvetoQuadraticAbs where
+  typeGType _ = gTypeSVGPathSegCurvetoQuadraticAbs
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegCurvetoQuadraticAbs\"]" gTypeSVGPathSegCurvetoQuadraticAbs :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoQuadraticRel".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticRel Mozilla SVGPathSegCurvetoQuadraticRel documentation>
+newtype SVGPathSegCurvetoQuadraticRel = SVGPathSegCurvetoQuadraticRel { unSVGPathSegCurvetoQuadraticRel :: JSVal }
+
+instance Eq (SVGPathSegCurvetoQuadraticRel) where
+  (SVGPathSegCurvetoQuadraticRel a) == (SVGPathSegCurvetoQuadraticRel b) = js_eq a b
+
+instance PToJSVal SVGPathSegCurvetoQuadraticRel where
+  pToJSVal = unSVGPathSegCurvetoQuadraticRel
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegCurvetoQuadraticRel where
+  pFromJSVal = SVGPathSegCurvetoQuadraticRel
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegCurvetoQuadraticRel where
+  toJSVal = return . unSVGPathSegCurvetoQuadraticRel
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegCurvetoQuadraticRel where
+  fromJSVal = return . fmap SVGPathSegCurvetoQuadraticRel . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegCurvetoQuadraticRel
+instance IsGObject SVGPathSegCurvetoQuadraticRel where
+  typeGType _ = gTypeSVGPathSegCurvetoQuadraticRel
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegCurvetoQuadraticRel\"]" gTypeSVGPathSegCurvetoQuadraticRel :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoQuadraticSmoothAbs".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothAbs Mozilla SVGPathSegCurvetoQuadraticSmoothAbs documentation>
+newtype SVGPathSegCurvetoQuadraticSmoothAbs = SVGPathSegCurvetoQuadraticSmoothAbs { unSVGPathSegCurvetoQuadraticSmoothAbs :: JSVal }
+
+instance Eq (SVGPathSegCurvetoQuadraticSmoothAbs) where
+  (SVGPathSegCurvetoQuadraticSmoothAbs a) == (SVGPathSegCurvetoQuadraticSmoothAbs b) = js_eq a b
+
+instance PToJSVal SVGPathSegCurvetoQuadraticSmoothAbs where
+  pToJSVal = unSVGPathSegCurvetoQuadraticSmoothAbs
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegCurvetoQuadraticSmoothAbs where
+  pFromJSVal = SVGPathSegCurvetoQuadraticSmoothAbs
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegCurvetoQuadraticSmoothAbs where
+  toJSVal = return . unSVGPathSegCurvetoQuadraticSmoothAbs
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegCurvetoQuadraticSmoothAbs where
+  fromJSVal = return . fmap SVGPathSegCurvetoQuadraticSmoothAbs . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegCurvetoQuadraticSmoothAbs
+instance IsGObject SVGPathSegCurvetoQuadraticSmoothAbs where
+  typeGType _ = gTypeSVGPathSegCurvetoQuadraticSmoothAbs
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegCurvetoQuadraticSmoothAbs\"]" gTypeSVGPathSegCurvetoQuadraticSmoothAbs :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegCurvetoQuadraticSmoothRel".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegCurvetoQuadraticSmoothRel Mozilla SVGPathSegCurvetoQuadraticSmoothRel documentation>
+newtype SVGPathSegCurvetoQuadraticSmoothRel = SVGPathSegCurvetoQuadraticSmoothRel { unSVGPathSegCurvetoQuadraticSmoothRel :: JSVal }
+
+instance Eq (SVGPathSegCurvetoQuadraticSmoothRel) where
+  (SVGPathSegCurvetoQuadraticSmoothRel a) == (SVGPathSegCurvetoQuadraticSmoothRel b) = js_eq a b
+
+instance PToJSVal SVGPathSegCurvetoQuadraticSmoothRel where
+  pToJSVal = unSVGPathSegCurvetoQuadraticSmoothRel
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegCurvetoQuadraticSmoothRel where
+  pFromJSVal = SVGPathSegCurvetoQuadraticSmoothRel
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegCurvetoQuadraticSmoothRel where
+  toJSVal = return . unSVGPathSegCurvetoQuadraticSmoothRel
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegCurvetoQuadraticSmoothRel where
+  fromJSVal = return . fmap SVGPathSegCurvetoQuadraticSmoothRel . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegCurvetoQuadraticSmoothRel
+instance IsGObject SVGPathSegCurvetoQuadraticSmoothRel where
+  typeGType _ = gTypeSVGPathSegCurvetoQuadraticSmoothRel
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegCurvetoQuadraticSmoothRel\"]" gTypeSVGPathSegCurvetoQuadraticSmoothRel :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoAbs".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoAbs Mozilla SVGPathSegLinetoAbs documentation>
+newtype SVGPathSegLinetoAbs = SVGPathSegLinetoAbs { unSVGPathSegLinetoAbs :: JSVal }
+
+instance Eq (SVGPathSegLinetoAbs) where
+  (SVGPathSegLinetoAbs a) == (SVGPathSegLinetoAbs b) = js_eq a b
+
+instance PToJSVal SVGPathSegLinetoAbs where
+  pToJSVal = unSVGPathSegLinetoAbs
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegLinetoAbs where
+  pFromJSVal = SVGPathSegLinetoAbs
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegLinetoAbs where
+  toJSVal = return . unSVGPathSegLinetoAbs
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegLinetoAbs where
+  fromJSVal = return . fmap SVGPathSegLinetoAbs . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegLinetoAbs
+instance IsGObject SVGPathSegLinetoAbs where
+  typeGType _ = gTypeSVGPathSegLinetoAbs
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegLinetoAbs\"]" gTypeSVGPathSegLinetoAbs :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoHorizontalAbs".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalAbs Mozilla SVGPathSegLinetoHorizontalAbs documentation>
+newtype SVGPathSegLinetoHorizontalAbs = SVGPathSegLinetoHorizontalAbs { unSVGPathSegLinetoHorizontalAbs :: JSVal }
+
+instance Eq (SVGPathSegLinetoHorizontalAbs) where
+  (SVGPathSegLinetoHorizontalAbs a) == (SVGPathSegLinetoHorizontalAbs b) = js_eq a b
+
+instance PToJSVal SVGPathSegLinetoHorizontalAbs where
+  pToJSVal = unSVGPathSegLinetoHorizontalAbs
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegLinetoHorizontalAbs where
+  pFromJSVal = SVGPathSegLinetoHorizontalAbs
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegLinetoHorizontalAbs where
+  toJSVal = return . unSVGPathSegLinetoHorizontalAbs
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegLinetoHorizontalAbs where
+  fromJSVal = return . fmap SVGPathSegLinetoHorizontalAbs . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegLinetoHorizontalAbs
+instance IsGObject SVGPathSegLinetoHorizontalAbs where
+  typeGType _ = gTypeSVGPathSegLinetoHorizontalAbs
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegLinetoHorizontalAbs\"]" gTypeSVGPathSegLinetoHorizontalAbs :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoHorizontalRel".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoHorizontalRel Mozilla SVGPathSegLinetoHorizontalRel documentation>
+newtype SVGPathSegLinetoHorizontalRel = SVGPathSegLinetoHorizontalRel { unSVGPathSegLinetoHorizontalRel :: JSVal }
+
+instance Eq (SVGPathSegLinetoHorizontalRel) where
+  (SVGPathSegLinetoHorizontalRel a) == (SVGPathSegLinetoHorizontalRel b) = js_eq a b
+
+instance PToJSVal SVGPathSegLinetoHorizontalRel where
+  pToJSVal = unSVGPathSegLinetoHorizontalRel
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegLinetoHorizontalRel where
+  pFromJSVal = SVGPathSegLinetoHorizontalRel
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegLinetoHorizontalRel where
+  toJSVal = return . unSVGPathSegLinetoHorizontalRel
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegLinetoHorizontalRel where
+  fromJSVal = return . fmap SVGPathSegLinetoHorizontalRel . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegLinetoHorizontalRel
+instance IsGObject SVGPathSegLinetoHorizontalRel where
+  typeGType _ = gTypeSVGPathSegLinetoHorizontalRel
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegLinetoHorizontalRel\"]" gTypeSVGPathSegLinetoHorizontalRel :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoRel".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoRel Mozilla SVGPathSegLinetoRel documentation>
+newtype SVGPathSegLinetoRel = SVGPathSegLinetoRel { unSVGPathSegLinetoRel :: JSVal }
+
+instance Eq (SVGPathSegLinetoRel) where
+  (SVGPathSegLinetoRel a) == (SVGPathSegLinetoRel b) = js_eq a b
+
+instance PToJSVal SVGPathSegLinetoRel where
+  pToJSVal = unSVGPathSegLinetoRel
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegLinetoRel where
+  pFromJSVal = SVGPathSegLinetoRel
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegLinetoRel where
+  toJSVal = return . unSVGPathSegLinetoRel
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegLinetoRel where
+  fromJSVal = return . fmap SVGPathSegLinetoRel . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegLinetoRel
+instance IsGObject SVGPathSegLinetoRel where
+  typeGType _ = gTypeSVGPathSegLinetoRel
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegLinetoRel\"]" gTypeSVGPathSegLinetoRel :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoVerticalAbs".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalAbs Mozilla SVGPathSegLinetoVerticalAbs documentation>
+newtype SVGPathSegLinetoVerticalAbs = SVGPathSegLinetoVerticalAbs { unSVGPathSegLinetoVerticalAbs :: JSVal }
+
+instance Eq (SVGPathSegLinetoVerticalAbs) where
+  (SVGPathSegLinetoVerticalAbs a) == (SVGPathSegLinetoVerticalAbs b) = js_eq a b
+
+instance PToJSVal SVGPathSegLinetoVerticalAbs where
+  pToJSVal = unSVGPathSegLinetoVerticalAbs
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegLinetoVerticalAbs where
+  pFromJSVal = SVGPathSegLinetoVerticalAbs
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegLinetoVerticalAbs where
+  toJSVal = return . unSVGPathSegLinetoVerticalAbs
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegLinetoVerticalAbs where
+  fromJSVal = return . fmap SVGPathSegLinetoVerticalAbs . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegLinetoVerticalAbs
+instance IsGObject SVGPathSegLinetoVerticalAbs where
+  typeGType _ = gTypeSVGPathSegLinetoVerticalAbs
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegLinetoVerticalAbs\"]" gTypeSVGPathSegLinetoVerticalAbs :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegLinetoVerticalRel".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegLinetoVerticalRel Mozilla SVGPathSegLinetoVerticalRel documentation>
+newtype SVGPathSegLinetoVerticalRel = SVGPathSegLinetoVerticalRel { unSVGPathSegLinetoVerticalRel :: JSVal }
+
+instance Eq (SVGPathSegLinetoVerticalRel) where
+  (SVGPathSegLinetoVerticalRel a) == (SVGPathSegLinetoVerticalRel b) = js_eq a b
+
+instance PToJSVal SVGPathSegLinetoVerticalRel where
+  pToJSVal = unSVGPathSegLinetoVerticalRel
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegLinetoVerticalRel where
+  pFromJSVal = SVGPathSegLinetoVerticalRel
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegLinetoVerticalRel where
+  toJSVal = return . unSVGPathSegLinetoVerticalRel
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegLinetoVerticalRel where
+  fromJSVal = return . fmap SVGPathSegLinetoVerticalRel . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegLinetoVerticalRel
+instance IsGObject SVGPathSegLinetoVerticalRel where
+  typeGType _ = gTypeSVGPathSegLinetoVerticalRel
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegLinetoVerticalRel\"]" gTypeSVGPathSegLinetoVerticalRel :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegList Mozilla SVGPathSegList documentation>
+newtype SVGPathSegList = SVGPathSegList { unSVGPathSegList :: JSVal }
+
+instance Eq (SVGPathSegList) where
+  (SVGPathSegList a) == (SVGPathSegList b) = js_eq a b
+
+instance PToJSVal SVGPathSegList where
+  pToJSVal = unSVGPathSegList
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegList where
+  pFromJSVal = SVGPathSegList
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegList where
+  toJSVal = return . unSVGPathSegList
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegList where
+  fromJSVal = return . fmap SVGPathSegList . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject SVGPathSegList where
+  typeGType _ = gTypeSVGPathSegList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegList\"]" gTypeSVGPathSegList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegMovetoAbs".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoAbs Mozilla SVGPathSegMovetoAbs documentation>
+newtype SVGPathSegMovetoAbs = SVGPathSegMovetoAbs { unSVGPathSegMovetoAbs :: JSVal }
+
+instance Eq (SVGPathSegMovetoAbs) where
+  (SVGPathSegMovetoAbs a) == (SVGPathSegMovetoAbs b) = js_eq a b
+
+instance PToJSVal SVGPathSegMovetoAbs where
+  pToJSVal = unSVGPathSegMovetoAbs
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegMovetoAbs where
+  pFromJSVal = SVGPathSegMovetoAbs
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegMovetoAbs where
+  toJSVal = return . unSVGPathSegMovetoAbs
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegMovetoAbs where
+  fromJSVal = return . fmap SVGPathSegMovetoAbs . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegMovetoAbs
+instance IsGObject SVGPathSegMovetoAbs where
+  typeGType _ = gTypeSVGPathSegMovetoAbs
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegMovetoAbs\"]" gTypeSVGPathSegMovetoAbs :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPathSegMovetoRel".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGPathSeg"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPathSegMovetoRel Mozilla SVGPathSegMovetoRel documentation>
+newtype SVGPathSegMovetoRel = SVGPathSegMovetoRel { unSVGPathSegMovetoRel :: JSVal }
+
+instance Eq (SVGPathSegMovetoRel) where
+  (SVGPathSegMovetoRel a) == (SVGPathSegMovetoRel b) = js_eq a b
+
+instance PToJSVal SVGPathSegMovetoRel where
+  pToJSVal = unSVGPathSegMovetoRel
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPathSegMovetoRel where
+  pFromJSVal = SVGPathSegMovetoRel
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPathSegMovetoRel where
+  toJSVal = return . unSVGPathSegMovetoRel
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPathSegMovetoRel where
+  fromJSVal = return . fmap SVGPathSegMovetoRel . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGPathSeg SVGPathSegMovetoRel
+instance IsGObject SVGPathSegMovetoRel where
+  typeGType _ = gTypeSVGPathSegMovetoRel
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPathSegMovetoRel\"]" gTypeSVGPathSegMovetoRel :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPatternElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGFitToViewBox"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement Mozilla SVGPatternElement documentation>
+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 #-}
+
+instance IsSVGElement SVGPatternElement
+instance IsElement SVGPatternElement
+instance IsNode SVGPatternElement
+instance IsEventTarget SVGPatternElement
+instance IsSlotable SVGPatternElement
+instance IsParentNode SVGPatternElement
+instance IsNonDocumentTypeChildNode SVGPatternElement
+instance IsChildNode SVGPatternElement
+instance IsAnimatable SVGPatternElement
+instance IsGlobalEventHandlers SVGPatternElement
+instance IsSVGURIReference SVGPatternElement
+instance IsSVGTests SVGPatternElement
+instance IsSVGFitToViewBox SVGPatternElement
+instance IsSVGExternalResourcesRequired SVGPatternElement
+instance IsGObject SVGPatternElement where
+  typeGType _ = gTypeSVGPatternElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPatternElement\"]" gTypeSVGPatternElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPoint".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPoint Mozilla SVGPoint documentation>
+newtype SVGPoint = SVGPoint { unSVGPoint :: JSVal }
+
+instance Eq (SVGPoint) where
+  (SVGPoint a) == (SVGPoint b) = js_eq a b
+
+instance PToJSVal SVGPoint where
+  pToJSVal = unSVGPoint
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGPoint where
+  pFromJSVal = SVGPoint
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGPoint where
+  toJSVal = return . unSVGPoint
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGPoint where
+  fromJSVal = return . fmap SVGPoint . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject SVGPoint where
+  typeGType _ = gTypeSVGPoint
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPoint\"]" gTypeSVGPoint :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPointList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPointList Mozilla SVGPointList documentation>
+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 #-}
+
+instance IsGObject SVGPointList where
+  typeGType _ = gTypeSVGPointList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPointList\"]" gTypeSVGPointList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPolygonElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolygonElement Mozilla SVGPolygonElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGPolygonElement
+instance IsSVGElement SVGPolygonElement
+instance IsElement SVGPolygonElement
+instance IsNode SVGPolygonElement
+instance IsEventTarget SVGPolygonElement
+instance IsSlotable SVGPolygonElement
+instance IsParentNode SVGPolygonElement
+instance IsNonDocumentTypeChildNode SVGPolygonElement
+instance IsChildNode SVGPolygonElement
+instance IsAnimatable SVGPolygonElement
+instance IsGlobalEventHandlers SVGPolygonElement
+instance IsSVGTests SVGPolygonElement
+instance IsSVGExternalResourcesRequired SVGPolygonElement
+instance IsGObject SVGPolygonElement where
+  typeGType _ = gTypeSVGPolygonElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPolygonElement\"]" gTypeSVGPolygonElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPolylineElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPolylineElement Mozilla SVGPolylineElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGPolylineElement
+instance IsSVGElement SVGPolylineElement
+instance IsElement SVGPolylineElement
+instance IsNode SVGPolylineElement
+instance IsEventTarget SVGPolylineElement
+instance IsSlotable SVGPolylineElement
+instance IsParentNode SVGPolylineElement
+instance IsNonDocumentTypeChildNode SVGPolylineElement
+instance IsChildNode SVGPolylineElement
+instance IsAnimatable SVGPolylineElement
+instance IsGlobalEventHandlers SVGPolylineElement
+instance IsSVGTests SVGPolylineElement
+instance IsSVGExternalResourcesRequired SVGPolylineElement
+instance IsGObject SVGPolylineElement where
+  typeGType _ = gTypeSVGPolylineElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPolylineElement\"]" gTypeSVGPolylineElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGPreserveAspectRatio".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGPreserveAspectRatio Mozilla SVGPreserveAspectRatio documentation>
+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 #-}
+
+instance IsGObject SVGPreserveAspectRatio where
+  typeGType _ = gTypeSVGPreserveAspectRatio
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGPreserveAspectRatio\"]" gTypeSVGPreserveAspectRatio :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGRadialGradientElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGradientElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRadialGradientElement Mozilla SVGRadialGradientElement documentation>
+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 #-}
+
+instance IsSVGGradientElement SVGRadialGradientElement
+instance IsSVGElement SVGRadialGradientElement
+instance IsElement SVGRadialGradientElement
+instance IsNode SVGRadialGradientElement
+instance IsEventTarget SVGRadialGradientElement
+instance IsSlotable SVGRadialGradientElement
+instance IsParentNode SVGRadialGradientElement
+instance IsNonDocumentTypeChildNode SVGRadialGradientElement
+instance IsChildNode SVGRadialGradientElement
+instance IsAnimatable SVGRadialGradientElement
+instance IsGlobalEventHandlers SVGRadialGradientElement
+instance IsSVGURIReference SVGRadialGradientElement
+instance IsSVGExternalResourcesRequired SVGRadialGradientElement
+instance IsGObject SVGRadialGradientElement where
+  typeGType _ = gTypeSVGRadialGradientElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGRadialGradientElement\"]" gTypeSVGRadialGradientElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGRect".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRect Mozilla SVGRect documentation>
+newtype SVGRect = SVGRect { unSVGRect :: JSVal }
+
+instance Eq (SVGRect) where
+  (SVGRect a) == (SVGRect b) = js_eq a b
+
+instance PToJSVal SVGRect where
+  pToJSVal = unSVGRect
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGRect where
+  pFromJSVal = SVGRect
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGRect where
+  toJSVal = return . unSVGRect
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGRect where
+  fromJSVal = return . fmap SVGRect . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject SVGRect where
+  typeGType _ = gTypeSVGRect
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGRect\"]" gTypeSVGRect :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGRectElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRectElement Mozilla SVGRectElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGRectElement
+instance IsSVGElement SVGRectElement
+instance IsElement SVGRectElement
+instance IsNode SVGRectElement
+instance IsEventTarget SVGRectElement
+instance IsSlotable SVGRectElement
+instance IsParentNode SVGRectElement
+instance IsNonDocumentTypeChildNode SVGRectElement
+instance IsChildNode SVGRectElement
+instance IsAnimatable SVGRectElement
+instance IsGlobalEventHandlers SVGRectElement
+instance IsSVGTests SVGRectElement
+instance IsSVGExternalResourcesRequired SVGRectElement
+instance IsGObject SVGRectElement where
+  typeGType _ = gTypeSVGRectElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGRectElement\"]" gTypeSVGRectElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGRenderingIntent".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGRenderingIntent Mozilla SVGRenderingIntent documentation>
+newtype SVGRenderingIntent = SVGRenderingIntent { unSVGRenderingIntent :: JSVal }
+
+instance Eq (SVGRenderingIntent) where
+  (SVGRenderingIntent a) == (SVGRenderingIntent b) = js_eq a b
+
+instance PToJSVal SVGRenderingIntent where
+  pToJSVal = unSVGRenderingIntent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGRenderingIntent where
+  pFromJSVal = SVGRenderingIntent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGRenderingIntent where
+  toJSVal = return . unSVGRenderingIntent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGRenderingIntent where
+  fromJSVal = return . fmap SVGRenderingIntent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject SVGRenderingIntent where
+  typeGType _ = gTypeSVGRenderingIntent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGRenderingIntent\"]" gTypeSVGRenderingIntent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGSVGElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGZoomAndPan"
+--     * "GHCJS.DOM.SVGFitToViewBox"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement Mozilla SVGSVGElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGSVGElement
+instance IsSVGElement SVGSVGElement
+instance IsElement SVGSVGElement
+instance IsNode SVGSVGElement
+instance IsEventTarget SVGSVGElement
+instance IsSlotable SVGSVGElement
+instance IsParentNode SVGSVGElement
+instance IsNonDocumentTypeChildNode SVGSVGElement
+instance IsChildNode SVGSVGElement
+instance IsAnimatable SVGSVGElement
+instance IsGlobalEventHandlers SVGSVGElement
+instance IsSVGTests SVGSVGElement
+instance IsSVGZoomAndPan SVGSVGElement
+instance IsSVGFitToViewBox SVGSVGElement
+instance IsSVGExternalResourcesRequired SVGSVGElement
+instance IsGObject SVGSVGElement where
+  typeGType _ = gTypeSVGSVGElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGSVGElement\"]" gTypeSVGSVGElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGScriptElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGScriptElement Mozilla SVGScriptElement documentation>
+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 #-}
+
+instance IsSVGElement SVGScriptElement
+instance IsElement SVGScriptElement
+instance IsNode SVGScriptElement
+instance IsEventTarget SVGScriptElement
+instance IsSlotable SVGScriptElement
+instance IsParentNode SVGScriptElement
+instance IsNonDocumentTypeChildNode SVGScriptElement
+instance IsChildNode SVGScriptElement
+instance IsAnimatable SVGScriptElement
+instance IsGlobalEventHandlers SVGScriptElement
+instance IsSVGURIReference SVGScriptElement
+instance IsSVGExternalResourcesRequired SVGScriptElement
+instance IsGObject SVGScriptElement where
+  typeGType _ = gTypeSVGScriptElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGScriptElement\"]" gTypeSVGScriptElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGSetElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGAnimationElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSetElement Mozilla SVGSetElement documentation>
+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 #-}
+
+instance IsSVGAnimationElement SVGSetElement
+instance IsSVGElement SVGSetElement
+instance IsElement SVGSetElement
+instance IsNode SVGSetElement
+instance IsEventTarget SVGSetElement
+instance IsSlotable SVGSetElement
+instance IsParentNode SVGSetElement
+instance IsNonDocumentTypeChildNode SVGSetElement
+instance IsChildNode SVGSetElement
+instance IsAnimatable SVGSetElement
+instance IsGlobalEventHandlers SVGSetElement
+instance IsSVGTests SVGSetElement
+instance IsSVGExternalResourcesRequired SVGSetElement
+instance IsGObject SVGSetElement where
+  typeGType _ = gTypeSVGSetElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGSetElement\"]" gTypeSVGSetElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGStopElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGStopElement Mozilla SVGStopElement documentation>
+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 #-}
+
+instance IsSVGElement SVGStopElement
+instance IsElement SVGStopElement
+instance IsNode SVGStopElement
+instance IsEventTarget SVGStopElement
+instance IsSlotable SVGStopElement
+instance IsParentNode SVGStopElement
+instance IsNonDocumentTypeChildNode SVGStopElement
+instance IsChildNode SVGStopElement
+instance IsAnimatable SVGStopElement
+instance IsGlobalEventHandlers SVGStopElement
+instance IsGObject SVGStopElement where
+  typeGType _ = gTypeSVGStopElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGStopElement\"]" gTypeSVGStopElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGStringList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGStringList Mozilla SVGStringList documentation>
+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 #-}
+
+instance IsGObject SVGStringList where
+  typeGType _ = gTypeSVGStringList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGStringList\"]" gTypeSVGStringList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGStyleElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGStyleElement Mozilla SVGStyleElement documentation>
+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 #-}
+
+instance IsSVGElement SVGStyleElement
+instance IsElement SVGStyleElement
+instance IsNode SVGStyleElement
+instance IsEventTarget SVGStyleElement
+instance IsSlotable SVGStyleElement
+instance IsParentNode SVGStyleElement
+instance IsNonDocumentTypeChildNode SVGStyleElement
+instance IsChildNode SVGStyleElement
+instance IsAnimatable SVGStyleElement
+instance IsGlobalEventHandlers SVGStyleElement
+instance IsGObject SVGStyleElement where
+  typeGType _ = gTypeSVGStyleElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGStyleElement\"]" gTypeSVGStyleElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGSwitchElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSwitchElement Mozilla SVGSwitchElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGSwitchElement
+instance IsSVGElement SVGSwitchElement
+instance IsElement SVGSwitchElement
+instance IsNode SVGSwitchElement
+instance IsEventTarget SVGSwitchElement
+instance IsSlotable SVGSwitchElement
+instance IsParentNode SVGSwitchElement
+instance IsNonDocumentTypeChildNode SVGSwitchElement
+instance IsChildNode SVGSwitchElement
+instance IsAnimatable SVGSwitchElement
+instance IsGlobalEventHandlers SVGSwitchElement
+instance IsSVGTests SVGSwitchElement
+instance IsSVGExternalResourcesRequired SVGSwitchElement
+instance IsGObject SVGSwitchElement where
+  typeGType _ = gTypeSVGSwitchElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGSwitchElement\"]" gTypeSVGSwitchElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGSymbolElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGFitToViewBox"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGSymbolElement Mozilla SVGSymbolElement documentation>
+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 #-}
+
+instance IsSVGElement SVGSymbolElement
+instance IsElement SVGSymbolElement
+instance IsNode SVGSymbolElement
+instance IsEventTarget SVGSymbolElement
+instance IsSlotable SVGSymbolElement
+instance IsParentNode SVGSymbolElement
+instance IsNonDocumentTypeChildNode SVGSymbolElement
+instance IsChildNode SVGSymbolElement
+instance IsAnimatable SVGSymbolElement
+instance IsGlobalEventHandlers SVGSymbolElement
+instance IsSVGFitToViewBox SVGSymbolElement
+instance IsSVGExternalResourcesRequired SVGSymbolElement
+instance IsGObject SVGSymbolElement where
+  typeGType _ = gTypeSVGSymbolElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGSymbolElement\"]" gTypeSVGSymbolElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGTRefElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGTextPositioningElement"
+--     * "GHCJS.DOM.SVGTextContentElement"
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--     * "GHCJS.DOM.SVGURIReference"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTRefElement Mozilla SVGTRefElement documentation>
+newtype SVGTRefElement = SVGTRefElement { unSVGTRefElement :: JSVal }
+
+instance Eq (SVGTRefElement) where
+  (SVGTRefElement a) == (SVGTRefElement b) = js_eq a b
+
+instance PToJSVal SVGTRefElement where
+  pToJSVal = unSVGTRefElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGTRefElement where
+  pFromJSVal = SVGTRefElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGTRefElement where
+  toJSVal = return . unSVGTRefElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGTRefElement where
+  fromJSVal = return . fmap SVGTRefElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGTextPositioningElement SVGTRefElement
+instance IsSVGTextContentElement SVGTRefElement
+instance IsSVGGraphicsElement SVGTRefElement
+instance IsSVGElement SVGTRefElement
+instance IsElement SVGTRefElement
+instance IsNode SVGTRefElement
+instance IsEventTarget SVGTRefElement
+instance IsSlotable SVGTRefElement
+instance IsParentNode SVGTRefElement
+instance IsNonDocumentTypeChildNode SVGTRefElement
+instance IsChildNode SVGTRefElement
+instance IsAnimatable SVGTRefElement
+instance IsGlobalEventHandlers SVGTRefElement
+instance IsSVGTests SVGTRefElement
+instance IsSVGExternalResourcesRequired SVGTRefElement
+instance IsSVGURIReference SVGTRefElement
+instance IsGObject SVGTRefElement where
+  typeGType _ = gTypeSVGTRefElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGTRefElement\"]" gTypeSVGTRefElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGTSpanElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGTextPositioningElement"
+--     * "GHCJS.DOM.SVGTextContentElement"
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTSpanElement Mozilla SVGTSpanElement documentation>
+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 #-}
+
+instance IsSVGTextPositioningElement SVGTSpanElement
+instance IsSVGTextContentElement SVGTSpanElement
+instance IsSVGGraphicsElement SVGTSpanElement
+instance IsSVGElement SVGTSpanElement
+instance IsElement SVGTSpanElement
+instance IsNode SVGTSpanElement
+instance IsEventTarget SVGTSpanElement
+instance IsSlotable SVGTSpanElement
+instance IsParentNode SVGTSpanElement
+instance IsNonDocumentTypeChildNode SVGTSpanElement
+instance IsChildNode SVGTSpanElement
+instance IsAnimatable SVGTSpanElement
+instance IsGlobalEventHandlers SVGTSpanElement
+instance IsSVGTests SVGTSpanElement
+instance IsSVGExternalResourcesRequired SVGTSpanElement
+instance IsGObject SVGTSpanElement where
+  typeGType _ = gTypeSVGTSpanElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGTSpanElement\"]" gTypeSVGTSpanElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGTests".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTests Mozilla SVGTests documentation>
+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 #-}
+
+class (IsGObject o) => IsSVGTests o
+toSVGTests :: IsSVGTests o => o -> SVGTests
+toSVGTests = SVGTests . coerce
+
+instance IsSVGTests SVGTests
+instance IsGObject SVGTests where
+  typeGType _ = gTypeSVGTests
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGTests\"]" gTypeSVGTests :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGTextContentElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextContentElement Mozilla SVGTextContentElement documentation>
+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 #-}
+
+class (IsSVGGraphicsElement o, IsSVGElement o, IsElement o, IsNode o, IsEventTarget o, IsSlotable o, IsParentNode o, IsNonDocumentTypeChildNode o, IsChildNode o, IsAnimatable o, IsGlobalEventHandlers o, IsSVGTests o, IsSVGExternalResourcesRequired o, IsGObject o) => IsSVGTextContentElement o
+toSVGTextContentElement :: IsSVGTextContentElement o => o -> SVGTextContentElement
+toSVGTextContentElement = SVGTextContentElement . coerce
+
+instance IsSVGTextContentElement SVGTextContentElement
+instance IsSVGGraphicsElement SVGTextContentElement
+instance IsSVGElement SVGTextContentElement
+instance IsElement SVGTextContentElement
+instance IsNode SVGTextContentElement
+instance IsEventTarget SVGTextContentElement
+instance IsSlotable SVGTextContentElement
+instance IsParentNode SVGTextContentElement
+instance IsNonDocumentTypeChildNode SVGTextContentElement
+instance IsChildNode SVGTextContentElement
+instance IsAnimatable SVGTextContentElement
+instance IsGlobalEventHandlers SVGTextContentElement
+instance IsSVGTests SVGTextContentElement
+instance IsSVGExternalResourcesRequired SVGTextContentElement
+instance IsGObject SVGTextContentElement where
+  typeGType _ = gTypeSVGTextContentElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGTextContentElement\"]" gTypeSVGTextContentElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGTextElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGTextPositioningElement"
+--     * "GHCJS.DOM.SVGTextContentElement"
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextElement Mozilla SVGTextElement documentation>
+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 #-}
+
+instance IsSVGTextPositioningElement SVGTextElement
+instance IsSVGTextContentElement SVGTextElement
+instance IsSVGGraphicsElement SVGTextElement
+instance IsSVGElement SVGTextElement
+instance IsElement SVGTextElement
+instance IsNode SVGTextElement
+instance IsEventTarget SVGTextElement
+instance IsSlotable SVGTextElement
+instance IsParentNode SVGTextElement
+instance IsNonDocumentTypeChildNode SVGTextElement
+instance IsChildNode SVGTextElement
+instance IsAnimatable SVGTextElement
+instance IsGlobalEventHandlers SVGTextElement
+instance IsSVGTests SVGTextElement
+instance IsSVGExternalResourcesRequired SVGTextElement
+instance IsGObject SVGTextElement where
+  typeGType _ = gTypeSVGTextElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGTextElement\"]" gTypeSVGTextElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGTextPathElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGTextContentElement"
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--     * "GHCJS.DOM.SVGURIReference"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPathElement Mozilla SVGTextPathElement documentation>
+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 #-}
+
+instance IsSVGTextContentElement SVGTextPathElement
+instance IsSVGGraphicsElement SVGTextPathElement
+instance IsSVGElement SVGTextPathElement
+instance IsElement SVGTextPathElement
+instance IsNode SVGTextPathElement
+instance IsEventTarget SVGTextPathElement
+instance IsSlotable SVGTextPathElement
+instance IsParentNode SVGTextPathElement
+instance IsNonDocumentTypeChildNode SVGTextPathElement
+instance IsChildNode SVGTextPathElement
+instance IsAnimatable SVGTextPathElement
+instance IsGlobalEventHandlers SVGTextPathElement
+instance IsSVGTests SVGTextPathElement
+instance IsSVGExternalResourcesRequired SVGTextPathElement
+instance IsSVGURIReference SVGTextPathElement
+instance IsGObject SVGTextPathElement where
+  typeGType _ = gTypeSVGTextPathElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGTextPathElement\"]" gTypeSVGTextPathElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGTextPositioningElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGTextContentElement"
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTextPositioningElement Mozilla SVGTextPositioningElement documentation>
+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 #-}
+
+class (IsSVGTextContentElement o, IsSVGGraphicsElement o, IsSVGElement o, IsElement o, IsNode o, IsEventTarget o, IsSlotable o, IsParentNode o, IsNonDocumentTypeChildNode o, IsChildNode o, IsAnimatable o, IsGlobalEventHandlers o, IsSVGTests o, IsSVGExternalResourcesRequired o, IsGObject o) => IsSVGTextPositioningElement o
+toSVGTextPositioningElement :: IsSVGTextPositioningElement o => o -> SVGTextPositioningElement
+toSVGTextPositioningElement = SVGTextPositioningElement . coerce
+
+instance IsSVGTextPositioningElement SVGTextPositioningElement
+instance IsSVGTextContentElement SVGTextPositioningElement
+instance IsSVGGraphicsElement SVGTextPositioningElement
+instance IsSVGElement SVGTextPositioningElement
+instance IsElement SVGTextPositioningElement
+instance IsNode SVGTextPositioningElement
+instance IsEventTarget SVGTextPositioningElement
+instance IsSlotable SVGTextPositioningElement
+instance IsParentNode SVGTextPositioningElement
+instance IsNonDocumentTypeChildNode SVGTextPositioningElement
+instance IsChildNode SVGTextPositioningElement
+instance IsAnimatable SVGTextPositioningElement
+instance IsGlobalEventHandlers SVGTextPositioningElement
+instance IsSVGTests SVGTextPositioningElement
+instance IsSVGExternalResourcesRequired SVGTextPositioningElement
+instance IsGObject SVGTextPositioningElement where
+  typeGType _ = gTypeSVGTextPositioningElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGTextPositioningElement\"]" gTypeSVGTextPositioningElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGTitleElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTitleElement Mozilla SVGTitleElement documentation>
+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 #-}
+
+instance IsSVGElement SVGTitleElement
+instance IsElement SVGTitleElement
+instance IsNode SVGTitleElement
+instance IsEventTarget SVGTitleElement
+instance IsSlotable SVGTitleElement
+instance IsParentNode SVGTitleElement
+instance IsNonDocumentTypeChildNode SVGTitleElement
+instance IsChildNode SVGTitleElement
+instance IsAnimatable SVGTitleElement
+instance IsGlobalEventHandlers SVGTitleElement
+instance IsGObject SVGTitleElement where
+  typeGType _ = gTypeSVGTitleElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGTitleElement\"]" gTypeSVGTitleElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGTransform".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform Mozilla SVGTransform documentation>
+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 #-}
+
+instance IsGObject SVGTransform where
+  typeGType _ = gTypeSVGTransform
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGTransform\"]" gTypeSVGTransform :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGTransformList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGTransformList Mozilla SVGTransformList documentation>
+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 #-}
+
+instance IsGObject SVGTransformList where
+  typeGType _ = gTypeSVGTransformList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGTransformList\"]" gTypeSVGTransformList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGURIReference".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGURIReference Mozilla SVGURIReference documentation>
+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 #-}
+
+class (IsGObject o) => IsSVGURIReference o
+toSVGURIReference :: IsSVGURIReference o => o -> SVGURIReference
+toSVGURIReference = SVGURIReference . coerce
+
+instance IsSVGURIReference SVGURIReference
+instance IsGObject SVGURIReference where
+  typeGType _ = gTypeSVGURIReference
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGURIReference\"]" gTypeSVGURIReference :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGUnitTypes".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGUnitTypes Mozilla SVGUnitTypes documentation>
+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 #-}
+
+instance IsGObject SVGUnitTypes where
+  typeGType _ = gTypeSVGUnitTypes
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGUnitTypes\"]" gTypeSVGUnitTypes :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGUseElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGGraphicsElement"
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGTests"
+--     * "GHCJS.DOM.SVGURIReference"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGUseElement Mozilla SVGUseElement documentation>
+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 #-}
+
+instance IsSVGGraphicsElement SVGUseElement
+instance IsSVGElement SVGUseElement
+instance IsElement SVGUseElement
+instance IsNode SVGUseElement
+instance IsEventTarget SVGUseElement
+instance IsSlotable SVGUseElement
+instance IsParentNode SVGUseElement
+instance IsNonDocumentTypeChildNode SVGUseElement
+instance IsChildNode SVGUseElement
+instance IsAnimatable SVGUseElement
+instance IsGlobalEventHandlers SVGUseElement
+instance IsSVGTests SVGUseElement
+instance IsSVGURIReference SVGUseElement
+instance IsSVGExternalResourcesRequired SVGUseElement
+instance IsGObject SVGUseElement where
+  typeGType _ = gTypeSVGUseElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGUseElement\"]" gTypeSVGUseElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGVKernElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGVKernElement Mozilla SVGVKernElement documentation>
+newtype SVGVKernElement = SVGVKernElement { unSVGVKernElement :: JSVal }
+
+instance Eq (SVGVKernElement) where
+  (SVGVKernElement a) == (SVGVKernElement b) = js_eq a b
+
+instance PToJSVal SVGVKernElement where
+  pToJSVal = unSVGVKernElement
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGVKernElement where
+  pFromJSVal = SVGVKernElement
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGVKernElement where
+  toJSVal = return . unSVGVKernElement
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGVKernElement where
+  fromJSVal = return . fmap SVGVKernElement . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGElement SVGVKernElement
+instance IsElement SVGVKernElement
+instance IsNode SVGVKernElement
+instance IsEventTarget SVGVKernElement
+instance IsSlotable SVGVKernElement
+instance IsParentNode SVGVKernElement
+instance IsNonDocumentTypeChildNode SVGVKernElement
+instance IsChildNode SVGVKernElement
+instance IsAnimatable SVGVKernElement
+instance IsGlobalEventHandlers SVGVKernElement
+instance IsGObject SVGVKernElement where
+  typeGType _ = gTypeSVGVKernElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGVKernElement\"]" gTypeSVGVKernElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGViewElement".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGElement"
+--     * "GHCJS.DOM.Element"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.Slotable"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Animatable"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.SVGZoomAndPan"
+--     * "GHCJS.DOM.SVGFitToViewBox"
+--     * "GHCJS.DOM.SVGExternalResourcesRequired"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewElement Mozilla SVGViewElement documentation>
+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 #-}
+
+instance IsSVGElement SVGViewElement
+instance IsElement SVGViewElement
+instance IsNode SVGViewElement
+instance IsEventTarget SVGViewElement
+instance IsSlotable SVGViewElement
+instance IsParentNode SVGViewElement
+instance IsNonDocumentTypeChildNode SVGViewElement
+instance IsChildNode SVGViewElement
+instance IsAnimatable SVGViewElement
+instance IsGlobalEventHandlers SVGViewElement
+instance IsSVGZoomAndPan SVGViewElement
+instance IsSVGFitToViewBox SVGViewElement
+instance IsSVGExternalResourcesRequired SVGViewElement
+instance IsGObject SVGViewElement where
+  typeGType _ = gTypeSVGViewElement
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGViewElement\"]" gTypeSVGViewElement :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGViewSpec".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.SVGFitToViewBox"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGViewSpec Mozilla SVGViewSpec documentation>
+newtype SVGViewSpec = SVGViewSpec { unSVGViewSpec :: JSVal }
+
+instance Eq (SVGViewSpec) where
+  (SVGViewSpec a) == (SVGViewSpec b) = js_eq a b
+
+instance PToJSVal SVGViewSpec where
+  pToJSVal = unSVGViewSpec
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGViewSpec where
+  pFromJSVal = SVGViewSpec
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGViewSpec where
+  toJSVal = return . unSVGViewSpec
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGViewSpec where
+  fromJSVal = return . fmap SVGViewSpec . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsSVGFitToViewBox SVGViewSpec
+instance IsGObject SVGViewSpec where
+  typeGType _ = gTypeSVGViewSpec
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGViewSpec\"]" gTypeSVGViewSpec :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGZoomAndPan".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomAndPan Mozilla SVGZoomAndPan documentation>
+newtype SVGZoomAndPan = SVGZoomAndPan { unSVGZoomAndPan :: JSVal }
+
+instance Eq (SVGZoomAndPan) where
+  (SVGZoomAndPan a) == (SVGZoomAndPan b) = js_eq a b
+
+instance PToJSVal SVGZoomAndPan where
+  pToJSVal = unSVGZoomAndPan
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGZoomAndPan where
+  pFromJSVal = SVGZoomAndPan
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGZoomAndPan where
+  toJSVal = return . unSVGZoomAndPan
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGZoomAndPan where
+  fromJSVal = return . fmap SVGZoomAndPan . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class (IsGObject o) => IsSVGZoomAndPan o
+toSVGZoomAndPan :: IsSVGZoomAndPan o => o -> SVGZoomAndPan
+toSVGZoomAndPan = SVGZoomAndPan . coerce
+
+instance IsSVGZoomAndPan SVGZoomAndPan
+instance IsGObject SVGZoomAndPan where
+  typeGType _ = gTypeSVGZoomAndPan
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGZoomAndPan\"]" gTypeSVGZoomAndPan :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SVGZoomEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEvent"
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomEvent Mozilla SVGZoomEvent documentation>
+newtype SVGZoomEvent = SVGZoomEvent { unSVGZoomEvent :: JSVal }
+
+instance Eq (SVGZoomEvent) where
+  (SVGZoomEvent a) == (SVGZoomEvent b) = js_eq a b
+
+instance PToJSVal SVGZoomEvent where
+  pToJSVal = unSVGZoomEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal SVGZoomEvent where
+  pFromJSVal = SVGZoomEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal SVGZoomEvent where
+  toJSVal = return . unSVGZoomEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal SVGZoomEvent where
+  fromJSVal = return . fmap SVGZoomEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsUIEvent SVGZoomEvent
+instance IsEvent SVGZoomEvent
+instance IsGObject SVGZoomEvent where
+  typeGType _ = gTypeSVGZoomEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SVGZoomEvent\"]" gTypeSVGZoomEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Screen".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Screen Mozilla Screen documentation>
+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 #-}
+
+instance IsGObject Screen where
+  typeGType _ = gTypeScreen
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Screen\"]" gTypeScreen :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ScriptProcessorNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode Mozilla ScriptProcessorNode documentation>
+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 #-}
+
+instance IsAudioNode ScriptProcessorNode
+instance IsEventTarget ScriptProcessorNode
+instance IsGObject ScriptProcessorNode where
+  typeGType _ = gTypeScriptProcessorNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ScriptProcessorNode\"]" gTypeScriptProcessorNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ScrollToOptions".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ScrollToOptions Mozilla ScrollToOptions documentation>
+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 #-}
+
+instance IsGObject ScrollToOptions where
+  typeGType _ = gTypeScrollToOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ScrollToOptions\"]" gTypeScrollToOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SecurityPolicyViolationEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicyViolationEvent Mozilla SecurityPolicyViolationEvent documentation>
+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 #-}
+
+instance IsEvent SecurityPolicyViolationEvent
+instance IsGObject SecurityPolicyViolationEvent where
+  typeGType _ = gTypeSecurityPolicyViolationEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SecurityPolicyViolationEvent\"]" gTypeSecurityPolicyViolationEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SecurityPolicyViolationEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicyViolationEventInit Mozilla SecurityPolicyViolationEventInit documentation>
+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 #-}
+
+instance IsEventInit SecurityPolicyViolationEventInit
+instance IsGObject SecurityPolicyViolationEventInit where
+  typeGType _ = gTypeSecurityPolicyViolationEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SecurityPolicyViolationEventInit\"]" gTypeSecurityPolicyViolationEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Selection".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Selection Mozilla Selection documentation>
+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 #-}
+
+instance IsGObject Selection where
+  typeGType _ = gTypeSelection
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Selection\"]" gTypeSelection :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ShadowRoot".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.DocumentFragment"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.NonElementParentNode"
+--     * "GHCJS.DOM.ParentNode"
+--     * "GHCJS.DOM.DocumentOrShadowRoot"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot Mozilla ShadowRoot documentation>
+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 #-}
+
+instance IsDocumentFragment ShadowRoot
+instance IsNode ShadowRoot
+instance IsEventTarget ShadowRoot
+instance IsNonElementParentNode ShadowRoot
+instance IsParentNode ShadowRoot
+instance IsDocumentOrShadowRoot ShadowRoot
+instance IsGObject ShadowRoot where
+  typeGType _ = gTypeShadowRoot
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ShadowRoot\"]" gTypeShadowRoot :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ShadowRootInit".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ShadowRootInit Mozilla ShadowRootInit documentation>
+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 #-}
+
+instance IsGObject ShadowRootInit where
+  typeGType _ = gTypeShadowRootInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ShadowRootInit\"]" gTypeShadowRootInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Slotable".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Slotable Mozilla Slotable documentation>
+newtype Slotable = Slotable { unSlotable :: JSVal }
+
+instance Eq (Slotable) where
+  (Slotable a) == (Slotable b) = js_eq a b
+
+instance PToJSVal Slotable where
+  pToJSVal = unSlotable
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal Slotable where
+  pFromJSVal = Slotable
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal Slotable where
+  toJSVal = return . unSlotable
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal Slotable where
+  fromJSVal = return . fmap Slotable . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+class (IsGObject o) => IsSlotable o
+toSlotable :: IsSlotable o => o -> Slotable
+toSlotable = Slotable . coerce
+
+instance IsSlotable Slotable
+instance IsGObject Slotable where
+  typeGType _ = gTypeSlotable
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Slotable\"]" gTypeSlotable :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SourceBuffer".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer Mozilla SourceBuffer documentation>
+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 #-}
+
+instance IsEventTarget SourceBuffer
+instance IsGObject SourceBuffer where
+  typeGType _ = gTypeSourceBuffer
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SourceBuffer\"]" gTypeSourceBuffer :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SourceBufferList".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SourceBufferList Mozilla SourceBufferList documentation>
+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 #-}
+
+instance IsEventTarget SourceBufferList
+instance IsGObject SourceBufferList where
+  typeGType _ = gTypeSourceBufferList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SourceBufferList\"]" gTypeSourceBufferList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SpeechSynthesis".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis Mozilla SpeechSynthesis documentation>
+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 #-}
+
+instance IsGObject SpeechSynthesis where
+  typeGType _ = gTypeSpeechSynthesis
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SpeechSynthesis\"]" gTypeSpeechSynthesis :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SpeechSynthesisEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisEvent Mozilla SpeechSynthesisEvent documentation>
+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 #-}
+
+instance IsEvent SpeechSynthesisEvent
+instance IsGObject SpeechSynthesisEvent where
+  typeGType _ = gTypeSpeechSynthesisEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SpeechSynthesisEvent\"]" gTypeSpeechSynthesisEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SpeechSynthesisUtterance".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance Mozilla SpeechSynthesisUtterance documentation>
+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 #-}
+
+instance IsEventTarget SpeechSynthesisUtterance
+instance IsGObject SpeechSynthesisUtterance where
+  typeGType _ = gTypeSpeechSynthesisUtterance
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SpeechSynthesisUtterance\"]" gTypeSpeechSynthesisUtterance :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SpeechSynthesisVoice".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisVoice Mozilla SpeechSynthesisVoice documentation>
+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 #-}
+
+instance IsGObject SpeechSynthesisVoice where
+  typeGType _ = gTypeSpeechSynthesisVoice
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"SpeechSynthesisVoice\"]" gTypeSpeechSynthesisVoice :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.StaticRange".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/StaticRange Mozilla StaticRange documentation>
+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 #-}
+
+instance IsGObject StaticRange where
+  typeGType _ = gTypeStaticRange
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"StaticRange\"]" gTypeStaticRange :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Storage".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Storage Mozilla Storage documentation>
+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 #-}
+
+instance IsGObject Storage where
+  typeGType _ = gTypeStorage
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Storage\"]" gTypeStorage :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.StorageEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent Mozilla StorageEvent documentation>
+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 #-}
+
+instance IsEvent StorageEvent
+instance IsGObject StorageEvent where
+  typeGType _ = gTypeStorageEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"StorageEvent\"]" gTypeStorageEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.StorageEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/StorageEventInit Mozilla StorageEventInit documentation>
+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 #-}
+
+instance IsEventInit StorageEventInit
+instance IsGObject StorageEventInit where
+  typeGType _ = gTypeStorageEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"StorageEventInit\"]" gTypeStorageEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.StorageInfo".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/StorageInfo Mozilla StorageInfo documentation>
+newtype StorageInfo = StorageInfo { unStorageInfo :: JSVal }
+
+instance Eq (StorageInfo) where
+  (StorageInfo a) == (StorageInfo b) = js_eq a b
+
+instance PToJSVal StorageInfo where
+  pToJSVal = unStorageInfo
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal StorageInfo where
+  pFromJSVal = StorageInfo
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal StorageInfo where
+  toJSVal = return . unStorageInfo
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal StorageInfo where
+  fromJSVal = return . fmap StorageInfo . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject StorageInfo where
+  typeGType _ = gTypeStorageInfo
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"StorageInfo\"]" gTypeStorageInfo :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.StorageQuota".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/StorageQuota Mozilla StorageQuota documentation>
+newtype StorageQuota = StorageQuota { unStorageQuota :: JSVal }
+
+instance Eq (StorageQuota) where
+  (StorageQuota a) == (StorageQuota b) = js_eq a b
+
+instance PToJSVal StorageQuota where
+  pToJSVal = unStorageQuota
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal StorageQuota where
+  pFromJSVal = StorageQuota
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal StorageQuota where
+  toJSVal = return . unStorageQuota
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal StorageQuota where
+  fromJSVal = return . fmap StorageQuota . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject StorageQuota where
+  typeGType _ = gTypeStorageQuota
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"StorageQuota\"]" gTypeStorageQuota :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.StyleMedia".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/StyleMedia Mozilla StyleMedia documentation>
+newtype StyleMedia = StyleMedia { unStyleMedia :: JSVal }
+
+instance Eq (StyleMedia) where
+  (StyleMedia a) == (StyleMedia b) = js_eq a b
+
+instance PToJSVal StyleMedia where
+  pToJSVal = unStyleMedia
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal StyleMedia where
+  pFromJSVal = StyleMedia
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal StyleMedia where
+  toJSVal = return . unStyleMedia
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal StyleMedia where
+  fromJSVal = return . fmap StyleMedia . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject StyleMedia where
+  typeGType _ = gTypeStyleMedia
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"StyleMedia\"]" gTypeStyleMedia :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.StyleSheet".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheet Mozilla StyleSheet documentation>
+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 #-}
+
+class (IsGObject o) => IsStyleSheet o
+toStyleSheet :: IsStyleSheet o => o -> StyleSheet
+toStyleSheet = StyleSheet . coerce
+
+instance IsStyleSheet StyleSheet
+instance IsGObject StyleSheet where
+  typeGType _ = gTypeStyleSheet
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"StyleSheet\"]" gTypeStyleSheet :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.StyleSheetList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/StyleSheetList Mozilla StyleSheetList documentation>
+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 #-}
+
+instance IsGObject StyleSheetList where
+  typeGType _ = gTypeStyleSheetList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"StyleSheetList\"]" gTypeStyleSheetList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.SubtleCrypto".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto Mozilla WebKitSubtleCrypto documentation>
+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 #-}
+
+instance IsGObject SubtleCrypto where
+  typeGType _ = gTypeSubtleCrypto
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitSubtleCrypto\"]" gTypeSubtleCrypto :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Text".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CharacterData"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.NonDocumentTypeChildNode"
+--     * "GHCJS.DOM.ChildNode"
+--     * "GHCJS.DOM.Slotable"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Text Mozilla Text documentation>
+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 #-}
+
+class (IsCharacterData o, IsNode o, IsEventTarget o, IsNonDocumentTypeChildNode o, IsChildNode o, IsSlotable o, IsGObject o) => IsText o
+toText :: IsText o => o -> Text
+toText = Text . coerce
+
+instance IsText Text
+instance IsCharacterData Text
+instance IsNode Text
+instance IsEventTarget Text
+instance IsNonDocumentTypeChildNode Text
+instance IsChildNode Text
+instance IsSlotable Text
+instance IsGObject Text where
+  typeGType _ = gTypeText
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Text\"]" gTypeText :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TextDecodeOptions".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextDecodeOptions Mozilla TextDecodeOptions documentation>
+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 #-}
+
+instance IsGObject TextDecodeOptions where
+  typeGType _ = gTypeTextDecodeOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TextDecodeOptions\"]" gTypeTextDecodeOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TextDecoder".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder Mozilla TextDecoder documentation>
+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 #-}
+
+instance IsGObject TextDecoder where
+  typeGType _ = gTypeTextDecoder
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TextDecoder\"]" gTypeTextDecoder :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TextDecoderOptions".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextDecoderOptions Mozilla TextDecoderOptions documentation>
+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 #-}
+
+instance IsGObject TextDecoderOptions where
+  typeGType _ = gTypeTextDecoderOptions
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TextDecoderOptions\"]" gTypeTextDecoderOptions :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TextEncoder".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder Mozilla TextEncoder documentation>
+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 #-}
+
+instance IsGObject TextEncoder where
+  typeGType _ = gTypeTextEncoder
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TextEncoder\"]" gTypeTextEncoder :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TextEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEvent"
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextEvent Mozilla TextEvent documentation>
+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 #-}
+
+instance IsUIEvent TextEvent
+instance IsEvent TextEvent
+instance IsGObject TextEvent where
+  typeGType _ = gTypeTextEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TextEvent\"]" gTypeTextEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TextMetrics".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics Mozilla TextMetrics documentation>
+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 #-}
+
+instance IsGObject TextMetrics where
+  typeGType _ = gTypeTextMetrics
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TextMetrics\"]" gTypeTextMetrics :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TextTrack".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrack Mozilla TextTrack documentation>
+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 #-}
+
+instance IsEventTarget TextTrack
+instance IsGObject TextTrack where
+  typeGType _ = gTypeTextTrack
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TextTrack\"]" gTypeTextTrack :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TextTrackCue".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCue Mozilla TextTrackCue documentation>
+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 #-}
+
+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 #-}
+foreign import javascript unsafe "window[\"TextTrackCue\"]" gTypeTextTrackCue :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TextTrackCueList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList Mozilla TextTrackCueList documentation>
+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 #-}
+
+instance IsGObject TextTrackCueList where
+  typeGType _ = gTypeTextTrackCueList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TextTrackCueList\"]" gTypeTextTrackCueList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TextTrackList".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList Mozilla TextTrackList documentation>
+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 #-}
+
+instance IsEventTarget TextTrackList
+instance IsGObject TextTrackList where
+  typeGType _ = gTypeTextTrackList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TextTrackList\"]" gTypeTextTrackList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TimeRanges".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges Mozilla TimeRanges documentation>
+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 #-}
+
+instance IsGObject TimeRanges where
+  typeGType _ = gTypeTimeRanges
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TimeRanges\"]" gTypeTimeRanges :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Touch".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Touch Mozilla Touch documentation>
+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 #-}
+
+instance IsGObject Touch where
+  typeGType _ = gTypeTouch
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Touch\"]" gTypeTouch :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TouchEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEvent"
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent Mozilla TouchEvent documentation>
+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 #-}
+
+instance IsUIEvent TouchEvent
+instance IsEvent TouchEvent
+instance IsGObject TouchEvent where
+  typeGType _ = gTypeTouchEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TouchEvent\"]" gTypeTouchEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TouchEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.UIEventInit"
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TouchEventInit Mozilla TouchEventInit documentation>
+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 #-}
+
+instance IsUIEventInit TouchEventInit
+instance IsEventInit TouchEventInit
+instance IsGObject TouchEventInit where
+  typeGType _ = gTypeTouchEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TouchEventInit\"]" gTypeTouchEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TouchList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TouchList Mozilla TouchList documentation>
+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 #-}
+
+instance IsGObject TouchList where
+  typeGType _ = gTypeTouchList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TouchList\"]" gTypeTouchList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TrackEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TrackEvent Mozilla TrackEvent documentation>
+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 #-}
+
+instance IsEvent TrackEvent
+instance IsGObject TrackEvent where
+  typeGType _ = gTypeTrackEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TrackEvent\"]" gTypeTrackEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TrackEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TrackEventInit Mozilla TrackEventInit documentation>
+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 #-}
+
+instance IsEventInit TrackEventInit
+instance IsGObject TrackEventInit where
+  typeGType _ = gTypeTrackEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TrackEventInit\"]" gTypeTrackEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TransitionEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent Mozilla TransitionEvent documentation>
+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 #-}
+
+instance IsEvent TransitionEvent
+instance IsGObject TransitionEvent where
+  typeGType _ = gTypeTransitionEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TransitionEvent\"]" gTypeTransitionEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TransitionEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TransitionEventInit Mozilla TransitionEventInit documentation>
+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 #-}
+
+instance IsEventInit TransitionEventInit
+instance IsGObject TransitionEventInit where
+  typeGType _ = gTypeTransitionEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TransitionEventInit\"]" gTypeTransitionEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.TreeWalker".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker Mozilla TreeWalker documentation>
+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 #-}
+
+instance IsGObject TreeWalker where
+  typeGType _ = gTypeTreeWalker
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"TreeWalker\"]" gTypeTreeWalker :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.UIEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent Mozilla UIEvent documentation>
+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 #-}
+
+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 #-}
+foreign import javascript unsafe "window[\"UIEvent\"]" gTypeUIEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.UIEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/UIEventInit Mozilla UIEventInit documentation>
+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 #-}
+
+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 #-}
+foreign import javascript unsafe "window[\"UIEventInit\"]" gTypeUIEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.URL".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/URL Mozilla URL documentation>
+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 #-}
+
+instance IsGObject URL where
+  typeGType _ = gTypeURL
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"URL\"]" gTypeURL :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.URLSearchParams".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams Mozilla URLSearchParams documentation>
+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 #-}
+
+instance IsGObject URLSearchParams where
+  typeGType _ = gTypeURLSearchParams
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"URLSearchParams\"]" gTypeURLSearchParams :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.UserMessageHandler".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/UserMessageHandler Mozilla UserMessageHandler documentation>
+newtype UserMessageHandler = UserMessageHandler { unUserMessageHandler :: JSVal }
+
+instance Eq (UserMessageHandler) where
+  (UserMessageHandler a) == (UserMessageHandler b) = js_eq a b
+
+instance PToJSVal UserMessageHandler where
+  pToJSVal = unUserMessageHandler
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal UserMessageHandler where
+  pFromJSVal = UserMessageHandler
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal UserMessageHandler where
+  toJSVal = return . unUserMessageHandler
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal UserMessageHandler where
+  fromJSVal = return . fmap UserMessageHandler . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject UserMessageHandler where
+  typeGType _ = gTypeUserMessageHandler
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"UserMessageHandler\"]" gTypeUserMessageHandler :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.UserMessageHandlersNamespace".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/UserMessageHandlersNamespace Mozilla UserMessageHandlersNamespace documentation>
+newtype UserMessageHandlersNamespace = UserMessageHandlersNamespace { unUserMessageHandlersNamespace :: JSVal }
+
+instance Eq (UserMessageHandlersNamespace) where
+  (UserMessageHandlersNamespace a) == (UserMessageHandlersNamespace b) = js_eq a b
+
+instance PToJSVal UserMessageHandlersNamespace where
+  pToJSVal = unUserMessageHandlersNamespace
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal UserMessageHandlersNamespace where
+  pFromJSVal = UserMessageHandlersNamespace
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal UserMessageHandlersNamespace where
+  toJSVal = return . unUserMessageHandlersNamespace
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal UserMessageHandlersNamespace where
+  fromJSVal = return . fmap UserMessageHandlersNamespace . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject UserMessageHandlersNamespace where
+  typeGType _ = gTypeUserMessageHandlersNamespace
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"UserMessageHandlersNamespace\"]" gTypeUserMessageHandlersNamespace :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.VTTCue".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.TextTrackCue"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/VTTCue Mozilla VTTCue documentation>
+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 #-}
+
+instance IsTextTrackCue VTTCue
+instance IsEventTarget VTTCue
+instance IsGObject VTTCue where
+  typeGType _ = gTypeVTTCue
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"VTTCue\"]" gTypeVTTCue :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.VTTRegion".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion Mozilla VTTRegion documentation>
+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 #-}
+
+instance IsGObject VTTRegion where
+  typeGType _ = gTypeVTTRegion
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"VTTRegion\"]" gTypeVTTRegion :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.VTTRegionList".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegionList Mozilla VTTRegionList documentation>
+newtype VTTRegionList = VTTRegionList { unVTTRegionList :: JSVal }
+
+instance Eq (VTTRegionList) where
+  (VTTRegionList a) == (VTTRegionList b) = js_eq a b
+
+instance PToJSVal VTTRegionList where
+  pToJSVal = unVTTRegionList
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal VTTRegionList where
+  pFromJSVal = VTTRegionList
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal VTTRegionList where
+  toJSVal = return . unVTTRegionList
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal VTTRegionList where
+  fromJSVal = return . fmap VTTRegionList . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject VTTRegionList where
+  typeGType _ = gTypeVTTRegionList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"VTTRegionList\"]" gTypeVTTRegionList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.ValidityState".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/ValidityState Mozilla ValidityState documentation>
+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 #-}
+
+instance IsGObject ValidityState where
+  typeGType _ = gTypeValidityState
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"ValidityState\"]" gTypeValidityState :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.VideoPlaybackQuality".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/VideoPlaybackQuality Mozilla VideoPlaybackQuality documentation>
+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 #-}
+
+instance IsGObject VideoPlaybackQuality where
+  typeGType _ = gTypeVideoPlaybackQuality
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"VideoPlaybackQuality\"]" gTypeVideoPlaybackQuality :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.VideoTrack".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrack Mozilla VideoTrack documentation>
+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 #-}
+
+instance IsGObject VideoTrack where
+  typeGType _ = gTypeVideoTrack
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"VideoTrack\"]" gTypeVideoTrack :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.VideoTrackList".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/VideoTrackList Mozilla VideoTrackList documentation>
+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 #-}
+
+instance IsEventTarget VideoTrackList
+instance IsGObject VideoTrackList where
+  typeGType _ = gTypeVideoTrackList
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"VideoTrackList\"]" gTypeVideoTrackList :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WaveShaperNode".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.AudioNode"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WaveShaperNode Mozilla WaveShaperNode documentation>
+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 #-}
+
+instance IsAudioNode WaveShaperNode
+instance IsEventTarget WaveShaperNode
+instance IsGObject WaveShaperNode where
+  typeGType _ = gTypeWaveShaperNode
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WaveShaperNode\"]" gTypeWaveShaperNode :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGL2RenderingContext".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.WebGLRenderingContextBase"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext Mozilla WebGL2RenderingContext documentation>
+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 #-}
+
+instance IsWebGLRenderingContextBase WebGL2RenderingContext
+instance IsGObject WebGL2RenderingContext where
+  typeGType _ = gTypeWebGL2RenderingContext
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGL2RenderingContext\"]" gTypeWebGL2RenderingContext :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLActiveInfo".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLActiveInfo Mozilla WebGLActiveInfo documentation>
+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 #-}
+
+instance IsGObject WebGLActiveInfo where
+  typeGType _ = gTypeWebGLActiveInfo
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLActiveInfo\"]" gTypeWebGLActiveInfo :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLBuffer".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer Mozilla WebGLBuffer documentation>
+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 #-}
+
+instance IsGObject WebGLBuffer where
+  typeGType _ = gTypeWebGLBuffer
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLBuffer\"]" gTypeWebGLBuffer :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLCompressedTextureATC".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTextureATC Mozilla WebGLCompressedTextureATC documentation>
+newtype WebGLCompressedTextureATC = WebGLCompressedTextureATC { unWebGLCompressedTextureATC :: JSVal }
+
+instance Eq (WebGLCompressedTextureATC) where
+  (WebGLCompressedTextureATC a) == (WebGLCompressedTextureATC b) = js_eq a b
+
+instance PToJSVal WebGLCompressedTextureATC where
+  pToJSVal = unWebGLCompressedTextureATC
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebGLCompressedTextureATC where
+  pFromJSVal = WebGLCompressedTextureATC
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebGLCompressedTextureATC where
+  toJSVal = return . unWebGLCompressedTextureATC
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebGLCompressedTextureATC where
+  fromJSVal = return . fmap WebGLCompressedTextureATC . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebGLCompressedTextureATC where
+  typeGType _ = gTypeWebGLCompressedTextureATC
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLCompressedTextureATC\"]" gTypeWebGLCompressedTextureATC :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLCompressedTexturePVRTC".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTexturePVRTC Mozilla WebGLCompressedTexturePVRTC documentation>
+newtype WebGLCompressedTexturePVRTC = WebGLCompressedTexturePVRTC { unWebGLCompressedTexturePVRTC :: JSVal }
+
+instance Eq (WebGLCompressedTexturePVRTC) where
+  (WebGLCompressedTexturePVRTC a) == (WebGLCompressedTexturePVRTC b) = js_eq a b
+
+instance PToJSVal WebGLCompressedTexturePVRTC where
+  pToJSVal = unWebGLCompressedTexturePVRTC
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebGLCompressedTexturePVRTC where
+  pFromJSVal = WebGLCompressedTexturePVRTC
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebGLCompressedTexturePVRTC where
+  toJSVal = return . unWebGLCompressedTexturePVRTC
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebGLCompressedTexturePVRTC where
+  fromJSVal = return . fmap WebGLCompressedTexturePVRTC . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebGLCompressedTexturePVRTC where
+  typeGType _ = gTypeWebGLCompressedTexturePVRTC
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLCompressedTexturePVRTC\"]" gTypeWebGLCompressedTexturePVRTC :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLCompressedTextureS3TC".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLCompressedTextureS3TC Mozilla WebGLCompressedTextureS3TC documentation>
+newtype WebGLCompressedTextureS3TC = WebGLCompressedTextureS3TC { unWebGLCompressedTextureS3TC :: JSVal }
+
+instance Eq (WebGLCompressedTextureS3TC) where
+  (WebGLCompressedTextureS3TC a) == (WebGLCompressedTextureS3TC b) = js_eq a b
+
+instance PToJSVal WebGLCompressedTextureS3TC where
+  pToJSVal = unWebGLCompressedTextureS3TC
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebGLCompressedTextureS3TC where
+  pFromJSVal = WebGLCompressedTextureS3TC
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebGLCompressedTextureS3TC where
+  toJSVal = return . unWebGLCompressedTextureS3TC
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebGLCompressedTextureS3TC where
+  fromJSVal = return . fmap WebGLCompressedTextureS3TC . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebGLCompressedTextureS3TC where
+  typeGType _ = gTypeWebGLCompressedTextureS3TC
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLCompressedTextureS3TC\"]" gTypeWebGLCompressedTextureS3TC :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLContextAttributes".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes Mozilla WebGLContextAttributes documentation>
+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 #-}
+
+instance IsGObject WebGLContextAttributes where
+  typeGType _ = gTypeWebGLContextAttributes
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLContextAttributes\"]" gTypeWebGLContextAttributes :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLContextEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextEvent Mozilla WebGLContextEvent documentation>
+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 #-}
+
+instance IsEvent WebGLContextEvent
+instance IsGObject WebGLContextEvent where
+  typeGType _ = gTypeWebGLContextEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLContextEvent\"]" gTypeWebGLContextEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLContextEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextEventInit Mozilla WebGLContextEventInit documentation>
+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 #-}
+
+instance IsEventInit WebGLContextEventInit
+instance IsGObject WebGLContextEventInit where
+  typeGType _ = gTypeWebGLContextEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLContextEventInit\"]" gTypeWebGLContextEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLDebugRendererInfo".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugRendererInfo Mozilla WebGLDebugRendererInfo documentation>
+newtype WebGLDebugRendererInfo = WebGLDebugRendererInfo { unWebGLDebugRendererInfo :: JSVal }
+
+instance Eq (WebGLDebugRendererInfo) where
+  (WebGLDebugRendererInfo a) == (WebGLDebugRendererInfo b) = js_eq a b
+
+instance PToJSVal WebGLDebugRendererInfo where
+  pToJSVal = unWebGLDebugRendererInfo
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebGLDebugRendererInfo where
+  pFromJSVal = WebGLDebugRendererInfo
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebGLDebugRendererInfo where
+  toJSVal = return . unWebGLDebugRendererInfo
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebGLDebugRendererInfo where
+  fromJSVal = return . fmap WebGLDebugRendererInfo . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebGLDebugRendererInfo where
+  typeGType _ = gTypeWebGLDebugRendererInfo
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLDebugRendererInfo\"]" gTypeWebGLDebugRendererInfo :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLDebugShaders".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDebugShaders Mozilla WebGLDebugShaders documentation>
+newtype WebGLDebugShaders = WebGLDebugShaders { unWebGLDebugShaders :: JSVal }
+
+instance Eq (WebGLDebugShaders) where
+  (WebGLDebugShaders a) == (WebGLDebugShaders b) = js_eq a b
+
+instance PToJSVal WebGLDebugShaders where
+  pToJSVal = unWebGLDebugShaders
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebGLDebugShaders where
+  pFromJSVal = WebGLDebugShaders
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebGLDebugShaders where
+  toJSVal = return . unWebGLDebugShaders
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebGLDebugShaders where
+  fromJSVal = return . fmap WebGLDebugShaders . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebGLDebugShaders where
+  typeGType _ = gTypeWebGLDebugShaders
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLDebugShaders\"]" gTypeWebGLDebugShaders :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLDepthTexture".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDepthTexture Mozilla WebGLDepthTexture documentation>
+newtype WebGLDepthTexture = WebGLDepthTexture { unWebGLDepthTexture :: JSVal }
+
+instance Eq (WebGLDepthTexture) where
+  (WebGLDepthTexture a) == (WebGLDepthTexture b) = js_eq a b
+
+instance PToJSVal WebGLDepthTexture where
+  pToJSVal = unWebGLDepthTexture
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebGLDepthTexture where
+  pFromJSVal = WebGLDepthTexture
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebGLDepthTexture where
+  toJSVal = return . unWebGLDepthTexture
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebGLDepthTexture where
+  fromJSVal = return . fmap WebGLDepthTexture . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebGLDepthTexture where
+  typeGType _ = gTypeWebGLDepthTexture
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLDepthTexture\"]" gTypeWebGLDepthTexture :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLDrawBuffers".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLDrawBuffers Mozilla WebGLDrawBuffers documentation>
+newtype WebGLDrawBuffers = WebGLDrawBuffers { unWebGLDrawBuffers :: JSVal }
+
+instance Eq (WebGLDrawBuffers) where
+  (WebGLDrawBuffers a) == (WebGLDrawBuffers b) = js_eq a b
+
+instance PToJSVal WebGLDrawBuffers where
+  pToJSVal = unWebGLDrawBuffers
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebGLDrawBuffers where
+  pFromJSVal = WebGLDrawBuffers
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebGLDrawBuffers where
+  toJSVal = return . unWebGLDrawBuffers
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebGLDrawBuffers where
+  fromJSVal = return . fmap WebGLDrawBuffers . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebGLDrawBuffers where
+  typeGType _ = gTypeWebGLDrawBuffers
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLDrawBuffers\"]" gTypeWebGLDrawBuffers :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLFramebuffer".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLFramebuffer Mozilla WebGLFramebuffer documentation>
+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 #-}
+
+instance IsGObject WebGLFramebuffer where
+  typeGType _ = gTypeWebGLFramebuffer
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLFramebuffer\"]" gTypeWebGLFramebuffer :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLLoseContext".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLLoseContext Mozilla WebGLLoseContext documentation>
+newtype WebGLLoseContext = WebGLLoseContext { unWebGLLoseContext :: JSVal }
+
+instance Eq (WebGLLoseContext) where
+  (WebGLLoseContext a) == (WebGLLoseContext b) = js_eq a b
+
+instance PToJSVal WebGLLoseContext where
+  pToJSVal = unWebGLLoseContext
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebGLLoseContext where
+  pFromJSVal = WebGLLoseContext
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebGLLoseContext where
+  toJSVal = return . unWebGLLoseContext
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebGLLoseContext where
+  fromJSVal = return . fmap WebGLLoseContext . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebGLLoseContext where
+  typeGType _ = gTypeWebGLLoseContext
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLLoseContext\"]" gTypeWebGLLoseContext :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLProgram".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLProgram Mozilla WebGLProgram documentation>
+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 #-}
+
+instance IsGObject WebGLProgram where
+  typeGType _ = gTypeWebGLProgram
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLProgram\"]" gTypeWebGLProgram :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLQuery".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLQuery Mozilla WebGLQuery documentation>
+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 #-}
+
+instance IsGObject WebGLQuery where
+  typeGType _ = gTypeWebGLQuery
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLQuery\"]" gTypeWebGLQuery :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLRenderbuffer".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderbuffer Mozilla WebGLRenderbuffer documentation>
+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 #-}
+
+instance IsGObject WebGLRenderbuffer where
+  typeGType _ = gTypeWebGLRenderbuffer
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLRenderbuffer\"]" gTypeWebGLRenderbuffer :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLRenderingContext".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.WebGLRenderingContextBase"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext Mozilla WebGLRenderingContext documentation>
+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 #-}
+
+instance IsWebGLRenderingContextBase WebGLRenderingContext
+instance IsGObject WebGLRenderingContext where
+  typeGType _ = gTypeWebGLRenderingContext
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLRenderingContext\"]" gTypeWebGLRenderingContext :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLRenderingContextBase".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContextBase Mozilla WebGLRenderingContextBase documentation>
+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 #-}
+
+class (IsGObject o) => IsWebGLRenderingContextBase o
+toWebGLRenderingContextBase :: IsWebGLRenderingContextBase o => o -> WebGLRenderingContextBase
+toWebGLRenderingContextBase = WebGLRenderingContextBase . coerce
+
+instance IsWebGLRenderingContextBase WebGLRenderingContextBase
+instance IsGObject WebGLRenderingContextBase where
+  typeGType _ = gTypeWebGLRenderingContextBase
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLRenderingContextBase\"]" gTypeWebGLRenderingContextBase :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLSampler".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLSampler Mozilla WebGLSampler documentation>
+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 #-}
+
+instance IsGObject WebGLSampler where
+  typeGType _ = gTypeWebGLSampler
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLSampler\"]" gTypeWebGLSampler :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLShader".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLShader Mozilla WebGLShader documentation>
+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 #-}
+
+instance IsGObject WebGLShader where
+  typeGType _ = gTypeWebGLShader
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLShader\"]" gTypeWebGLShader :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLShaderPrecisionFormat".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLShaderPrecisionFormat Mozilla WebGLShaderPrecisionFormat documentation>
+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 #-}
+
+instance IsGObject WebGLShaderPrecisionFormat where
+  typeGType _ = gTypeWebGLShaderPrecisionFormat
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLShaderPrecisionFormat\"]" gTypeWebGLShaderPrecisionFormat :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLSync".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLSync Mozilla WebGLSync documentation>
+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 #-}
+
+instance IsGObject WebGLSync where
+  typeGType _ = gTypeWebGLSync
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLSync\"]" gTypeWebGLSync :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLTexture".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLTexture Mozilla WebGLTexture documentation>
+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 #-}
+
+instance IsGObject WebGLTexture where
+  typeGType _ = gTypeWebGLTexture
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLTexture\"]" gTypeWebGLTexture :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLTransformFeedback".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLTransformFeedback Mozilla WebGLTransformFeedback documentation>
+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 #-}
+
+instance IsGObject WebGLTransformFeedback where
+  typeGType _ = gTypeWebGLTransformFeedback
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLTransformFeedback\"]" gTypeWebGLTransformFeedback :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLUniformLocation".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLUniformLocation Mozilla WebGLUniformLocation documentation>
+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 #-}
+
+instance IsGObject WebGLUniformLocation where
+  typeGType _ = gTypeWebGLUniformLocation
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLUniformLocation\"]" gTypeWebGLUniformLocation :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLVertexArrayObject".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLVertexArrayObject Mozilla WebGLVertexArrayObject documentation>
+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 #-}
+
+instance IsGObject WebGLVertexArrayObject where
+  typeGType _ = gTypeWebGLVertexArrayObject
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLVertexArrayObject\"]" gTypeWebGLVertexArrayObject :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebGLVertexArrayObjectOES".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebGLVertexArrayObjectOES Mozilla WebGLVertexArrayObjectOES documentation>
+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 #-}
+
+instance IsGObject WebGLVertexArrayObjectOES where
+  typeGType _ = gTypeWebGLVertexArrayObjectOES
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebGLVertexArrayObjectOES\"]" gTypeWebGLVertexArrayObjectOES :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitAnimationEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitAnimationEvent Mozilla WebKitAnimationEvent documentation>
+newtype WebKitAnimationEvent = WebKitAnimationEvent { unWebKitAnimationEvent :: JSVal }
+
+instance Eq (WebKitAnimationEvent) where
+  (WebKitAnimationEvent a) == (WebKitAnimationEvent b) = js_eq a b
+
+instance PToJSVal WebKitAnimationEvent where
+  pToJSVal = unWebKitAnimationEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitAnimationEvent where
+  pFromJSVal = WebKitAnimationEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitAnimationEvent where
+  toJSVal = return . unWebKitAnimationEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitAnimationEvent where
+  fromJSVal = return . fmap WebKitAnimationEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent WebKitAnimationEvent
+instance IsGObject WebKitAnimationEvent where
+  typeGType _ = gTypeWebKitAnimationEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitAnimationEvent\"]" gTypeWebKitAnimationEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitAnimationEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitAnimationEventInit Mozilla WebKitAnimationEventInit documentation>
+newtype WebKitAnimationEventInit = WebKitAnimationEventInit { unWebKitAnimationEventInit :: JSVal }
+
+instance Eq (WebKitAnimationEventInit) where
+  (WebKitAnimationEventInit a) == (WebKitAnimationEventInit b) = js_eq a b
+
+instance PToJSVal WebKitAnimationEventInit where
+  pToJSVal = unWebKitAnimationEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitAnimationEventInit where
+  pFromJSVal = WebKitAnimationEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitAnimationEventInit where
+  toJSVal = return . unWebKitAnimationEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitAnimationEventInit where
+  fromJSVal = return . fmap WebKitAnimationEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit WebKitAnimationEventInit
+instance IsGObject WebKitAnimationEventInit where
+  typeGType _ = gTypeWebKitAnimationEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitAnimationEventInit\"]" gTypeWebKitAnimationEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitCSSMatrix".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSMatrix Mozilla WebKitCSSMatrix documentation>
+newtype WebKitCSSMatrix = WebKitCSSMatrix { unWebKitCSSMatrix :: JSVal }
+
+instance Eq (WebKitCSSMatrix) where
+  (WebKitCSSMatrix a) == (WebKitCSSMatrix b) = js_eq a b
+
+instance PToJSVal WebKitCSSMatrix where
+  pToJSVal = unWebKitCSSMatrix
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitCSSMatrix where
+  pFromJSVal = WebKitCSSMatrix
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitCSSMatrix where
+  toJSVal = return . unWebKitCSSMatrix
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitCSSMatrix where
+  fromJSVal = return . fmap WebKitCSSMatrix . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebKitCSSMatrix where
+  typeGType _ = gTypeWebKitCSSMatrix
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitCSSMatrix\"]" gTypeWebKitCSSMatrix :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitCSSRegionRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSRegionRule Mozilla WebKitCSSRegionRule documentation>
+newtype WebKitCSSRegionRule = WebKitCSSRegionRule { unWebKitCSSRegionRule :: JSVal }
+
+instance Eq (WebKitCSSRegionRule) where
+  (WebKitCSSRegionRule a) == (WebKitCSSRegionRule b) = js_eq a b
+
+instance PToJSVal WebKitCSSRegionRule where
+  pToJSVal = unWebKitCSSRegionRule
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitCSSRegionRule where
+  pFromJSVal = WebKitCSSRegionRule
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitCSSRegionRule where
+  toJSVal = return . unWebKitCSSRegionRule
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitCSSRegionRule where
+  fromJSVal = return . fmap WebKitCSSRegionRule . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsCSSRule WebKitCSSRegionRule
+instance IsGObject WebKitCSSRegionRule where
+  typeGType _ = gTypeWebKitCSSRegionRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitCSSRegionRule\"]" gTypeWebKitCSSRegionRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitCSSViewportRule".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.CSSRule"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitCSSViewportRule Mozilla WebKitCSSViewportRule documentation>
+newtype WebKitCSSViewportRule = WebKitCSSViewportRule { unWebKitCSSViewportRule :: JSVal }
+
+instance Eq (WebKitCSSViewportRule) where
+  (WebKitCSSViewportRule a) == (WebKitCSSViewportRule b) = js_eq a b
+
+instance PToJSVal WebKitCSSViewportRule where
+  pToJSVal = unWebKitCSSViewportRule
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitCSSViewportRule where
+  pFromJSVal = WebKitCSSViewportRule
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitCSSViewportRule where
+  toJSVal = return . unWebKitCSSViewportRule
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitCSSViewportRule where
+  fromJSVal = return . fmap WebKitCSSViewportRule . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsCSSRule WebKitCSSViewportRule
+instance IsGObject WebKitCSSViewportRule where
+  typeGType _ = gTypeWebKitCSSViewportRule
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitCSSViewportRule\"]" gTypeWebKitCSSViewportRule :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitMediaKeyError".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyError Mozilla WebKitMediaKeyError documentation>
+newtype WebKitMediaKeyError = WebKitMediaKeyError { unWebKitMediaKeyError :: JSVal }
+
+instance Eq (WebKitMediaKeyError) where
+  (WebKitMediaKeyError a) == (WebKitMediaKeyError b) = js_eq a b
+
+instance PToJSVal WebKitMediaKeyError where
+  pToJSVal = unWebKitMediaKeyError
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitMediaKeyError where
+  pFromJSVal = WebKitMediaKeyError
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitMediaKeyError where
+  toJSVal = return . unWebKitMediaKeyError
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitMediaKeyError where
+  fromJSVal = return . fmap WebKitMediaKeyError . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebKitMediaKeyError where
+  typeGType _ = gTypeWebKitMediaKeyError
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitMediaKeyError\"]" gTypeWebKitMediaKeyError :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitMediaKeyMessageEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEvent Mozilla WebKitMediaKeyMessageEvent documentation>
+newtype WebKitMediaKeyMessageEvent = WebKitMediaKeyMessageEvent { unWebKitMediaKeyMessageEvent :: JSVal }
+
+instance Eq (WebKitMediaKeyMessageEvent) where
+  (WebKitMediaKeyMessageEvent a) == (WebKitMediaKeyMessageEvent b) = js_eq a b
+
+instance PToJSVal WebKitMediaKeyMessageEvent where
+  pToJSVal = unWebKitMediaKeyMessageEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitMediaKeyMessageEvent where
+  pFromJSVal = WebKitMediaKeyMessageEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitMediaKeyMessageEvent where
+  toJSVal = return . unWebKitMediaKeyMessageEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitMediaKeyMessageEvent where
+  fromJSVal = return . fmap WebKitMediaKeyMessageEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent WebKitMediaKeyMessageEvent
+instance IsGObject WebKitMediaKeyMessageEvent where
+  typeGType _ = gTypeWebKitMediaKeyMessageEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitMediaKeyMessageEvent\"]" gTypeWebKitMediaKeyMessageEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitMediaKeyMessageEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyMessageEventInit Mozilla WebKitMediaKeyMessageEventInit documentation>
+newtype WebKitMediaKeyMessageEventInit = WebKitMediaKeyMessageEventInit { unWebKitMediaKeyMessageEventInit :: JSVal }
+
+instance Eq (WebKitMediaKeyMessageEventInit) where
+  (WebKitMediaKeyMessageEventInit a) == (WebKitMediaKeyMessageEventInit b) = js_eq a b
+
+instance PToJSVal WebKitMediaKeyMessageEventInit where
+  pToJSVal = unWebKitMediaKeyMessageEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitMediaKeyMessageEventInit where
+  pFromJSVal = WebKitMediaKeyMessageEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitMediaKeyMessageEventInit where
+  toJSVal = return . unWebKitMediaKeyMessageEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitMediaKeyMessageEventInit where
+  fromJSVal = return . fmap WebKitMediaKeyMessageEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit WebKitMediaKeyMessageEventInit
+instance IsGObject WebKitMediaKeyMessageEventInit where
+  typeGType _ = gTypeWebKitMediaKeyMessageEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitMediaKeyMessageEventInit\"]" gTypeWebKitMediaKeyMessageEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitMediaKeyNeededEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyNeededEvent Mozilla WebKitMediaKeyNeededEvent documentation>
+newtype WebKitMediaKeyNeededEvent = WebKitMediaKeyNeededEvent { unWebKitMediaKeyNeededEvent :: JSVal }
+
+instance Eq (WebKitMediaKeyNeededEvent) where
+  (WebKitMediaKeyNeededEvent a) == (WebKitMediaKeyNeededEvent b) = js_eq a b
+
+instance PToJSVal WebKitMediaKeyNeededEvent where
+  pToJSVal = unWebKitMediaKeyNeededEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitMediaKeyNeededEvent where
+  pFromJSVal = WebKitMediaKeyNeededEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitMediaKeyNeededEvent where
+  toJSVal = return . unWebKitMediaKeyNeededEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitMediaKeyNeededEvent where
+  fromJSVal = return . fmap WebKitMediaKeyNeededEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent WebKitMediaKeyNeededEvent
+instance IsGObject WebKitMediaKeyNeededEvent where
+  typeGType _ = gTypeWebKitMediaKeyNeededEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitMediaKeyNeededEvent\"]" gTypeWebKitMediaKeyNeededEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitMediaKeyNeededEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeyNeededEventInit Mozilla WebKitMediaKeyNeededEventInit documentation>
+newtype WebKitMediaKeyNeededEventInit = WebKitMediaKeyNeededEventInit { unWebKitMediaKeyNeededEventInit :: JSVal }
+
+instance Eq (WebKitMediaKeyNeededEventInit) where
+  (WebKitMediaKeyNeededEventInit a) == (WebKitMediaKeyNeededEventInit b) = js_eq a b
+
+instance PToJSVal WebKitMediaKeyNeededEventInit where
+  pToJSVal = unWebKitMediaKeyNeededEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitMediaKeyNeededEventInit where
+  pFromJSVal = WebKitMediaKeyNeededEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitMediaKeyNeededEventInit where
+  toJSVal = return . unWebKitMediaKeyNeededEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitMediaKeyNeededEventInit where
+  fromJSVal = return . fmap WebKitMediaKeyNeededEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit WebKitMediaKeyNeededEventInit
+instance IsGObject WebKitMediaKeyNeededEventInit where
+  typeGType _ = gTypeWebKitMediaKeyNeededEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitMediaKeyNeededEventInit\"]" gTypeWebKitMediaKeyNeededEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitMediaKeySession".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeySession Mozilla WebKitMediaKeySession documentation>
+newtype WebKitMediaKeySession = WebKitMediaKeySession { unWebKitMediaKeySession :: JSVal }
+
+instance Eq (WebKitMediaKeySession) where
+  (WebKitMediaKeySession a) == (WebKitMediaKeySession b) = js_eq a b
+
+instance PToJSVal WebKitMediaKeySession where
+  pToJSVal = unWebKitMediaKeySession
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitMediaKeySession where
+  pFromJSVal = WebKitMediaKeySession
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitMediaKeySession where
+  toJSVal = return . unWebKitMediaKeySession
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitMediaKeySession where
+  fromJSVal = return . fmap WebKitMediaKeySession . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventTarget WebKitMediaKeySession
+instance IsGObject WebKitMediaKeySession where
+  typeGType _ = gTypeWebKitMediaKeySession
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitMediaKeySession\"]" gTypeWebKitMediaKeySession :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitMediaKeys".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitMediaKeys Mozilla WebKitMediaKeys documentation>
+newtype WebKitMediaKeys = WebKitMediaKeys { unWebKitMediaKeys :: JSVal }
+
+instance Eq (WebKitMediaKeys) where
+  (WebKitMediaKeys a) == (WebKitMediaKeys b) = js_eq a b
+
+instance PToJSVal WebKitMediaKeys where
+  pToJSVal = unWebKitMediaKeys
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitMediaKeys where
+  pFromJSVal = WebKitMediaKeys
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitMediaKeys where
+  toJSVal = return . unWebKitMediaKeys
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitMediaKeys where
+  fromJSVal = return . fmap WebKitMediaKeys . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebKitMediaKeys where
+  typeGType _ = gTypeWebKitMediaKeys
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitMediaKeys\"]" gTypeWebKitMediaKeys :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitNamedFlow".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamedFlow Mozilla WebKitNamedFlow documentation>
+newtype WebKitNamedFlow = WebKitNamedFlow { unWebKitNamedFlow :: JSVal }
+
+instance Eq (WebKitNamedFlow) where
+  (WebKitNamedFlow a) == (WebKitNamedFlow b) = js_eq a b
+
+instance PToJSVal WebKitNamedFlow where
+  pToJSVal = unWebKitNamedFlow
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitNamedFlow where
+  pFromJSVal = WebKitNamedFlow
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitNamedFlow where
+  toJSVal = return . unWebKitNamedFlow
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitNamedFlow where
+  fromJSVal = return . fmap WebKitNamedFlow . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventTarget WebKitNamedFlow
+instance IsGObject WebKitNamedFlow where
+  typeGType _ = gTypeWebKitNamedFlow
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitNamedFlow\"]" gTypeWebKitNamedFlow :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitNamespace".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitNamespace Mozilla WebKitNamespace documentation>
+newtype WebKitNamespace = WebKitNamespace { unWebKitNamespace :: JSVal }
+
+instance Eq (WebKitNamespace) where
+  (WebKitNamespace a) == (WebKitNamespace b) = js_eq a b
+
+instance PToJSVal WebKitNamespace where
+  pToJSVal = unWebKitNamespace
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitNamespace where
+  pFromJSVal = WebKitNamespace
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitNamespace where
+  toJSVal = return . unWebKitNamespace
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitNamespace where
+  fromJSVal = return . fmap WebKitNamespace . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebKitNamespace where
+  typeGType _ = gTypeWebKitNamespace
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitNamespace\"]" gTypeWebKitNamespace :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitPlaybackTargetAvailabilityEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPlaybackTargetAvailabilityEvent Mozilla WebKitPlaybackTargetAvailabilityEvent documentation>
+newtype WebKitPlaybackTargetAvailabilityEvent = WebKitPlaybackTargetAvailabilityEvent { unWebKitPlaybackTargetAvailabilityEvent :: JSVal }
+
+instance Eq (WebKitPlaybackTargetAvailabilityEvent) where
+  (WebKitPlaybackTargetAvailabilityEvent a) == (WebKitPlaybackTargetAvailabilityEvent b) = js_eq a b
+
+instance PToJSVal WebKitPlaybackTargetAvailabilityEvent where
+  pToJSVal = unWebKitPlaybackTargetAvailabilityEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitPlaybackTargetAvailabilityEvent where
+  pFromJSVal = WebKitPlaybackTargetAvailabilityEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitPlaybackTargetAvailabilityEvent where
+  toJSVal = return . unWebKitPlaybackTargetAvailabilityEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitPlaybackTargetAvailabilityEvent where
+  fromJSVal = return . fmap WebKitPlaybackTargetAvailabilityEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent WebKitPlaybackTargetAvailabilityEvent
+instance IsGObject WebKitPlaybackTargetAvailabilityEvent where
+  typeGType _ = gTypeWebKitPlaybackTargetAvailabilityEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitPlaybackTargetAvailabilityEvent\"]" gTypeWebKitPlaybackTargetAvailabilityEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitPlaybackTargetAvailabilityEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPlaybackTargetAvailabilityEventInit Mozilla WebKitPlaybackTargetAvailabilityEventInit documentation>
+newtype WebKitPlaybackTargetAvailabilityEventInit = WebKitPlaybackTargetAvailabilityEventInit { unWebKitPlaybackTargetAvailabilityEventInit :: JSVal }
+
+instance Eq (WebKitPlaybackTargetAvailabilityEventInit) where
+  (WebKitPlaybackTargetAvailabilityEventInit a) == (WebKitPlaybackTargetAvailabilityEventInit b) = js_eq a b
+
+instance PToJSVal WebKitPlaybackTargetAvailabilityEventInit where
+  pToJSVal = unWebKitPlaybackTargetAvailabilityEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitPlaybackTargetAvailabilityEventInit where
+  pFromJSVal = WebKitPlaybackTargetAvailabilityEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitPlaybackTargetAvailabilityEventInit where
+  toJSVal = return . unWebKitPlaybackTargetAvailabilityEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitPlaybackTargetAvailabilityEventInit where
+  fromJSVal = return . fmap WebKitPlaybackTargetAvailabilityEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit WebKitPlaybackTargetAvailabilityEventInit
+instance IsGObject WebKitPlaybackTargetAvailabilityEventInit where
+  typeGType _ = gTypeWebKitPlaybackTargetAvailabilityEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitPlaybackTargetAvailabilityEventInit\"]" gTypeWebKitPlaybackTargetAvailabilityEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitPoint".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitPoint Mozilla WebKitPoint documentation>
+newtype WebKitPoint = WebKitPoint { unWebKitPoint :: JSVal }
+
+instance Eq (WebKitPoint) where
+  (WebKitPoint a) == (WebKitPoint b) = js_eq a b
+
+instance PToJSVal WebKitPoint where
+  pToJSVal = unWebKitPoint
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitPoint where
+  pFromJSVal = WebKitPoint
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitPoint where
+  toJSVal = return . unWebKitPoint
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitPoint where
+  fromJSVal = return . fmap WebKitPoint . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebKitPoint where
+  typeGType _ = gTypeWebKitPoint
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitPoint\"]" gTypeWebKitPoint :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitSubtleCrypto".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitSubtleCrypto Mozilla WebKitSubtleCrypto documentation>
+newtype WebKitSubtleCrypto = WebKitSubtleCrypto { unWebKitSubtleCrypto :: JSVal }
+
+instance Eq (WebKitSubtleCrypto) where
+  (WebKitSubtleCrypto a) == (WebKitSubtleCrypto b) = js_eq a b
+
+instance PToJSVal WebKitSubtleCrypto where
+  pToJSVal = unWebKitSubtleCrypto
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitSubtleCrypto where
+  pFromJSVal = WebKitSubtleCrypto
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitSubtleCrypto where
+  toJSVal = return . unWebKitSubtleCrypto
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitSubtleCrypto where
+  fromJSVal = return . fmap WebKitSubtleCrypto . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject WebKitSubtleCrypto where
+  typeGType _ = gTypeWebKitSubtleCrypto
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitSubtleCrypto\"]" gTypeWebKitSubtleCrypto :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitTransitionEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitTransitionEvent Mozilla WebKitTransitionEvent documentation>
+newtype WebKitTransitionEvent = WebKitTransitionEvent { unWebKitTransitionEvent :: JSVal }
+
+instance Eq (WebKitTransitionEvent) where
+  (WebKitTransitionEvent a) == (WebKitTransitionEvent b) = js_eq a b
+
+instance PToJSVal WebKitTransitionEvent where
+  pToJSVal = unWebKitTransitionEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitTransitionEvent where
+  pFromJSVal = WebKitTransitionEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitTransitionEvent where
+  toJSVal = return . unWebKitTransitionEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitTransitionEvent where
+  fromJSVal = return . fmap WebKitTransitionEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEvent WebKitTransitionEvent
+instance IsGObject WebKitTransitionEvent where
+  typeGType _ = gTypeWebKitTransitionEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitTransitionEvent\"]" gTypeWebKitTransitionEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebKitTransitionEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebKitTransitionEventInit Mozilla WebKitTransitionEventInit documentation>
+newtype WebKitTransitionEventInit = WebKitTransitionEventInit { unWebKitTransitionEventInit :: JSVal }
+
+instance Eq (WebKitTransitionEventInit) where
+  (WebKitTransitionEventInit a) == (WebKitTransitionEventInit b) = js_eq a b
+
+instance PToJSVal WebKitTransitionEventInit where
+  pToJSVal = unWebKitTransitionEventInit
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal WebKitTransitionEventInit where
+  pFromJSVal = WebKitTransitionEventInit
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal WebKitTransitionEventInit where
+  toJSVal = return . unWebKitTransitionEventInit
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal WebKitTransitionEventInit where
+  fromJSVal = return . fmap WebKitTransitionEventInit . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsEventInit WebKitTransitionEventInit
+instance IsGObject WebKitTransitionEventInit where
+  typeGType _ = gTypeWebKitTransitionEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebKitTransitionEventInit\"]" gTypeWebKitTransitionEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WebSocket".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WebSocket Mozilla WebSocket documentation>
+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 #-}
+
+instance IsEventTarget WebSocket
+instance IsGObject WebSocket where
+  typeGType _ = gTypeWebSocket
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WebSocket\"]" gTypeWebSocket :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WheelEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.MouseEvent"
+--     * "GHCJS.DOM.UIEvent"
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent Mozilla WheelEvent documentation>
+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 #-}
+
+instance IsMouseEvent WheelEvent
+instance IsUIEvent WheelEvent
+instance IsEvent WheelEvent
+instance IsGObject WheelEvent where
+  typeGType _ = gTypeWheelEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WheelEvent\"]" gTypeWheelEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WheelEventInit".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.MouseEventInit"
+--     * "GHCJS.DOM.EventModifierInit"
+--     * "GHCJS.DOM.UIEventInit"
+--     * "GHCJS.DOM.EventInit"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WheelEventInit Mozilla WheelEventInit documentation>
+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 #-}
+
+instance IsMouseEventInit WheelEventInit
+instance IsEventModifierInit WheelEventInit
+instance IsUIEventInit WheelEventInit
+instance IsEventInit WheelEventInit
+instance IsGObject WheelEventInit where
+  typeGType _ = gTypeWheelEventInit
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WheelEventInit\"]" gTypeWheelEventInit :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Window".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.WindowOrWorkerGlobalScope"
+--     * "GHCJS.DOM.WindowEventHandlers"
+--     * "GHCJS.DOM.GlobalPerformance"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.GlobalCrypto"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Window Mozilla Window documentation>
+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 #-}
+
+instance IsEventTarget Window
+instance IsWindowOrWorkerGlobalScope Window
+instance IsWindowEventHandlers Window
+instance IsGlobalPerformance Window
+instance IsGlobalEventHandlers Window
+instance IsGlobalCrypto Window
+instance IsGObject Window where
+  typeGType _ = gTypeWindow
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Window\"]" gTypeWindow :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WindowEventHandlers".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers Mozilla WindowEventHandlers documentation>
+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 #-}
+
+class (IsGObject o) => IsWindowEventHandlers o
+toWindowEventHandlers :: IsWindowEventHandlers o => o -> WindowEventHandlers
+toWindowEventHandlers = WindowEventHandlers . coerce
+
+instance IsWindowEventHandlers WindowEventHandlers
+instance IsGObject WindowEventHandlers where
+  typeGType _ = gTypeWindowEventHandlers
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WindowEventHandlers\"]" gTypeWindowEventHandlers :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WindowOrWorkerGlobalScope".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope Mozilla WindowOrWorkerGlobalScope documentation>
+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 #-}
+
+class (IsGObject o) => IsWindowOrWorkerGlobalScope o
+toWindowOrWorkerGlobalScope :: IsWindowOrWorkerGlobalScope o => o -> WindowOrWorkerGlobalScope
+toWindowOrWorkerGlobalScope = WindowOrWorkerGlobalScope . coerce
+
+instance IsWindowOrWorkerGlobalScope WindowOrWorkerGlobalScope
+instance IsGObject WindowOrWorkerGlobalScope where
+  typeGType _ = gTypeWindowOrWorkerGlobalScope
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WindowOrWorkerGlobalScope\"]" gTypeWindowOrWorkerGlobalScope :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.Worker".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.AbstractWorker"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/Worker Mozilla Worker documentation>
+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 #-}
+
+instance IsEventTarget Worker
+instance IsAbstractWorker Worker
+instance IsGObject Worker where
+  typeGType _ = gTypeWorker
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"Worker\"]" gTypeWorker :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WorkerGlobalScope".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.WindowOrWorkerGlobalScope"
+--     * "GHCJS.DOM.GlobalPerformance"
+--     * "GHCJS.DOM.GlobalCrypto"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope Mozilla WorkerGlobalScope documentation>
+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 #-}
+
+class (IsEventTarget o, IsWindowOrWorkerGlobalScope o, IsGlobalPerformance o, IsGlobalCrypto o, IsGObject o) => IsWorkerGlobalScope o
+toWorkerGlobalScope :: IsWorkerGlobalScope o => o -> WorkerGlobalScope
+toWorkerGlobalScope = WorkerGlobalScope . coerce
+
+instance IsWorkerGlobalScope WorkerGlobalScope
+instance IsEventTarget WorkerGlobalScope
+instance IsWindowOrWorkerGlobalScope WorkerGlobalScope
+instance IsGlobalPerformance WorkerGlobalScope
+instance IsGlobalCrypto WorkerGlobalScope
+instance IsGObject WorkerGlobalScope where
+  typeGType _ = gTypeWorkerGlobalScope
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WorkerGlobalScope\"]" gTypeWorkerGlobalScope :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WorkerLocation".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WorkerLocation Mozilla WorkerLocation documentation>
+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 #-}
+
+instance IsGObject WorkerLocation where
+  typeGType _ = gTypeWorkerLocation
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WorkerLocation\"]" gTypeWorkerLocation :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WorkerNavigator".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.NavigatorOnLine"
+--     * "GHCJS.DOM.NavigatorLanguage"
+--     * "GHCJS.DOM.NavigatorID"
+--     * "GHCJS.DOM.NavigatorConcurrentHardware"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator Mozilla WorkerNavigator documentation>
+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 #-}
+
+instance IsNavigatorOnLine WorkerNavigator
+instance IsNavigatorLanguage WorkerNavigator
+instance IsNavigatorID WorkerNavigator
+instance IsNavigatorConcurrentHardware WorkerNavigator
+instance IsGObject WorkerNavigator where
+  typeGType _ = gTypeWorkerNavigator
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WorkerNavigator\"]" gTypeWorkerNavigator :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.WritableStream".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/WritableStream Mozilla WritableStream documentation>
+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 #-}
+
+instance IsGObject WritableStream where
+  typeGType _ = gTypeWritableStream
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"WritableStream\"]" gTypeWritableStream :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.XMLDocument".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.Document"
+--     * "GHCJS.DOM.Node"
+--     * "GHCJS.DOM.EventTarget"
+--     * "GHCJS.DOM.GlobalEventHandlers"
+--     * "GHCJS.DOM.DocumentOrShadowRoot"
+--     * "GHCJS.DOM.NonElementParentNode"
+--     * "GHCJS.DOM.ParentNode"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/XMLDocument Mozilla XMLDocument documentation>
+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 #-}
+
+instance IsDocument XMLDocument
+instance IsNode XMLDocument
+instance IsEventTarget XMLDocument
+instance IsGlobalEventHandlers XMLDocument
+instance IsDocumentOrShadowRoot XMLDocument
+instance IsNonElementParentNode XMLDocument
+instance IsParentNode XMLDocument
+instance IsGObject XMLDocument where
+  typeGType _ = gTypeXMLDocument
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"XMLDocument\"]" gTypeXMLDocument :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.XMLHttpRequest".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.XMLHttpRequestEventTarget"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest Mozilla XMLHttpRequest documentation>
+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 #-}
+
+instance IsXMLHttpRequestEventTarget XMLHttpRequest
+instance IsEventTarget XMLHttpRequest
+instance IsGObject XMLHttpRequest where
+  typeGType _ = gTypeXMLHttpRequest
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"XMLHttpRequest\"]" gTypeXMLHttpRequest :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.XMLHttpRequestEventTarget".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget Mozilla XMLHttpRequestEventTarget documentation>
+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 #-}
+
+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 #-}
+foreign import javascript unsafe "window[\"XMLHttpRequestEventTarget\"]" gTypeXMLHttpRequestEventTarget :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.XMLHttpRequestProgressEvent".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.ProgressEvent"
+--     * "GHCJS.DOM.Event"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestProgressEvent Mozilla XMLHttpRequestProgressEvent documentation>
+newtype XMLHttpRequestProgressEvent = XMLHttpRequestProgressEvent { unXMLHttpRequestProgressEvent :: JSVal }
+
+instance Eq (XMLHttpRequestProgressEvent) where
+  (XMLHttpRequestProgressEvent a) == (XMLHttpRequestProgressEvent b) = js_eq a b
+
+instance PToJSVal XMLHttpRequestProgressEvent where
+  pToJSVal = unXMLHttpRequestProgressEvent
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal XMLHttpRequestProgressEvent where
+  pFromJSVal = XMLHttpRequestProgressEvent
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal XMLHttpRequestProgressEvent where
+  toJSVal = return . unXMLHttpRequestProgressEvent
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal XMLHttpRequestProgressEvent where
+  fromJSVal = return . fmap XMLHttpRequestProgressEvent . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsProgressEvent XMLHttpRequestProgressEvent
+instance IsEvent XMLHttpRequestProgressEvent
+instance IsGObject XMLHttpRequestProgressEvent where
+  typeGType _ = gTypeXMLHttpRequestProgressEvent
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"XMLHttpRequestProgressEvent\"]" gTypeXMLHttpRequestProgressEvent :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.XMLHttpRequestUpload".
+-- Base interface functions are in:
+--
+--     * "GHCJS.DOM.XMLHttpRequestEventTarget"
+--     * "GHCJS.DOM.EventTarget"
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestUpload Mozilla XMLHttpRequestUpload documentation>
+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 #-}
+
+instance IsXMLHttpRequestEventTarget XMLHttpRequestUpload
+instance IsEventTarget XMLHttpRequestUpload
+instance IsGObject XMLHttpRequestUpload where
+  typeGType _ = gTypeXMLHttpRequestUpload
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"XMLHttpRequestUpload\"]" gTypeXMLHttpRequestUpload :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.XMLSerializer".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/XMLSerializer Mozilla XMLSerializer documentation>
+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 #-}
+
+instance IsGObject XMLSerializer where
+  typeGType _ = gTypeXMLSerializer
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"XMLSerializer\"]" gTypeXMLSerializer :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.XPathEvaluator".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/XPathEvaluator Mozilla XPathEvaluator documentation>
+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 #-}
+
+instance IsGObject XPathEvaluator where
+  typeGType _ = gTypeXPathEvaluator
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"XPathEvaluator\"]" gTypeXPathEvaluator :: GType
+
+-- | Functions for this inteface are in "GHCJS.DOM.XPathException".
+--
+-- <https://developer.mozilla.org/en-US/docs/Web/API/XPathException Mozilla XPathException documentation>
+newtype XPathException = XPathException { unXPathException :: JSVal }
+
+instance Eq (XPathException) where
+  (XPathException a) == (XPathException b) = js_eq a b
+
+instance PToJSVal XPathException where
+  pToJSVal = unXPathException
+  {-# INLINE pToJSVal #-}
+
+instance PFromJSVal XPathException where
+  pFromJSVal = XPathException
+  {-# INLINE pFromJSVal #-}
+
+instance ToJSVal XPathException where
+  toJSVal = return . unXPathException
+  {-# INLINE toJSVal #-}
+
+instance FromJSVal XPathException where
+  fromJSVal = return . fmap XPathException . maybeJSNullOrUndefined
+  {-# INLINE fromJSVal #-}
+
+instance IsGObject XPathException where
+  typeGType _ = gTypeXPathException
+  {-# INLINE typeGType #-}
+foreign import javascript unsafe "window[\"XPathException\"]" gTypeXPathException :: GType
 
 -- | Functions for this inteface are in "GHCJS.DOM.XPathExpression".
 --
