[Haskell-cafe] ANNOUNCE: Facts
ajs at 2piix.com
Wed Oct 13 22:15:53 EDT 2010
The Facts hierarchy is meant to contain commonly used, relatively
static facts about the "real world". The facts are meant to be encoded
using relatively simple Haskell constructs. However, we do make some
promises: every data type our modules export will have instances of
Data, Eq, Ord, Show, andTypeable. We will use explicit module export
lists to control access to internal data structures.
As much of the data we are encoding is tabular, we use simple
structures like lists and maps to encode the relations. This has two
practical ramifications: the textual representation of the data can be
very wide, but are also very easy to edit, with "block editing" tools
like Vi's visual block mode. The other consequence is that the naive
approach to writing queries can be tedious, and the resulting naive
queries are slower than they could be. Template Haskell can eliminate
much of this drudgery. Felipe Lessa has graciously donated some
Template Haskell code which we have adapted.
The Facts.* hierarchy currently contains modules with geographical
information, such as a data type of countries, cross references to
various ISO-3166-1 names for each, a list of states in the United
States, and the United States address format. Please see the module
hierarchy for more specifics. Patches are welcomed, though prospective
contributors are encouraged to encode data structures using lists of
pairs to encode bijections, all exposed data types are instances of
Data, Eq, Ord, Show, and Typeable, and use explicit exports to only
export queries and their atoms. For now, we will add facts to the
hierarchy lazily, as our projects need them.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe