diff --git a/jsaddle.cabal b/jsaddle.cabal
--- a/jsaddle.cabal
+++ b/jsaddle.cabal
@@ -1,5 +1,5 @@
 name: jsaddle
-version: 0.8.0.0
+version: 0.8.0.1
 cabal-version: >=1.10
 build-type: Simple
 license: MIT
@@ -82,6 +82,7 @@
         Language.Javascript.JSaddle.Classes.Internal
         Language.Javascript.JSaddle.Evaluate
         Language.Javascript.JSaddle.Exception
+        Language.Javascript.JSaddle.Helper
         Language.Javascript.JSaddle.Marshal.String
         Language.Javascript.JSaddle.Monad
         Language.Javascript.JSaddle.Object
diff --git a/src/Language/Javascript/JSaddle.hs b/src/Language/Javascript/JSaddle.hs
--- a/src/Language/Javascript/JSaddle.hs
+++ b/src/Language/Javascript/JSaddle.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
 -----------------------------------------------------------------------------
 --
 -- Module      :  Language.Javascript.JSaddle
diff --git a/src/Language/Javascript/JSaddle/Helper.hs b/src/Language/Javascript/JSaddle/Helper.hs
new file mode 100644
--- /dev/null
+++ b/src/Language/Javascript/JSaddle/Helper.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE CPP #-}
+module Language.Javascript.JSaddle.Helper where
+
+import GHCJS.Types (JSVal)
+import Language.Javascript.JSaddle.Types (JSM)
+
+#ifdef ghcjs_HOST_OS
+import GHCJS.Marshal.Pure (pFromJSVal, pToJSVal)
+import JavaScript.TypedArray.ArrayBuffer (MutableArrayBuffer)
+#else
+import JavaScript.TypedArray.ArrayBuffer.Internal (MutableArrayBuffer, SomeArrayBuffer(..))
+#endif
+
+-- | Helper function needed because there is no FromJSVal instance for MutableArrayBuffer
+mutableArrayBufferFromJSVal :: JSVal -> JSM MutableArrayBuffer
+#ifdef ghcjs_HOST_OS
+mutableArrayBufferFromJSVal = return . pFromJSVal
+#else
+mutableArrayBufferFromJSVal = return . SomeArrayBuffer
+#endif
+{-# INLINE mutableArrayBufferFromJSVal #-}
+
+-- | Helper function needed because there is no ToJSVal instance for MutableArrayBuffer
+mutableArrayBufferToJSVal :: MutableArrayBuffer -> JSM JSVal
+#ifdef ghcjs_HOST_OS
+mutableArrayBufferToJSVal = return . pToJSVal
+#else
+mutableArrayBufferToJSVal (SomeArrayBuffer v) = return v
+#endif
+{-# INLINE mutableArrayBufferToJSVal #-}
diff --git a/src/Language/Javascript/JSaddle/Value.hs b/src/Language/Javascript/JSaddle/Value.hs
--- a/src/Language/Javascript/JSaddle/Value.hs
+++ b/src/Language/Javascript/JSaddle/Value.hs
@@ -90,7 +90,6 @@
 import Language.Javascript.JSaddle.Types
        (Object(..), JSString(..), JSVal(..), ghcjsPure)
 import GHCJS.Marshal (ToJSVal(..))
-import GHCJS.Marshal.Pure (pToJSVal)
 #else
 import Data.Char (chr, ord)
 import Data.Word (Word, Word8, Word16, Word32)
