module Data.Markup.Class where
import Data.Markup.Types
import Lucid
import Data.Monoid
import qualified Data.Text as T
import Data.Functor.Identity
class Deploy symbol input markup (m :: * -> *) where
deploy :: symbol -> input -> m markup
class Monad m => Markup (m :: * -> *) where
renderMarkup :: m a -> a
toMarkup :: a -> m a
instance Markup InlineMarkupM where
renderMarkup = runInlineMarkupM
toMarkup = InlineMarkupM
instance Markup HostedMarkupM where
renderMarkup = runHostedMarkupM
toMarkup = HostedMarkupM
instance Markup LocalMarkupM where
renderMarkup = runLocalMarkupM
toMarkup = LocalMarkupM