-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Parsing, rendering and manipulating css selectors in Haskell. -- -- A library for parsing, manipulating, and rendering css selectors (not -- css files, just the selectors). -- -- It has a quasiquoter to enable Haskell to validate the css -- selector at compile time. -- -- Currently the css grammar is implemented without the -- pseudo-classes, pseudo-elements and negations. One can furthermore -- calculate the specificity of a css-selector, and thus perform an -- analysis over what css-selector will take precedence. @package css-selectors @version 0.5.0.0 -- | A module to encode and decode css selector strings. These are used in -- the parser and renderer to parse and render css selector strings. module Css3.Selector.Utils -- | Parse a given css identifier to the content of the identifier. readIdentifier :: String -> String -- | Encode a given identifier to its css selector equivalent by escaping -- certain characters. encodeIdentifier :: Text -> Text -- | Check if the given identifier is a valid css selector identifier. isValidIdentifier :: String -> Bool -- | Convert the given string to a given object by first checking if it is -- a valid identifier, and if not raising an error. If it is a valid -- identifier, the string is packed, and wrapped in the given function. toIdentifier :: (Text -> a) -> String -> a -- | Parses a css string literal to a string that ontains the content of -- that string literal. readCssString :: String -> String -- | Convert a string to a css selector string literal. This is done by -- putting quotes around the content, and escaping certain characters. encodeString :: Char -> String -> String -- | Convert a string to a css selector string literal. This is done by -- putting quotes around the content, and escaping certain characters. encodeText :: Char -> Text -> Text -- | A module that defines the tree of types to represent and manipulate a -- css selector. These data types are members of several typeclasses to -- make these more useful. module Css3.Selector.Core -- | A class that defines that the given type can be converted to a css -- selector value, and has a certain specificity. class ToCssSelector a -- | Convert the given element to a Text object that contains the -- css selector. toCssSelector :: ToCssSelector a => a -> Text -- | Lift the given ToCssSelector type object to a -- SelectorGroup, which is the "root type" of the css selector -- hierarchy. toSelectorGroup :: ToCssSelector a => a -> SelectorGroup -- | Calculate the specificity of the css selector by returing a -- SelectorSpecificity object. specificity' :: ToCssSelector a => a -> SelectorSpecificity toPattern :: ToCssSelector a => a -> Pat normalize :: ToCssSelector a => a -> a -- | The type of a single selector. This is a sequence of -- SelectorSequences that are combined with a -- SelectorCombinator. data Selector -- | Convert a given SelectorSequence to a Selector. Selector :: PseudoSelectorSequence -> Selector -- | Create a combined selector where we have a SelectorSequence -- that is combined with a given SelectorCombinator to a -- Selector. Combined :: PseudoSelectorSequence -> SelectorCombinator -> Selector -> Selector -- | A type that contains the possible ways to combine -- SelectorSequences. data SelectorCombinator -- | The second tag is a descendant of the first one, denoted in css with a -- space. Descendant :: SelectorCombinator -- | The second tag is the (direct) child of the first one, denoted with a -- > in css. Child :: SelectorCombinator -- | The second tag is directly preceded by the first one, denoted with a -- + in css. DirectlyPreceded :: SelectorCombinator -- | The second tag is preceded by the first one, denoted with a ~ -- in css. Preceded :: SelectorCombinator -- | The root type of a css selector. This is a comma-separated list of -- selectors. newtype SelectorGroup SelectorGroup :: NonEmpty Selector -> SelectorGroup -- | Unwrap the given NonEmpty list of Selectors from the -- SelectorGroup object. [unSelectorGroup] :: SelectorGroup -> NonEmpty Selector -- | An enum type that contains the possible pseudo elements. A -- pseudo element is specified by two colon characters (::), -- followed by the name of the pseudo element. The After, -- Before, FirstLine and FirstLetter can be written -- with a single colon for backwards compatibility with CSS 1 and CSS 2. data PseudoElement -- | The ::after pseudo-elements can be used to describe generated -- content after an element’s content. After :: PseudoElement -- | The ::before pseudo-element can be used to describe generated -- content before an element’s content. Before :: PseudoElement -- | The ::first-line pseudo-element describes the contents of the -- first formatted line of an element. FirstLetter :: PseudoElement -- | The ::first-letter pseudo-element represents the first letter -- of an element, if it is not preceded by any other content (such as -- images or inline tables) on its line. FirstLine :: PseudoElement -- | The ::marker pseudo-element selects the markers of list -- items. Marker :: PseudoElement -- | The ::placeholder pseudo-element selects form elements with -- placeholder text, and let you style the placeholder text. Placeholder :: PseudoElement -- | The ::selection pseudo-element matches the portion of an -- element that is selected by a user. Selection :: PseudoElement -- | A SelectorSequence with an optional PseudoElement at the -- end. Each element of a Selector can have at most -- one PseudoElement. data PseudoSelectorSequence -- | A data constructor where there is no optional PseudoElement -- involved. Sequence :: SelectorSequence -> PseudoSelectorSequence -- | A data constructor for a SelectorSequence with a -- PseudoElement. (:.::) :: SelectorSequence -> PseudoElement -> PseudoSelectorSequence -- | Add a given PseudoElement to the given SelectorSequence -- to produce a PseudoSelectorSequence. Since a -- PseudoElement is an instance of IsString, this can thus -- be used to combine string literals. (.::) :: SelectorSequence -> PseudoElement -> PseudoSelectorSequence -- | A data type that contains the possible pseudo classes. In a CSS -- selector the pseudo classes are specified with a single colon, for -- example :active. These filter on the state of the -- items. A full list of pseudo classes is available here. data PseudoClass -- | The :active pseudo class. Active :: PseudoClass -- | The :checked pseudo class. Checked :: PseudoClass -- | The :default pseudo class. Default :: PseudoClass -- | The :disabled pseudo class. Disabled :: PseudoClass -- | The :empty pseudo class. Empty :: PseudoClass -- | The :enabled pseudo class. Enabled :: PseudoClass -- | The :focus pseudo class. Focus :: PseudoClass -- | The :fullscreen pseudo class. Fullscreen :: PseudoClass -- | The :hover pseudo class. Hover :: PseudoClass -- | The :indeterminate pseudo class. Indeterminate :: PseudoClass -- | The :in-range pseudo class. InRange :: PseudoClass -- | The :invalid pseudo class. Invalid :: PseudoClass -- | The :lang(…) pseudo class, the language parameter is at the -- moment a Text object, but only uppercase, lowercase and hyphens -- are characters that can be parsed. Lang :: Language -> PseudoClass -- | The :link pseudo class. Link :: PseudoClass -- | The :nth-child(…) pseudo class, if the Nth parameter -- is One, then it is equivalent to :first-child. NthChild :: Nth -> PseudoClass -- | The :nth-last-child(…) pseudo class, if the Nth -- parameter is One, then it is equivalent to -- :last-child. NthLastChild :: Nth -> PseudoClass -- | The :nth-last-of-type(…) pseudo class, if the Nth -- parameter is One, then it is equivalent to -- :last-of-type. NthLastOfType :: Nth -> PseudoClass -- | The :nth-of-type(…) pseudo class, if the Nth parameter -- is One, then it is equivalent to :first-of-type. NthOfType :: Nth -> PseudoClass -- | The :only-of-type pseudo class. OnlyOfType :: PseudoClass -- | The :only-child pseudo class. OnlyChild :: PseudoClass -- | The :optional pseudo class. Optional :: PseudoClass -- | The :out-of-range pseudo class. OutOfRange :: PseudoClass -- | The :read-only pseudo class. ReadOnly :: PseudoClass -- | The :rad-write pseudo class. ReadWrite :: PseudoClass -- | The :required pseudo class. Required :: PseudoClass -- | The :root pseudo class. Root :: PseudoClass -- | The :target pseudo class. Target :: PseudoClass -- | The :valid pseudo class. Valid :: PseudoClass -- | The :visited pseudo class. Visited :: PseudoClass -- | Filter a given SelectorSequence with a given -- PseudoClass. (.:) :: SelectorSequence -> PseudoClass -> SelectorSequence -- | A pattern synonym for :nth-child(1). If NthChild (Nth 0 -- 1) is used, then this will render as :first-child. pattern FirstChild :: PseudoClass -- | A pattern synonym for :nth-of-type(1). If NthOfType (Nth -- 0 1) is used, then this will render as :first-of-type. pattern FirstOfType :: PseudoClass -- | A pattern synonym for :nth-last-child(1). If NthLastChild -- (Nth 0 1) is used, then this will render as :last-child. pattern LastChild :: PseudoClass -- | A pattern synonym for :nth-last-of-type(1). If -- NthLastOfType (Nth 0 1) is used, then this will render as -- :last-of-type. pattern LastOfType :: PseudoClass -- | We use Text to specify the language in the :lang(…) -- pseudo class. type Language = Text -- | A SelectorSequence is a TypeSelector (that can be -- Universal) followed by zero, one or more SelectorFilters -- these filter the selector further, for example with a Hash, a -- Class, or an Attrib. data SelectorSequence -- | Convert a TypeSelector into a SimpleSelector. SimpleSelector :: TypeSelector -> SelectorSequence -- | Apply an additional SelectorFilter to the -- SelectorSequence. Filter :: SelectorSequence -> SelectorFilter -> SelectorSequence -- | Convert the SelectorCombinator to the equivalent css selector -- text. A space for Descendant, a > for Child, -- a + for DirectlyPreceded, and a ~ for -- Preceded combinatorText :: SelectorCombinator -> Text -- | Combines two Selectors with the given -- SelectorCombinator. combine :: SelectorCombinator -> Selector -> Selector -> Selector -- | Combines two Selectors with the Child combinator. (.>) :: Selector -> Selector -> Selector -- | Combines two Selectors with the DirectlyPreceded -- combinator. (.+) :: Selector -> Selector -> Selector -- | Combines two Selectors with the Preceded combinator. (.~) :: Selector -> Selector -> Selector -- | A type that sums up the different ways to filter a type selector: with -- an id (hash), a class, and an attribute. data SelectorFilter -- | A Hash object as filter. SHash :: Hash -> SelectorFilter -- | A Class object as filter. SClass :: Class -> SelectorFilter -- | An Attrib object as filter. SAttrib :: Attrib -> SelectorFilter -- | A PseudoClass object as filter. SPseudo :: PseudoClass -> SelectorFilter -- | A :not(…) clause that contains a simple selector to negate. SNot :: Negation -> SelectorFilter -- | Obtain the list of filters that are applied in the given -- SelectorSequence. filters :: SelectorSequence -> [SelectorFilter] -- | Obtain the list of filters that are applied in the given -- SelectorSequence in reversed order. filters' :: SelectorSequence -> [SelectorFilter] -- | Add a given list of SelectorFilters to the given -- SelectorSequence. The filters are applied left-to-right. addFilters :: SelectorSequence -> [SelectorFilter] -> SelectorSequence -- | An infix variant of the addFilters function. (.@) :: SelectorSequence -> [SelectorFilter] -> SelectorSequence -- | The namespace of a css selector tag. The namespace can be NAny -- (all possible namespaces), or a namespace with a given text (this text -- can be empty). data Namespace -- | A typeselector part that specifies that we accept all namespaces, in -- css denoted with *. NAny :: Namespace -- | A typselector part that specifies that we accept a certain namespace -- name. Namespace :: Text -> Namespace -- | The empty namespace. This is not the wildcard namespace -- (*). This is a bidirectional namespace and can thus be used -- in expressions as well. pattern NEmpty :: Namespace -- | The element name of a css selector tag. The element name can be -- EAny (all possible tag names), or an element name with a given -- text. data ElementName -- | A typeselector part that specifies that we accept all element names, -- in css denoted with *. EAny :: ElementName -- | A typeselector part that specifies that we accept a certain element -- name. ElementName :: Text -> ElementName -- | A typeselector is a combination of a selector for a namespace, and a -- selector for an element name. One, or both can be a wildcard. data TypeSelector TypeSelector :: Namespace -> ElementName -> TypeSelector -- | The selector for the namespace. [selectorNamespace] :: TypeSelector -> Namespace -- | The selector for the element name. [elementName] :: TypeSelector -> ElementName -- | The universal type selector: a selector that matches all types in all -- namespaces (including the empty namespace). This pattern is -- bidirectional and thus can be used in expressions as well. pattern Universal :: TypeSelector -- | Construct a TypeSelector with a given Namespace and -- ElementName. (.|) :: Namespace -> ElementName -> TypeSelector -- | A css attribute can come in two flavors: either a constraint that the -- attribute should exists, or a constraint that a certain attribute -- should have a certain value (prefix, suffix, etc.). data Attrib -- | A constraint that the given AttributeName should exist. Exist :: AttributeName -> Attrib -- | A constraint about the value associated with the given -- AttributeName. Attrib :: AttributeName -> AttributeCombinator -> AttributeValue -> Attrib -- | The possible ways to match an attribute with a given value in a css -- selector. data AttributeCombinator -- | The attribute has exactly the value of the value, denoted with -- = in css. Exact :: AttributeCombinator -- | The attribute has a whitespace separated list of items, one of these -- items is the value, denoted with ~= in css. Include :: AttributeCombinator -- | The attribute has a hyphen separated list of items, the first item is -- the value, denoted with |= in css. DashMatch :: AttributeCombinator -- | The value is a prefix of the value in the attribute, denoted with -- ^= in css. PrefixMatch :: AttributeCombinator -- | The value is a suffix of the value in the attribute, denoted with -- $= in css. SuffixMatch :: AttributeCombinator -- | The value is a substring of the value in the attribute, denoted with -- *= in css. SubstringMatch :: AttributeCombinator -- | An attribute name is a name that optionally has a namespace, and the -- name of the attribute. data AttributeName AttributeName :: Namespace -> Text -> AttributeName -- | The namespace to which the attribute name belongs. This can be -- NAny as well. [attributeNamespace] :: AttributeName -> Namespace -- | The name of the attribute over which we make a claim. [attributeName] :: AttributeName -> Text -- | We use Text as the type to store an attribute value. type AttributeValue = Text -- | Create an Attrib where the given AttributeName is -- constrainted to be exactly the given value. (.=) :: AttributeName -> AttributeValue -> Attrib -- | Create an Attrib where the given AttributeName is -- constrainted such that the attribute is a whitespace seperated list of -- items, and the value is one of these items. (.~=) :: AttributeName -> AttributeValue -> Attrib -- | Create an Attrib where the given AttributeName is -- constrainted such that the attribute is a dash seperated list of -- items, and the value is the first of these items. (.|=) :: AttributeName -> AttributeValue -> Attrib -- | Create an Attrib where the given AttributeName is -- constrainted such that the attribute has as prefix the given -- AttributeValue. (.^=) :: AttributeName -> AttributeValue -> Attrib -- | Create an Attrib where the given AttributeName is -- constrainted such that the attribute has as suffix the given -- AttributeValue. (.$=) :: AttributeName -> AttributeValue -> Attrib -- | Create an Attrib where the given AttributeName is -- constrainted such that the attribute has as substring the given -- AttributeValue. (.*=) :: AttributeName -> AttributeValue -> Attrib -- | A flipped version of the Attrib data constructor, where one -- first specifies the conbinator, then the AttributeName and -- finally the value. attrib :: AttributeCombinator -> AttributeName -> AttributeValue -> Attrib -- | Convert the given AttributeCombinator to its css selector -- counterpart. attributeCombinatorText :: AttributeCombinator -> AttributeValue -- | A css class, this is wrapped in a data type. The type only wraps the -- class name, not the dot prefix. newtype Class Class :: Text -> Class -- | Obtain the name from the class. [unClass] :: Class -> Text -- | Filter a given SelectorSequence with a given Class. (...) :: SelectorSequence -> Class -> SelectorSequence -- | A css hash (used to match an element with a given id). The type only -- wraps the hash name, not the hash (#) prefix. newtype Hash Hash :: Text -> Hash -- | Obtain the name from the hash. [unHash] :: Hash -> Text -- | Filter a given SelectorSequence with a given Hash. (.#) :: SelectorSequence -> Hash -> SelectorSequence -- | A data type that contains all possible items that can be used in a -- :not(…) clause. Since a :not(…) cannot be nested in -- another :not(…), we see an SNot as a special case, and -- not as a PseudoClass. data Negation -- | A TypeSelector for the :not(…) clause. NTypeSelector :: TypeSelector -> Negation -- | A Hash for the :not(…) clause. NHash :: Hash -> Negation -- | A Class for the :not(…) clause. NClass :: Class -> Negation -- | An Attrib for the :not(…) clause. NAttrib :: Attrib -> Negation -- | A PseudoClass for the :not(…) clause. NPseudo :: PseudoClass -> Negation -- | A PseudoElement for the :not(…) clause. NPseudoElement :: PseudoElement -> Negation -- | A data type that is used to select children and elements of type with -- the :nth-child, :nth-last-child, -- :nth-last-of-type and :nth-of-type. if the -- One is used as argument, then the pseudo classes are -- :first-child, :first-of-type, :last-child, -- and :last-of-type. data Nth Nth :: Int -> Int -> Nth -- | The linear part of the Nth object: the integral number before -- the n. [linear] :: Nth -> Int -- | The constant part of the Nth object. [constant] :: Nth -> Int -- | A pattern synonym that is used in CSS to specify a sequence that -- starts with two and each time increases with two. pattern Even :: Nth -- | A pattern synonym that is used in CSS to specify a sequence that -- starts with one and each time increases with two. pattern Odd :: Nth -- | An Nth item that spans a collection with only 1 as -- value. This is used to transform :nth-child to -- :first-child for example. pattern One :: Nth -- | Obtain the one-based indices that match the given Nth object. -- The CSS3 selectors are one-based: the first child has index 1. nthValues :: Nth -> [Int] -- | Check if the given Nth object contains no items. nthIsEmpty :: Nth -> Bool -- | Obtain the zero-based indices that match the given Nth object. -- One can use this for list/vector processing since the CSS3 selectors -- start with index 1. The nthValues1 can be used for one-based -- indexes. nthValues0 :: Nth -> [Int] -- | Obtain the one-based indices that match the given Nth object. -- The CSS3 selectors are one-based: the first child has index 1. This is -- an alias of the nthValues function. nthValues1 :: Nth -> [Int] -- | Normalize the given Nth object to a normalized one. If and only -- if the normalized variants are the same of two Nth objects, -- then these will produce the same list of values. Normalization is -- idempotent: calling normalizeNth on a normalized Nth -- will produce the same Nth. normalizeNth :: Nth -> Nth -- | Check if the given Nth object contains a given value. nthContainsValue :: Nth -> Int -> Bool -- | A datastructure that specifies the selectivity of a css selector. The -- specificity is calculated based on three integers: a, -- b and c. -- -- The specificity is calculated with 100*a+10*b+c where -- a, b and c count certain elements of the -- css selector. data SelectorSpecificity -- | Create a SelectorSpecificity object with a given value for -- a, b, and c. SelectorSpecificity :: Int -> Int -> Int -> SelectorSpecificity -- | Calculate the specificity of a ToCssSelector type object. This -- is done by calculating the SelectorSpecificity object, and then -- calculating the value of that object. specificity :: ToCssSelector a => a -> Int -- | Calculate the specificity value of the SelectorSpecificity specificityValue :: SelectorSpecificity -> Int -- | Encode a value using binary serialisation to a lazy ByteString. encode :: Binary a => a -> ByteString -- | Decode a value from a lazy ByteString, reconstructing the original -- structure. decode :: Binary a => ByteString -> a -- | Convert the given item to a compressed ByteString. This can be -- used to write to and read from a file for example. The econding format -- is not an official format: it is constructed based on the structure of -- the Haskell types. That stream is then passed through a gzip -- implementation. compressEncode :: (Binary a, ToCssSelector a) => a -> ByteString -- | Convert the given item to a compressed ByteString. This can be -- used to write to and read from a file for example. The econding format -- is not an official format: it is constructed based on the structure of -- the Haskell types. That stream is then passed through a gzip -- implementation. compressEncodeWith :: (Binary a, ToCssSelector a) => CompressParams -> a -> ByteString -- | Convert the given item to a compressed ByteString. This can be -- used to write to and read from a file for example. The econding format -- is not an official format: it is constructed based on the structure of -- the Haskell types. That stream is then passed through a gzip -- implementation. decompressDecode :: (Binary a, ToCssSelector a) => ByteString -> a instance GHC.Show.Show Css3.Selector.Core.SelectorSpecificity instance GHC.Generics.Generic Css3.Selector.Core.SelectorSpecificity instance Data.Data.Data Css3.Selector.Core.SelectorSpecificity instance GHC.Show.Show Css3.Selector.Core.Nth instance GHC.Read.Read Css3.Selector.Core.Nth instance GHC.Classes.Ord Css3.Selector.Core.Nth instance GHC.Generics.Generic Css3.Selector.Core.Nth instance GHC.Classes.Eq Css3.Selector.Core.Nth instance Data.Data.Data Css3.Selector.Core.Nth instance GHC.Show.Show Css3.Selector.Core.SelectorCombinator instance GHC.Read.Read Css3.Selector.Core.SelectorCombinator instance GHC.Classes.Ord Css3.Selector.Core.SelectorCombinator instance GHC.Generics.Generic Css3.Selector.Core.SelectorCombinator instance GHC.Classes.Eq Css3.Selector.Core.SelectorCombinator instance GHC.Enum.Enum Css3.Selector.Core.SelectorCombinator instance Data.Data.Data Css3.Selector.Core.SelectorCombinator instance GHC.Enum.Bounded Css3.Selector.Core.SelectorCombinator instance GHC.Show.Show Css3.Selector.Core.Namespace instance GHC.Classes.Ord Css3.Selector.Core.Namespace instance GHC.Generics.Generic Css3.Selector.Core.Namespace instance GHC.Classes.Eq Css3.Selector.Core.Namespace instance Data.Data.Data Css3.Selector.Core.Namespace instance GHC.Show.Show Css3.Selector.Core.ElementName instance GHC.Classes.Ord Css3.Selector.Core.ElementName instance GHC.Generics.Generic Css3.Selector.Core.ElementName instance GHC.Classes.Eq Css3.Selector.Core.ElementName instance Data.Data.Data Css3.Selector.Core.ElementName instance GHC.Show.Show Css3.Selector.Core.TypeSelector instance GHC.Classes.Ord Css3.Selector.Core.TypeSelector instance GHC.Generics.Generic Css3.Selector.Core.TypeSelector instance GHC.Classes.Eq Css3.Selector.Core.TypeSelector instance Data.Data.Data Css3.Selector.Core.TypeSelector instance GHC.Show.Show Css3.Selector.Core.AttributeName instance GHC.Classes.Ord Css3.Selector.Core.AttributeName instance GHC.Generics.Generic Css3.Selector.Core.AttributeName instance GHC.Classes.Eq Css3.Selector.Core.AttributeName instance Data.Data.Data Css3.Selector.Core.AttributeName instance GHC.Show.Show Css3.Selector.Core.AttributeCombinator instance GHC.Read.Read Css3.Selector.Core.AttributeCombinator instance GHC.Classes.Ord Css3.Selector.Core.AttributeCombinator instance GHC.Generics.Generic Css3.Selector.Core.AttributeCombinator instance GHC.Classes.Eq Css3.Selector.Core.AttributeCombinator instance GHC.Enum.Enum Css3.Selector.Core.AttributeCombinator instance Data.Data.Data Css3.Selector.Core.AttributeCombinator instance GHC.Enum.Bounded Css3.Selector.Core.AttributeCombinator instance GHC.Show.Show Css3.Selector.Core.Attrib instance GHC.Classes.Ord Css3.Selector.Core.Attrib instance GHC.Generics.Generic Css3.Selector.Core.Attrib instance GHC.Classes.Eq Css3.Selector.Core.Attrib instance Data.Data.Data Css3.Selector.Core.Attrib instance GHC.Show.Show Css3.Selector.Core.PseudoClass instance GHC.Read.Read Css3.Selector.Core.PseudoClass instance GHC.Classes.Ord Css3.Selector.Core.PseudoClass instance GHC.Generics.Generic Css3.Selector.Core.PseudoClass instance GHC.Classes.Eq Css3.Selector.Core.PseudoClass instance Data.Data.Data Css3.Selector.Core.PseudoClass instance GHC.Show.Show Css3.Selector.Core.PseudoElement instance GHC.Read.Read Css3.Selector.Core.PseudoElement instance GHC.Classes.Ord Css3.Selector.Core.PseudoElement instance GHC.Generics.Generic Css3.Selector.Core.PseudoElement instance GHC.Classes.Eq Css3.Selector.Core.PseudoElement instance GHC.Enum.Enum Css3.Selector.Core.PseudoElement instance Data.Data.Data Css3.Selector.Core.PseudoElement instance GHC.Enum.Bounded Css3.Selector.Core.PseudoElement instance GHC.Show.Show Css3.Selector.Core.Class instance GHC.Classes.Ord Css3.Selector.Core.Class instance GHC.Generics.Generic Css3.Selector.Core.Class instance GHC.Classes.Eq Css3.Selector.Core.Class instance Data.Data.Data Css3.Selector.Core.Class instance GHC.Show.Show Css3.Selector.Core.Hash instance GHC.Classes.Ord Css3.Selector.Core.Hash instance GHC.Generics.Generic Css3.Selector.Core.Hash instance GHC.Classes.Eq Css3.Selector.Core.Hash instance Data.Data.Data Css3.Selector.Core.Hash instance GHC.Show.Show Css3.Selector.Core.Negation instance GHC.Classes.Ord Css3.Selector.Core.Negation instance GHC.Generics.Generic Css3.Selector.Core.Negation instance GHC.Classes.Eq Css3.Selector.Core.Negation instance Data.Data.Data Css3.Selector.Core.Negation instance GHC.Show.Show Css3.Selector.Core.SelectorFilter instance GHC.Classes.Ord Css3.Selector.Core.SelectorFilter instance GHC.Generics.Generic Css3.Selector.Core.SelectorFilter instance GHC.Classes.Eq Css3.Selector.Core.SelectorFilter instance Data.Data.Data Css3.Selector.Core.SelectorFilter instance GHC.Show.Show Css3.Selector.Core.SelectorSequence instance GHC.Classes.Ord Css3.Selector.Core.SelectorSequence instance GHC.Generics.Generic Css3.Selector.Core.SelectorSequence instance GHC.Classes.Eq Css3.Selector.Core.SelectorSequence instance Data.Data.Data Css3.Selector.Core.SelectorSequence instance GHC.Show.Show Css3.Selector.Core.PseudoSelectorSequence instance GHC.Classes.Ord Css3.Selector.Core.PseudoSelectorSequence instance GHC.Generics.Generic Css3.Selector.Core.PseudoSelectorSequence instance GHC.Classes.Eq Css3.Selector.Core.PseudoSelectorSequence instance Data.Data.Data Css3.Selector.Core.PseudoSelectorSequence instance GHC.Show.Show Css3.Selector.Core.Selector instance GHC.Classes.Ord Css3.Selector.Core.Selector instance GHC.Generics.Generic Css3.Selector.Core.Selector instance GHC.Classes.Eq Css3.Selector.Core.Selector instance Data.Data.Data Css3.Selector.Core.Selector instance GHC.Show.Show Css3.Selector.Core.SelectorGroup instance GHC.Classes.Ord Css3.Selector.Core.SelectorGroup instance GHC.Generics.Generic Css3.Selector.Core.SelectorGroup instance GHC.Classes.Eq Css3.Selector.Core.SelectorGroup instance Data.Data.Data Css3.Selector.Core.SelectorGroup instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.SelectorGroup instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.Class instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.Attrib instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.AttributeName instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.Hash instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.Namespace instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.SelectorSequence instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.TypeSelector instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.ElementName instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.SelectorFilter instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.Selector instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.PseudoSelectorSequence instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.PseudoClass instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.Negation instance Css3.Selector.Core.ToCssSelector Css3.Selector.Core.PseudoElement instance Data.Hashable.Class.Hashable Css3.Selector.Core.SelectorGroup instance Control.DeepSeq.NFData Css3.Selector.Core.SelectorGroup instance GHC.Base.Semigroup Css3.Selector.Core.SelectorGroup instance GHC.Exts.IsList Css3.Selector.Core.SelectorGroup instance Data.Default.Class.Default Css3.Selector.Core.SelectorGroup instance Data.Binary.Class.Binary Css3.Selector.Core.SelectorGroup instance Language.Haskell.TH.Syntax.Lift Css3.Selector.Core.SelectorGroup instance Text.Blaze.ToMarkup Css3.Selector.Core.SelectorGroup instance Text.Julius.ToJavascript Css3.Selector.Core.SelectorGroup instance Data.Aeson.Types.ToJSON.ToJSON Css3.Selector.Core.SelectorGroup instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.SelectorGroup instance Data.Hashable.Class.Hashable Css3.Selector.Core.Selector instance Control.DeepSeq.NFData Css3.Selector.Core.Selector instance GHC.Base.Semigroup Css3.Selector.Core.Selector instance Data.Default.Class.Default Css3.Selector.Core.Selector instance Data.Binary.Class.Binary Css3.Selector.Core.Selector instance Language.Haskell.TH.Syntax.Lift Css3.Selector.Core.Selector instance Text.Blaze.ToMarkup Css3.Selector.Core.Selector instance Text.Julius.ToJavascript Css3.Selector.Core.Selector instance Data.Aeson.Types.ToJSON.ToJSON Css3.Selector.Core.Selector instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.Selector instance Data.Hashable.Class.Hashable Css3.Selector.Core.PseudoSelectorSequence instance Control.DeepSeq.NFData Css3.Selector.Core.PseudoSelectorSequence instance Data.Default.Class.Default Css3.Selector.Core.PseudoSelectorSequence instance Data.Binary.Class.Binary Css3.Selector.Core.PseudoSelectorSequence instance Language.Haskell.TH.Syntax.Lift Css3.Selector.Core.PseudoSelectorSequence instance Text.Blaze.ToMarkup Css3.Selector.Core.PseudoSelectorSequence instance Text.Julius.ToJavascript Css3.Selector.Core.PseudoSelectorSequence instance Data.Aeson.Types.ToJSON.ToJSON Css3.Selector.Core.PseudoSelectorSequence instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.PseudoSelectorSequence instance Data.Hashable.Class.Hashable Css3.Selector.Core.SelectorSequence instance Control.DeepSeq.NFData Css3.Selector.Core.SelectorSequence instance Data.Default.Class.Default Css3.Selector.Core.SelectorSequence instance Data.Binary.Class.Binary Css3.Selector.Core.SelectorSequence instance Language.Haskell.TH.Syntax.Lift Css3.Selector.Core.SelectorSequence instance Text.Blaze.ToMarkup Css3.Selector.Core.SelectorSequence instance Text.Julius.ToJavascript Css3.Selector.Core.SelectorSequence instance Data.Aeson.Types.ToJSON.ToJSON Css3.Selector.Core.SelectorSequence instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.SelectorSequence instance Data.Hashable.Class.Hashable Css3.Selector.Core.SelectorFilter instance Control.DeepSeq.NFData Css3.Selector.Core.SelectorFilter instance Data.Binary.Class.Binary Css3.Selector.Core.SelectorFilter instance Language.Haskell.TH.Syntax.Lift Css3.Selector.Core.SelectorFilter instance Text.Blaze.ToMarkup Css3.Selector.Core.SelectorFilter instance Text.Julius.ToJavascript Css3.Selector.Core.SelectorFilter instance Data.Aeson.Types.ToJSON.ToJSON Css3.Selector.Core.SelectorFilter instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.SelectorFilter instance Data.Hashable.Class.Hashable Css3.Selector.Core.Negation instance Control.DeepSeq.NFData Css3.Selector.Core.Negation instance Data.Binary.Class.Binary Css3.Selector.Core.Negation instance Language.Haskell.TH.Syntax.Lift Css3.Selector.Core.Negation instance Text.Blaze.ToMarkup Css3.Selector.Core.Negation instance Text.Julius.ToJavascript Css3.Selector.Core.Negation instance Data.Aeson.Types.ToJSON.ToJSON Css3.Selector.Core.Negation instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.Negation instance Data.Hashable.Class.Hashable Css3.Selector.Core.Hash instance Control.DeepSeq.NFData Css3.Selector.Core.Hash instance Data.String.IsString Css3.Selector.Core.Hash instance Data.Binary.Class.Binary Css3.Selector.Core.Hash instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.Hash instance Data.Hashable.Class.Hashable Css3.Selector.Core.Class instance Control.DeepSeq.NFData Css3.Selector.Core.Class instance Data.String.IsString Css3.Selector.Core.Class instance Data.Binary.Class.Binary Css3.Selector.Core.Class instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.Class instance Data.Hashable.Class.Hashable Css3.Selector.Core.PseudoElement instance Control.DeepSeq.NFData Css3.Selector.Core.PseudoElement instance Data.String.IsString Css3.Selector.Core.PseudoElement instance Data.Binary.Class.Binary Css3.Selector.Core.PseudoElement instance Language.Haskell.TH.Syntax.Lift Css3.Selector.Core.PseudoElement instance Text.Blaze.ToMarkup Css3.Selector.Core.PseudoElement instance Text.Julius.ToJavascript Css3.Selector.Core.PseudoElement instance Data.Aeson.Types.ToJSON.ToJSON Css3.Selector.Core.PseudoElement instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.PseudoElement instance Data.Hashable.Class.Hashable Css3.Selector.Core.PseudoClass instance Control.DeepSeq.NFData Css3.Selector.Core.PseudoClass instance Data.String.IsString Css3.Selector.Core.PseudoClass instance Data.String.IsString (Css3.Selector.Core.Nth -> Css3.Selector.Core.PseudoClass) instance Data.Binary.Class.Binary Css3.Selector.Core.PseudoClass instance Language.Haskell.TH.Syntax.Lift Css3.Selector.Core.PseudoClass instance Text.Blaze.ToMarkup Css3.Selector.Core.PseudoClass instance Text.Julius.ToJavascript Css3.Selector.Core.PseudoClass instance Data.Aeson.Types.ToJSON.ToJSON Css3.Selector.Core.PseudoClass instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.PseudoClass instance Data.Hashable.Class.Hashable Css3.Selector.Core.Attrib instance Control.DeepSeq.NFData Css3.Selector.Core.Attrib instance Data.String.IsString Css3.Selector.Core.Attrib instance Data.Binary.Class.Binary Css3.Selector.Core.Attrib instance Language.Haskell.TH.Syntax.Lift Css3.Selector.Core.Attrib instance Text.Blaze.ToMarkup Css3.Selector.Core.Attrib instance Text.Julius.ToJavascript Css3.Selector.Core.Attrib instance Data.Aeson.Types.ToJSON.ToJSON Css3.Selector.Core.Attrib instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.Attrib instance Data.Hashable.Class.Hashable Css3.Selector.Core.AttributeCombinator instance Control.DeepSeq.NFData Css3.Selector.Core.AttributeCombinator instance Data.Default.Class.Default Css3.Selector.Core.AttributeCombinator instance Data.Binary.Class.Binary Css3.Selector.Core.AttributeCombinator instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.AttributeCombinator instance Data.Hashable.Class.Hashable Css3.Selector.Core.AttributeName instance Control.DeepSeq.NFData Css3.Selector.Core.AttributeName instance Data.String.IsString Css3.Selector.Core.AttributeName instance Data.Binary.Class.Binary Css3.Selector.Core.AttributeName instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.AttributeName instance Data.Hashable.Class.Hashable Css3.Selector.Core.TypeSelector instance Control.DeepSeq.NFData Css3.Selector.Core.TypeSelector instance Data.Default.Class.Default Css3.Selector.Core.TypeSelector instance Data.Binary.Class.Binary Css3.Selector.Core.TypeSelector instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.TypeSelector instance Data.Hashable.Class.Hashable Css3.Selector.Core.ElementName instance Control.DeepSeq.NFData Css3.Selector.Core.ElementName instance GHC.Base.Semigroup Css3.Selector.Core.ElementName instance GHC.Base.Monoid Css3.Selector.Core.ElementName instance Data.String.IsString Css3.Selector.Core.ElementName instance Data.Default.Class.Default Css3.Selector.Core.ElementName instance Data.Binary.Class.Binary Css3.Selector.Core.ElementName instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.ElementName instance Data.Hashable.Class.Hashable Css3.Selector.Core.Namespace instance Control.DeepSeq.NFData Css3.Selector.Core.Namespace instance GHC.Base.Semigroup Css3.Selector.Core.Namespace instance GHC.Base.Monoid Css3.Selector.Core.Namespace instance Data.String.IsString Css3.Selector.Core.Namespace instance Data.Default.Class.Default Css3.Selector.Core.Namespace instance Data.Binary.Class.Binary Css3.Selector.Core.Namespace instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.Namespace instance Data.Hashable.Class.Hashable Css3.Selector.Core.SelectorCombinator instance Control.DeepSeq.NFData Css3.Selector.Core.SelectorCombinator instance Data.Default.Class.Default Css3.Selector.Core.SelectorCombinator instance Data.Binary.Class.Binary Css3.Selector.Core.SelectorCombinator instance Language.Haskell.TH.Syntax.Lift Css3.Selector.Core.SelectorCombinator instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.SelectorCombinator instance Data.Hashable.Class.Hashable Css3.Selector.Core.Nth instance Control.DeepSeq.NFData Css3.Selector.Core.Nth instance Data.Default.Class.Default Css3.Selector.Core.Nth instance Data.Binary.Class.Binary Css3.Selector.Core.Nth instance Language.Haskell.TH.Syntax.Lift Css3.Selector.Core.Nth instance Test.QuickCheck.Arbitrary.Arbitrary Css3.Selector.Core.Nth instance Data.Hashable.Class.Hashable Css3.Selector.Core.SelectorSpecificity instance Control.DeepSeq.NFData Css3.Selector.Core.SelectorSpecificity instance GHC.Base.Semigroup Css3.Selector.Core.SelectorSpecificity instance GHC.Base.Monoid Css3.Selector.Core.SelectorSpecificity instance GHC.Classes.Eq Css3.Selector.Core.SelectorSpecificity instance GHC.Classes.Ord Css3.Selector.Core.SelectorSpecificity instance Data.Default.Class.Default Css3.Selector.Core.SelectorSpecificity instance Data.Binary.Class.Binary Css3.Selector.Core.SelectorSpecificity -- | A module that defines a quasiquoter to parse a string to a css -- selector. module Css3.Selector.QuasiQuoters -- | A quasiquoter that can be used to construct a SelectorGroup for -- the given css selector. In case the css selector is invalid. A -- compiler error will be thrown (at compile time). csssel :: QuasiQuoter -- | A quasiquoter that takes the content from the file, and then runs the -- content of that file as a csssel quasiquote. cssselFile :: QuasiQuoter -- | Parse the string to a SelectorGroup. parseCss :: String -> SelectorGroup -- | A module for backwards compatibility that re-exports -- QuasiQuoters. This module is deprecated and eventually will be -- removed. -- | Deprecated: Use Css3.Selector.QuasiQuoters instead module Css.Selector.QuasiQuoters -- | A module for backwards compatibility that re-exports Core. This -- module is deprecated and eventually will be removed. -- | Deprecated: Use Css3.Selector.Core instead module Css.Selector.Core -- | A module to define css selectors by making use of a quasiquoter, and -- manipulating these css selectors. module Css3.Selector -- | A module for backwards compatibility that re-exports Selector. -- This module is deprecated and eventually will be removed. -- | Deprecated: Use Css3.Selector instead module Css.Selector -- | A module for backwards compatibility that re-exports Utils. -- This module is deprecated and eventually will be removed. -- | Deprecated: Use Css3.Selector.Utils instead module Css.Selector.Utils