regular: Generic programming with fixed points for regular datatypes
====================================================================
Many generic programs require information about the recursive positions
of a datatype. Examples include the generic fold, generic rewriting, and
the Zipper data structure. This approach provides a fixed point view on
data which allows these definitions for regular datatypes. It can be seen
as a simplification of the Multirec library, which provides similar
functionality but for families of (possibly mutually recursive) datatypes.
This library is the underlying generic representation mechanism in the
paper:
Thomas van Noort, Alexey Rodriguez, Stefan Holdermans, Johan Jeuring,
Bastiaan Heeren. A Lightweight Approach to Datatype-Generic Rewriting.
In Ralf Hinze and Don Syme, editors, Proceedings of the ACM SIGPLAN
Workshop
on Generic Programming, WGP 2008, Victoria, BC, Canada, September 20,
2008,
pages 13–24. ACM Press, 2008.
More information is available on the webpage:
http://www.cs.uu.nl/wiki/bin/view/GenericProgramming/Regular
Features
--------
* A simple library with a fixed point view
* Includes detailed examples, such as the generic fold
* Forms the basis for a generic rewriting library:
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/rewriting
* In its current form, this library does not support nested datatypes.
Support
to access parameters of a datatype is limited.
Requirements
------------
* GHC 6.10.1 or later
* Cabal 1.2.1 or later
Download
--------
With cabal-install:
cabal install regular
Get the package:
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/regular
Get the source:
svn checkout
https://subversion.cs.uu.nl/repos/project.dgp-haskell.libraries/regular/
Bugs & Support
--------------
Report issues, request features, or just discuss the library with the
authors, maintainers, and other interested persons at:
http://www.haskell.org/mailman/listinfo/generics
--------------
José Pedro Magalhães
Universiteit Utrecht
Friends
Ken, Oleg, and I have finished Version 2 of our paper "Fun with Type Functions", which gives a programmer's tour of what type functions are and how they are useful.
http://haskell.org/haskellwiki/Simonpj/Talk:FunWithTypeFuns
If you have a moment to look at, and wanted to help us improve it, the above link goes to a wiki page where you can comment on the paper or discuss it. We still have time to improve it.
Thanks
Simon
Hi,
I am pleased to announce HLint 1.6, a tool for automatically
suggesting improvements to your Haskell code. For example:
$ hlint darcs-2.1.2
CommandLine.lhs:49:1: Warning, eta reduce
Found: quotedArg ftable = between (char '"') (char '"') $ quoteContent ftable
Why not: quotedArg = between (char '"') (char '"') . quoteContent
CommandLine.lhs:94:1: Error, use concatMap
Found: concat $ map escapeC s
Why not: concatMap escapeC s
Ssh.hs:155:17: Error, use isPrefixOf
Found: take 1 path == "~"
Why not: "~" `isPrefixOf` path
== INSTALLATION ==
To install hlint, do the standard cabal magic: cabal update && cabal
install hlint
The home page for HLint is: http://community.haskell.org/~ndm/hlint/
The manual is at: http://community.haskell.org/~ndm/darcs/hlint/hlint.htm
== NEW FEATURES FROM 1.4 ==
* Upgrade to haskell-src-exts 1.0.0, this should fix lots of bugs
* Add lots of new hints
* Fix a pile of hlint specific bugs
* Better HTML report generation
* Parallel execution (on my machine, +RTS -N4 makes it run 3 times faster)
* Better support for things the darcs project wanted
Please try out HLint and let me know what you think!
Thanks,
Neil
Commercial Users of Functional Programming Workshop (CUFP) 2009
Functional Programming As a Means, Not an End
Call for Participation
Sponsored by SIGPLAN
Co-located with ICFP 2009
_________________________________________________________
4 September 2009
Edinburgh, Scotland
Registration is through
http://www.regmaster.com/conf/icfp2009.html
_________________________________________________________
Functional languages have been under academic development
for over 25 years, and remain fertile ground for programming
language research. Recently, however, developers in industrial,
governmental, and open source projects have begun to use
functional programming successfully in practical applications.
In these settings, functional programming has often provided
dramatic leverage, including whole new ways of thinking about
the original problem.
The goal of the CUFP workshop is to act as a voice for these
users of functional programming. The workshop supports the
increasing viability of functional programming in the
commercial, governmental, and open-source space by providing a
forum for professionals to share their experiences and ideas,
whether those ideas are related to business, management, or
engineering. The workshop is also designed to enable the
formation and reinforcement of relationships that further
the commercial use of functional programming. Providing user
feedback to language designers and implementors is not a
primary goal of the workshop, though it will be welcome if it
occurs.
Program
CUFP 2009 will last a full day and feature a discussion
session and the following presentations:
Bryan O'Sullivan
Keynote: Real world Haskell
Lee Momtahan (EDF Trading)
Implementing a Domain-Specific Language for Derivative
Pricing with Scala
Bhasker Kode (hover.in)
Erlang at hover.in
Jefferson Heard, (Renaissance Computing Institute)
Teleconferencing over High-res Maps with Haskell
Alex Peake (TFC) and Adam Granicz (Intellifactory)
The First Substantial Line of Business Application in F#
Christopher Piro and Eugene Letuchy (Facebook)
Functional Programming at Facebook
Fermin Reig (Morgan Stanly)
Computing with Time Series Data in Finance
Warren Harris (Metaweb)
Functional Programming at Freebase
Mark Wong-VanHaren (Glyde)
Clear & Simple: Composing a Marketplace
Duncan Coutts (Well-Typed)
Birth of the Industrial Haskell Group
There will be no published proceedings, as the meeting is
intended to be more a discussion forum than a technical
interchange.
See http://cufp.galois.com for more information, including
presentation abstracts and the most recent schedule
information.
This will be the sixth CUFP; see CUFP 2004 CUFP 2005, CUFP
2006, CUFP 2007 and CUFP 2008 for information about the
earlier meetings, including reports from attendees and video
of the most recent talks.