@INPROCEEDINGS{HanusSteiner00PPDP,
author = "Hanus, M. and Steiner, F.",
title = "Type-based Nondeterminism Checking in Functional Logic Programs",
year = "2000",
pages = "202-213",
publisher = "ACM Press",
booktitle = "Proc.\ of the 2nd International ACM SIGPLAN Conference on
 Principles and Practice of Declarative Programming (PPDP'2000)"
abstract = {
Functional logic languages combine nondeterministic search facilities
of logic languages with features of functional languages, e.g.,
monadic I/O to provide a declarative method to deal with I/O actions.
Unfortunately, monadic I/O cannot be used in programs which split the
computation due to nondeterministic reductions. This problem can be
avoided if nondeterministic computations are encapsulated by search
operators which are available, for instance, in the multi-paradigm
language Curry. To support the programmer in identifying
nondeterministic parts of a program, we develop a method based on a
type and effect system that will find every possible source of
nondeterminism. Additionally, such information can be exploited in
compilers to optimize deterministically reducible parts of a program.
}
}

