ixset-typed

Efficient relational queries on Haskell sets.

LTS Haskell 8.15:0.3.1
Stackage Nightly 2017-05-24:0.3.1
Latest on Hackage:0.3.1
BSD3 licensed by Andres Löh, Happstack team, HAppS LLC
Maintained by Andres Löh

Module documentation for 0.3.1

This Haskell package provides a data structure of sets that are indexed by potentially multiple indices.

Sets can be created, modified, and queried in various ways.

The package is a variant of the ixset package. The ixset package makes use of run-time type information to find a suitable index on a query, resulting in possible run-time errors when no suitable index exists. In ixset-typed, the types of all indices available or tracked in the type system. Thus, ixset-typed should be safer to use than ixset, but in turn requires more GHC extensions.

At the moment, the two packages are relatively compatible. As a consequence of the more precise types, a few manual tweaks are necessary when switching from one to the other, but the interface is mostly the same.

Changes

0.3 (2014-07-23)

  • IxSet internals are now more strict

  • The empty method of Indexable is now called indices and has a slightly different path; to migrate your code, if you were using Template Haskell, you probably do not have to change anything. Otherwise, wherever you have an instance of Indexable that looks like this

     instance Indexable MyIndexSet MyType where  -- OLD
       empty = mkEmpty ...

    change it to

     instance Indexable MyIndexSet MyType where  -- NEW
       indices = ixList ...

0.2 (2014-04-06)

  • Add testsuite (which is a port of the ixset testsuite).

  • Cleaning up and documentation.

  • Add 'Foldable' and 'NFData' instances.

0.1.4 (2014-04-03)

  • Documentation.

0.1.3 (2014-04-02)

  • Export IsIndexOf class.

0.1.2 (2014-04-02)

  • Clean up export list.

  • Documentation.

0.1.1 (2014-04-02)

  • Clean up export list.

  • Documentation.

0.1.0.0 (2014-03-31)

  • Initial release.
comments powered byDisqus