hackett
hackett copied to clipboard
Port Haskell's Set data structure and some supporting modules
This is mostly a direct transliteration of Data.Set from Haskell, including many (but not all) of the tests.
Also includes:
- An implementation of the
Ordtypeclass - A simple version of QuickCheck
- A port of System.Random, usable for running some quickCheck tests
- A port of the Control.Monad.Trans.State.Lazy from the transformers library
Some potential issues:
- Nothing in this PR is (as yet) documented. I'm intending to port most of the Haddock docs, and opening up this PR before doing so to avoid forgetting about it completely.
- Utility functions that belong somewhere else in the standard library (such as Data.List) are scattered across the files.
- Semantic differences. Includes changes due to Hackett's lack of a fix-sized
Inttype or anewtype. - Naming convention. I started out trying to follow what I thought of as Hackett's naming convention but gave up fairly quickly and started using the names as is from the Haskell source material.
- Licensing/copyright; a lot of this is a glorified copy/paste followed by a mostly mechanical translation to Hackett. I don't know what the proper way of handling this is.