\addcontentsline{toc}{section}{Preface}
\section*{Preface}

This document describes \CYS (formerly called ``PACS''),
an implementation of the multi-paradigm language Curry,
jointly developed at the University of Kiel, the Technical University
of Aachen and Portland State University.
Curry is a universal programming language aiming at the amalgamation
of the most important declarative programming paradigms,
namely functional programming and logic programming.  
Curry combines in a seamless way features from functional programming
(nested expressions, lazy evaluation, higher-order functions),
logic programming (logical variables, partial data structures,
built-in search), and concurrent programming (concurrent evaluation
of constraints with synchronization on logical variables).
Moreover, the \CYS implementation of Curry also supports
constraint programming over various constraint domains,
the high-level implementation of distributed applications,
graphical user interfaces, and web services
(as described in more detail in \cite{Hanus99PPDP,Hanus00PADL,Hanus01PADL}).
Since \CYS compiles Curry programs into Prolog programs,
the availability of some of these features might depend on
the underlying Prolog system.

We assume familiarity with the ideas and features
of Curry as described in the Curry language definition \cite{Hanus16Curry}.
Therefore, this document only explains the use of the different
components of \CYS
and the differences and restrictions of \CYS
(see Section~\ref{sec-restrictions})
compared with the language Curry (Version 0.9.0).


\bigskip

\subsection*{Important Note}

This version of \CYS implements \textbf{type classes}.
The concept of type classes is not yet part of the Curry language report.
The recognized syntax of type classes is specified in
Section~\ref{sec:syntax}.
Although the implemented concept of type classes
is not fully described in this manual,
it is quite similar to Haskell 98 \cite{PeytonJones03Haskell}
so that one can look there to find a detailed description.

\bigskip

\subsection*{Acknowledgements}

This work has been supported in part by the DAAD/NSF grant INT-9981317,
the NSF grants CCR-0110496 and CCR-0218224,
the Acci\'on Integrada hispano-alemana HA1997-0073,
and the DFG grants Ha 2457/1-2, Ha 2457/5-1, and Ha 2457/5-2.

Many thanks to the users of \CYS for bug reports, bug fixes, and improvements,
in particular, to Marco Comini, Sebastian Fischer, Massimo Forni,
Carsten Heine, Stefan Junge, Frank Huch, Parissa Sadeghi.


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "manual"
%%% End: 
