Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Register
  • Sign in
  • P prime
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 128
    • Issues 128
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • HaskellHaskell
  • prime
  • Wiki
  • tool support

tool support · Changes

Page history
Edit ToolSupport authored Dec 04, 2005 by malcolm.wallace@cs.york.ac.uk's avatar malcolm.wallace@cs.york.ac.uk
Hide whitespace changes
Inline Side-by-side
tool-support.md 0 → 100644
View page @ 80195119
# Tool Support for syntactic change
It is likely that Haskell Prime will make some breaking changes to Haskell'98 code. Thus, it may be worthwhile to consider implementing some tool support to ease the transition. This would take the form of a syntax translator. Many of the components for such a tool already exist (parsers and prettyprinters for the haskell language), so it should be possible with only a little effort.
- **Haskell'98 to Haskell Prime.**
I imagine the maintainers of old code would be happiest if there were a mechanical and guaranteed semantically correct
method for updating their modules. Issues to consider:
- replacements for removal candidates e.g. (n+k) patterns, irrefutable patterns, etc.
- transform imports of the Haskell'98 libraries to imports of Haskell Prime libraries
- **Haskell Prime to Haskell'98.**
There is also a case to be made that, if there are syntactic additions to the language, it could be valuable to define them in terms
of the existing Haskell'98 core. A syntactic translator could then be used as a simple pre-processor to enable users to gain experience
with the proposals in real code, but using existing compilers. This might enable e.g. QuickChecking? of semantic properties to compare
the intended meaning of new constructs with the proposed translation to core (for errors). It would also be a low-cost way to permit
decisions on new syntax to be deferred while experience is gained. If a proposal is eventually rejected, the translator means that any
code using the new extension can easily be reverted.
Clone repository
  • Arrows
  • BangPatterns
  • DeepSeq
  • ExistentialQuantification
  • ExplicitForall
  • FlexibleContexts
  • FlexibleInstances
  • ForeignFunctionInterface
  • FunctionalDependencies
  • GADTs
  • ImplicitParams
  • IncoherentInstances
  • KindAnnotations
  • LamdaCase
  • MultiParamTypeClasses dilemma
View All Pages