In this paper we propose a new generic scheme CFLP(D ), intended as a logical and semantic framework for lazy Constraint Functional Logic Programming over a parametrically given constraint domain D . As in the case of the well known CLP(D ) scheme for Constraint Logic Programming, D is assumed to provide domain specific data values and constraints. CFLP(D ) programs are presented as sets of constrained rewrite rules that define the behavior of possibly higher order and/or non-deterministic lazy functions over D . As a main novelty w.r.t. previous related work, we present a Constraint Rewriting Logic CRWL(D ) which provides a declarative semantics for CFLP(D ) programs. This logic relies on a new formalization of constraint domains and program interpretations, which allows a flexible combination of domain specific data values and user defined data constructors, as well as a functional view of constraints. Keywords Functional programming . Logic programming . Constraints