@INPROCEEDINGS{HanusPrott25PPDP,
author    = {Hanus, M. and Prott, K.-O.},
title     = {Determinism Types for Functional Logic Programming},
year      = {2025},
publisher = {ACM Press},
pages     = {8:1-8:13},
booktitle = {Proc.\ of the 27th International Symposium on
             Principle and Practice of Declarative Programming (PPDP 2025)},
doi       = {10.1145/3756907.3756915},
abstract = {
Functional logic programming languages, such as Curry, integrate
features of functional and logic paradigms, in particular,
demand-driven deterministic evaluation from functional
programming with non-deterministic search from logic programming.
Though useful for programming, this combination can lead to
unintended results and subtle bugs. To support programming with
this powerful computation model, this paper proposes a method to
detect unintended non-determinism at compile time. For this
purpose, we propose determinism types to approximate the
determinism behavior of functions and expressions. In contrast
to standard types in strongly typed languages, determinism types
do not restrict the set of admissible programs but support the
programmer and programming tools in reasoning about functional
logic programs, e.g., to enforce determinism in top-level I/O
operations. We present the motivation behind this approach,
discuss core concepts of functional logic programming and Curry,
and outline methods to check for determinism through type-based
analysis.
}
}

