{-# LANGUAGE GHCForeignImportPrim #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE UnboxedTuples #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE DeriveDataTypeable #-} module JavaScript.TypedArray.ArrayBuffer.Internal where import GHCJS.Types import GHCJS.Internal.Types import GHCJS.Marshal.Pure import GHC.Exts (State#) import Data.Typeable newtype SomeArrayBuffer (a :: MutabilityType s) = SomeArrayBuffer JSVal deriving Typeable instance IsJSVal (SomeArrayBuffer m) type ArrayBuffer = SomeArrayBuffer Immutable type MutableArrayBuffer = SomeArrayBuffer Mutable type STArrayBuffer s = SomeArrayBuffer (STMutable s) instance PToJSVal MutableArrayBuffer where pToJSVal :: MutableArrayBuffer -> JSVal pToJSVal (SomeArrayBuffer JSVal b) = JSVal b instance PFromJSVal MutableArrayBuffer where pFromJSVal :: JSVal -> MutableArrayBuffer pFromJSVal = JSVal -> MutableArrayBuffer forall s (a :: MutabilityType s). JSVal -> SomeArrayBuffer a SomeArrayBuffer