## 5.4 Telling Domains

`::`

  > > `?D``::``+Spec``
  > > {FD.int` `+Spec``` `?D``}`

  tells the constraint store that `D` is an integer in `Spec`.

`:::`

  > > `Dv``:::``+Spec``
  > > {FD.dom` `+Spec``` `?Dv``}`

  tells the constraint store that `Dv` is a vector of integers in `Spec`. Waits until `Dv` is constrained to a vector.

`list`

  > > `{FD.list` `+I``` `+Spec``` `?Ds``}`

  tells the constraint store that `Ds` is a list of integers in `Spec` of length `I`.

`tuple`

  > > `{FD.tuple` `+L``` `+I``` `+Spec``` `?Dt``}`

  tells the constraint store that `Dt` is a tuple of integers in `Spec` of width `I` and label `L`.

`record`

  > > `{FD.record` `+L``` `+Ls``` `+Spec``` `?Dr``}`

  tells the constraint store that `Dr` is a record of integers in `Spec` with features `Ls` and label `L`.

`decl`

  > > `{FD.decl` `?D``}`

  Abbreviates `{FD.int 0#FD.sup` `D``}`.