imj-base-0.1.0.2: src/Imj/Graphics/Class/Colorable.hs
{-# OPTIONS_HADDOCK hide #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Imj.Graphics.Class.Colorable
( Colorable(..)
) where
import Control.Monad.IO.Class(MonadIO)
import Control.Monad.Reader.Class(MonadReader)
import Imj.Graphics.Class.Draw
import Imj.Graphics.Color.Types
-- | A 'Colorable' is a colourless graphical element.
class Colorable a where-- TODO add HasPosition constraint here
-- | To draw a 'Colorable', we need to pass a 'LayeredColor'.
drawUsingColor :: (Draw e, MonadReader e m, MonadIO m)
=> a -> LayeredColor -> m ()