Normalize the license.
I decided I care more about this code getting used than whether it's aiding proprietary software.
The latter doesn't appear to be much of a threat given all other browser engines are open source.
Rename to Haskell Stylist, old name was taken.
Implement var() via a PropertyParser decorator.
Expose hooks for implementing var().
The tricky part here is around CSS inheritance, it works naturally in the existing cascade implementation.
Resolve attr() functions.
It's defined during query, because that's when Stylish Haskell (or it's callers)
have easy access to the element being queried.
Resolve relative link tags for caller.
Export traversePrepopulatedStyles
Add additional hooks for callers:
* Resolve relative URLs.
* Set priority on any stylesheet implementation.
* Substitute content during XML Conduit traversal in place of computed styles.
Update Stylish HTML Conduit to use fixed psuedoelement handling.
Rework psuedoelement infrastructure so they can be their own boxes.
Test/fix parsing of psuedoclasses/elements.
Add support for ::before/::after psuedoclasses to HTML Conduit bindings.
Add support for psuedoelements/classes.
Tidyup testsuite code, according to newly enabled compiler warnings.
Improve code cleanliness to avoid future bugs.
Data.CSS.Style.Selector.Index: fix potential crash.
Code cleanliness: Interpret Data.CSS.Style.Importance.splitProperties return value correctly.
Factorize out cascade logic.
Add method to override CSS inheritance.