jsaddle 0.5.1.0 → 0.5.1.1
raw patch · 2 files changed
+32/−6 lines, 2 filesdep +ref-tf
Dependencies added: ref-tf
Files
jsaddle.cabal view
@@ -1,5 +1,5 @@ name: jsaddle-version: 0.5.1.0+version: 0.5.1.1 cabal-version: >=1.10 build-type: Simple license: MIT@@ -39,6 +39,7 @@ filepath >=1.4.0.0 && <1.5, http-types >=0.8.6 && <0.10, process >=1.2.3.0 && <1.5,+ ref-tf >=0.4.0.1 && <0.5, stm >=2.4.4 && <2.5, time >=1.5.0.1 && <1.7, wai >=3.0.3.0 && <3.3,
src/Language/Javascript/JSaddle/Types.hs view
@@ -1,8 +1,12 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE FlexibleInstances #-}+#ifdef ghcjs_HOST_OS+{-# LANGUAGE ConstraintKinds #-}+#else+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE ConstraintKinds #-}+#endif ----------------------------------------------------------------------------- -- -- Module : Language.Javascript.JSaddle.Types@@ -46,7 +50,6 @@ #endif ) where -import Control.Monad.Trans.Reader (ReaderT(..)) import Control.Monad.IO.Class (MonadIO(..)) #ifdef ghcjs_HOST_OS import GHCJS.Types@@ -55,15 +58,20 @@ import Data.Word (Word(..)) import GHCJS.Nullable (Nullable(..)) #else+import Control.Monad.Trans.Reader (ReaderT(..))+import Control.Monad.Trans.State.Lazy (StateT(..))+import qualified Control.Monad.Trans.State.Strict as Strict+ (StateT(..)) import Control.Monad.Trans.Class (MonadTrans(..))+import Control.Monad.Fix (MonadFix)+import Control.Monad.Ref (MonadAtomicRef(..), MonadRef(..))+import Control.Concurrent.STM.TVar (TVar) import Data.Int (Int64) import Data.Text (Text) import Data.Time.Clock (UTCTime(..)) import Data.Aeson (defaultOptions, genericToEncoding, ToJSON(..), FromJSON(..)) import GHC.Generics (Generic)-import Control.Concurrent.STM.TVar (TVar)-import Control.Monad.Fix (MonadFix) #endif -- | Identifies a JavaScript execution context.@@ -116,6 +124,23 @@ instance MonadJSM m => MonadJSM (ReaderT e m) where liftJSM' = lift . liftJSM' {-# INLINE liftJSM' #-}++instance MonadJSM m => MonadJSM (StateT r m) where+ liftJSM' = lift . liftJSM'+ {-# INLINE liftJSM' #-}++instance MonadJSM m => MonadJSM (Strict.StateT r m) where+ liftJSM' = lift . liftJSM'+ {-# INLINE liftJSM' #-}++instance MonadRef JSM where+ type Ref JSM = Ref IO+ newRef = liftIO . newRef+ readRef = liftIO . readRef+ writeRef r = liftIO . writeRef r++instance MonadAtomicRef JSM where+ atomicModifyRef r = liftIO . atomicModifyRef r #endif -- | The 'liftJSM' is to 'JSM' what 'liftIO' is to 'IO'.