Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port Haskell's Set data structure and some supporting modules #78

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

howell
Copy link

@howell howell commented Jun 1, 2018

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 Ord typeclass
  • 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 Int type or a newtype.
  • 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant