Skip to content

Latest commit

 

History

History
52 lines (29 loc) · 3.06 KB

README.markdown

File metadata and controls

52 lines (29 loc) · 3.06 KB

Mega-repo for my public Haskell projects.

Data structures & related utilities

Cabal stuff

  • q4c12-aeson-cabal is my locally canonical place for orphan instances of classes from aeson for types from Cabal.

  • q4c12-defrost is like Stack's pvp-bounds feature, except it works on Cabal's freeze files instead. If you test your code against a set of freeze files, defrost can add the PVP bounds to your .cabal file corresponding to the dependency versions in those freeze files.

  • q4c12-freeze-plan takes a plan.json and turns it into a freeze file. Maybe someday I'll polish it up and get it into upstream cabal-install as a better version of v2-freeze that produces tight constraints.

  • q4c12-project-file is a horribly incomplete parser and renderer for Cabal's .project configuration files.

XML

  • q4c12-xhtml2html converts from the XML syntax to the HTML syntax.

  • q4c12-xml-core is an opinionated XML parser/renderer that tries to stick to the spec where it's sensible and to drop things that aren't sensible.

  • q4c12-xml-desc uses q4c12-xml-core to build a RELAX NG schema generator. Write a parser, and get a renderer and schema for no extra effort!

Miscellanea

  • q4c12-dhondt is a simulation of a d'Hondt proportional representation election.

  • q4c12-meta is local housekeeping. It generates the .travis.yml script for CI and the various GHC-version-specific .project files under cabal/, as well as tending to the freeze files. It's working well for me so far, so maybe I should try to turn it into a generally useful thing.

  • q4c12-prelude is that hippest thing, an alternative Prelude. Its module is actually called Prelude; use it with base-noprelude, or with mixins: base hiding (Prelude) alongside build-depends: base.

    It's not very comprehensive: I'm adding things as I find I need them.

  • q4c12-romnum is a Roman numeral generator.

License

The contents of this repository are dual-licensed under either the Apache license, version 2.0, or the GNU Lesser General Public License, version 2.1 or later, at the recepient's choice.