Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Neil Mitchell <ndmitchell <at> gmail.com>
Subject: ANN: HLint 1.2
Newsgroups: gmane.comp.lang.haskell.cafe
Date: Sunday 11th January 2009 22:05:09 UTC (over 8 years ago)
Hi,

I am pleased to announce HLint version 1.2. HLint is a lint-like tool
for Haskell that detects and suggests improvements for your code.
HLint is compatible with most GHC extensions, and supports a wide
variety of suggestions, and can be extended with additional user
suggestions.

To install: cabal update && cabal install hlint

Web page: http://www-users.cs.york.ac.uk/~ndm/hlint/

Biggest new feature: List recursion suggestions. For example, running
HLint over the GHC compiler now suggests things such as:

Example.hs:3:1: Warning: Use foldr
Found:
  seqList [] b = b
  seqList (x : xs) b = x `seq` seqList xs b
Why not:
  seqList xs b = foldr seq b xs

Example.hs:6:1: Warning: Use foldr
Found:
  seqIds [] = ()
  seqIds (id : ids) = seqId id `seq` seqIds ids
Why not:
  seqIds ids = foldr (seq . seqId) () ids

Example.hs:13:1: Warning: Use foldl
Found:
  rev_app [] xs = xs
  rev_app (y : ys) xs = rev_app ys (y : xs)
Why not:
  rev_app ys xs = foldl (flip (:)) xs ys

HLint will automatically detect if you should have used a map, a foldr
or a foldl and suggest how to change your code. In the GHC, darcs and
Hoogle code bases there are no obvious map-like functions, which is a
good sign :-)

Changes from last time:

* More GHC extensions supported - including record wild cards and
fixes to a number of existing extensions. These changes are thanks to
Niklas and the haskell-src-exts package.

* Many infix operators are now correctly associated with the right
priority.

* All hints are now ignored, warnings or errors. Hopefully this should
make it clearer what hints are most important. As part of this, the
format for defining ignore files has changed completely - see the
manual for the new format.

* Lots of new hints have been added - many from users of HLint.

* Many bugs have been fixed.

Can any follow-up discussions please be directed to [email protected] All
comments, questions, bug reports are welcome!

Neil
 
CD: 3ms