diff --git a/frag.cabal b/frag.cabal
--- a/frag.cabal
+++ b/frag.cabal
@@ -1,5 +1,5 @@
 Name:                frag
-Version:             1.1.1
+Version:             1.1.2
 License:             GPL
 License-file:        LICENSE
 Synopsis:            A 3-D First Person Shooter Game
@@ -83,7 +83,7 @@
 
 Executable frag
    Main-is:             Main.hs
-   Build-Depends:       base>=3, GLUT, OpenGL>=2.0, array, random
+   Build-Depends:       base==4.*, GLUT, OpenGL>=2.0, array, random
    Hs-source-dirs:      src
    Ghc-options:         -O2 -funbox-strict-fields -fvia-C -optc-O2
    Extensions:          BangPatterns,
diff --git a/src/AFRP.hs b/src/AFRP.hs
--- a/src/AFRP.hs
+++ b/src/AFRP.hs
@@ -258,6 +258,9 @@
 import System.Random (RandomGen(..), Random(), randoms, randomRs)
 import Data.IORef
 import Control.Arrow
+import Control.Category
+import Prelude hiding (id,(.))
+import qualified Prelude 
 import AFRPDiagnostics
 import AFRPMiscellany (( # ), dup, swap)
 import AFRPEvent
@@ -358,9 +361,12 @@
 -- Arrow instance and implementation
 ------------------------------------------------------------------------------
 
+instance Category SF where
+    g . f  = f `compPrim` g
+--    id  = Prelude.id
+
 instance Arrow SF where
     arr  = arrPrim
-    (>>>)  = compPrim
     first  = firstPrim
     second = secondPrim
     (***)  = parSplitPrim
