module Stitch.Types.Selector where import Data.Text (Text) import Data.Monoid import Data.String -- | Represents a CSS selector. Can be combined with other 'Selector's using its 'Monoid' instance. newtype Selector = Selector Text deriving (Show, Read, Eq, Ord) instance IsString Selector where fromString = Selector . fromString instance Monoid Selector where mempty = "" Selector "" `mappend` Selector y = Selector y Selector x `mappend` Selector "" = Selector x Selector x `mappend` Selector y = Selector (x <> " " <> y)