We present a calculus providing an abstract operational semantics for higher-order concurrent constraint programming. The calculus is parameterized with a first-order constraint system and provides first-class abstraction, guarded disjunction, committed-choice, deep guards, dynamic creation of unique names, and constraint communication. The calculus comes with a declarative sublanguage for which computation amounts to equivalence transformation of formulas. The declarative sublanguage can express negation. Abstractions are referred to by names, which are first-class values. This way we obtain a smooth and straightforward combination of first-order constraints with higher-order programming. Constraint communication is asynchronous and exploi...