PAKCS: System Libraries

Here is the collection of libraries contained in the distribution of PAKCS. Most of these libraries have been implemented during the development of larger Curry applications. If you have suggestions for changes/improvements or if you want to contribute your own library, please contact Michael Hanus.


General libraries:

Char

Library with some useful functions on characters.

Debug

This library contains some useful operation for debugging programs.

Directory

Library for accessing the directory structure of the underlying operating system.

Distribution

This module contains definition of constants to obtain information concerning the current distribution of the Curry implementation, e.g., compiler version, run-time version, installation directory.

Either

Library with some useful operations for the Either data type.

ErrorState

A combination of Error and state monad like ErrorT State in Haskell.

FileGoodies

A collection of useful operations when dealing with files.

FilePath

This library is a direct port of the Haskell library System.FilePath of Neil Mitchell.

Float

A collection of operations on floating point numbers.

Function

This module provides some utility functions for function application.

FunctionInversion

This module provides some utility functions for inverting functions.

GetOpt
Global

Library for handling global entities. A global entity has a name declared in the program. Its value can be accessed and modified by IO actions. Furthermore, global entities can be declared as persistent so that their values are stored across different program executions.

IO

Library for IO operations like reading and writing files that are not already contained in the prelude.

IOExts

Library with some useful extensions to the IO monad.

Integer

A collection of common operations on integer numbers. Most operations make no assumption on the precision of integers. Operation bitNot is necessarily an exception.

List

Library with some useful operations on lists.

Maybe

Library with some useful functions on the Maybe datatype.

Prelude

The standard prelude of Curry (with type classes). All top-level functions, data types, classes and methods defined in this module are always available in any Curry program.

Read

Library with some functions for reading special tokens.

ReadNumeric

Library with some functions for reading and converting numeric tokens.

ReadShowTerm

Library for converting ground terms to strings and vice versa.

ShowS

This library provides a type and combinators for show functions using functional lists.

State

This library provides an implementation of the state monad.

System

Library to access parts of the system environment.

Test.Prop

This module defines the interface of properties that can be checked with the CurryCheck tool, an automatic property-based test tool based on the EasyCheck library. The ideas behind EasyCheck are described in this paper. CurryCheck automatically tests properties defined with this library. CurryCheck supports the definition of unit tests (also for I/O operations) and property tests parameterized over some arguments. CurryCheck is described in more detail in this paper.

Test.Prop.Types

This module defines some types used by the EasyCheck libraries.

Time

Library for handling date and time information.

Unsafe

Library containing unsafe operations. These operations should be carefully used (e.g., for testing or debugging). These operations should not be used in application programs!

Data structures and algorithms:

Sort

A collection of useful functions for sorting and comparing characters, strings, and lists.


Explanations of the icons used in the documentation:

  Operation is deterministic, i.e., defined by exclusive rules and depend only on deterministic operations
  Operation might be non-deterministic, i.e., it is defined by overlapping rules or depend on non-deterministic operations