skip to main content
10.1145/581690.581692acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article

A formal specification of the Haskell 98 module system

Authors Info & Claims
Published:03 October 2002Publication History

ABSTRACT

Many programming languages provide means to split large programs into smaller modules. The module system of a language specifies what constitutes a module and how modules interact.This paper presents a formal specification of the module system for the functional programming language Haskell. Although many aspects of Haskell have been subjected to formal analysis, the module system has, to date, been described only informally as part of the Haskell language report. As a result, some aspects of it are not well understood or are under-specified; this causes difficulties in reasoning about Haskell programs, and leads to practical problems such as inconsistencies between different implementations. One significant aspect of our work is that the specification is written in Haskell, which means that it can also be used as an executable test-bed, and as a starting point for Haskell implementers.

References

  1. B. A. Davey and H. A. Priestley. Introduction to Lattices and Order. Cambridge University Press, 1990.Google ScholarGoogle Scholar
  2. K.-F. Faxén. A Static Semantics for Haskell. Journal of Functional Programming, 2002. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. T. Hallgren. Home Page of the Proof Editor Alfa. http://www.cs.chalmers.se/~hallgren/Alfa/, 1996-2002.Google ScholarGoogle Scholar
  4. R. Harper and M. Lillibridge. A type-theoretic approach to higher-order modules with sharing. In Proc. of 1994 ACM Symposium on Principles of Programming Languages, pages 123-137, Portland, OR, January 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. P. Jones. Typing Haskell in Haskell. In Proceedings of the 3rd Haskell Workshop, Paris, France, October 1999.Google ScholarGoogle Scholar
  6. X. Leroy. A modular module system. Journal of Functional Programming, 10(3):269-303, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. B. MacQueen. Using dependent types to express modular structure. In Proc. of 1986 ACM Symposium on Principles of Programming Languages, pages 277-286, January 1986. St. Petersburg. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. R. Milner, M. Tofte, R. Harper, and D. MacQueen. The Definition of Standard ML (Revised). The MIT Press, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Peyton Jones and J. Hughes (editors). Report on the programming language Haskell 98. Technical Report YALEU/DCS/RR-1106, Yale University, CS Dept., Feb. 1999.Google ScholarGoogle Scholar
  10. S. Peyton Jones and P. Wadler. A static semantics for Haskell. Unpublished draft, 1992.Google ScholarGoogle Scholar
  11. S. Peyton Jones (editor). Report on the programming language Haskell 98. http://research.microsoft.com/~simonpj/haskell98-revised/, March 2002.Google ScholarGoogle Scholar
  12. M. Shields and S. Peyton Jones. First class modules for Haskell. In 9th International Conference on Foundations of Object-Oriented Languages (FOOL 9), Portland, Oregon, pages 28-40, Jan. 2002.Google ScholarGoogle Scholar
  13. The GHC team. The Glasgow Haskell Compiler user's guide version 5.04. http://haskell.org/ghc/, July 2002.Google ScholarGoogle Scholar

Index Terms

  1. A formal specification of the Haskell 98 module system

          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
          • Published in

            cover image ACM Conferences
            Haskell '02: Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
            October 2002
            118 pages
            ISBN:1581136056
            DOI:10.1145/581690

            Copyright © 2002 ACM

            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: 3 October 2002

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            Haskell '02 Paper Acceptance Rate9of24submissions,38%Overall Acceptance Rate57of143submissions,40%

            Upcoming Conference

            ICFP '24

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader