  In this paper, we present our proposal to Constraint Functional Logic
Programming over Finite Domains (CFLP(FD)) with a lazy functional logic
programming language which seamlessly embodies finite domain (FD) constraints.
This proposal increases the expressiveness and power of constraint logic
programming over finite domains (CLP(FD)) by combining functional and
relational notation, curried expressions, higher-order functions, patterns,
partial applications, non-determinism, lazy evaluation, logical variables,
types, domain variables, constraint composition, and finite domain constraints.
  We describe the syntax of the language, its type discipline, and its
declarative and operational semantics. We also describe TOY(FD), an
implementation for CFLPFD(FD), and a comparison of our approach with respect to
CLP(FD) from a programming point of view, showing the new features we
introduce. And, finally, we show a performance analysis which demonstrates that
our implementation is competitive with respect to existing CLP(FD) systems and
that clearly outperforms the closer approach to CFLP(FD).
