[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

Experience report: using hackage to inform language design

Published: 30 September 2010 Publication History

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.

Supplementary Material

JPG File (haskell-1145-morris.jpg)
MOV File (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.
[2]
}}D. Coutts. Regression testing with hackage. http://blog.well-typed.com/2009/03/regression-testing-with-hackage/, 2009. Last accessed June 8, 2010.
[3]
}}M. P. Jones. Hugs 98. http://haskell.org/hugs.
[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.
[5]
}}J. G. Morris and M. P. Jones. Instance chains: Type-class programming without overlapping instances. In ICFP '10, Baltimore, MD, 2010. ACM.
[6]
}}D. Orchard and T. Schrijvers. Haskell type constraints unleashed. Lecture Notes in Computer Science, 6009:56--71, 2010.
[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.
[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.
[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.
[10]
}}W. Swierstra. Data types á la carte. JFP, 8(04):423--436, 2008.
[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.
[12]
}}The GHC Team. GHC. http://haskell.org/ghc, 2009.
[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.
[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.
[15]
}}A. K. Wright. Simple imperative polymorphism. Lisp and Symbolic Computation, 8(4):343--355, 1995

Cited By

View all
  • (2017)Mining motivated trends of usage of Haskell librariesProceedings of the 1st International Workshop on API Usage and Evolution10.5555/3106028.3106035(11-14)Online publication date: 20-May-2017
  • (2017)Mining Motivated Trends of Usage of Haskell Libraries2017 IEEE/ACM 1st International Workshop on API Usage and Evolution (WAPI)10.1109/WAPI.2017.6(11-14)Online publication date: May-2017
  • (2022)Partial type constructors in practiceProceedings of the 15th ACM SIGPLAN International Haskell Symposium10.1145/3546189.3549923(95-107)Online publication date: 6-Sep-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 30 September 2010
Published in SIGPLAN Volume 45, Issue 11

Check for updates

Author Tags

  1. hackage
  2. haskell

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 21 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2017)Mining motivated trends of usage of Haskell librariesProceedings of the 1st International Workshop on API Usage and Evolution10.5555/3106028.3106035(11-14)Online publication date: 20-May-2017
  • (2017)Mining Motivated Trends of Usage of Haskell Libraries2017 IEEE/ACM 1st International Workshop on API Usage and Evolution (WAPI)10.1109/WAPI.2017.6(11-14)Online publication date: May-2017
  • (2022)Partial type constructors in practiceProceedings of the 15th ACM SIGPLAN International Haskell Symposium10.1145/3546189.3549923(95-107)Online publication date: 6-Sep-2022
  • (2022)Evolution of a haskell repository and its use of monadsProceedings of the 37th ACM/SIGAPP Symposium on Applied Computing10.1145/3477314.3506982(1475-1482)Online publication date: 25-Apr-2022
  • (2020)Which monads haskell developers use: An exploratory studyScience of Computer Programming10.1016/j.scico.2020.102523(102523)Online publication date: Aug-2020
  • (2017)A preliminary assessment of how monads are used in HaskellProceedings of the 21st Brazilian Symposium on Programming Languages10.1145/3125374.3125385(1-7)Online publication date: 21-Sep-2017
  • (2013)Usage of generic programming on hackageProceedings of the 9th ACM SIGPLAN workshop on Generic programming10.1145/2502488.2502494(47-52)Online publication date: 28-Sep-2013
  • (2010)Instance chainsACM SIGPLAN Notices10.1145/1932681.186359645:9(375-386)Online publication date: 27-Sep-2010
  • (2010)Instance chainsProceedings of the 15th ACM SIGPLAN international conference on Functional programming10.1145/1863543.1863596(375-386)Online publication date: 27-Sep-2010

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media