diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+Copyright (c) 2010-2012 Hamish Mackenzie, Victor Nazarov, Luite Stegeman
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
diff --git a/Setup.lhs b/Setup.lhs
new file mode 100644
--- /dev/null
+++ b/Setup.lhs
@@ -0,0 +1,6 @@
+#!/usr/bin/runhaskell 
+> module Main where
+> import Distribution.Simple
+> main :: IO ()
+> main = defaultMain
+
diff --git a/cbits/ghcjs_stubs.c b/cbits/ghcjs_stubs.c
new file mode 100644
--- /dev/null
+++ b/cbits/ghcjs_stubs.c
@@ -0,0 +1,4 @@
+void * ghcjs_currentWindow() { return 0; }
+
+void * ghcjs_currentDocument() { return 0; }
+
diff --git a/ghcjs-dom-webkit.cabal b/ghcjs-dom-webkit.cabal
new file mode 100644
--- /dev/null
+++ b/ghcjs-dom-webkit.cabal
@@ -0,0 +1,574 @@
+name: ghcjs-dom-webkit
+version: 0.3.1.0
+cabal-version: >=1.22
+build-type: Simple
+license: MIT
+license-file: LICENSE
+maintainer: Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>
+synopsis: DOM library that supports both GHCJS and WebKitGTK
+description: Documentent Object Model (DOM) functions that work with
+             GHCJS, but can also be used with GHC and WebKitGTK.
+author: Hamish Mackenzie
+data-dir: ""
+category: Web
+
+Source-Repository head
+  type:         git
+  location:     https://github.com/ghcjs/ghcjs-dom
+  subdir:       ghcjs-dom-webkit
+
+flag old-webkit
+    description: If you have an old version of WebKitGTK+ this will get ghcjs-dom
+                 to build, leaving out functions that are new or have changed.
+                 This option is mainly here to get the travis builds to work.
+    default: False
+
+flag gtk3
+    description: Use GTK3 rather than GTK2 (only matters when using webkit)
+    default: True
+
+library
+    build-depends: base <5,
+                   transformers >=0.3.0.0 && <0.6,
+                   text >= 0.11.0.6 && < 1.3,
+                   glib >=0.13.0.0 && <0.14
+
+    default-language: Haskell2010
+
+    hs-source-dirs: src
+    cpp-options: -DUSE_WEBKIT
+    if flag(gtk3)
+        build-depends: gtk3 >=0.13.0.0 && <0.15, webkitgtk3 >=0.14.0.0 && <0.15
+    else
+        build-depends: gtk >=0.13.0.0 && <0.14, webkit >=0.14.0.0 && <0.15
+    c-sources:      cbits/ghcjs_stubs.c
+
+    if flag(old-webkit)
+        cpp-options: -DUSE_OLD_WEBKIT
+
+    exposed: True
+    buildable: True
+
+    exposed-modules:
+          GHCJS.DOM
+          GHCJS.DOM.Types
+          GHCJS.DOM.EventM
+          GHCJS.DOM.EventTargetClosures
+
+          -- Generated by domconv-webkit-jsffi
+          GHCJS.DOM.ANGLEInstancedArrays
+          GHCJS.DOM.AbstractView
+          GHCJS.DOM.AbstractWorker
+          GHCJS.DOM.AllAudioCapabilities
+          GHCJS.DOM.AllVideoCapabilities
+          GHCJS.DOM.AnalyserNode
+          GHCJS.DOM.AnimationEvent
+          GHCJS.DOM.AudioBuffer
+          GHCJS.DOM.AudioBufferCallback
+          GHCJS.DOM.AudioBufferSourceNode
+          GHCJS.DOM.AudioContext
+          GHCJS.DOM.AudioDestinationNode
+          GHCJS.DOM.AudioListener
+          GHCJS.DOM.AudioNode
+          GHCJS.DOM.AudioParam
+          GHCJS.DOM.AudioProcessingEvent
+          GHCJS.DOM.AudioStreamTrack
+          GHCJS.DOM.AutocompleteErrorEvent
+          GHCJS.DOM.BeforeLoadEvent
+          GHCJS.DOM.BeforeUnloadEvent
+          GHCJS.DOM.BiquadFilterNode
+          GHCJS.DOM.CSSCharsetRule
+          GHCJS.DOM.CSSFontFaceLoadEvent
+          GHCJS.DOM.CSSFontFaceRule
+          GHCJS.DOM.CSSImportRule
+          GHCJS.DOM.CSSKeyframeRule
+          GHCJS.DOM.CSSKeyframesRule
+          GHCJS.DOM.CSSMediaRule
+          GHCJS.DOM.CSSPageRule
+          GHCJS.DOM.CSSPrimitiveValue
+          GHCJS.DOM.CSSStyleRule
+          GHCJS.DOM.CSSSupportsRule
+          GHCJS.DOM.CSSValueList
+          GHCJS.DOM.CanvasGradient
+          GHCJS.DOM.CanvasRenderingContext
+          GHCJS.DOM.CanvasRenderingContext2D
+          GHCJS.DOM.CapabilityRange
+          GHCJS.DOM.ChildNode
+          GHCJS.DOM.ClientRect
+          GHCJS.DOM.ClientRectList
+          GHCJS.DOM.CloseEvent
+          GHCJS.DOM.CommandLineAPIHost
+          GHCJS.DOM.Comment
+          GHCJS.DOM.CompositionEvent
+          GHCJS.DOM.ConvolverNode
+          GHCJS.DOM.Coordinates
+          GHCJS.DOM.Counter
+          GHCJS.DOM.Crypto
+          GHCJS.DOM.CryptoKey
+          GHCJS.DOM.CryptoKeyPair
+          GHCJS.DOM.CustomEvent
+          GHCJS.DOM.DOMError
+          GHCJS.DOM.DOMParser
+          GHCJS.DOM.DataCue
+          GHCJS.DOM.DataTransfer
+          GHCJS.DOM.DataTransferItem
+          GHCJS.DOM.DataTransferItemList
+          GHCJS.DOM.Database
+          GHCJS.DOM.DatabaseCallback
+          GHCJS.DOM.DedicatedWorkerGlobalScope
+          GHCJS.DOM.DelayNode
+          GHCJS.DOM.DeviceMotionEvent
+          GHCJS.DOM.DeviceOrientationEvent
+          GHCJS.DOM.DeviceProximityEvent
+          GHCJS.DOM.DocumentFragment
+          GHCJS.DOM.DynamicsCompressorNode
+          GHCJS.DOM.EXTBlendMinMax
+          GHCJS.DOM.EXTTextureFilterAnisotropic
+          GHCJS.DOM.EXTsRGB
+          GHCJS.DOM.Entity
+          GHCJS.DOM.ErrorEvent
+          GHCJS.DOM.EventListener
+          GHCJS.DOM.EventSource
+          GHCJS.DOM.FileError
+          GHCJS.DOM.FileReader
+          GHCJS.DOM.FileReaderSync
+          GHCJS.DOM.FocusEvent
+          GHCJS.DOM.FontLoader
+          GHCJS.DOM.FormData
+          GHCJS.DOM.GainNode
+          GHCJS.DOM.Gamepad
+          GHCJS.DOM.GamepadButton
+          GHCJS.DOM.GamepadEvent
+          GHCJS.DOM.Geoposition
+          GHCJS.DOM.HTMLAllCollection
+          GHCJS.DOM.HTMLDataListElement
+          GHCJS.DOM.HTMLFormControlsCollection
+          GHCJS.DOM.HTMLMeterElement
+          GHCJS.DOM.HTMLOutputElement
+          GHCJS.DOM.HTMLProgressElement
+          GHCJS.DOM.HTMLSourceElement
+          GHCJS.DOM.HTMLTemplateElement
+          GHCJS.DOM.HTMLTrackElement
+          GHCJS.DOM.HashChangeEvent
+          GHCJS.DOM.IDBCursor
+          GHCJS.DOM.IDBCursorWithValue
+          GHCJS.DOM.IDBDatabase
+          GHCJS.DOM.IDBFactory
+          GHCJS.DOM.IDBIndex
+          GHCJS.DOM.IDBKeyRange
+          GHCJS.DOM.IDBObjectStore
+          GHCJS.DOM.IDBOpenDBRequest
+          GHCJS.DOM.IDBRequest
+          GHCJS.DOM.IDBTransaction
+          GHCJS.DOM.IDBVersionChangeEvent
+          GHCJS.DOM.ImageData
+          GHCJS.DOM.InspectorFrontendHost
+          GHCJS.DOM.InternalSettings
+          GHCJS.DOM.Internals
+          GHCJS.DOM.MallocStatistics
+          GHCJS.DOM.MediaController
+          GHCJS.DOM.MediaControlsHost
+          GHCJS.DOM.MediaElementAudioSourceNode
+          GHCJS.DOM.MediaKeyError
+          GHCJS.DOM.MediaKeyEvent
+          GHCJS.DOM.MediaKeyMessageEvent
+          GHCJS.DOM.MediaKeyNeededEvent
+          GHCJS.DOM.MediaKeySession
+          GHCJS.DOM.MediaKeys
+          GHCJS.DOM.MediaQueryListListener
+          GHCJS.DOM.MediaSource
+          GHCJS.DOM.MediaSourceStates
+          GHCJS.DOM.MediaStream
+          GHCJS.DOM.MediaStreamAudioDestinationNode
+          GHCJS.DOM.MediaStreamAudioSourceNode
+          GHCJS.DOM.MediaStreamEvent
+          GHCJS.DOM.MediaStreamTrack
+          GHCJS.DOM.MediaStreamTrackEvent
+          GHCJS.DOM.MediaStreamTrackSourcesCallback
+          GHCJS.DOM.MediaTrackConstraints
+          GHCJS.DOM.MemoryInfo
+          GHCJS.DOM.MessageChannel
+          GHCJS.DOM.MessageEvent
+          GHCJS.DOM.MessagePort
+          GHCJS.DOM.MutationEvent
+          GHCJS.DOM.MutationObserver
+          GHCJS.DOM.MutationRecord
+          GHCJS.DOM.NavigatorUserMediaError
+          GHCJS.DOM.NavigatorUserMediaErrorCallback
+          GHCJS.DOM.NavigatorUserMediaSuccessCallback
+          GHCJS.DOM.Notification
+          GHCJS.DOM.NotificationCenter
+          GHCJS.DOM.NotificationPermissionCallback
+          GHCJS.DOM.OESStandardDerivatives
+          GHCJS.DOM.OESTextureHalfFloat
+          GHCJS.DOM.OESVertexArrayObject
+          GHCJS.DOM.OfflineAudioCompletionEvent
+          GHCJS.DOM.OfflineAudioContext
+          GHCJS.DOM.OscillatorNode
+          GHCJS.DOM.OverflowEvent
+          GHCJS.DOM.PageTransitionEvent
+          GHCJS.DOM.PannerNode
+          GHCJS.DOM.Path2D
+          GHCJS.DOM.PerformanceEntry
+          GHCJS.DOM.PerformanceEntryList
+          GHCJS.DOM.PerformanceResourceTiming
+          GHCJS.DOM.PopStateEvent
+          GHCJS.DOM.PositionCallback
+          GHCJS.DOM.PositionError
+          GHCJS.DOM.PositionErrorCallback
+          GHCJS.DOM.ProgressEvent
+          GHCJS.DOM.QuickTimePluginReplacement
+          GHCJS.DOM.RGBColor
+          GHCJS.DOM.RTCConfiguration
+          GHCJS.DOM.RTCDTMFSender
+          GHCJS.DOM.RTCDTMFToneChangeEvent
+          GHCJS.DOM.RTCDataChannel
+          GHCJS.DOM.RTCDataChannelEvent
+          GHCJS.DOM.RTCIceCandidate
+          GHCJS.DOM.RTCIceCandidateEvent
+          GHCJS.DOM.RTCIceServer
+          GHCJS.DOM.RTCPeerConnection
+          GHCJS.DOM.RTCPeerConnectionErrorCallback
+          GHCJS.DOM.RTCSessionDescription
+          GHCJS.DOM.RTCSessionDescriptionCallback
+          GHCJS.DOM.RTCStatsCallback
+          GHCJS.DOM.RTCStatsReport
+          GHCJS.DOM.RTCStatsResponse
+          GHCJS.DOM.RadioNodeList
+          GHCJS.DOM.ReadableStream
+          GHCJS.DOM.Rect
+          GHCJS.DOM.RequestAnimationFrameCallback
+          GHCJS.DOM.SQLError
+          GHCJS.DOM.SQLResultSet
+          GHCJS.DOM.SQLResultSetRowList
+          GHCJS.DOM.SQLStatementCallback
+          GHCJS.DOM.SQLStatementErrorCallback
+          GHCJS.DOM.SQLTransaction
+          GHCJS.DOM.SQLTransactionCallback
+          GHCJS.DOM.SQLTransactionErrorCallback
+          GHCJS.DOM.SVGAElement
+          GHCJS.DOM.SVGAltGlyphElement
+          GHCJS.DOM.SVGAngle
+          GHCJS.DOM.SVGAnimatedAngle
+          GHCJS.DOM.SVGAnimatedBoolean
+          GHCJS.DOM.SVGAnimatedEnumeration
+          GHCJS.DOM.SVGAnimatedInteger
+          GHCJS.DOM.SVGAnimatedLength
+          GHCJS.DOM.SVGAnimatedLengthList
+          GHCJS.DOM.SVGAnimatedNumber
+          GHCJS.DOM.SVGAnimatedNumberList
+          GHCJS.DOM.SVGAnimatedPreserveAspectRatio
+          GHCJS.DOM.SVGAnimatedRect
+          GHCJS.DOM.SVGAnimatedString
+          GHCJS.DOM.SVGAnimatedTransformList
+          GHCJS.DOM.SVGAnimationElement
+          GHCJS.DOM.SVGCircleElement
+          GHCJS.DOM.SVGClipPathElement
+          GHCJS.DOM.SVGColor
+          GHCJS.DOM.SVGComponentTransferFunctionElement
+          GHCJS.DOM.SVGCursorElement
+          GHCJS.DOM.SVGDocument
+          GHCJS.DOM.SVGElement
+          GHCJS.DOM.SVGEllipseElement
+          GHCJS.DOM.SVGExternalResourcesRequired
+          GHCJS.DOM.SVGFEBlendElement
+          GHCJS.DOM.SVGFEColorMatrixElement
+          GHCJS.DOM.SVGFEComponentTransferElement
+          GHCJS.DOM.SVGFECompositeElement
+          GHCJS.DOM.SVGFEConvolveMatrixElement
+          GHCJS.DOM.SVGFEDiffuseLightingElement
+          GHCJS.DOM.SVGFEDisplacementMapElement
+          GHCJS.DOM.SVGFEDistantLightElement
+          GHCJS.DOM.SVGFEDropShadowElement
+          GHCJS.DOM.SVGFEGaussianBlurElement
+          GHCJS.DOM.SVGFEImageElement
+          GHCJS.DOM.SVGFEMergeNodeElement
+          GHCJS.DOM.SVGFEMorphologyElement
+          GHCJS.DOM.SVGFEOffsetElement
+          GHCJS.DOM.SVGFEPointLightElement
+          GHCJS.DOM.SVGFESpecularLightingElement
+          GHCJS.DOM.SVGFESpotLightElement
+          GHCJS.DOM.SVGFETileElement
+          GHCJS.DOM.SVGFETurbulenceElement
+          GHCJS.DOM.SVGFilterElement
+          GHCJS.DOM.SVGFilterPrimitiveStandardAttributes
+          GHCJS.DOM.SVGFitToViewBox
+          GHCJS.DOM.SVGForeignObjectElement
+          GHCJS.DOM.SVGGlyphRefElement
+          GHCJS.DOM.SVGGradientElement
+          GHCJS.DOM.SVGGraphicsElement
+          GHCJS.DOM.SVGImageElement
+          GHCJS.DOM.SVGLength
+          GHCJS.DOM.SVGLengthList
+          GHCJS.DOM.SVGLineElement
+          GHCJS.DOM.SVGLinearGradientElement
+          GHCJS.DOM.SVGMarkerElement
+          GHCJS.DOM.SVGMaskElement
+          GHCJS.DOM.SVGMatrix
+          GHCJS.DOM.SVGNumber
+          GHCJS.DOM.SVGNumberList
+          GHCJS.DOM.SVGPaint
+          GHCJS.DOM.SVGPathElement
+          GHCJS.DOM.SVGPathSeg
+          GHCJS.DOM.SVGPathSegArcAbs
+          GHCJS.DOM.SVGPathSegArcRel
+          GHCJS.DOM.SVGPathSegCurvetoCubicAbs
+          GHCJS.DOM.SVGPathSegCurvetoCubicRel
+          GHCJS.DOM.SVGPathSegCurvetoCubicSmoothAbs
+          GHCJS.DOM.SVGPathSegCurvetoCubicSmoothRel
+          GHCJS.DOM.SVGPathSegCurvetoQuadraticAbs
+          GHCJS.DOM.SVGPathSegCurvetoQuadraticRel
+          GHCJS.DOM.SVGPathSegCurvetoQuadraticSmoothAbs
+          GHCJS.DOM.SVGPathSegCurvetoQuadraticSmoothRel
+          GHCJS.DOM.SVGPathSegLinetoAbs
+          GHCJS.DOM.SVGPathSegLinetoHorizontalAbs
+          GHCJS.DOM.SVGPathSegLinetoHorizontalRel
+          GHCJS.DOM.SVGPathSegLinetoRel
+          GHCJS.DOM.SVGPathSegLinetoVerticalAbs
+          GHCJS.DOM.SVGPathSegLinetoVerticalRel
+          GHCJS.DOM.SVGPathSegList
+          GHCJS.DOM.SVGPathSegMovetoAbs
+          GHCJS.DOM.SVGPathSegMovetoRel
+          GHCJS.DOM.SVGPatternElement
+          GHCJS.DOM.SVGPoint
+          GHCJS.DOM.SVGPointList
+          GHCJS.DOM.SVGPolygonElement
+          GHCJS.DOM.SVGPolylineElement
+          GHCJS.DOM.SVGPreserveAspectRatio
+          GHCJS.DOM.SVGRadialGradientElement
+          GHCJS.DOM.SVGRect
+          GHCJS.DOM.SVGRectElement
+          GHCJS.DOM.SVGRenderingIntent
+          GHCJS.DOM.SVGSVGElement
+          GHCJS.DOM.SVGScriptElement
+          GHCJS.DOM.SVGStopElement
+          GHCJS.DOM.SVGStringList
+          GHCJS.DOM.SVGStyleElement
+          GHCJS.DOM.SVGTests
+          GHCJS.DOM.SVGTextContentElement
+          GHCJS.DOM.SVGTextPathElement
+          GHCJS.DOM.SVGTextPositioningElement
+          GHCJS.DOM.SVGTransform
+          GHCJS.DOM.SVGTransformList
+          GHCJS.DOM.SVGURIReference
+          GHCJS.DOM.SVGUnitTypes
+          GHCJS.DOM.SVGUseElement
+          GHCJS.DOM.SVGViewElement
+          GHCJS.DOM.SVGViewSpec
+          GHCJS.DOM.SVGZoomAndPan
+          GHCJS.DOM.SVGZoomEvent
+          GHCJS.DOM.ScriptProcessorNode
+          GHCJS.DOM.ScriptProfile
+          GHCJS.DOM.ScriptProfileNode
+          GHCJS.DOM.SecurityPolicyViolationEvent
+          GHCJS.DOM.SourceBuffer
+          GHCJS.DOM.SourceBufferList
+          GHCJS.DOM.SourceInfo
+          GHCJS.DOM.SpeechSynthesis
+          GHCJS.DOM.SpeechSynthesisEvent
+          GHCJS.DOM.SpeechSynthesisUtterance
+          GHCJS.DOM.SpeechSynthesisVoice
+          GHCJS.DOM.StorageErrorCallback
+          GHCJS.DOM.StorageEvent
+          GHCJS.DOM.StorageQuota
+          GHCJS.DOM.StorageQuotaCallback
+          GHCJS.DOM.StorageUsageCallback
+          GHCJS.DOM.StringCallback
+          GHCJS.DOM.SubtleCrypto
+          GHCJS.DOM.TextEvent
+          GHCJS.DOM.TextMetrics
+          GHCJS.DOM.TouchEvent
+          GHCJS.DOM.TouchList
+          GHCJS.DOM.TrackEvent
+          GHCJS.DOM.TransitionEvent
+          GHCJS.DOM.TypeConversions
+          GHCJS.DOM.UIRequestEvent
+          GHCJS.DOM.URL
+          GHCJS.DOM.URLUtils
+          GHCJS.DOM.UserMessageHandler
+          GHCJS.DOM.VTTCue
+          GHCJS.DOM.VTTRegion
+          GHCJS.DOM.VTTRegionList
+          GHCJS.DOM.VideoPlaybackQuality
+          GHCJS.DOM.VideoStreamTrack
+          GHCJS.DOM.VoidCallback
+          GHCJS.DOM.WaveShaperNode
+          GHCJS.DOM.WebGL2RenderingContext
+          GHCJS.DOM.WebGLActiveInfo
+          GHCJS.DOM.WebGLCompressedTextureATC
+          GHCJS.DOM.WebGLCompressedTexturePVRTC
+          GHCJS.DOM.WebGLCompressedTextureS3TC
+          GHCJS.DOM.WebGLContextAttributes
+          GHCJS.DOM.WebGLContextEvent
+          GHCJS.DOM.WebGLDebugRendererInfo
+          GHCJS.DOM.WebGLDebugShaders
+          GHCJS.DOM.WebGLDepthTexture
+          GHCJS.DOM.WebGLDrawBuffers
+          GHCJS.DOM.WebGLLoseContext
+          GHCJS.DOM.WebGLRenderingContextBase
+          GHCJS.DOM.WebGLShaderPrecisionFormat
+          GHCJS.DOM.WebKitAnimationEvent
+          GHCJS.DOM.WebKitCSSFilterValue
+          GHCJS.DOM.WebKitCSSMatrix
+          GHCJS.DOM.WebKitCSSRegionRule
+          GHCJS.DOM.WebKitCSSTransformValue
+          GHCJS.DOM.WebKitCSSViewportRule
+          GHCJS.DOM.WebKitNamespace
+          GHCJS.DOM.WebKitPlaybackTargetAvailabilityEvent
+          GHCJS.DOM.WebKitTransitionEvent
+          GHCJS.DOM.WebSocket
+          GHCJS.DOM.WindowBase64
+          GHCJS.DOM.WindowTimers
+          GHCJS.DOM.Worker
+          GHCJS.DOM.WorkerGlobalScope
+          GHCJS.DOM.WorkerLocation
+          GHCJS.DOM.WorkerNavigator
+          GHCJS.DOM.XMLHttpRequest
+          GHCJS.DOM.XMLHttpRequestProgressEvent
+          GHCJS.DOM.XMLHttpRequestUpload
+          GHCJS.DOM.XMLSerializer
+          GHCJS.DOM.XPathEvaluator
+          GHCJS.DOM.XSLTProcessor
+
+    reexported-modules:
+          -- Generated by domconv-webkit-jsffi
+            Graphics.UI.Gtk.WebKit.DOM.ApplicationCache as GHCJS.DOM.ApplicationCache
+          , Graphics.UI.Gtk.WebKit.DOM.Attr as GHCJS.DOM.Attr
+          , Graphics.UI.Gtk.WebKit.DOM.AudioTrack as GHCJS.DOM.AudioTrack
+          , Graphics.UI.Gtk.WebKit.DOM.AudioTrackList as GHCJS.DOM.AudioTrackList
+          , Graphics.UI.Gtk.WebKit.DOM.BarProp as GHCJS.DOM.BarProp
+          , Graphics.UI.Gtk.WebKit.DOM.BatteryManager as GHCJS.DOM.BatteryManager
+          , Graphics.UI.Gtk.WebKit.DOM.Blob as GHCJS.DOM.Blob
+          , Graphics.UI.Gtk.WebKit.DOM.CSS as GHCJS.DOM.CSS
+          , Graphics.UI.Gtk.WebKit.DOM.CSSRule as GHCJS.DOM.CSSRule
+          , Graphics.UI.Gtk.WebKit.DOM.CSSRuleList as GHCJS.DOM.CSSRuleList
+          , Graphics.UI.Gtk.WebKit.DOM.CSSStyleDeclaration as GHCJS.DOM.CSSStyleDeclaration
+          , Graphics.UI.Gtk.WebKit.DOM.CSSStyleSheet as GHCJS.DOM.CSSStyleSheet
+          , Graphics.UI.Gtk.WebKit.DOM.CSSValue as GHCJS.DOM.CSSValue
+          , Graphics.UI.Gtk.WebKit.DOM.CharacterData as GHCJS.DOM.CharacterData
+          , Graphics.UI.Gtk.WebKit.DOM.DOMImplementation as GHCJS.DOM.DOMImplementation
+          , Graphics.UI.Gtk.WebKit.DOM.DOMNamedFlowCollection as GHCJS.DOM.DOMNamedFlowCollection
+          , Graphics.UI.Gtk.WebKit.DOM.DOMSettableTokenList as GHCJS.DOM.DOMSettableTokenList
+          , Graphics.UI.Gtk.WebKit.DOM.DOMStringList as GHCJS.DOM.DOMStringList
+          , Graphics.UI.Gtk.WebKit.DOM.DOMTokenList as GHCJS.DOM.DOMTokenList
+          , Graphics.UI.Gtk.WebKit.DOM.Document as GHCJS.DOM.Document
+          , Graphics.UI.Gtk.WebKit.DOM.DocumentType as GHCJS.DOM.DocumentType
+          , Graphics.UI.Gtk.WebKit.DOM.Element as GHCJS.DOM.Element
+          , Graphics.UI.Gtk.WebKit.DOM.Enums as GHCJS.DOM.Enums
+          , Graphics.UI.Gtk.WebKit.DOM.Event as GHCJS.DOM.Event
+          , Graphics.UI.Gtk.WebKit.DOM.EventTarget as GHCJS.DOM.EventTarget
+          , Graphics.UI.Gtk.WebKit.DOM.File as GHCJS.DOM.File
+          , Graphics.UI.Gtk.WebKit.DOM.FileList as GHCJS.DOM.FileList
+          , Graphics.UI.Gtk.WebKit.DOM.Geolocation as GHCJS.DOM.Geolocation
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLAnchorElement as GHCJS.DOM.HTMLAnchorElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLAppletElement as GHCJS.DOM.HTMLAppletElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLAreaElement as GHCJS.DOM.HTMLAreaElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLBRElement as GHCJS.DOM.HTMLBRElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLBaseElement as GHCJS.DOM.HTMLBaseElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLBaseFontElement as GHCJS.DOM.HTMLBaseFontElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLBodyElement as GHCJS.DOM.HTMLBodyElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLButtonElement as GHCJS.DOM.HTMLButtonElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLCanvasElement as GHCJS.DOM.HTMLCanvasElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLCollection as GHCJS.DOM.HTMLCollection
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLDListElement as GHCJS.DOM.HTMLDListElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLDetailsElement as GHCJS.DOM.HTMLDetailsElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLDirectoryElement as GHCJS.DOM.HTMLDirectoryElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLDivElement as GHCJS.DOM.HTMLDivElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLDocument as GHCJS.DOM.HTMLDocument
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLElement as GHCJS.DOM.HTMLElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLEmbedElement as GHCJS.DOM.HTMLEmbedElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLFieldSetElement as GHCJS.DOM.HTMLFieldSetElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLFontElement as GHCJS.DOM.HTMLFontElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLFormElement as GHCJS.DOM.HTMLFormElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLFrameElement as GHCJS.DOM.HTMLFrameElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLFrameSetElement as GHCJS.DOM.HTMLFrameSetElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLHRElement as GHCJS.DOM.HTMLHRElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLHeadElement as GHCJS.DOM.HTMLHeadElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLHeadingElement as GHCJS.DOM.HTMLHeadingElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLHtmlElement as GHCJS.DOM.HTMLHtmlElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLIFrameElement as GHCJS.DOM.HTMLIFrameElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLImageElement as GHCJS.DOM.HTMLImageElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLInputElement as GHCJS.DOM.HTMLInputElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLKeygenElement as GHCJS.DOM.HTMLKeygenElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLLIElement as GHCJS.DOM.HTMLLIElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLLabelElement as GHCJS.DOM.HTMLLabelElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLLegendElement as GHCJS.DOM.HTMLLegendElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLLinkElement as GHCJS.DOM.HTMLLinkElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLMapElement as GHCJS.DOM.HTMLMapElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLMarqueeElement as GHCJS.DOM.HTMLMarqueeElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLMediaElement as GHCJS.DOM.HTMLMediaElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLMenuElement as GHCJS.DOM.HTMLMenuElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLMetaElement as GHCJS.DOM.HTMLMetaElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLModElement as GHCJS.DOM.HTMLModElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLOListElement as GHCJS.DOM.HTMLOListElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLObjectElement as GHCJS.DOM.HTMLObjectElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLOptGroupElement as GHCJS.DOM.HTMLOptGroupElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLOptionElement as GHCJS.DOM.HTMLOptionElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLOptionsCollection as GHCJS.DOM.HTMLOptionsCollection
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLParagraphElement as GHCJS.DOM.HTMLParagraphElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLParamElement as GHCJS.DOM.HTMLParamElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLPreElement as GHCJS.DOM.HTMLPreElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLQuoteElement as GHCJS.DOM.HTMLQuoteElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLScriptElement as GHCJS.DOM.HTMLScriptElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLSelectElement as GHCJS.DOM.HTMLSelectElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLStyleElement as GHCJS.DOM.HTMLStyleElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLTableCaptionElement as GHCJS.DOM.HTMLTableCaptionElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLTableCellElement as GHCJS.DOM.HTMLTableCellElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLTableColElement as GHCJS.DOM.HTMLTableColElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLTableElement as GHCJS.DOM.HTMLTableElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLTableRowElement as GHCJS.DOM.HTMLTableRowElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLTableSectionElement as GHCJS.DOM.HTMLTableSectionElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLTextAreaElement as GHCJS.DOM.HTMLTextAreaElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLTitleElement as GHCJS.DOM.HTMLTitleElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLUListElement as GHCJS.DOM.HTMLUListElement
+          , Graphics.UI.Gtk.WebKit.DOM.HTMLVideoElement as GHCJS.DOM.HTMLVideoElement
+          , Graphics.UI.Gtk.WebKit.DOM.History as GHCJS.DOM.History
+          , Graphics.UI.Gtk.WebKit.DOM.KeyboardEvent as GHCJS.DOM.KeyboardEvent
+          , Graphics.UI.Gtk.WebKit.DOM.Location as GHCJS.DOM.Location
+          , Graphics.UI.Gtk.WebKit.DOM.MediaError as GHCJS.DOM.MediaError
+          , Graphics.UI.Gtk.WebKit.DOM.MediaList as GHCJS.DOM.MediaList
+          , Graphics.UI.Gtk.WebKit.DOM.MediaQueryList as GHCJS.DOM.MediaQueryList
+          , Graphics.UI.Gtk.WebKit.DOM.MimeType as GHCJS.DOM.MimeType
+          , Graphics.UI.Gtk.WebKit.DOM.MimeTypeArray as GHCJS.DOM.MimeTypeArray
+          , Graphics.UI.Gtk.WebKit.DOM.MouseEvent as GHCJS.DOM.MouseEvent
+          , Graphics.UI.Gtk.WebKit.DOM.NamedNodeMap as GHCJS.DOM.NamedNodeMap
+          , Graphics.UI.Gtk.WebKit.DOM.Navigator as GHCJS.DOM.Navigator
+          , Graphics.UI.Gtk.WebKit.DOM.Node as GHCJS.DOM.Node
+          , Graphics.UI.Gtk.WebKit.DOM.NodeFilter as GHCJS.DOM.NodeFilter
+          , Graphics.UI.Gtk.WebKit.DOM.NodeIterator as GHCJS.DOM.NodeIterator
+          , Graphics.UI.Gtk.WebKit.DOM.NodeList as GHCJS.DOM.NodeList
+          , Graphics.UI.Gtk.WebKit.DOM.Performance as GHCJS.DOM.Performance
+          , Graphics.UI.Gtk.WebKit.DOM.PerformanceNavigation as GHCJS.DOM.PerformanceNavigation
+          , Graphics.UI.Gtk.WebKit.DOM.PerformanceTiming as GHCJS.DOM.PerformanceTiming
+          , Graphics.UI.Gtk.WebKit.DOM.Plugin as GHCJS.DOM.Plugin
+          , Graphics.UI.Gtk.WebKit.DOM.PluginArray as GHCJS.DOM.PluginArray
+          , Graphics.UI.Gtk.WebKit.DOM.ProcessingInstruction as GHCJS.DOM.ProcessingInstruction
+          , Graphics.UI.Gtk.WebKit.DOM.Range as GHCJS.DOM.Range
+          , Graphics.UI.Gtk.WebKit.DOM.Screen as GHCJS.DOM.Screen
+          , Graphics.UI.Gtk.WebKit.DOM.SecurityPolicy as GHCJS.DOM.SecurityPolicy
+          , Graphics.UI.Gtk.WebKit.DOM.Selection as GHCJS.DOM.Selection
+          , Graphics.UI.Gtk.WebKit.DOM.Storage as GHCJS.DOM.Storage
+          , Graphics.UI.Gtk.WebKit.DOM.StorageInfo as GHCJS.DOM.StorageInfo
+          , Graphics.UI.Gtk.WebKit.DOM.StyleMedia as GHCJS.DOM.StyleMedia
+          , Graphics.UI.Gtk.WebKit.DOM.StyleSheet as GHCJS.DOM.StyleSheet
+          , Graphics.UI.Gtk.WebKit.DOM.StyleSheetList as GHCJS.DOM.StyleSheetList
+          , Graphics.UI.Gtk.WebKit.DOM.Text as GHCJS.DOM.Text
+          , Graphics.UI.Gtk.WebKit.DOM.TextTrack as GHCJS.DOM.TextTrack
+          , Graphics.UI.Gtk.WebKit.DOM.TextTrackCue as GHCJS.DOM.TextTrackCue
+          , Graphics.UI.Gtk.WebKit.DOM.TextTrackCueList as GHCJS.DOM.TextTrackCueList
+          , Graphics.UI.Gtk.WebKit.DOM.TextTrackList as GHCJS.DOM.TextTrackList
+          , Graphics.UI.Gtk.WebKit.DOM.TimeRanges as GHCJS.DOM.TimeRanges
+          , Graphics.UI.Gtk.WebKit.DOM.Touch as GHCJS.DOM.Touch
+          , Graphics.UI.Gtk.WebKit.DOM.TreeWalker as GHCJS.DOM.TreeWalker
+          , Graphics.UI.Gtk.WebKit.DOM.UIEvent as GHCJS.DOM.UIEvent
+          , Graphics.UI.Gtk.WebKit.DOM.ValidityState as GHCJS.DOM.ValidityState
+          , Graphics.UI.Gtk.WebKit.DOM.VideoTrack as GHCJS.DOM.VideoTrack
+          , Graphics.UI.Gtk.WebKit.DOM.VideoTrackList as GHCJS.DOM.VideoTrackList
+          , Graphics.UI.Gtk.WebKit.DOM.WebKitNamedFlow as GHCJS.DOM.WebKitNamedFlow
+          , Graphics.UI.Gtk.WebKit.DOM.WebKitPoint as GHCJS.DOM.WebKitPoint
+          , Graphics.UI.Gtk.WebKit.DOM.WheelEvent as GHCJS.DOM.WheelEvent
+          , Graphics.UI.Gtk.WebKit.DOM.Window as GHCJS.DOM.Window
+          , Graphics.UI.Gtk.WebKit.DOM.XPathExpression as GHCJS.DOM.XPathExpression
+          , Graphics.UI.Gtk.WebKit.DOM.XPathNSResolver as GHCJS.DOM.XPathNSResolver
+          , Graphics.UI.Gtk.WebKit.DOM.XPathResult as GHCJS.DOM.XPathResult
+    
diff --git a/src/GHCJS/DOM.hs b/src/GHCJS/DOM.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM.hs
@@ -0,0 +1,167 @@
+{-# LANGUAGE CPP, ForeignFunctionInterface, OverloadedStrings #-}
+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
+{-# LANGUAGE JavaScriptFFI #-}
+#endif
+module GHCJS.DOM (
+  currentWindow
+, currentDocument
+, WebView(..)
+, webViewGetDomDocument
+, runWebGUI
+, enableInspector
+, postGUISync
+, postGUIAsync
+) where
+
+import qualified Data.Text as T
+import Data.Monoid ((<>))
+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
+import GHCJS.Types (JSVal(..))
+import Control.Applicative ((<$>))
+#else
+import Graphics.UI.Gtk.WebKit.WebView
+       (webViewSetWebSettings, webViewGetWebSettings, loadStarted,
+        webViewLoadUri, loadFinished, webViewNew, webViewGetDomDocument,
+        webViewGetInspector)
+import Graphics.UI.Gtk.WebKit.WebInspector
+       (showWindow, inspectWebView)
+import Graphics.UI.Gtk
+       (timeoutAddFull, widgetShowAll, mainQuit, objectDestroy,
+        WindowPosition(..), containerAdd, scrolledWindowNew,
+        windowSetPosition, windowSetDefaultSize, windowNew, mainGUI,
+        initGUI, postGUISync, postGUIAsync)
+import System.Glib.Signals (on)
+import System.Glib.Attributes (get, AttrOp(..), set)
+import System.Glib.FFI (maybeNull)
+import System.Glib.MainLoop (priorityLow)
+import Graphics.UI.Gtk.WebKit.WebSettings
+       (webSettingsMonospaceFontFamily, webSettingsUserAgent,
+        webSettingsEnableDeveloperExtras)
+import Control.Monad.IO.Class (liftIO)
+#endif
+
+import GHCJS.DOM.Types
+import Graphics.UI.Gtk.WebKit.DOM.Window (getNavigator, getDocument)
+import Graphics.UI.Gtk.WebKit.DOM.Navigator (getUserAgent)
+import Foreign (ForeignPtr, nullPtr, Ptr)
+import Control.Monad (unless, forever, liftM)
+import Control.Concurrent
+       (yield, threadDelay, takeMVar, newEmptyMVar)
+import System.Environment (getArgs)
+import Data.List (isSuffixOf)
+
+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
+postGUIAsync :: IO () -> IO ()
+postGUIAsync = id
+
+postGUISync :: IO a -> IO a
+postGUISync = id
+
+#ifdef ghcjs_HOST_OS
+foreign import javascript unsafe "$r = window"
+  ghcjs_currentWindow :: IO (Nullable Window)
+foreign import javascript unsafe "$r = document"
+  ghcjs_currentDocument :: IO (Nullable Document)
+#else
+ghcjs_currentWindow :: IO (Nullable Window)
+ghcjs_currentWindow = undefined
+ghcjs_currentDocument :: IO (Nullable Document)
+ghcjs_currentDocument = undefined
+#endif
+
+currentWindow :: IO (Maybe Window)
+currentWindow = nullableToMaybe <$> ghcjs_currentWindow
+currentDocument :: IO (Maybe Document)
+currentDocument = nullableToMaybe <$> ghcjs_currentDocument
+
+type WebView = Window
+castToWebView = id
+
+webViewGetDomDocument :: Window -> IO (Maybe Document)
+webViewGetDomDocument = getDocument
+#else
+foreign import ccall safe "ghcjs_currentWindow"
+  ghcjs_currentWindow :: IO (Ptr Window)
+
+currentWindow :: IO (Maybe Window)
+currentWindow = maybeNull (makeNewGObject mkWindow) ghcjs_currentWindow
+
+foreign import ccall unsafe "ghcjs_currentDocument"
+  ghcjs_currentDocument :: IO (Ptr Document)
+
+currentDocument :: IO (Maybe Document)
+currentDocument = maybeNull (makeNewGObject mkDocument) ghcjs_currentDocument
+#endif
+
+runWebGUI :: (WebView -> IO ()) -> IO ()
+runWebGUI = runWebGUI' "GHCJS"
+
+runWebGUI' :: T.Text -> (WebView -> IO ()) -> IO ()
+runWebGUI' userAgentKey main = do
+  -- Are we in a java script inside some kind of browser
+  mbWindow <- currentWindow
+  case mbWindow of
+    Just window -> do
+      -- Check if we are running in javascript inside the the native version
+      Just n <- getNavigator window
+      agent <- getUserAgent n
+      unless ((" " <> userAgentKey) `T.isSuffixOf` agent) $ main (castToWebView window)
+    Nothing -> do
+      makeDefaultWebView userAgentKey main
+
+makeDefaultWebView :: T.Text -> (WebView -> IO ()) -> IO ()
+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
+makeDefaultWebView _ _ = error "Unsupported makeDefaultWebView"
+#else
+makeDefaultWebView userAgentKey main = do
+  initGUI
+  window <- windowNew
+  timeoutAddFull (yield >> return True) priorityLow 10
+  windowSetDefaultSize window 900 600
+  windowSetPosition window WinPosCenter
+  scrollWin <- scrolledWindowNew Nothing Nothing
+  webView <- webViewNew
+  settings <- webViewGetWebSettings webView
+  userAgent <- settings `get` webSettingsUserAgent
+  settings `set` [webSettingsUserAgent := userAgent <> " " <> userAgentKey]
+  webViewSetWebSettings webView settings
+  window `containerAdd` scrollWin
+  scrollWin `containerAdd` webView
+  on window objectDestroy . liftIO $ mainQuit
+  widgetShowAll window
+  webView `on` loadFinished $ \frame -> do
+    main webView
+  args <- getArgs
+  case args of
+    uri:_ -> webViewLoadUri webView (T.pack uri)
+    []    -> do
+      main webView
+  mainGUI
+#endif
+
+enableInspector :: WebView -> IO ()
+#if (defined(ghcjs_HOST_OS) && defined(USE_JAVASCRIPTFFI)) || !defined(USE_WEBKIT)
+enableInspector _ = return ()
+#else
+enableInspector webView = do
+  settings <- webViewGetWebSettings webView
+  settings `set` [webSettingsEnableDeveloperExtras := True]
+  webViewSetWebSettings webView settings
+  inspector <- webViewGetInspector webView
+  window <- windowNew
+  windowSetDefaultSize window 900 300
+  scrollWin <- scrolledWindowNew Nothing Nothing
+  inspector `on` inspectWebView $ \view -> do
+    inspectorView <- webViewNew
+    settings <- webViewGetWebSettings inspectorView
+    settings `set` [webSettingsMonospaceFontFamily := ("Consolas" :: String)]
+    webViewSetWebSettings inspectorView settings
+    scrollWin `containerAdd` inspectorView
+    window `containerAdd` scrollWin
+    widgetShowAll window
+    return inspectorView
+  inspector `on` showWindow $ do
+    widgetShowAll window
+    return True
+  return ()
+#endif
diff --git a/src/GHCJS/DOM/ANGLEInstancedArrays.hs b/src/GHCJS/DOM/ANGLEInstancedArrays.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ANGLEInstancedArrays.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ANGLEInstancedArrays (
+  ) where
diff --git a/src/GHCJS/DOM/AbstractView.hs b/src/GHCJS/DOM/AbstractView.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AbstractView.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AbstractView (
+  ) where
diff --git a/src/GHCJS/DOM/AbstractWorker.hs b/src/GHCJS/DOM/AbstractWorker.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AbstractWorker.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AbstractWorker (
+  ) where
diff --git a/src/GHCJS/DOM/AllAudioCapabilities.hs b/src/GHCJS/DOM/AllAudioCapabilities.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AllAudioCapabilities.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AllAudioCapabilities (
+  ) where
diff --git a/src/GHCJS/DOM/AllVideoCapabilities.hs b/src/GHCJS/DOM/AllVideoCapabilities.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AllVideoCapabilities.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AllVideoCapabilities (
+  ) where
diff --git a/src/GHCJS/DOM/AnalyserNode.hs b/src/GHCJS/DOM/AnalyserNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AnalyserNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AnalyserNode (
+  ) where
diff --git a/src/GHCJS/DOM/AnimationEvent.hs b/src/GHCJS/DOM/AnimationEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AnimationEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AnimationEvent (
+  ) where
diff --git a/src/GHCJS/DOM/AudioBuffer.hs b/src/GHCJS/DOM/AudioBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AudioBuffer.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AudioBuffer (
+  ) where
diff --git a/src/GHCJS/DOM/AudioBufferCallback.hs b/src/GHCJS/DOM/AudioBufferCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AudioBufferCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AudioBufferCallback (
+  ) where
diff --git a/src/GHCJS/DOM/AudioBufferSourceNode.hs b/src/GHCJS/DOM/AudioBufferSourceNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AudioBufferSourceNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AudioBufferSourceNode (
+  ) where
diff --git a/src/GHCJS/DOM/AudioContext.hs b/src/GHCJS/DOM/AudioContext.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AudioContext.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AudioContext (
+  ) where
diff --git a/src/GHCJS/DOM/AudioDestinationNode.hs b/src/GHCJS/DOM/AudioDestinationNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AudioDestinationNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AudioDestinationNode (
+  ) where
diff --git a/src/GHCJS/DOM/AudioListener.hs b/src/GHCJS/DOM/AudioListener.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AudioListener.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AudioListener (
+  ) where
diff --git a/src/GHCJS/DOM/AudioNode.hs b/src/GHCJS/DOM/AudioNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AudioNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AudioNode (
+  ) where
diff --git a/src/GHCJS/DOM/AudioParam.hs b/src/GHCJS/DOM/AudioParam.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AudioParam.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AudioParam (
+  ) where
diff --git a/src/GHCJS/DOM/AudioProcessingEvent.hs b/src/GHCJS/DOM/AudioProcessingEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AudioProcessingEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AudioProcessingEvent (
+  ) where
diff --git a/src/GHCJS/DOM/AudioStreamTrack.hs b/src/GHCJS/DOM/AudioStreamTrack.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AudioStreamTrack.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AudioStreamTrack (
+  ) where
diff --git a/src/GHCJS/DOM/AutocompleteErrorEvent.hs b/src/GHCJS/DOM/AutocompleteErrorEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/AutocompleteErrorEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.AutocompleteErrorEvent (
+  ) where
diff --git a/src/GHCJS/DOM/BeforeLoadEvent.hs b/src/GHCJS/DOM/BeforeLoadEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/BeforeLoadEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.BeforeLoadEvent (
+  ) where
diff --git a/src/GHCJS/DOM/BeforeUnloadEvent.hs b/src/GHCJS/DOM/BeforeUnloadEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/BeforeUnloadEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.BeforeUnloadEvent (
+  ) where
diff --git a/src/GHCJS/DOM/BiquadFilterNode.hs b/src/GHCJS/DOM/BiquadFilterNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/BiquadFilterNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.BiquadFilterNode (
+  ) where
diff --git a/src/GHCJS/DOM/CSSCharsetRule.hs b/src/GHCJS/DOM/CSSCharsetRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSCharsetRule.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSCharsetRule (
+  ) where
diff --git a/src/GHCJS/DOM/CSSFontFaceLoadEvent.hs b/src/GHCJS/DOM/CSSFontFaceLoadEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSFontFaceLoadEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSFontFaceLoadEvent (
+  ) where
diff --git a/src/GHCJS/DOM/CSSFontFaceRule.hs b/src/GHCJS/DOM/CSSFontFaceRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSFontFaceRule.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSFontFaceRule (
+  ) where
diff --git a/src/GHCJS/DOM/CSSImportRule.hs b/src/GHCJS/DOM/CSSImportRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSImportRule.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSImportRule (
+  ) where
diff --git a/src/GHCJS/DOM/CSSKeyframeRule.hs b/src/GHCJS/DOM/CSSKeyframeRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSKeyframeRule.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSKeyframeRule (
+  ) where
diff --git a/src/GHCJS/DOM/CSSKeyframesRule.hs b/src/GHCJS/DOM/CSSKeyframesRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSKeyframesRule.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSKeyframesRule (
+  ) where
diff --git a/src/GHCJS/DOM/CSSMediaRule.hs b/src/GHCJS/DOM/CSSMediaRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSMediaRule.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSMediaRule (
+  ) where
diff --git a/src/GHCJS/DOM/CSSPageRule.hs b/src/GHCJS/DOM/CSSPageRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSPageRule.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSPageRule (
+  ) where
diff --git a/src/GHCJS/DOM/CSSPrimitiveValue.hs b/src/GHCJS/DOM/CSSPrimitiveValue.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSPrimitiveValue.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSPrimitiveValue (
+  ) where
diff --git a/src/GHCJS/DOM/CSSStyleRule.hs b/src/GHCJS/DOM/CSSStyleRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSStyleRule.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSStyleRule (
+  ) where
diff --git a/src/GHCJS/DOM/CSSSupportsRule.hs b/src/GHCJS/DOM/CSSSupportsRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSSupportsRule.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSSupportsRule (
+  ) where
diff --git a/src/GHCJS/DOM/CSSValueList.hs b/src/GHCJS/DOM/CSSValueList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CSSValueList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CSSValueList (
+  ) where
diff --git a/src/GHCJS/DOM/CanvasGradient.hs b/src/GHCJS/DOM/CanvasGradient.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CanvasGradient.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CanvasGradient (
+  ) where
diff --git a/src/GHCJS/DOM/CanvasRenderingContext.hs b/src/GHCJS/DOM/CanvasRenderingContext.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CanvasRenderingContext.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CanvasRenderingContext (
+  ) where
diff --git a/src/GHCJS/DOM/CanvasRenderingContext2D.hs b/src/GHCJS/DOM/CanvasRenderingContext2D.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CanvasRenderingContext2D.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CanvasRenderingContext2D (
+  ) where
diff --git a/src/GHCJS/DOM/CapabilityRange.hs b/src/GHCJS/DOM/CapabilityRange.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CapabilityRange.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CapabilityRange (
+  ) where
diff --git a/src/GHCJS/DOM/ChildNode.hs b/src/GHCJS/DOM/ChildNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ChildNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ChildNode (
+  ) where
diff --git a/src/GHCJS/DOM/ClientRect.hs b/src/GHCJS/DOM/ClientRect.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ClientRect.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ClientRect (
+  ) where
diff --git a/src/GHCJS/DOM/ClientRectList.hs b/src/GHCJS/DOM/ClientRectList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ClientRectList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ClientRectList (
+  ) where
diff --git a/src/GHCJS/DOM/CloseEvent.hs b/src/GHCJS/DOM/CloseEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CloseEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CloseEvent (
+  ) where
diff --git a/src/GHCJS/DOM/CommandLineAPIHost.hs b/src/GHCJS/DOM/CommandLineAPIHost.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CommandLineAPIHost.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CommandLineAPIHost (
+  ) where
diff --git a/src/GHCJS/DOM/Comment.hs b/src/GHCJS/DOM/Comment.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Comment.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Comment (
+  ) where
diff --git a/src/GHCJS/DOM/CompositionEvent.hs b/src/GHCJS/DOM/CompositionEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CompositionEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CompositionEvent (
+  ) where
diff --git a/src/GHCJS/DOM/ConvolverNode.hs b/src/GHCJS/DOM/ConvolverNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ConvolverNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ConvolverNode (
+  ) where
diff --git a/src/GHCJS/DOM/Coordinates.hs b/src/GHCJS/DOM/Coordinates.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Coordinates.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Coordinates (
+  ) where
diff --git a/src/GHCJS/DOM/Counter.hs b/src/GHCJS/DOM/Counter.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Counter.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Counter (
+  ) where
diff --git a/src/GHCJS/DOM/Crypto.hs b/src/GHCJS/DOM/Crypto.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Crypto.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Crypto (
+  ) where
diff --git a/src/GHCJS/DOM/CryptoKey.hs b/src/GHCJS/DOM/CryptoKey.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CryptoKey.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CryptoKey (
+  ) where
diff --git a/src/GHCJS/DOM/CryptoKeyPair.hs b/src/GHCJS/DOM/CryptoKeyPair.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CryptoKeyPair.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CryptoKeyPair (
+  ) where
diff --git a/src/GHCJS/DOM/CustomEvent.hs b/src/GHCJS/DOM/CustomEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/CustomEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.CustomEvent (
+  ) where
diff --git a/src/GHCJS/DOM/DOMError.hs b/src/GHCJS/DOM/DOMError.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DOMError.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DOMError (
+  ) where
diff --git a/src/GHCJS/DOM/DOMParser.hs b/src/GHCJS/DOM/DOMParser.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DOMParser.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DOMParser (
+  ) where
diff --git a/src/GHCJS/DOM/DataCue.hs b/src/GHCJS/DOM/DataCue.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DataCue.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DataCue (
+  ) where
diff --git a/src/GHCJS/DOM/DataTransfer.hs b/src/GHCJS/DOM/DataTransfer.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DataTransfer.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DataTransfer (
+  ) where
diff --git a/src/GHCJS/DOM/DataTransferItem.hs b/src/GHCJS/DOM/DataTransferItem.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DataTransferItem.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DataTransferItem (
+  ) where
diff --git a/src/GHCJS/DOM/DataTransferItemList.hs b/src/GHCJS/DOM/DataTransferItemList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DataTransferItemList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DataTransferItemList (
+  ) where
diff --git a/src/GHCJS/DOM/Database.hs b/src/GHCJS/DOM/Database.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Database.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Database (
+  ) where
diff --git a/src/GHCJS/DOM/DatabaseCallback.hs b/src/GHCJS/DOM/DatabaseCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DatabaseCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DatabaseCallback (
+  ) where
diff --git a/src/GHCJS/DOM/DedicatedWorkerGlobalScope.hs b/src/GHCJS/DOM/DedicatedWorkerGlobalScope.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DedicatedWorkerGlobalScope.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DedicatedWorkerGlobalScope (
+  ) where
diff --git a/src/GHCJS/DOM/DelayNode.hs b/src/GHCJS/DOM/DelayNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DelayNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DelayNode (
+  ) where
diff --git a/src/GHCJS/DOM/DeviceMotionEvent.hs b/src/GHCJS/DOM/DeviceMotionEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DeviceMotionEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DeviceMotionEvent (
+  ) where
diff --git a/src/GHCJS/DOM/DeviceOrientationEvent.hs b/src/GHCJS/DOM/DeviceOrientationEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DeviceOrientationEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DeviceOrientationEvent (
+  ) where
diff --git a/src/GHCJS/DOM/DeviceProximityEvent.hs b/src/GHCJS/DOM/DeviceProximityEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DeviceProximityEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DeviceProximityEvent (
+  ) where
diff --git a/src/GHCJS/DOM/DocumentFragment.hs b/src/GHCJS/DOM/DocumentFragment.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DocumentFragment.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DocumentFragment (
+  ) where
diff --git a/src/GHCJS/DOM/DynamicsCompressorNode.hs b/src/GHCJS/DOM/DynamicsCompressorNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/DynamicsCompressorNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.DynamicsCompressorNode (
+  ) where
diff --git a/src/GHCJS/DOM/EXTBlendMinMax.hs b/src/GHCJS/DOM/EXTBlendMinMax.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/EXTBlendMinMax.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.EXTBlendMinMax (
+  ) where
diff --git a/src/GHCJS/DOM/EXTTextureFilterAnisotropic.hs b/src/GHCJS/DOM/EXTTextureFilterAnisotropic.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/EXTTextureFilterAnisotropic.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.EXTTextureFilterAnisotropic (
+  ) where
diff --git a/src/GHCJS/DOM/EXTsRGB.hs b/src/GHCJS/DOM/EXTsRGB.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/EXTsRGB.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.EXTsRGB (
+  ) where
diff --git a/src/GHCJS/DOM/Entity.hs b/src/GHCJS/DOM/Entity.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Entity.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Entity (
+  ) where
diff --git a/src/GHCJS/DOM/ErrorEvent.hs b/src/GHCJS/DOM/ErrorEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ErrorEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ErrorEvent (
+  ) where
diff --git a/src/GHCJS/DOM/EventListener.hs b/src/GHCJS/DOM/EventListener.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/EventListener.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.EventListener (
+  ) where
diff --git a/src/GHCJS/DOM/EventM.hs b/src/GHCJS/DOM/EventM.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/EventM.hs
@@ -0,0 +1,297 @@
+{-# LANGUAGE ConstraintKinds #-}
+module GHCJS.DOM.EventM
+(
+  EventM(..)
+, SaferEventListener(..)
+, EventName
+, newListener
+, newListenerSync
+, newListenerAsync
+, addListener
+, removeListener
+, releaseListener
+, on
+, event
+, eventTarget
+, target
+, eventCurrentTarget
+, eventPhase
+, bubbles
+, cancelable
+, timeStamp
+, stopPropagation
+, preventDefault
+, defaultPrevented
+, stopImmediatePropagation
+, srcElement
+, getCancelBubble
+, cancelBubble
+, getReturnValue
+, returnValue
+, uiView
+, uiDetail
+, uiKeyCode
+, uiCharCode
+, uiLayerX
+, uiLayerY
+, uiLayerXY
+, uiPageX
+, uiPageY
+, uiPageXY
+, uiWhich
+, mouseScreenX
+, mouseScreenY
+, mouseScreenXY
+, mouseClientX
+, mouseClientY
+, mouseClientXY
+, mouseMovementX
+, mouseMovementY
+, mouseMovementXY
+, mouseCtrlKey
+, mouseShiftKey
+, mouseAltKey
+, mouseMetaKey
+, mouseButton
+, mouseRelatedTarget
+, mouseOffsetX
+, mouseOffsetY
+, mouseOffsetXY
+, mouseX
+, mouseY
+, mouseXY
+, mouseFromElement
+, mouseToElement
+)
+where
+import           Control.Applicative ((<$>))
+import           Control.Monad.Trans.Reader (ReaderT, ask, runReaderT)
+import           Control.Monad.IO.Class (MonadIO(..))
+import           GHCJS.DOM.Types
+import qualified Graphics.UI.Gtk.WebKit.DOM.Event as Event
+import qualified Graphics.UI.Gtk.WebKit.DOM.UIEvent as UIEvent
+import qualified Graphics.UI.Gtk.WebKit.DOM.MouseEvent as MouseEvent
+import           Graphics.UI.Gtk.WebKit.DOM.EventTarget
+import           GHCJS.DOM.EventTargetClosures
+import           Data.Word (Word)
+import           Data.Foldable (forM_)
+
+type EventM t e = ReaderT e IO
+
+newListener :: (IsEvent e) => EventM t e () -> IO (SaferEventListener t e)
+newListener f = SaferEventListener <$> eventListenerNew (runReaderT f)
+
+newListenerSync :: (IsEvent e) => EventM t e () -> IO (SaferEventListener t e)
+newListenerSync f = SaferEventListener <$> eventListenerNewSync (runReaderT f)
+
+newListenerAsync :: (IsEvent e) => EventM t e () -> IO (SaferEventListener t e)
+newListenerAsync f = SaferEventListener <$> eventListenerNewAsync (runReaderT f)
+
+addListener :: (IsEventTarget t, IsEvent e) => t -> EventName t e -> SaferEventListener t e -> Bool -> IO ()
+addListener target (EventName eventName) (SaferEventListener l) useCapture =
+    addEventListener target eventName (Just l) useCapture
+
+removeListener :: (IsEventTarget t, IsEvent e) => t -> EventName t e -> SaferEventListener t e -> Bool -> IO ()
+removeListener target (EventName eventName) (SaferEventListener l) useCapture =
+    removeEventListener target eventName (Just l) useCapture
+
+releaseListener :: (IsEventTarget t, IsEvent e) => SaferEventListener t e -> IO ()
+releaseListener (SaferEventListener l) = eventListenerRelease l
+
+on :: (IsEventTarget t, IsEvent e) => t -> EventName t e -> EventM t e () -> IO (IO ())
+on target eventName callback = do
+    l <- newListener callback
+    addListener target eventName l False
+    return (removeListener target eventName l False >> releaseListener l)
+
+onThese :: (IsEventTarget t, IsEvent e) => [(t, EventName t e)] -> EventM t e () -> IO (IO ())
+onThese targetsAndEventNames callback = do
+    l <- newListener callback
+    forM_ targetsAndEventNames $ \(target, eventName) ->
+        addListener target eventName l False
+    return (do
+        forM_ targetsAndEventNames (\(target, eventName) ->
+            removeListener target eventName l False)
+        releaseListener l)
+
+event :: EventM t e e
+event = ask
+
+eventTarget :: IsEvent e => EventM t e (Maybe EventTarget)
+eventTarget = event >>= Event.getTarget
+
+target :: (IsEvent e, IsGObject t) => EventM t e (Maybe t)
+target = (fmap (unsafeCastGObject . toGObject)) <$> eventTarget
+
+eventCurrentTarget :: IsEvent e => EventM t e (Maybe EventTarget)
+eventCurrentTarget = event >>= Event.getCurrentTarget
+
+eventPhase :: IsEvent e => EventM t e Word
+eventPhase = event >>= Event.getEventPhase
+
+bubbles :: IsEvent e => EventM t e Bool
+bubbles = event >>= Event.getBubbles
+
+cancelable :: IsEvent e => EventM t e Bool
+cancelable = event >>= Event.getCancelable
+
+timeStamp :: IsEvent e => EventM t e Word
+timeStamp = event >>= Event.getTimeStamp
+
+stopPropagation :: IsEvent e => EventM t e ()
+stopPropagation = event >>= Event.stopPropagation
+
+preventDefault :: IsEvent e => EventM t e ()
+preventDefault = event >>= Event.preventDefault
+
+defaultPrevented :: IsEvent e => EventM t e Bool
+defaultPrevented = event >>= Event.getDefaultPrevented
+
+stopImmediatePropagation :: IsEvent e => EventM t e ()
+stopImmediatePropagation = event >>= Event.stopImmediatePropagation
+
+srcElement :: IsEvent e => EventM t e (Maybe EventTarget)
+srcElement = event >>= Event.getSrcElement
+
+getCancelBubble :: IsEvent e => EventM t e Bool
+getCancelBubble = event >>= Event.getCancelBubble
+
+cancelBubble :: IsEvent e => Bool -> EventM t e ()
+cancelBubble f = event >>= flip Event.setCancelBubble f
+
+getReturnValue :: IsEvent e => EventM t e Bool
+getReturnValue = event >>= Event.getReturnValue
+
+returnValue :: IsEvent e => Bool -> EventM t e ()
+returnValue f = event >>= flip Event.setReturnValue f
+
+uiView :: IsUIEvent e => EventM t e (Maybe 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
+
+uiCharCode :: IsUIEvent e => EventM t e Int
+uiCharCode = event >>= UIEvent.getCharCode
+
+uiLayerX :: IsUIEvent e => EventM t e Int
+uiLayerX = event >>= UIEvent.getLayerX
+
+uiLayerY :: IsUIEvent e => EventM t e Int
+uiLayerY = event >>= UIEvent.getLayerY
+
+uiLayerXY :: IsUIEvent e => EventM t e (Int, Int)
+uiLayerXY = do
+    e <- event
+    x <- UIEvent.getLayerX e
+    y <- UIEvent.getLayerY e
+    return (x, y)
+
+uiPageX :: IsUIEvent e => EventM t e Int
+uiPageX = event >>= UIEvent.getPageX
+
+uiPageY :: IsUIEvent e => EventM t e Int
+uiPageY = event >>= UIEvent.getPageY
+
+uiPageXY :: IsUIEvent e => EventM t e (Int, Int)
+uiPageXY = do
+    e <- event
+    x <- UIEvent.getPageX e
+    y <- UIEvent.getPageY e
+    return (x, y)
+
+uiWhich :: IsUIEvent e => EventM t e Int
+uiWhich = event >>= UIEvent.getWhich
+
+mouseScreenX :: IsMouseEvent e => EventM t e Int
+mouseScreenX = event >>= MouseEvent.getScreenX
+
+mouseScreenY :: IsMouseEvent e => EventM t e Int
+mouseScreenY = event >>= MouseEvent.getScreenY
+
+mouseScreenXY :: IsMouseEvent e => EventM t e (Int, Int)
+mouseScreenXY = do
+    e <- event
+    x <- MouseEvent.getScreenX e
+    y <- MouseEvent.getScreenY e
+    return (x, y)
+
+mouseClientX :: IsMouseEvent e => EventM t e Int
+mouseClientX = event >>= MouseEvent.getClientX
+
+mouseClientY :: IsMouseEvent e => EventM t e Int
+mouseClientY = event >>= MouseEvent.getClientY
+
+mouseClientXY :: IsMouseEvent e => EventM t e (Int, Int)
+mouseClientXY = do
+    e <- event
+    x <- MouseEvent.getClientX e
+    y <- MouseEvent.getClientY e
+    return (x, y)
+
+mouseMovementX :: IsMouseEvent e => EventM t e Int
+mouseMovementX = event >>= MouseEvent.getMovementX
+
+mouseMovementY :: IsMouseEvent e => EventM t e Int
+mouseMovementY = event >>= MouseEvent.getMovementY
+
+mouseMovementXY :: IsMouseEvent e => EventM t e (Int, Int)
+mouseMovementXY = do
+    e <- event
+    x <- MouseEvent.getMovementX e
+    y <- MouseEvent.getMovementY e
+    return (x, y)
+
+mouseCtrlKey :: IsMouseEvent e => EventM t e Bool
+mouseCtrlKey = event >>= MouseEvent.getCtrlKey
+
+mouseShiftKey :: IsMouseEvent e => EventM t e Bool
+mouseShiftKey = event >>= MouseEvent.getShiftKey
+
+mouseAltKey :: IsMouseEvent e => EventM t e Bool
+mouseAltKey = event >>= MouseEvent.getAltKey
+
+mouseMetaKey :: IsMouseEvent e => EventM t e Bool
+mouseMetaKey = event >>= MouseEvent.getMetaKey
+
+mouseButton :: IsMouseEvent e => EventM t e Word
+mouseButton = event >>= MouseEvent.getButton
+
+mouseRelatedTarget :: IsMouseEvent e => EventM t e (Maybe EventTarget)
+mouseRelatedTarget = event >>= MouseEvent.getRelatedTarget
+
+mouseOffsetX :: IsMouseEvent e => EventM t e Int
+mouseOffsetX = event >>= MouseEvent.getOffsetX
+
+mouseOffsetY :: IsMouseEvent e => EventM t e Int
+mouseOffsetY = event >>= MouseEvent.getOffsetY
+
+mouseOffsetXY :: IsMouseEvent e => EventM t e (Int, Int)
+mouseOffsetXY = do
+    e <- event
+    x <- MouseEvent.getOffsetX e
+    y <- MouseEvent.getOffsetY e
+    return (x, y)
+
+mouseX :: IsMouseEvent e => EventM t e Int
+mouseX = event >>= MouseEvent.getX
+
+mouseY :: IsMouseEvent e => EventM t e Int
+mouseY = event >>= MouseEvent.getY
+
+mouseXY :: IsMouseEvent e => EventM t e (Int, Int)
+mouseXY = do
+    e <- event
+    x <- MouseEvent.getX e
+    y <- MouseEvent.getY e
+    return (x, y)
+
+mouseFromElement :: IsMouseEvent e => EventM t e (Maybe Node)
+mouseFromElement = event >>= MouseEvent.getFromElement
+
+mouseToElement :: IsMouseEvent e => EventM t e (Maybe Node)
+mouseToElement = event >>= MouseEvent.getToElement
+
diff --git a/src/GHCJS/DOM/EventSource.hs b/src/GHCJS/DOM/EventSource.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/EventSource.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.EventSource (
+  ) where
diff --git a/src/GHCJS/DOM/EventTargetClosures.hs b/src/GHCJS/DOM/EventTargetClosures.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/EventTargetClosures.hs
@@ -0,0 +1,4 @@
+module GHCJS.DOM.EventTargetClosures (
+  module Graphics.UI.Gtk.WebKit.DOM.EventTargetClosures
+  ) where
+import Graphics.UI.Gtk.WebKit.DOM.EventTargetClosures
diff --git a/src/GHCJS/DOM/FileError.hs b/src/GHCJS/DOM/FileError.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/FileError.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.FileError (
+  ) where
diff --git a/src/GHCJS/DOM/FileReader.hs b/src/GHCJS/DOM/FileReader.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/FileReader.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.FileReader (
+  ) where
diff --git a/src/GHCJS/DOM/FileReaderSync.hs b/src/GHCJS/DOM/FileReaderSync.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/FileReaderSync.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.FileReaderSync (
+  ) where
diff --git a/src/GHCJS/DOM/FocusEvent.hs b/src/GHCJS/DOM/FocusEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/FocusEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.FocusEvent (
+  ) where
diff --git a/src/GHCJS/DOM/FontLoader.hs b/src/GHCJS/DOM/FontLoader.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/FontLoader.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.FontLoader (
+  ) where
diff --git a/src/GHCJS/DOM/FormData.hs b/src/GHCJS/DOM/FormData.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/FormData.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.FormData (
+  ) where
diff --git a/src/GHCJS/DOM/GainNode.hs b/src/GHCJS/DOM/GainNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/GainNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.GainNode (
+  ) where
diff --git a/src/GHCJS/DOM/Gamepad.hs b/src/GHCJS/DOM/Gamepad.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Gamepad.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Gamepad (
+  ) where
diff --git a/src/GHCJS/DOM/GamepadButton.hs b/src/GHCJS/DOM/GamepadButton.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/GamepadButton.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.GamepadButton (
+  ) where
diff --git a/src/GHCJS/DOM/GamepadEvent.hs b/src/GHCJS/DOM/GamepadEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/GamepadEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.GamepadEvent (
+  ) where
diff --git a/src/GHCJS/DOM/Geoposition.hs b/src/GHCJS/DOM/Geoposition.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Geoposition.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Geoposition (
+  ) where
diff --git a/src/GHCJS/DOM/HTMLAllCollection.hs b/src/GHCJS/DOM/HTMLAllCollection.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/HTMLAllCollection.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.HTMLAllCollection (
+  ) where
diff --git a/src/GHCJS/DOM/HTMLDataListElement.hs b/src/GHCJS/DOM/HTMLDataListElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/HTMLDataListElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.HTMLDataListElement (
+  ) where
diff --git a/src/GHCJS/DOM/HTMLFormControlsCollection.hs b/src/GHCJS/DOM/HTMLFormControlsCollection.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/HTMLFormControlsCollection.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.HTMLFormControlsCollection (
+  ) where
diff --git a/src/GHCJS/DOM/HTMLMeterElement.hs b/src/GHCJS/DOM/HTMLMeterElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/HTMLMeterElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.HTMLMeterElement (
+  ) where
diff --git a/src/GHCJS/DOM/HTMLOutputElement.hs b/src/GHCJS/DOM/HTMLOutputElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/HTMLOutputElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.HTMLOutputElement (
+  ) where
diff --git a/src/GHCJS/DOM/HTMLProgressElement.hs b/src/GHCJS/DOM/HTMLProgressElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/HTMLProgressElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.HTMLProgressElement (
+  ) where
diff --git a/src/GHCJS/DOM/HTMLSourceElement.hs b/src/GHCJS/DOM/HTMLSourceElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/HTMLSourceElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.HTMLSourceElement (
+  ) where
diff --git a/src/GHCJS/DOM/HTMLTemplateElement.hs b/src/GHCJS/DOM/HTMLTemplateElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/HTMLTemplateElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.HTMLTemplateElement (
+  ) where
diff --git a/src/GHCJS/DOM/HTMLTrackElement.hs b/src/GHCJS/DOM/HTMLTrackElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/HTMLTrackElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.HTMLTrackElement (
+  ) where
diff --git a/src/GHCJS/DOM/HashChangeEvent.hs b/src/GHCJS/DOM/HashChangeEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/HashChangeEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.HashChangeEvent (
+  ) where
diff --git a/src/GHCJS/DOM/IDBCursor.hs b/src/GHCJS/DOM/IDBCursor.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/IDBCursor.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.IDBCursor (
+  ) where
diff --git a/src/GHCJS/DOM/IDBCursorWithValue.hs b/src/GHCJS/DOM/IDBCursorWithValue.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/IDBCursorWithValue.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.IDBCursorWithValue (
+  ) where
diff --git a/src/GHCJS/DOM/IDBDatabase.hs b/src/GHCJS/DOM/IDBDatabase.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/IDBDatabase.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.IDBDatabase (
+  ) where
diff --git a/src/GHCJS/DOM/IDBFactory.hs b/src/GHCJS/DOM/IDBFactory.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/IDBFactory.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.IDBFactory (
+  ) where
diff --git a/src/GHCJS/DOM/IDBIndex.hs b/src/GHCJS/DOM/IDBIndex.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/IDBIndex.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.IDBIndex (
+  ) where
diff --git a/src/GHCJS/DOM/IDBKeyRange.hs b/src/GHCJS/DOM/IDBKeyRange.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/IDBKeyRange.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.IDBKeyRange (
+  ) where
diff --git a/src/GHCJS/DOM/IDBObjectStore.hs b/src/GHCJS/DOM/IDBObjectStore.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/IDBObjectStore.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.IDBObjectStore (
+  ) where
diff --git a/src/GHCJS/DOM/IDBOpenDBRequest.hs b/src/GHCJS/DOM/IDBOpenDBRequest.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/IDBOpenDBRequest.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.IDBOpenDBRequest (
+  ) where
diff --git a/src/GHCJS/DOM/IDBRequest.hs b/src/GHCJS/DOM/IDBRequest.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/IDBRequest.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.IDBRequest (
+  ) where
diff --git a/src/GHCJS/DOM/IDBTransaction.hs b/src/GHCJS/DOM/IDBTransaction.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/IDBTransaction.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.IDBTransaction (
+  ) where
diff --git a/src/GHCJS/DOM/IDBVersionChangeEvent.hs b/src/GHCJS/DOM/IDBVersionChangeEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/IDBVersionChangeEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.IDBVersionChangeEvent (
+  ) where
diff --git a/src/GHCJS/DOM/ImageData.hs b/src/GHCJS/DOM/ImageData.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ImageData.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ImageData (
+  ) where
diff --git a/src/GHCJS/DOM/InspectorFrontendHost.hs b/src/GHCJS/DOM/InspectorFrontendHost.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/InspectorFrontendHost.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.InspectorFrontendHost (
+  ) where
diff --git a/src/GHCJS/DOM/InternalSettings.hs b/src/GHCJS/DOM/InternalSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/InternalSettings.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.InternalSettings (
+  ) where
diff --git a/src/GHCJS/DOM/Internals.hs b/src/GHCJS/DOM/Internals.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Internals.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Internals (
+  ) where
diff --git a/src/GHCJS/DOM/MallocStatistics.hs b/src/GHCJS/DOM/MallocStatistics.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MallocStatistics.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MallocStatistics (
+  ) where
diff --git a/src/GHCJS/DOM/MediaController.hs b/src/GHCJS/DOM/MediaController.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaController.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaController (
+  ) where
diff --git a/src/GHCJS/DOM/MediaControlsHost.hs b/src/GHCJS/DOM/MediaControlsHost.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaControlsHost.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaControlsHost (
+  ) where
diff --git a/src/GHCJS/DOM/MediaElementAudioSourceNode.hs b/src/GHCJS/DOM/MediaElementAudioSourceNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaElementAudioSourceNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaElementAudioSourceNode (
+  ) where
diff --git a/src/GHCJS/DOM/MediaKeyError.hs b/src/GHCJS/DOM/MediaKeyError.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaKeyError.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaKeyError (
+  ) where
diff --git a/src/GHCJS/DOM/MediaKeyEvent.hs b/src/GHCJS/DOM/MediaKeyEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaKeyEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaKeyEvent (
+  ) where
diff --git a/src/GHCJS/DOM/MediaKeyMessageEvent.hs b/src/GHCJS/DOM/MediaKeyMessageEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaKeyMessageEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaKeyMessageEvent (
+  ) where
diff --git a/src/GHCJS/DOM/MediaKeyNeededEvent.hs b/src/GHCJS/DOM/MediaKeyNeededEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaKeyNeededEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaKeyNeededEvent (
+  ) where
diff --git a/src/GHCJS/DOM/MediaKeySession.hs b/src/GHCJS/DOM/MediaKeySession.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaKeySession.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaKeySession (
+  ) where
diff --git a/src/GHCJS/DOM/MediaKeys.hs b/src/GHCJS/DOM/MediaKeys.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaKeys.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaKeys (
+  ) where
diff --git a/src/GHCJS/DOM/MediaQueryListListener.hs b/src/GHCJS/DOM/MediaQueryListListener.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaQueryListListener.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaQueryListListener (
+  ) where
diff --git a/src/GHCJS/DOM/MediaSource.hs b/src/GHCJS/DOM/MediaSource.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaSource.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaSource (
+  ) where
diff --git a/src/GHCJS/DOM/MediaSourceStates.hs b/src/GHCJS/DOM/MediaSourceStates.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaSourceStates.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaSourceStates (
+  ) where
diff --git a/src/GHCJS/DOM/MediaStream.hs b/src/GHCJS/DOM/MediaStream.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaStream.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaStream (
+  ) where
diff --git a/src/GHCJS/DOM/MediaStreamAudioDestinationNode.hs b/src/GHCJS/DOM/MediaStreamAudioDestinationNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaStreamAudioDestinationNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaStreamAudioDestinationNode (
+  ) where
diff --git a/src/GHCJS/DOM/MediaStreamAudioSourceNode.hs b/src/GHCJS/DOM/MediaStreamAudioSourceNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaStreamAudioSourceNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaStreamAudioSourceNode (
+  ) where
diff --git a/src/GHCJS/DOM/MediaStreamEvent.hs b/src/GHCJS/DOM/MediaStreamEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaStreamEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaStreamEvent (
+  ) where
diff --git a/src/GHCJS/DOM/MediaStreamTrack.hs b/src/GHCJS/DOM/MediaStreamTrack.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaStreamTrack.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaStreamTrack (
+  ) where
diff --git a/src/GHCJS/DOM/MediaStreamTrackEvent.hs b/src/GHCJS/DOM/MediaStreamTrackEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaStreamTrackEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaStreamTrackEvent (
+  ) where
diff --git a/src/GHCJS/DOM/MediaStreamTrackSourcesCallback.hs b/src/GHCJS/DOM/MediaStreamTrackSourcesCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaStreamTrackSourcesCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaStreamTrackSourcesCallback (
+  ) where
diff --git a/src/GHCJS/DOM/MediaTrackConstraints.hs b/src/GHCJS/DOM/MediaTrackConstraints.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MediaTrackConstraints.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MediaTrackConstraints (
+  ) where
diff --git a/src/GHCJS/DOM/MemoryInfo.hs b/src/GHCJS/DOM/MemoryInfo.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MemoryInfo.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MemoryInfo (
+  ) where
diff --git a/src/GHCJS/DOM/MessageChannel.hs b/src/GHCJS/DOM/MessageChannel.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MessageChannel.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MessageChannel (
+  ) where
diff --git a/src/GHCJS/DOM/MessageEvent.hs b/src/GHCJS/DOM/MessageEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MessageEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MessageEvent (
+  ) where
diff --git a/src/GHCJS/DOM/MessagePort.hs b/src/GHCJS/DOM/MessagePort.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MessagePort.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MessagePort (
+  ) where
diff --git a/src/GHCJS/DOM/MutationEvent.hs b/src/GHCJS/DOM/MutationEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MutationEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MutationEvent (
+  ) where
diff --git a/src/GHCJS/DOM/MutationObserver.hs b/src/GHCJS/DOM/MutationObserver.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MutationObserver.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MutationObserver (
+  ) where
diff --git a/src/GHCJS/DOM/MutationRecord.hs b/src/GHCJS/DOM/MutationRecord.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/MutationRecord.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.MutationRecord (
+  ) where
diff --git a/src/GHCJS/DOM/NavigatorUserMediaError.hs b/src/GHCJS/DOM/NavigatorUserMediaError.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/NavigatorUserMediaError.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.NavigatorUserMediaError (
+  ) where
diff --git a/src/GHCJS/DOM/NavigatorUserMediaErrorCallback.hs b/src/GHCJS/DOM/NavigatorUserMediaErrorCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/NavigatorUserMediaErrorCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.NavigatorUserMediaErrorCallback (
+  ) where
diff --git a/src/GHCJS/DOM/NavigatorUserMediaSuccessCallback.hs b/src/GHCJS/DOM/NavigatorUserMediaSuccessCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/NavigatorUserMediaSuccessCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.NavigatorUserMediaSuccessCallback (
+  ) where
diff --git a/src/GHCJS/DOM/Notification.hs b/src/GHCJS/DOM/Notification.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Notification.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Notification (
+  ) where
diff --git a/src/GHCJS/DOM/NotificationCenter.hs b/src/GHCJS/DOM/NotificationCenter.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/NotificationCenter.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.NotificationCenter (
+  ) where
diff --git a/src/GHCJS/DOM/NotificationPermissionCallback.hs b/src/GHCJS/DOM/NotificationPermissionCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/NotificationPermissionCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.NotificationPermissionCallback (
+  ) where
diff --git a/src/GHCJS/DOM/OESStandardDerivatives.hs b/src/GHCJS/DOM/OESStandardDerivatives.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/OESStandardDerivatives.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.OESStandardDerivatives (
+  ) where
diff --git a/src/GHCJS/DOM/OESTextureHalfFloat.hs b/src/GHCJS/DOM/OESTextureHalfFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/OESTextureHalfFloat.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.OESTextureHalfFloat (
+  ) where
diff --git a/src/GHCJS/DOM/OESVertexArrayObject.hs b/src/GHCJS/DOM/OESVertexArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/OESVertexArrayObject.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.OESVertexArrayObject (
+  ) where
diff --git a/src/GHCJS/DOM/OfflineAudioCompletionEvent.hs b/src/GHCJS/DOM/OfflineAudioCompletionEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/OfflineAudioCompletionEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.OfflineAudioCompletionEvent (
+  ) where
diff --git a/src/GHCJS/DOM/OfflineAudioContext.hs b/src/GHCJS/DOM/OfflineAudioContext.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/OfflineAudioContext.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.OfflineAudioContext (
+  ) where
diff --git a/src/GHCJS/DOM/OscillatorNode.hs b/src/GHCJS/DOM/OscillatorNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/OscillatorNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.OscillatorNode (
+  ) where
diff --git a/src/GHCJS/DOM/OverflowEvent.hs b/src/GHCJS/DOM/OverflowEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/OverflowEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.OverflowEvent (
+  ) where
diff --git a/src/GHCJS/DOM/PageTransitionEvent.hs b/src/GHCJS/DOM/PageTransitionEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/PageTransitionEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.PageTransitionEvent (
+  ) where
diff --git a/src/GHCJS/DOM/PannerNode.hs b/src/GHCJS/DOM/PannerNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/PannerNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.PannerNode (
+  ) where
diff --git a/src/GHCJS/DOM/Path2D.hs b/src/GHCJS/DOM/Path2D.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Path2D.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Path2D (
+  ) where
diff --git a/src/GHCJS/DOM/PerformanceEntry.hs b/src/GHCJS/DOM/PerformanceEntry.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/PerformanceEntry.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.PerformanceEntry (
+  ) where
diff --git a/src/GHCJS/DOM/PerformanceEntryList.hs b/src/GHCJS/DOM/PerformanceEntryList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/PerformanceEntryList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.PerformanceEntryList (
+  ) where
diff --git a/src/GHCJS/DOM/PerformanceResourceTiming.hs b/src/GHCJS/DOM/PerformanceResourceTiming.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/PerformanceResourceTiming.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.PerformanceResourceTiming (
+  ) where
diff --git a/src/GHCJS/DOM/PopStateEvent.hs b/src/GHCJS/DOM/PopStateEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/PopStateEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.PopStateEvent (
+  ) where
diff --git a/src/GHCJS/DOM/PositionCallback.hs b/src/GHCJS/DOM/PositionCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/PositionCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.PositionCallback (
+  ) where
diff --git a/src/GHCJS/DOM/PositionError.hs b/src/GHCJS/DOM/PositionError.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/PositionError.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.PositionError (
+  ) where
diff --git a/src/GHCJS/DOM/PositionErrorCallback.hs b/src/GHCJS/DOM/PositionErrorCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/PositionErrorCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.PositionErrorCallback (
+  ) where
diff --git a/src/GHCJS/DOM/ProgressEvent.hs b/src/GHCJS/DOM/ProgressEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ProgressEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ProgressEvent (
+  ) where
diff --git a/src/GHCJS/DOM/QuickTimePluginReplacement.hs b/src/GHCJS/DOM/QuickTimePluginReplacement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/QuickTimePluginReplacement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.QuickTimePluginReplacement (
+  ) where
diff --git a/src/GHCJS/DOM/RGBColor.hs b/src/GHCJS/DOM/RGBColor.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RGBColor.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RGBColor (
+  ) where
diff --git a/src/GHCJS/DOM/RTCConfiguration.hs b/src/GHCJS/DOM/RTCConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCConfiguration.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCConfiguration (
+  ) where
diff --git a/src/GHCJS/DOM/RTCDTMFSender.hs b/src/GHCJS/DOM/RTCDTMFSender.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCDTMFSender.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCDTMFSender (
+  ) where
diff --git a/src/GHCJS/DOM/RTCDTMFToneChangeEvent.hs b/src/GHCJS/DOM/RTCDTMFToneChangeEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCDTMFToneChangeEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCDTMFToneChangeEvent (
+  ) where
diff --git a/src/GHCJS/DOM/RTCDataChannel.hs b/src/GHCJS/DOM/RTCDataChannel.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCDataChannel.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCDataChannel (
+  ) where
diff --git a/src/GHCJS/DOM/RTCDataChannelEvent.hs b/src/GHCJS/DOM/RTCDataChannelEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCDataChannelEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCDataChannelEvent (
+  ) where
diff --git a/src/GHCJS/DOM/RTCIceCandidate.hs b/src/GHCJS/DOM/RTCIceCandidate.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCIceCandidate.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCIceCandidate (
+  ) where
diff --git a/src/GHCJS/DOM/RTCIceCandidateEvent.hs b/src/GHCJS/DOM/RTCIceCandidateEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCIceCandidateEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCIceCandidateEvent (
+  ) where
diff --git a/src/GHCJS/DOM/RTCIceServer.hs b/src/GHCJS/DOM/RTCIceServer.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCIceServer.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCIceServer (
+  ) where
diff --git a/src/GHCJS/DOM/RTCPeerConnection.hs b/src/GHCJS/DOM/RTCPeerConnection.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCPeerConnection.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCPeerConnection (
+  ) where
diff --git a/src/GHCJS/DOM/RTCPeerConnectionErrorCallback.hs b/src/GHCJS/DOM/RTCPeerConnectionErrorCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCPeerConnectionErrorCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCPeerConnectionErrorCallback (
+  ) where
diff --git a/src/GHCJS/DOM/RTCSessionDescription.hs b/src/GHCJS/DOM/RTCSessionDescription.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCSessionDescription.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCSessionDescription (
+  ) where
diff --git a/src/GHCJS/DOM/RTCSessionDescriptionCallback.hs b/src/GHCJS/DOM/RTCSessionDescriptionCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCSessionDescriptionCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCSessionDescriptionCallback (
+  ) where
diff --git a/src/GHCJS/DOM/RTCStatsCallback.hs b/src/GHCJS/DOM/RTCStatsCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCStatsCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCStatsCallback (
+  ) where
diff --git a/src/GHCJS/DOM/RTCStatsReport.hs b/src/GHCJS/DOM/RTCStatsReport.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCStatsReport.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCStatsReport (
+  ) where
diff --git a/src/GHCJS/DOM/RTCStatsResponse.hs b/src/GHCJS/DOM/RTCStatsResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RTCStatsResponse.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RTCStatsResponse (
+  ) where
diff --git a/src/GHCJS/DOM/RadioNodeList.hs b/src/GHCJS/DOM/RadioNodeList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RadioNodeList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RadioNodeList (
+  ) where
diff --git a/src/GHCJS/DOM/ReadableStream.hs b/src/GHCJS/DOM/ReadableStream.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ReadableStream.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ReadableStream (
+  ) where
diff --git a/src/GHCJS/DOM/Rect.hs b/src/GHCJS/DOM/Rect.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Rect.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Rect (
+  ) where
diff --git a/src/GHCJS/DOM/RequestAnimationFrameCallback.hs b/src/GHCJS/DOM/RequestAnimationFrameCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/RequestAnimationFrameCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.RequestAnimationFrameCallback (
+  ) where
diff --git a/src/GHCJS/DOM/SQLError.hs b/src/GHCJS/DOM/SQLError.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SQLError.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SQLError (
+  ) where
diff --git a/src/GHCJS/DOM/SQLResultSet.hs b/src/GHCJS/DOM/SQLResultSet.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SQLResultSet.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SQLResultSet (
+  ) where
diff --git a/src/GHCJS/DOM/SQLResultSetRowList.hs b/src/GHCJS/DOM/SQLResultSetRowList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SQLResultSetRowList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SQLResultSetRowList (
+  ) where
diff --git a/src/GHCJS/DOM/SQLStatementCallback.hs b/src/GHCJS/DOM/SQLStatementCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SQLStatementCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SQLStatementCallback (
+  ) where
diff --git a/src/GHCJS/DOM/SQLStatementErrorCallback.hs b/src/GHCJS/DOM/SQLStatementErrorCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SQLStatementErrorCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SQLStatementErrorCallback (
+  ) where
diff --git a/src/GHCJS/DOM/SQLTransaction.hs b/src/GHCJS/DOM/SQLTransaction.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SQLTransaction.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SQLTransaction (
+  ) where
diff --git a/src/GHCJS/DOM/SQLTransactionCallback.hs b/src/GHCJS/DOM/SQLTransactionCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SQLTransactionCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SQLTransactionCallback (
+  ) where
diff --git a/src/GHCJS/DOM/SQLTransactionErrorCallback.hs b/src/GHCJS/DOM/SQLTransactionErrorCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SQLTransactionErrorCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SQLTransactionErrorCallback (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAElement.hs b/src/GHCJS/DOM/SVGAElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAltGlyphElement.hs b/src/GHCJS/DOM/SVGAltGlyphElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAltGlyphElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAltGlyphElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAngle.hs b/src/GHCJS/DOM/SVGAngle.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAngle.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAngle (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedAngle.hs b/src/GHCJS/DOM/SVGAnimatedAngle.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedAngle.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedAngle (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedBoolean.hs b/src/GHCJS/DOM/SVGAnimatedBoolean.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedBoolean.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedBoolean (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedEnumeration.hs b/src/GHCJS/DOM/SVGAnimatedEnumeration.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedEnumeration.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedEnumeration (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedInteger.hs b/src/GHCJS/DOM/SVGAnimatedInteger.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedInteger.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedInteger (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedLength.hs b/src/GHCJS/DOM/SVGAnimatedLength.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedLength.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedLength (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedLengthList.hs b/src/GHCJS/DOM/SVGAnimatedLengthList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedLengthList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedLengthList (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedNumber.hs b/src/GHCJS/DOM/SVGAnimatedNumber.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedNumber.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedNumber (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedNumberList.hs b/src/GHCJS/DOM/SVGAnimatedNumberList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedNumberList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedNumberList (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedPreserveAspectRatio.hs b/src/GHCJS/DOM/SVGAnimatedPreserveAspectRatio.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedPreserveAspectRatio.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedPreserveAspectRatio (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedRect.hs b/src/GHCJS/DOM/SVGAnimatedRect.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedRect.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedRect (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedString.hs b/src/GHCJS/DOM/SVGAnimatedString.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedString.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedString (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimatedTransformList.hs b/src/GHCJS/DOM/SVGAnimatedTransformList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimatedTransformList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimatedTransformList (
+  ) where
diff --git a/src/GHCJS/DOM/SVGAnimationElement.hs b/src/GHCJS/DOM/SVGAnimationElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGAnimationElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGAnimationElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGCircleElement.hs b/src/GHCJS/DOM/SVGCircleElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGCircleElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGCircleElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGClipPathElement.hs b/src/GHCJS/DOM/SVGClipPathElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGClipPathElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGClipPathElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGColor.hs b/src/GHCJS/DOM/SVGColor.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGColor.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGColor (
+  ) where
diff --git a/src/GHCJS/DOM/SVGComponentTransferFunctionElement.hs b/src/GHCJS/DOM/SVGComponentTransferFunctionElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGComponentTransferFunctionElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGComponentTransferFunctionElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGCursorElement.hs b/src/GHCJS/DOM/SVGCursorElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGCursorElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGCursorElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGDocument.hs b/src/GHCJS/DOM/SVGDocument.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGDocument.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGDocument (
+  ) where
diff --git a/src/GHCJS/DOM/SVGElement.hs b/src/GHCJS/DOM/SVGElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGEllipseElement.hs b/src/GHCJS/DOM/SVGEllipseElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGEllipseElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGEllipseElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGExternalResourcesRequired.hs b/src/GHCJS/DOM/SVGExternalResourcesRequired.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGExternalResourcesRequired.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGExternalResourcesRequired (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEBlendElement.hs b/src/GHCJS/DOM/SVGFEBlendElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEBlendElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEBlendElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEColorMatrixElement.hs b/src/GHCJS/DOM/SVGFEColorMatrixElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEColorMatrixElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEColorMatrixElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEComponentTransferElement.hs b/src/GHCJS/DOM/SVGFEComponentTransferElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEComponentTransferElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEComponentTransferElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFECompositeElement.hs b/src/GHCJS/DOM/SVGFECompositeElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFECompositeElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFECompositeElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEConvolveMatrixElement.hs b/src/GHCJS/DOM/SVGFEConvolveMatrixElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEConvolveMatrixElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEConvolveMatrixElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEDiffuseLightingElement.hs b/src/GHCJS/DOM/SVGFEDiffuseLightingElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEDiffuseLightingElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEDiffuseLightingElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEDisplacementMapElement.hs b/src/GHCJS/DOM/SVGFEDisplacementMapElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEDisplacementMapElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEDisplacementMapElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEDistantLightElement.hs b/src/GHCJS/DOM/SVGFEDistantLightElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEDistantLightElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEDistantLightElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEDropShadowElement.hs b/src/GHCJS/DOM/SVGFEDropShadowElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEDropShadowElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEDropShadowElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEGaussianBlurElement.hs b/src/GHCJS/DOM/SVGFEGaussianBlurElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEGaussianBlurElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEGaussianBlurElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEImageElement.hs b/src/GHCJS/DOM/SVGFEImageElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEImageElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEImageElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEMergeNodeElement.hs b/src/GHCJS/DOM/SVGFEMergeNodeElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEMergeNodeElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEMergeNodeElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEMorphologyElement.hs b/src/GHCJS/DOM/SVGFEMorphologyElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEMorphologyElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEMorphologyElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEOffsetElement.hs b/src/GHCJS/DOM/SVGFEOffsetElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEOffsetElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEOffsetElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFEPointLightElement.hs b/src/GHCJS/DOM/SVGFEPointLightElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFEPointLightElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFEPointLightElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFESpecularLightingElement.hs b/src/GHCJS/DOM/SVGFESpecularLightingElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFESpecularLightingElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFESpecularLightingElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFESpotLightElement.hs b/src/GHCJS/DOM/SVGFESpotLightElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFESpotLightElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFESpotLightElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFETileElement.hs b/src/GHCJS/DOM/SVGFETileElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFETileElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFETileElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFETurbulenceElement.hs b/src/GHCJS/DOM/SVGFETurbulenceElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFETurbulenceElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFETurbulenceElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFilterElement.hs b/src/GHCJS/DOM/SVGFilterElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFilterElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFilterElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFilterPrimitiveStandardAttributes.hs b/src/GHCJS/DOM/SVGFilterPrimitiveStandardAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFilterPrimitiveStandardAttributes.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFilterPrimitiveStandardAttributes (
+  ) where
diff --git a/src/GHCJS/DOM/SVGFitToViewBox.hs b/src/GHCJS/DOM/SVGFitToViewBox.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGFitToViewBox.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGFitToViewBox (
+  ) where
diff --git a/src/GHCJS/DOM/SVGForeignObjectElement.hs b/src/GHCJS/DOM/SVGForeignObjectElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGForeignObjectElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGForeignObjectElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGGlyphRefElement.hs b/src/GHCJS/DOM/SVGGlyphRefElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGGlyphRefElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGGlyphRefElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGGradientElement.hs b/src/GHCJS/DOM/SVGGradientElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGGradientElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGGradientElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGGraphicsElement.hs b/src/GHCJS/DOM/SVGGraphicsElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGGraphicsElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGGraphicsElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGImageElement.hs b/src/GHCJS/DOM/SVGImageElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGImageElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGImageElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGLength.hs b/src/GHCJS/DOM/SVGLength.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGLength.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGLength (
+  ) where
diff --git a/src/GHCJS/DOM/SVGLengthList.hs b/src/GHCJS/DOM/SVGLengthList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGLengthList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGLengthList (
+  ) where
diff --git a/src/GHCJS/DOM/SVGLineElement.hs b/src/GHCJS/DOM/SVGLineElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGLineElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGLineElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGLinearGradientElement.hs b/src/GHCJS/DOM/SVGLinearGradientElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGLinearGradientElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGLinearGradientElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGMarkerElement.hs b/src/GHCJS/DOM/SVGMarkerElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGMarkerElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGMarkerElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGMaskElement.hs b/src/GHCJS/DOM/SVGMaskElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGMaskElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGMaskElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGMatrix.hs b/src/GHCJS/DOM/SVGMatrix.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGMatrix.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGMatrix (
+  ) where
diff --git a/src/GHCJS/DOM/SVGNumber.hs b/src/GHCJS/DOM/SVGNumber.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGNumber.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGNumber (
+  ) where
diff --git a/src/GHCJS/DOM/SVGNumberList.hs b/src/GHCJS/DOM/SVGNumberList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGNumberList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGNumberList (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPaint.hs b/src/GHCJS/DOM/SVGPaint.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPaint.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPaint (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathElement.hs b/src/GHCJS/DOM/SVGPathElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSeg.hs b/src/GHCJS/DOM/SVGPathSeg.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSeg.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSeg (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegArcAbs.hs b/src/GHCJS/DOM/SVGPathSegArcAbs.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegArcAbs.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegArcAbs (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegArcRel.hs b/src/GHCJS/DOM/SVGPathSegArcRel.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegArcRel.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegArcRel (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegCurvetoCubicAbs.hs b/src/GHCJS/DOM/SVGPathSegCurvetoCubicAbs.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegCurvetoCubicAbs.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegCurvetoCubicAbs (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegCurvetoCubicRel.hs b/src/GHCJS/DOM/SVGPathSegCurvetoCubicRel.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegCurvetoCubicRel.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegCurvetoCubicRel (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegCurvetoCubicSmoothAbs.hs b/src/GHCJS/DOM/SVGPathSegCurvetoCubicSmoothAbs.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegCurvetoCubicSmoothAbs.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegCurvetoCubicSmoothAbs (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegCurvetoCubicSmoothRel.hs b/src/GHCJS/DOM/SVGPathSegCurvetoCubicSmoothRel.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegCurvetoCubicSmoothRel.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegCurvetoCubicSmoothRel (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticAbs.hs b/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticAbs.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticAbs.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegCurvetoQuadraticAbs (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticRel.hs b/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticRel.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticRel.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegCurvetoQuadraticRel (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticSmoothAbs.hs b/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticSmoothAbs.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticSmoothAbs.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegCurvetoQuadraticSmoothAbs (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticSmoothRel.hs b/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticSmoothRel.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegCurvetoQuadraticSmoothRel.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegCurvetoQuadraticSmoothRel (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegLinetoAbs.hs b/src/GHCJS/DOM/SVGPathSegLinetoAbs.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegLinetoAbs.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegLinetoAbs (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegLinetoHorizontalAbs.hs b/src/GHCJS/DOM/SVGPathSegLinetoHorizontalAbs.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegLinetoHorizontalAbs.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegLinetoHorizontalAbs (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegLinetoHorizontalRel.hs b/src/GHCJS/DOM/SVGPathSegLinetoHorizontalRel.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegLinetoHorizontalRel.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegLinetoHorizontalRel (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegLinetoRel.hs b/src/GHCJS/DOM/SVGPathSegLinetoRel.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegLinetoRel.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegLinetoRel (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegLinetoVerticalAbs.hs b/src/GHCJS/DOM/SVGPathSegLinetoVerticalAbs.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegLinetoVerticalAbs.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegLinetoVerticalAbs (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegLinetoVerticalRel.hs b/src/GHCJS/DOM/SVGPathSegLinetoVerticalRel.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegLinetoVerticalRel.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegLinetoVerticalRel (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegList.hs b/src/GHCJS/DOM/SVGPathSegList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegList (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegMovetoAbs.hs b/src/GHCJS/DOM/SVGPathSegMovetoAbs.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegMovetoAbs.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegMovetoAbs (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPathSegMovetoRel.hs b/src/GHCJS/DOM/SVGPathSegMovetoRel.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPathSegMovetoRel.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPathSegMovetoRel (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPatternElement.hs b/src/GHCJS/DOM/SVGPatternElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPatternElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPatternElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPoint.hs b/src/GHCJS/DOM/SVGPoint.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPoint.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPoint (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPointList.hs b/src/GHCJS/DOM/SVGPointList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPointList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPointList (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPolygonElement.hs b/src/GHCJS/DOM/SVGPolygonElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPolygonElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPolygonElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPolylineElement.hs b/src/GHCJS/DOM/SVGPolylineElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPolylineElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPolylineElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGPreserveAspectRatio.hs b/src/GHCJS/DOM/SVGPreserveAspectRatio.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGPreserveAspectRatio.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGPreserveAspectRatio (
+  ) where
diff --git a/src/GHCJS/DOM/SVGRadialGradientElement.hs b/src/GHCJS/DOM/SVGRadialGradientElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGRadialGradientElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGRadialGradientElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGRect.hs b/src/GHCJS/DOM/SVGRect.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGRect.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGRect (
+  ) where
diff --git a/src/GHCJS/DOM/SVGRectElement.hs b/src/GHCJS/DOM/SVGRectElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGRectElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGRectElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGRenderingIntent.hs b/src/GHCJS/DOM/SVGRenderingIntent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGRenderingIntent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGRenderingIntent (
+  ) where
diff --git a/src/GHCJS/DOM/SVGSVGElement.hs b/src/GHCJS/DOM/SVGSVGElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGSVGElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGSVGElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGScriptElement.hs b/src/GHCJS/DOM/SVGScriptElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGScriptElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGScriptElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGStopElement.hs b/src/GHCJS/DOM/SVGStopElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGStopElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGStopElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGStringList.hs b/src/GHCJS/DOM/SVGStringList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGStringList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGStringList (
+  ) where
diff --git a/src/GHCJS/DOM/SVGStyleElement.hs b/src/GHCJS/DOM/SVGStyleElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGStyleElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGStyleElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGTests.hs b/src/GHCJS/DOM/SVGTests.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGTests.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGTests (
+  ) where
diff --git a/src/GHCJS/DOM/SVGTextContentElement.hs b/src/GHCJS/DOM/SVGTextContentElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGTextContentElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGTextContentElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGTextPathElement.hs b/src/GHCJS/DOM/SVGTextPathElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGTextPathElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGTextPathElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGTextPositioningElement.hs b/src/GHCJS/DOM/SVGTextPositioningElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGTextPositioningElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGTextPositioningElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGTransform.hs b/src/GHCJS/DOM/SVGTransform.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGTransform.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGTransform (
+  ) where
diff --git a/src/GHCJS/DOM/SVGTransformList.hs b/src/GHCJS/DOM/SVGTransformList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGTransformList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGTransformList (
+  ) where
diff --git a/src/GHCJS/DOM/SVGURIReference.hs b/src/GHCJS/DOM/SVGURIReference.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGURIReference.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGURIReference (
+  ) where
diff --git a/src/GHCJS/DOM/SVGUnitTypes.hs b/src/GHCJS/DOM/SVGUnitTypes.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGUnitTypes.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGUnitTypes (
+  ) where
diff --git a/src/GHCJS/DOM/SVGUseElement.hs b/src/GHCJS/DOM/SVGUseElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGUseElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGUseElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGViewElement.hs b/src/GHCJS/DOM/SVGViewElement.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGViewElement.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGViewElement (
+  ) where
diff --git a/src/GHCJS/DOM/SVGViewSpec.hs b/src/GHCJS/DOM/SVGViewSpec.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGViewSpec.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGViewSpec (
+  ) where
diff --git a/src/GHCJS/DOM/SVGZoomAndPan.hs b/src/GHCJS/DOM/SVGZoomAndPan.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGZoomAndPan.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGZoomAndPan (
+  ) where
diff --git a/src/GHCJS/DOM/SVGZoomEvent.hs b/src/GHCJS/DOM/SVGZoomEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SVGZoomEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SVGZoomEvent (
+  ) where
diff --git a/src/GHCJS/DOM/ScriptProcessorNode.hs b/src/GHCJS/DOM/ScriptProcessorNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ScriptProcessorNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ScriptProcessorNode (
+  ) where
diff --git a/src/GHCJS/DOM/ScriptProfile.hs b/src/GHCJS/DOM/ScriptProfile.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ScriptProfile.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ScriptProfile (
+  ) where
diff --git a/src/GHCJS/DOM/ScriptProfileNode.hs b/src/GHCJS/DOM/ScriptProfileNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/ScriptProfileNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.ScriptProfileNode (
+  ) where
diff --git a/src/GHCJS/DOM/SecurityPolicyViolationEvent.hs b/src/GHCJS/DOM/SecurityPolicyViolationEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SecurityPolicyViolationEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SecurityPolicyViolationEvent (
+  ) where
diff --git a/src/GHCJS/DOM/SourceBuffer.hs b/src/GHCJS/DOM/SourceBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SourceBuffer.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SourceBuffer (
+  ) where
diff --git a/src/GHCJS/DOM/SourceBufferList.hs b/src/GHCJS/DOM/SourceBufferList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SourceBufferList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SourceBufferList (
+  ) where
diff --git a/src/GHCJS/DOM/SourceInfo.hs b/src/GHCJS/DOM/SourceInfo.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SourceInfo.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SourceInfo (
+  ) where
diff --git a/src/GHCJS/DOM/SpeechSynthesis.hs b/src/GHCJS/DOM/SpeechSynthesis.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SpeechSynthesis.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SpeechSynthesis (
+  ) where
diff --git a/src/GHCJS/DOM/SpeechSynthesisEvent.hs b/src/GHCJS/DOM/SpeechSynthesisEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SpeechSynthesisEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SpeechSynthesisEvent (
+  ) where
diff --git a/src/GHCJS/DOM/SpeechSynthesisUtterance.hs b/src/GHCJS/DOM/SpeechSynthesisUtterance.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SpeechSynthesisUtterance.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SpeechSynthesisUtterance (
+  ) where
diff --git a/src/GHCJS/DOM/SpeechSynthesisVoice.hs b/src/GHCJS/DOM/SpeechSynthesisVoice.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SpeechSynthesisVoice.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SpeechSynthesisVoice (
+  ) where
diff --git a/src/GHCJS/DOM/StorageErrorCallback.hs b/src/GHCJS/DOM/StorageErrorCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/StorageErrorCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.StorageErrorCallback (
+  ) where
diff --git a/src/GHCJS/DOM/StorageEvent.hs b/src/GHCJS/DOM/StorageEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/StorageEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.StorageEvent (
+  ) where
diff --git a/src/GHCJS/DOM/StorageQuota.hs b/src/GHCJS/DOM/StorageQuota.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/StorageQuota.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.StorageQuota (
+  ) where
diff --git a/src/GHCJS/DOM/StorageQuotaCallback.hs b/src/GHCJS/DOM/StorageQuotaCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/StorageQuotaCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.StorageQuotaCallback (
+  ) where
diff --git a/src/GHCJS/DOM/StorageUsageCallback.hs b/src/GHCJS/DOM/StorageUsageCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/StorageUsageCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.StorageUsageCallback (
+  ) where
diff --git a/src/GHCJS/DOM/StringCallback.hs b/src/GHCJS/DOM/StringCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/StringCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.StringCallback (
+  ) where
diff --git a/src/GHCJS/DOM/SubtleCrypto.hs b/src/GHCJS/DOM/SubtleCrypto.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/SubtleCrypto.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.SubtleCrypto (
+  ) where
diff --git a/src/GHCJS/DOM/TextEvent.hs b/src/GHCJS/DOM/TextEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/TextEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.TextEvent (
+  ) where
diff --git a/src/GHCJS/DOM/TextMetrics.hs b/src/GHCJS/DOM/TextMetrics.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/TextMetrics.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.TextMetrics (
+  ) where
diff --git a/src/GHCJS/DOM/TouchEvent.hs b/src/GHCJS/DOM/TouchEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/TouchEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.TouchEvent (
+  ) where
diff --git a/src/GHCJS/DOM/TouchList.hs b/src/GHCJS/DOM/TouchList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/TouchList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.TouchList (
+  ) where
diff --git a/src/GHCJS/DOM/TrackEvent.hs b/src/GHCJS/DOM/TrackEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/TrackEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.TrackEvent (
+  ) where
diff --git a/src/GHCJS/DOM/TransitionEvent.hs b/src/GHCJS/DOM/TransitionEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/TransitionEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.TransitionEvent (
+  ) where
diff --git a/src/GHCJS/DOM/TypeConversions.hs b/src/GHCJS/DOM/TypeConversions.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/TypeConversions.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.TypeConversions (
+  ) where
diff --git a/src/GHCJS/DOM/Types.hs b/src/GHCJS/DOM/Types.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Types.hs
@@ -0,0 +1,1558 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE ConstraintKinds #-}
+module GHCJS.DOM.Types (
+-- AUTO GENERATION STARTS HERE
+    propagateGError, GType(..), DOMString(..), ToDOMString(..), FromDOMString(..)
+  , FocusEvent
+  , TouchEvent
+  , module Graphics.UI.Gtk.WebKit.Types
+  , IsGObject
+
+  , IsApplicationCache
+  , IsAttr
+#ifndef USE_OLD_WEBKIT
+  , IsAudioTrack
+#endif
+#ifndef USE_OLD_WEBKIT
+  , IsAudioTrackList
+#endif
+#ifndef USE_OLD_WEBKIT
+  , IsBarProp
+#endif
+#ifndef USE_OLD_WEBKIT
+  , IsBatteryManager
+#endif
+  , IsBlob
+  , IsCDATASection
+#ifndef USE_OLD_WEBKIT
+  , IsCSS
+#endif
+  , IsCSSRule
+  , IsCSSRuleList
+  , IsCSSStyleDeclaration
+  , IsCSSStyleSheet
+  , IsCSSValue
+  , IsCharacterData
+  , IsComment
+  , IsDOMImplementation
+#ifndef USE_OLD_WEBKIT
+  , IsDOMNamedFlowCollection
+#endif
+  , IsDOMSettableTokenList
+  , IsDOMStringList
+  , IsDOMTokenList
+  , IsDocument
+  , IsDocumentFragment
+  , IsDocumentType
+  , IsElement
+  , IsEntityReference
+  , IsEvent
+  , IsEventTarget
+  , IsFile
+  , IsFileList
+  , IsGeolocation
+  , IsHTMLAnchorElement
+  , IsHTMLAppletElement
+  , IsHTMLAreaElement
+  , IsHTMLAudioElement
+  , IsHTMLBRElement
+  , IsHTMLBaseElement
+  , IsHTMLBaseFontElement
+  , IsHTMLBodyElement
+  , IsHTMLButtonElement
+  , IsHTMLCanvasElement
+  , IsHTMLCollection
+  , IsHTMLDListElement
+  , IsHTMLDetailsElement
+  , IsHTMLDirectoryElement
+  , IsHTMLDivElement
+  , IsHTMLDocument
+  , IsHTMLElement
+  , IsHTMLEmbedElement
+  , IsHTMLFieldSetElement
+  , IsHTMLFontElement
+  , IsHTMLFormElement
+  , IsHTMLFrameElement
+  , IsHTMLFrameSetElement
+  , IsHTMLHRElement
+  , IsHTMLHeadElement
+  , IsHTMLHeadingElement
+  , IsHTMLHtmlElement
+  , IsHTMLIFrameElement
+  , IsHTMLImageElement
+  , IsHTMLInputElement
+  , IsHTMLKeygenElement
+  , IsHTMLLIElement
+  , IsHTMLLabelElement
+  , IsHTMLLegendElement
+  , IsHTMLLinkElement
+  , IsHTMLMapElement
+  , IsHTMLMarqueeElement
+  , IsHTMLMediaElement
+  , IsHTMLMenuElement
+  , IsHTMLMetaElement
+  , IsHTMLModElement
+  , IsHTMLOListElement
+  , IsHTMLObjectElement
+  , IsHTMLOptGroupElement
+  , IsHTMLOptionElement
+  , IsHTMLOptionsCollection
+  , IsHTMLParagraphElement
+  , IsHTMLParamElement
+  , IsHTMLPreElement
+  , IsHTMLQuoteElement
+  , IsHTMLScriptElement
+  , IsHTMLSelectElement
+  , IsHTMLStyleElement
+  , IsHTMLTableCaptionElement
+  , IsHTMLTableCellElement
+  , IsHTMLTableColElement
+  , IsHTMLTableElement
+  , IsHTMLTableRowElement
+  , IsHTMLTableSectionElement
+  , IsHTMLTextAreaElement
+  , IsHTMLTitleElement
+  , IsHTMLUListElement
+  , IsHTMLVideoElement
+  , IsHistory
+#ifndef USE_OLD_WEBKIT
+  , IsKeyboardEvent
+#endif
+  , IsLocation
+  , IsMediaError
+  , IsMediaList
+  , IsMediaQueryList
+  , IsMessagePort
+  , IsMimeType
+  , IsMimeTypeArray
+  , IsMouseEvent
+  , IsNamedNodeMap
+  , IsNavigator
+  , IsNode
+  , IsNodeFilter
+  , IsNodeIterator
+  , IsNodeList
+#ifndef USE_OLD_WEBKIT
+  , IsPerformance
+#endif
+#ifndef USE_OLD_WEBKIT
+  , IsPerformanceNavigation
+#endif
+#ifndef USE_OLD_WEBKIT
+  , IsPerformanceTiming
+#endif
+  , IsPlugin
+  , IsPluginArray
+  , IsProcessingInstruction
+  , IsRange
+  , IsScreen
+#ifndef USE_OLD_WEBKIT
+  , IsSecurityPolicy
+#endif
+  , IsSelection
+  , IsStorage
+#ifndef USE_OLD_WEBKIT
+  , IsStorageInfo
+#endif
+#ifndef USE_OLD_WEBKIT
+  , IsStorageQuota
+#endif
+  , IsStyleMedia
+  , IsStyleSheet
+  , IsStyleSheetList
+  , IsText
+#ifndef USE_OLD_WEBKIT
+  , IsTextTrack
+#endif
+#ifndef USE_OLD_WEBKIT
+  , IsTextTrackCue
+#endif
+#ifndef USE_OLD_WEBKIT
+  , IsTextTrackCueList
+#endif
+#ifndef USE_OLD_WEBKIT
+  , IsTextTrackList
+#endif
+  , IsTimeRanges
+#ifndef USE_OLD_WEBKIT
+  , IsTouch
+#endif
+  , IsTreeWalker
+  , IsUIEvent
+  , IsValidityState
+#ifndef USE_OLD_WEBKIT
+  , IsVideoTrack
+#endif
+#ifndef USE_OLD_WEBKIT
+  , IsVideoTrackList
+#endif
+  , IsWebKitNamedFlow
+  , IsWebKitPoint
+#ifndef USE_OLD_WEBKIT
+  , IsWheelEvent
+#endif
+  , IsWindow
+  , IsXPathExpression
+  , IsXPathNSResolver
+  , IsXPathResult
+-- AUTO GENERATION ENDS HERE
+  ) where
+
+import Control.Applicative ((<$>))
+import qualified Data.Text as T (Text)
+import Data.Maybe (isNothing)
+import Foreign.C (CString)
+import Graphics.UI.Gtk.WebKit.Types
+import System.Glib (propagateGError, GType(..))
+import System.Glib.UTFString
+       (readUTFString, GlibString(..))
+import Data.Int (Int8, Int16, Int32, Int64)
+import Data.Word (Word8, Word16, Word32, Word64)
+
+type IsGObject o = GObjectClass o
+
+-- | Fastest string type to use when you just
+--   want to take a string from the DOM then
+--   give it back as is.
+type DOMString = T.Text
+
+type ToDOMString s = GlibString s
+type FromDOMString s = GlibString s
+
+type FocusEvent = UIEvent
+type TouchEvent = UIEvent
+
+type IsDOMString s = (ToDOMString s, FromDOMString s)
+
+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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsApplicationCache o = ApplicationCacheClass o
+
+
+type IsAttr o = AttrClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#ifndef USE_OLD_WEBKIT
+type IsAudioTrack o = AudioTrackClass o
+#endif
+
+
+#ifndef USE_OLD_WEBKIT
+type IsAudioTrackList o = AudioTrackListClass o
+#endif
+
+
+
+
+#ifndef USE_OLD_WEBKIT
+type IsBarProp o = BarPropClass o
+#endif
+
+
+#ifndef USE_OLD_WEBKIT
+type IsBatteryManager o = BatteryManagerClass o
+#endif
+
+
+
+
+
+
+
+
+type IsBlob o = BlobClass o
+
+
+type IsCDATASection o = CDATASectionClass o
+
+
+#ifndef USE_OLD_WEBKIT
+type IsCSS o = CSSClass o
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsCSSRule o = CSSRuleClass o
+
+
+type IsCSSRuleList o = CSSRuleListClass o
+
+
+type IsCSSStyleDeclaration o = CSSStyleDeclarationClass o
+
+
+
+
+type IsCSSStyleSheet o = CSSStyleSheetClass o
+
+
+
+
+
+
+type IsCSSValue o = CSSValueClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsCharacterData o = CharacterDataClass o
+
+
+
+
+
+
+
+
+
+
+
+
+type IsComment o = CommentClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsDOMImplementation o = DOMImplementationClass o
+
+
+#ifndef USE_OLD_WEBKIT
+type IsDOMNamedFlowCollection o = DOMNamedFlowCollectionClass o
+#endif
+
+
+
+
+type IsDOMSettableTokenList o = DOMSettableTokenListClass o
+
+
+type IsDOMStringList o = DOMStringListClass o
+
+
+
+
+type IsDOMTokenList o = DOMTokenListClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsDocument o = DocumentClass o
+
+
+type IsDocumentFragment o = DocumentFragmentClass o
+
+
+type IsDocumentType o = DocumentTypeClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsElement o = ElementClass o
+
+
+
+
+type IsEntityReference o = EntityReferenceClass o
+
+
+
+
+type IsEvent o = EventClass o
+
+
+
+
+
+
+type IsEventTarget o = EventTargetClass o
+
+
+type IsFile o = FileClass o
+
+
+
+
+type IsFileList o = FileListClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsGeolocation o = GeolocationClass o
+
+
+
+
+
+
+type IsHTMLAnchorElement o = HTMLAnchorElementClass o
+
+
+type IsHTMLAppletElement o = HTMLAppletElementClass o
+
+
+type IsHTMLAreaElement o = HTMLAreaElementClass o
+
+
+type IsHTMLAudioElement o = HTMLAudioElementClass o
+
+
+type IsHTMLBRElement o = HTMLBRElementClass o
+
+
+type IsHTMLBaseElement o = HTMLBaseElementClass o
+
+
+type IsHTMLBaseFontElement o = HTMLBaseFontElementClass o
+
+
+type IsHTMLBodyElement o = HTMLBodyElementClass o
+
+
+type IsHTMLButtonElement o = HTMLButtonElementClass o
+
+
+type IsHTMLCanvasElement o = HTMLCanvasElementClass o
+
+
+type IsHTMLCollection o = HTMLCollectionClass o
+
+
+type IsHTMLDListElement o = HTMLDListElementClass o
+
+
+
+
+type IsHTMLDetailsElement o = HTMLDetailsElementClass o
+
+
+type IsHTMLDirectoryElement o = HTMLDirectoryElementClass o
+
+
+type IsHTMLDivElement o = HTMLDivElementClass o
+
+
+type IsHTMLDocument o = HTMLDocumentClass o
+
+
+type IsHTMLElement o = HTMLElementClass o
+
+
+type IsHTMLEmbedElement o = HTMLEmbedElementClass o
+
+
+type IsHTMLFieldSetElement o = HTMLFieldSetElementClass o
+
+
+type IsHTMLFontElement o = HTMLFontElementClass o
+
+
+
+
+type IsHTMLFormElement o = HTMLFormElementClass o
+
+
+type IsHTMLFrameElement o = HTMLFrameElementClass o
+
+
+type IsHTMLFrameSetElement o = HTMLFrameSetElementClass o
+
+
+type IsHTMLHRElement o = HTMLHRElementClass o
+
+
+type IsHTMLHeadElement o = HTMLHeadElementClass o
+
+
+type IsHTMLHeadingElement o = HTMLHeadingElementClass o
+
+
+type IsHTMLHtmlElement o = HTMLHtmlElementClass o
+
+
+type IsHTMLIFrameElement o = HTMLIFrameElementClass o
+
+
+type IsHTMLImageElement o = HTMLImageElementClass o
+
+
+type IsHTMLInputElement o = HTMLInputElementClass o
+
+
+type IsHTMLKeygenElement o = HTMLKeygenElementClass o
+
+
+type IsHTMLLIElement o = HTMLLIElementClass o
+
+
+type IsHTMLLabelElement o = HTMLLabelElementClass o
+
+
+type IsHTMLLegendElement o = HTMLLegendElementClass o
+
+
+type IsHTMLLinkElement o = HTMLLinkElementClass o
+
+
+type IsHTMLMapElement o = HTMLMapElementClass o
+
+
+type IsHTMLMarqueeElement o = HTMLMarqueeElementClass o
+
+
+type IsHTMLMediaElement o = HTMLMediaElementClass o
+
+
+type IsHTMLMenuElement o = HTMLMenuElementClass o
+
+
+type IsHTMLMetaElement o = HTMLMetaElementClass o
+
+
+
+
+type IsHTMLModElement o = HTMLModElementClass o
+
+
+type IsHTMLOListElement o = HTMLOListElementClass o
+
+
+type IsHTMLObjectElement o = HTMLObjectElementClass o
+
+
+type IsHTMLOptGroupElement o = HTMLOptGroupElementClass o
+
+
+type IsHTMLOptionElement o = HTMLOptionElementClass o
+
+
+type IsHTMLOptionsCollection o = HTMLOptionsCollectionClass o
+
+
+
+
+type IsHTMLParagraphElement o = HTMLParagraphElementClass o
+
+
+type IsHTMLParamElement o = HTMLParamElementClass o
+
+
+type IsHTMLPreElement o = HTMLPreElementClass o
+
+
+
+
+type IsHTMLQuoteElement o = HTMLQuoteElementClass o
+
+
+type IsHTMLScriptElement o = HTMLScriptElementClass o
+
+
+type IsHTMLSelectElement o = HTMLSelectElementClass o
+
+
+
+
+
+
+type IsHTMLStyleElement o = HTMLStyleElementClass o
+
+
+type IsHTMLTableCaptionElement o = HTMLTableCaptionElementClass o
+
+
+type IsHTMLTableCellElement o = HTMLTableCellElementClass o
+
+
+type IsHTMLTableColElement o = HTMLTableColElementClass o
+
+
+type IsHTMLTableElement o = HTMLTableElementClass o
+
+
+type IsHTMLTableRowElement o = HTMLTableRowElementClass o
+
+
+type IsHTMLTableSectionElement o = HTMLTableSectionElementClass o
+
+
+
+
+type IsHTMLTextAreaElement o = HTMLTextAreaElementClass o
+
+
+type IsHTMLTitleElement o = HTMLTitleElementClass o
+
+
+
+
+type IsHTMLUListElement o = HTMLUListElementClass o
+
+
+
+
+type IsHTMLVideoElement o = HTMLVideoElementClass o
+
+
+
+
+type IsHistory o = HistoryClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#ifndef USE_OLD_WEBKIT
+type IsKeyboardEvent o = KeyboardEventClass o
+#endif
+
+
+type IsLocation o = LocationClass o
+
+
+
+
+
+
+
+
+
+
+type IsMediaError o = MediaErrorClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsMediaList o = MediaListClass o
+
+
+type IsMediaQueryList o = MediaQueryListClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsMessagePort o = MessagePortClass o
+
+
+type IsMimeType o = MimeTypeClass o
+
+
+type IsMimeTypeArray o = MimeTypeArrayClass o
+
+
+type IsMouseEvent o = MouseEventClass o
+
+
+
+
+
+
+
+
+type IsNamedNodeMap o = NamedNodeMapClass o
+
+
+type IsNavigator o = NavigatorClass o
+
+
+
+
+type IsNode o = NodeClass o
+
+
+type IsNodeFilter o = NodeFilterClass o
+
+
+type IsNodeIterator o = NodeIteratorClass o
+
+
+type IsNodeList o = NodeListClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#ifndef USE_OLD_WEBKIT
+type IsPerformance o = PerformanceClass o
+#endif
+
+
+
+
+
+
+
+
+
+
+#ifndef USE_OLD_WEBKIT
+type IsPerformanceNavigation o = PerformanceNavigationClass o
+#endif
+
+
+
+
+#ifndef USE_OLD_WEBKIT
+type IsPerformanceTiming o = PerformanceTimingClass o
+#endif
+
+
+
+
+type IsPlugin o = PluginClass o
+
+
+type IsPluginArray o = PluginArrayClass o
+
+
+
+
+
+
+type IsProcessingInstruction o = ProcessingInstructionClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsRange o = RangeClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsScreen o = ScreenClass o
+
+
+
+
+
+
+
+
+#ifndef USE_OLD_WEBKIT
+type IsSecurityPolicy o = SecurityPolicyClass o
+#endif
+
+
+
+
+type IsSelection o = SelectionClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsStorage o = StorageClass o
+
+
+
+
+#ifndef USE_OLD_WEBKIT
+type IsStorageInfo o = StorageInfoClass o
+#endif
+
+
+#ifndef USE_OLD_WEBKIT
+type IsStorageQuota o = StorageQuotaClass o
+#endif
+
+
+type IsStyleMedia o = StyleMediaClass o
+
+
+type IsStyleSheet o = StyleSheetClass o
+
+
+type IsStyleSheetList o = StyleSheetListClass o
+
+
+
+
+type IsText o = TextClass o
+
+
+
+
+
+
+#ifndef USE_OLD_WEBKIT
+type IsTextTrack o = TextTrackClass o
+#endif
+
+
+#ifndef USE_OLD_WEBKIT
+type IsTextTrackCue o = TextTrackCueClass o
+#endif
+
+
+#ifndef USE_OLD_WEBKIT
+type IsTextTrackCueList o = TextTrackCueListClass o
+#endif
+
+
+#ifndef USE_OLD_WEBKIT
+type IsTextTrackList o = TextTrackListClass o
+#endif
+
+
+type IsTimeRanges o = TimeRangesClass o
+
+
+#ifndef USE_OLD_WEBKIT
+type IsTouch o = TouchClass o
+#endif
+
+
+
+
+
+
+
+
+
+
+type IsTreeWalker o = TreeWalkerClass o
+
+
+
+
+type IsUIEvent o = UIEventClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsValidityState o = ValidityStateClass o
+
+
+
+
+
+
+#ifndef USE_OLD_WEBKIT
+type IsVideoTrack o = VideoTrackClass o
+#endif
+
+
+#ifndef USE_OLD_WEBKIT
+type IsVideoTrackList o = VideoTrackListClass o
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsWebKitNamedFlow o = WebKitNamedFlowClass o
+
+
+
+
+
+
+type IsWebKitPoint o = WebKitPointClass o
+
+
+
+
+
+
+#ifndef USE_OLD_WEBKIT
+type IsWheelEvent o = WheelEventClass o
+#endif
+
+
+type IsWindow o = WindowClass o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+type IsXPathExpression o = XPathExpressionClass o
+
+
+type IsXPathNSResolver o = XPathNSResolverClass o
+
+
+type IsXPathResult o = XPathResultClass o
+
+
+
+
diff --git a/src/GHCJS/DOM/UIRequestEvent.hs b/src/GHCJS/DOM/UIRequestEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/UIRequestEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.UIRequestEvent (
+  ) where
diff --git a/src/GHCJS/DOM/URL.hs b/src/GHCJS/DOM/URL.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/URL.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.URL (
+  ) where
diff --git a/src/GHCJS/DOM/URLUtils.hs b/src/GHCJS/DOM/URLUtils.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/URLUtils.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.URLUtils (
+  ) where
diff --git a/src/GHCJS/DOM/UserMessageHandler.hs b/src/GHCJS/DOM/UserMessageHandler.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/UserMessageHandler.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.UserMessageHandler (
+  ) where
diff --git a/src/GHCJS/DOM/VTTCue.hs b/src/GHCJS/DOM/VTTCue.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/VTTCue.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.VTTCue (
+  ) where
diff --git a/src/GHCJS/DOM/VTTRegion.hs b/src/GHCJS/DOM/VTTRegion.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/VTTRegion.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.VTTRegion (
+  ) where
diff --git a/src/GHCJS/DOM/VTTRegionList.hs b/src/GHCJS/DOM/VTTRegionList.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/VTTRegionList.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.VTTRegionList (
+  ) where
diff --git a/src/GHCJS/DOM/VideoPlaybackQuality.hs b/src/GHCJS/DOM/VideoPlaybackQuality.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/VideoPlaybackQuality.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.VideoPlaybackQuality (
+  ) where
diff --git a/src/GHCJS/DOM/VideoStreamTrack.hs b/src/GHCJS/DOM/VideoStreamTrack.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/VideoStreamTrack.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.VideoStreamTrack (
+  ) where
diff --git a/src/GHCJS/DOM/VoidCallback.hs b/src/GHCJS/DOM/VoidCallback.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/VoidCallback.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.VoidCallback (
+  ) where
diff --git a/src/GHCJS/DOM/WaveShaperNode.hs b/src/GHCJS/DOM/WaveShaperNode.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WaveShaperNode.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WaveShaperNode (
+  ) where
diff --git a/src/GHCJS/DOM/WebGL2RenderingContext.hs b/src/GHCJS/DOM/WebGL2RenderingContext.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGL2RenderingContext.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGL2RenderingContext (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLActiveInfo.hs b/src/GHCJS/DOM/WebGLActiveInfo.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLActiveInfo.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLActiveInfo (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLCompressedTextureATC.hs b/src/GHCJS/DOM/WebGLCompressedTextureATC.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLCompressedTextureATC.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLCompressedTextureATC (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLCompressedTexturePVRTC.hs b/src/GHCJS/DOM/WebGLCompressedTexturePVRTC.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLCompressedTexturePVRTC.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLCompressedTexturePVRTC (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLCompressedTextureS3TC.hs b/src/GHCJS/DOM/WebGLCompressedTextureS3TC.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLCompressedTextureS3TC.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLCompressedTextureS3TC (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLContextAttributes.hs b/src/GHCJS/DOM/WebGLContextAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLContextAttributes.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLContextAttributes (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLContextEvent.hs b/src/GHCJS/DOM/WebGLContextEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLContextEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLContextEvent (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLDebugRendererInfo.hs b/src/GHCJS/DOM/WebGLDebugRendererInfo.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLDebugRendererInfo.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLDebugRendererInfo (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLDebugShaders.hs b/src/GHCJS/DOM/WebGLDebugShaders.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLDebugShaders.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLDebugShaders (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLDepthTexture.hs b/src/GHCJS/DOM/WebGLDepthTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLDepthTexture.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLDepthTexture (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLDrawBuffers.hs b/src/GHCJS/DOM/WebGLDrawBuffers.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLDrawBuffers.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLDrawBuffers (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLLoseContext.hs b/src/GHCJS/DOM/WebGLLoseContext.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLLoseContext.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLLoseContext (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLRenderingContextBase.hs b/src/GHCJS/DOM/WebGLRenderingContextBase.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLRenderingContextBase.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLRenderingContextBase (
+  ) where
diff --git a/src/GHCJS/DOM/WebGLShaderPrecisionFormat.hs b/src/GHCJS/DOM/WebGLShaderPrecisionFormat.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebGLShaderPrecisionFormat.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebGLShaderPrecisionFormat (
+  ) where
diff --git a/src/GHCJS/DOM/WebKitAnimationEvent.hs b/src/GHCJS/DOM/WebKitAnimationEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebKitAnimationEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebKitAnimationEvent (
+  ) where
diff --git a/src/GHCJS/DOM/WebKitCSSFilterValue.hs b/src/GHCJS/DOM/WebKitCSSFilterValue.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebKitCSSFilterValue.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebKitCSSFilterValue (
+  ) where
diff --git a/src/GHCJS/DOM/WebKitCSSMatrix.hs b/src/GHCJS/DOM/WebKitCSSMatrix.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebKitCSSMatrix.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebKitCSSMatrix (
+  ) where
diff --git a/src/GHCJS/DOM/WebKitCSSRegionRule.hs b/src/GHCJS/DOM/WebKitCSSRegionRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebKitCSSRegionRule.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebKitCSSRegionRule (
+  ) where
diff --git a/src/GHCJS/DOM/WebKitCSSTransformValue.hs b/src/GHCJS/DOM/WebKitCSSTransformValue.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebKitCSSTransformValue.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebKitCSSTransformValue (
+  ) where
diff --git a/src/GHCJS/DOM/WebKitCSSViewportRule.hs b/src/GHCJS/DOM/WebKitCSSViewportRule.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebKitCSSViewportRule.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebKitCSSViewportRule (
+  ) where
diff --git a/src/GHCJS/DOM/WebKitNamespace.hs b/src/GHCJS/DOM/WebKitNamespace.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebKitNamespace.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebKitNamespace (
+  ) where
diff --git a/src/GHCJS/DOM/WebKitPlaybackTargetAvailabilityEvent.hs b/src/GHCJS/DOM/WebKitPlaybackTargetAvailabilityEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebKitPlaybackTargetAvailabilityEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebKitPlaybackTargetAvailabilityEvent (
+  ) where
diff --git a/src/GHCJS/DOM/WebKitTransitionEvent.hs b/src/GHCJS/DOM/WebKitTransitionEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebKitTransitionEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebKitTransitionEvent (
+  ) where
diff --git a/src/GHCJS/DOM/WebSocket.hs b/src/GHCJS/DOM/WebSocket.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WebSocket.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WebSocket (
+  ) where
diff --git a/src/GHCJS/DOM/WindowBase64.hs b/src/GHCJS/DOM/WindowBase64.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WindowBase64.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WindowBase64 (
+  ) where
diff --git a/src/GHCJS/DOM/WindowTimers.hs b/src/GHCJS/DOM/WindowTimers.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WindowTimers.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WindowTimers (
+  ) where
diff --git a/src/GHCJS/DOM/Worker.hs b/src/GHCJS/DOM/Worker.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/Worker.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.Worker (
+  ) where
diff --git a/src/GHCJS/DOM/WorkerGlobalScope.hs b/src/GHCJS/DOM/WorkerGlobalScope.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WorkerGlobalScope.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WorkerGlobalScope (
+  ) where
diff --git a/src/GHCJS/DOM/WorkerLocation.hs b/src/GHCJS/DOM/WorkerLocation.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WorkerLocation.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WorkerLocation (
+  ) where
diff --git a/src/GHCJS/DOM/WorkerNavigator.hs b/src/GHCJS/DOM/WorkerNavigator.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/WorkerNavigator.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.WorkerNavigator (
+  ) where
diff --git a/src/GHCJS/DOM/XMLHttpRequest.hs b/src/GHCJS/DOM/XMLHttpRequest.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/XMLHttpRequest.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.XMLHttpRequest (
+  ) where
diff --git a/src/GHCJS/DOM/XMLHttpRequestProgressEvent.hs b/src/GHCJS/DOM/XMLHttpRequestProgressEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/XMLHttpRequestProgressEvent.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.XMLHttpRequestProgressEvent (
+  ) where
diff --git a/src/GHCJS/DOM/XMLHttpRequestUpload.hs b/src/GHCJS/DOM/XMLHttpRequestUpload.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/XMLHttpRequestUpload.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.XMLHttpRequestUpload (
+  ) where
diff --git a/src/GHCJS/DOM/XMLSerializer.hs b/src/GHCJS/DOM/XMLSerializer.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/XMLSerializer.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.XMLSerializer (
+  ) where
diff --git a/src/GHCJS/DOM/XPathEvaluator.hs b/src/GHCJS/DOM/XPathEvaluator.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/XPathEvaluator.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.XPathEvaluator (
+  ) where
diff --git a/src/GHCJS/DOM/XSLTProcessor.hs b/src/GHCJS/DOM/XSLTProcessor.hs
new file mode 100644
--- /dev/null
+++ b/src/GHCJS/DOM/XSLTProcessor.hs
@@ -0,0 +1,2 @@
+module GHCJS.DOM.XSLTProcessor (
+  ) where
