{-# LANGUAGE MultiParamTypeClasses #-}
module Graphics.XHB.Requests.Internal.Instances.Record () where
import Graphics.XHB.Gen.Record
import Graphics.XHB.Requests.Internal.Classes
import Prelude (fmap)
import Data.Bifunctor (second)
import Graphics.XHB (getReply)

instance RequestWithReply QueryVersion QueryVersionReply where
        requestWithReplyIO (MkQueryVersion a b) conn
          = fmap getReply (queryVersion conn a b)

instance Request CreateContext where
        requestIO req conn = createContext conn req

instance Request RegisterClients where
        requestIO req conn = registerClients conn req

instance Request UnregisterClients where
        requestIO req conn = unregisterClients conn req

instance RequestWithReply GetContext GetContextReply where
        requestWithReplyIO (MkGetContext a) conn
          = fmap getReply (getContext conn a)

instance RequestWithReply EnableContext EnableContextReply where
        requestWithReplyIO (MkEnableContext a) conn
          = fmap getReply (enableContext conn a)

instance Request DisableContext where
        requestIO (MkDisableContext a) conn = disableContext conn a

instance Request FreeContext where
        requestIO (MkFreeContext a) conn = freeContext conn a