{-# OPTIONS_HADDOCK hide #-} {-# LANGUAGE NoImplicitPrelude #-} module Imj.Graphics.Class.Drawable ( Drawable(..) ) where import Control.Monad.IO.Class(MonadIO) import Control.Monad.Reader.Class(MonadReader) import Imj.Graphics.Class.Draw -- | A 'Drawable' is a graphical element that knows how to draw itself -- (it knows its color and position). class Drawable a where -- | Draw the 'Drawable' draw :: (Draw e, MonadReader e m, MonadIO m) => a -> m ()