diff --git a/HJScript.cabal b/HJScript.cabal
--- a/HJScript.cabal
+++ b/HJScript.cabal
@@ -1,5 +1,5 @@
 Name:             HJScript
-Version:          0.4.4
+Version:          0.4.5
 License:          BSD3
 Author:           Joel Bjornson, joel.bjornson@gmail.com,
                   Niklas Broberg, nibro@cs.chalmers.se
@@ -44,7 +44,8 @@
 Other-Modules:    HJScript.Monad
 
                   
-Build-Depends:    base, HJavaScript >= 0.4.4, mtl, hsx >= 0.4.4
+Cabal-Version:    >= 1.2.3
+Build-Depends:    base <= 4, HJavaScript >= 0.4.4, mtl, hsx >= 0.4.4
 Build-Type:       Simple
 Category:         Web, Language
 
diff --git a/src/HJScript.hs b/src/HJScript.hs
--- a/src/HJScript.hs
+++ b/src/HJScript.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  HJScript
@@ -11,6 +9,7 @@
 -----------------------------------------------------------------------------
 module HJScript
   (
+    module HJScript.Monad,
     module HJScript.Lang,
     module HJScript.XMLGenerator,
     module HJScript.Events,
@@ -23,6 +22,7 @@
     module HJScript.Objects.String
   ) where
 
+import HJScript.Monad
 import HJScript.Lang
 import HJScript.XMLGenerator
 import HJScript.Events
diff --git a/src/HJScript/Ajax.hs b/src/HJScript/Ajax.hs
--- a/src/HJScript/Ajax.hs
+++ b/src/HJScript/Ajax.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- Module      :  HJScript.Ajax
 -- Copyright   :  (c) Joel Björnson 2006
diff --git a/src/HJScript/Lang.hs b/src/HJScript/Lang.hs
--- a/src/HJScript/Lang.hs
+++ b/src/HJScript/Lang.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  HJScript.Lang
diff --git a/src/HJScript/Monad.hs b/src/HJScript/Monad.hs
--- a/src/HJScript/Monad.hs
+++ b/src/HJScript/Monad.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  HJScript.Monad
diff --git a/src/HJScript/Objects/ActiveXObject.hs b/src/HJScript/Objects/ActiveXObject.hs
--- a/src/HJScript/Objects/ActiveXObject.hs
+++ b/src/HJScript/Objects/ActiveXObject.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- Module      :  HJScript.Objects.ActiveXObject
 -- Copyright   :  (c) Joel Björnson 2006
diff --git a/src/HJScript/Objects/Array.hs b/src/HJScript/Objects/Array.hs
--- a/src/HJScript/Objects/Array.hs
+++ b/src/HJScript/Objects/Array.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  HJScript.Objects.Array
diff --git a/src/HJScript/Objects/Boolean.hs b/src/HJScript/Objects/Boolean.hs
--- a/src/HJScript/Objects/Boolean.hs
+++ b/src/HJScript/Objects/Boolean.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  HJScript.Objects.Boolean
diff --git a/src/HJScript/Objects/Date.hs b/src/HJScript/Objects/Date.hs
--- a/src/HJScript/Objects/Date.hs
+++ b/src/HJScript/Objects/Date.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  HJScript.Object.Date
diff --git a/src/HJScript/Objects/JQuery.hs b/src/HJScript/Objects/JQuery.hs
--- a/src/HJScript/Objects/JQuery.hs
+++ b/src/HJScript/Objects/JQuery.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 module HJScript.Objects.JQuery where
 
 import HJScript.Lang
diff --git a/src/HJScript/Objects/Math.hs b/src/HJScript/Objects/Math.hs
--- a/src/HJScript/Objects/Math.hs
+++ b/src/HJScript/Objects/Math.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  HJScript.Objects.Math
diff --git a/src/HJScript/Objects/RegExp.hs b/src/HJScript/Objects/RegExp.hs
--- a/src/HJScript/Objects/RegExp.hs
+++ b/src/HJScript/Objects/RegExp.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  HJScript.Objects.RegExp
diff --git a/src/HJScript/Objects/String.hs b/src/HJScript/Objects/String.hs
--- a/src/HJScript/Objects/String.hs
+++ b/src/HJScript/Objects/String.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  HJScript.Object.String
diff --git a/src/HJScript/Objects/XMLHttpRequest.hs b/src/HJScript/Objects/XMLHttpRequest.hs
--- a/src/HJScript/Objects/XMLHttpRequest.hs
+++ b/src/HJScript/Objects/XMLHttpRequest.hs
@@ -1,6 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- Module      :  HJScript.Objects.XMLHttpRequest 
 -- Copyright   :  (c) Joel Björnson 2006
diff --git a/src/HJScript/XMLGenerator.hs b/src/HJScript/XMLGenerator.hs
--- a/src/HJScript/XMLGenerator.hs
+++ b/src/HJScript/XMLGenerator.hs
@@ -1,7 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -fallow-overlapping-instances #-}
-{-# OPTIONS_GHC -fallow-undecidable-instances #-}
-
+{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}
 module HJScript.XMLGenerator (
 --        ToChildNodes(..), ToAttributeNode(..),
         
