skip to main content
research-article

Experience report: using hackage to inform language design

Published:30 September 2010Publication History
Skip Abstract Section

Abstract

Hackage, an online repository of Haskell applications and libraries, provides a hub for programmers to both release code to and use code from the larger Haskell community. We suggest that Hackage can also serve as a valuable resource for language designers: by providing a large collection of code written by different programmers and in different styles, it allows language designers to see not just how features could be used theoretically, but how they are (and are not) used in practice.

We were able to make such a use of Hackage during the design of the class system for a new Haskell-like programming language. In this paper, we sketch our language design problem, and how we used Hackage to help answer it. We describe our methodology in some detail, including both ways that it was and was not effective, and summarize our results.

Skip Supplemental Material Section

Supplemental Material

haskell-1145-morris.mov

References

  1. }}D. Coutts. Solving the diamond dependency problem. http://blog.well-typed.com/2008/08/solving-the-diamond-dependency-problem/, 2008. Last accessed June 8, 2010.Google ScholarGoogle Scholar
  2. }}D. Coutts. Regression testing with hackage. http://blog.well-typed.com/2009/03/regression-testing-with-hackage/, 2009. Last accessed June 8, 2010.Google ScholarGoogle Scholar
  3. }}M. P. Jones. Hugs 98. http://haskell.org/hugs.Google ScholarGoogle Scholar
  4. }}Lemmih, P. Martini, B. Bringert, I. Potoczny-Jones, and D. Coutts. cabal-install: The command-line interface for cabal and hackage. http://hackage.haskell.org/package/cabal-install. Last accessed June 7, 2010.Google ScholarGoogle Scholar
  5. }}J. G. Morris and M. P. Jones. Instance chains: Type-class programming without overlapping instances. In ICFP '10, Baltimore, MD, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. }}D. Orchard and T. Schrijvers. Haskell type constraints unleashed. Lecture Notes in Computer Science, 6009:56--71, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. }}S. Peyton Jones, M. P. Jones, and E. Meijer. Type classes: an exploration of the design space. In Haskell '97, Amsterdam, The Netherlands, 1997.Google ScholarGoogle Scholar
  8. }}T. Schrijvers, S. Peyton Jones, M. Chakravarty, and M. Sulzmann. Type checking with open type functions. In IFCP '08, pages 51--62, Victoria, BC, Canada, 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. }}D. Stewart. Re: {Haskell-cafe} Overlapping/Incoherent instances. http://www.haskell.org/pipermail/haskell-cafe/2008-October/049155.html, 2008. Last accessed June 8, 2010.Google ScholarGoogle Scholar
  10. }}W. Swierstra. Data types á la carte. JFP, 8(04):423--436, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. }}The Cabal Team. #435 (ban upwardly open version ranges in dependencies on base). http://hackage.haskell.org/trac/hackage/ticket/435, 2009. Last accessed June 8, 2010.Google ScholarGoogle Scholar
  12. }}The GHC Team. GHC. http://haskell.org/ghc, 2009.Google ScholarGoogle Scholar
  13. }}R. van Dijk. Ann: Reverse dependencies in hackage (demo). http://www.haskell.org/pipermail/haskell/2009-October/021691.html, 2009. Last accessed June 8, 2010.Google ScholarGoogle Scholar
  14. }}P. Wadler and S. Blott. How to make ad-hoc polymorphism less ad hoc. In POPL '89, pages 60--76, Austin, Texas, United States, 1989. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}A. K. Wright. Simple imperative polymorphism. Lisp and Symbolic Computation, 8(4):343--355, 1995 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Experience report: using hackage to inform language design

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 45, Issue 11
      HASKELL '10
      November 2010
      156 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2088456
      Issue’s Table of Contents
      • cover image ACM Conferences
        Haskell '10: Proceedings of the third ACM Haskell symposium on Haskell
        September 2010
        166 pages
        ISBN:9781450302524
        DOI:10.1145/1863523

      Copyright © 2010 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 30 September 2010

      Check for updates

      Author Tags

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!