# 9 Deep-guard Concurrent Constraint Combinators: `Combinator`

This chapter describes deep-guard concurrent constraint combinators such as conditional and disjunction. Most combinators implemented by the module `Combinator` are available by convenient syntax and are described in Chapter 12 of ``Tutorial of Oz''.

`'not'`

  > `{Combinator.'not'` `+P``}`

  implements deep-negation where the nullary procedure `P` gives the statement to negate.

  Is supported by special syntax. The statement

  > `not` `S` `end`

  expands to

  > `{Combinator.'not' proc {$}` `S` `end}`

`'reify'`

  > `{Combinator.'reify'` `+P``` `$D``}`

  implements deep-reification where the nullary procedure `P` gives the statement to reify.

`'cond'`

  > `{Combinator.'cond'` `+T``` `+P``}`

  implements parallel concurrent conditional.

`'or'`

  > `{Combinator.'or'` `+T``}`

  implements disjunction.

`'choice'`

  > `{Combinator.'choice'` `+T``}`

  implements choice point construction.

`'dis'`

  > `{Combinator.'dis'` `+T``}`

  implements andorra-style disjunction.