Latest update Jan 3, 2003

Xarray Source Files


A gzipped tar archive with all the files (including this web page).

Individual Source Files

Xarray.hs. Main module for the extended arrays.

Pord.hs. Yields a class to take l.u.b. and g.l.b. of array bounds, with suitable instance declarations. These operations are used in some array operations.

Liftable.hs. A class defining methods to "lift" constants and operations to constructed types. It is basically an extension of the Functor class. We provide instance declarations for Array and Maybe, but lifting can be done over many other types.

LiftArray.hs. Instance declaration for extended arrays in Liftable.

LiftMaybe.hs. Instance declaration for Maybe types in Liftable.

LiftBool.hs. Defines lifted boolean operations &&*, ||*, not' for all lifted types.

LiftEq.hs. Defines lifted relational operations ==*, /=* for all lifted types..

LiftOrd.hs. Defines lifted ordering operations, like <*, >* etc., for all lifted types.

LiftNum.hs. Defines Num, Fractional, and Floating as subclasses to Liftable.hs. Not Haskell 98-compliant, works with hugs -98 +o.

LiftArrayNum.hs. Make arrays instance of Num, Fractional, Floating. This version is Haskell 98-compliant. (Haskell 98 forces an instance declaration for these classes for each concrete instance of Liftable, rather than one instance declaration for all instances of Liftable.)

LiftMaybeNum.hs. Make Maybe types instance of Num, Fractional, Floating. This version is Haskell 98-compliant.

LiftAll.hs (1). Convenience module to load all other modules in the library: this version is not Haskell 98-compliant, works with hugs -98 +o.

LiftAll.hs (2). A version that loads the Haskell 98-compliant modules.

Map of Modules and Dependencies

Map of modules and dependencies

Viewable With Any Browser

Björn Lisper