Add hook for callers to run their own tests against attributes.
Add new style tree traversals.
Expand :is/:where lowering.
Codestyle: remove unnecessary parens.
Move :root handling into interpretor.
Test counters() handling against longhand rather than shorthand. Because that's where it'll be passed
Start testing counters implementations, fix syntactic shorthand lowering for counter[s]() functions.
Release new Haskell Stylist & XML Conduit Stylist! XML Conduit Stylist changed to abstract away Haskell Stylist's breaking datastructure changes.
Correct pseudoclass to pseudoelement rewrites to apply to only rightmost selector. I previously got the semantics of my datastructures backwards: the head is the rightmost selector.
Remove preceding whitespace from all CSS at-rules.
Lower psuedoclasses & namespaces throughout CSS selectors. Previously I just applied to them to the rightmost.
Rewrite parsed namespaces according to @namespace rules.
Evaluate attribute namespace selectors.
Parse namespace selectors.
Rewrite trivial cases of :where & :is. This is mostly for the psuedoselector rewrites performed in Data.CSS.Preprocessor.PsuedoClasses
Compute correct specificity for :is() & :not() pseudoclasses.
Implement :nth-child() & :nth-of-type(). I don't think I'll implement :nth-last-child() & :nth-last-of-type() until I'm shown their value, Haskell Stylist doesn't yet have access to the data to support them.
Implement :is, :where, & :not functional pseudoclasses. This is needed by some of the lowerings for other pseudoclasses. TODO correctly compute specificity.
Prepare to interpret functional pseudoclasses.
Correct legacy :before/:after syntax.