Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: John Goerzen <jgoerzen <at> complete.org>
Subject: ANN: convertible (first release)
Newsgroups: gmane.comp.lang.haskell.cafe
Date: Tuesday 27th January 2009 03:52:54 UTC (over 8 years ago)
Hi folks,

I have uploaded a new package to Haskell: convertible.  At its heart,
it's a very simple typeclass that's designed to enable a reasonable
default conversion between two different types without having to
remember a bunch of functions.

The return type from this conversion is "Either ConvertError a", and
conversions are expected to do sanity checking (such as bounds
checking when converting to types like Int), so as to produce neither
garbage nor exceptions as part of the conversion process.

The package also includes instances of the Convertible typeclass for
working with numeric types as well as dates and times.  Notably, it
has code to convert between System.Time types and their Data.Time
siblings, and vice versa, a capability I found annoyingly lacking in
the standard library.

There is also a simple wrapper function called convert, that
transforms a Left result into a call to error, and returns a Right
result.

For HDBC v2.0, the SqlValue/SqlType system has been completely
rewritten in terms of Convertible, though I expect backwards
compatibility will not be broken by this change (existing code will
compile and run fine).  I hope to release v2.0 of the HDBC API and
backends in a few days.

Convertible is not for everyone; if you care whether you use truncate
or round to convert a Double to an Integer, this isn't for you.  Note,
though, that you can import the library without its default instances,
so you can define your own if you prefer.

API docs and downloads at:

http://hackage.haskell.org/cgi-bin/hackage-scripts/package/convertible

-- John
 
CD: 4ms