This package provides a monad transformer over MonadX that keeps track of modifier, key, and button mappings within the X server. At its core is the following typeclass:
class Monad m => MappingCtx m where getMapping :: m MappingState updateMapping :: MappingNotifyEvent -> m ()
This article describes this package and some of its friends in detail.
Haddock can be found here.