module Rahm.Desktop.Keys (applyKeys, commandHandler) where
import Control.Applicative
import Control.Monad
( filterM,
forM_,
unless,
when,
)
import Control.Monad.Identity (Identity (Identity, runIdentity))
import Control.Monad.Trans.Maybe
( MaybeT (..),
runMaybeT,
)
import Control.Monad.Writer
( WriterT,
execWriterT,
fix,
lift,
tell,
)
import Data.Char (isAlpha, isSpace, toLower)
import Data.IORef
import Data.List (foldl', isInfixOf)
import Data.List.Safe ((!!))
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Maybe
( fromMaybe,
mapMaybe,
)
import Data
|