content: {-# OPTIONS_HADDOCK hide #-}
  {-# LANGUAGE CPP #-}
  {-# LANGUAGE FlexibleContexts #-}
  {-# LANGUAGE UndecidableInstances #-}
  
  {-# OPTIONS_GHC -fno-warn-orphans #-}
  module Foreign.JavaScript.Orphans where
  
  #ifndef ghcjs_HOST_OS
  
  import Control.Monad.Trans.Class (lift)
  import GHCJS.DOM.Types (MonadJSM (..))
  import Reflex.DynamicWriter.Base (DynamicWriterT)
  import Reflex.EventWriter.Base (EventWriterT)
  import Reflex.Host.Class (HostFrame, ReflexHost)
  import Reflex.PerformEvent.Base (PerformEventT (..))
  import Reflex.PostBuild.Base (PostBuildT)
  import Reflex.Requester.Base (RequesterT)
  import Reflex.TriggerEvent.Base
  import Reflex.Query.Base (QueryT)
  
  instance MonadJSM m => MonadJSM (PostBuildT t m) where
    liftJSM' = lift . liftJSM'
  instance (MonadJSM (HostFrame t), ReflexHost t) => MonadJSM (PerformEventT t m) where
    liftJSM' = PerformEventT . lift . liftJSM'
  instance MonadJSM m => MonadJSM (DynamicWriterT t w m) where
    liftJSM' = lift . liftJSM'
  instance MonadJSM m => MonadJSM (EventWriterT t w m) where
    liftJSM' = lift . liftJSM'
  instance MonadJSM m => MonadJSM (RequesterT t request response m) where
    liftJSM' = lift . liftJSM'
  instance MonadJSM m => MonadJSM (TriggerEventT t m) where
    liftJSM' = lift . liftJSM'
  instance MonadJSM m => MonadJSM (QueryT t q m) where
    liftJSM' = lift . liftJSM'
  
  #endif
  