HaRe - the Haskell Refactorer (a mini demo)

Loading...

Sign in or sign up now!
Alert icon
Upgrade to the latest Flash Player for improved playback performance. Upgrade now or more info.
2,649
Loading...
Alert icon
Sign in or sign up now!
Alert icon

Uploaded by on Jun 21, 2009

The Haskell Refactorer HaRe was developed in our EPSRC project "Refactoring Functional Programs" http://www.cs.kent.ac.uk/projects/refactor-fp/. Building on Programatica's Haskell-in-Haskell frontend and Strafunski's generic programming library, it supported module-aware refactorings over the full Haskell'98 language standard. Interfaces to the refactoring engine were provided for both Vim and Emacs (this demo uses HaRe via GVim on Windows).

While HaRe has continued to see occasional contributions by students and researchers, who use its Haskell program transformation API as a platform for their own work, it is not currently maintained. As the Haskell environment marches on, this demo is meant to record a snapshot of what working with HaRe could be like when it still built (here with GHC 6.8.3).

The lessons learnt (note, eg, the preservation of comments, and the limited use of pretty-printing, to minimize layout changes) are well documented at the project site, and should be taken into account when porting the ideas to the GHC Api, or other Haskell frontends.

  • likes, 1 dislikes

Link to this comment:

Share to:

Uploader Comments (whycombinator)

  • Did you use Haskell Refactorer (HaRe) with Emacs too? That would be very interesting for me since I prefer Emacs.

  • @hapethere I'm a Vim user myself, but Huiqing is an Emacs user, and after surveying the Haskell community ("summary of survey results" near the bottom of our project page), we made sure that HaRe had both Vim and Emacs bindings (once we had figured out how to write such bindings, we wrote a script to generate both editor bindings from a common menu/command description). Some of the screenshots in our papers used the Emacs variant.

  • Bringing HaRe back to life would be an enormous contribution to the usefulness of Haskell IMHO

  • Thanks! You wouldn't believe how frustrating it has been to have put so much effort into building a real tool, for the full language, then not be able to use it because the defacto standard is so different from the official one.

    There are some technical issues with overcoming that barrier, but it is more development than research. Nevertheless, if someone (say, the IHG) were to provide the funding, I'd be happy to have a go.

  • sound please

  • No sound, sorry. I usually add annotations before uploading, to explain what is going on, but this was already over 4 min, without annotations. I was hoping that replay/stop would be sufficient to follow the steps?

    The individual refactorings are documented at the project site (look for "catalogue of refactorings).

see all

All Comments (6)

Sign In or Sign Up now to post a comment!
  • @whycombinator No need for annotation: you could have just written comments about what you were going to do. That way we wouldn't have to keep guessing. Other than that, thanks for sharing. Haskell has got some nice tools indeed, and it keeps improving.

  • you need sound dude.

Loading...
Alert icon
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more