Make a tau interval

General Form: (make-tau-interval doc lo-rel lo hi-rel hi)

An interval is a structure of the form: *dom*
*lo-rel* *lo**hi-rel* *hi*

For examples of intervals (and non-intervals!) constructed by
`tau-intervalp`. For examples of what
objects are contained in certain intervals, see `in-tau-intervalp`.

The components of an interval are as follows:

*Dom* (``domain'') must be one of four symbols:

The two ``relations,'' *lo-rel* and *hi-rel* are Booleans, where
`<`) and `<=`). Think of

*Lo* and *hi* must be either *lo* is *hi*
is *Lo* must be no greater than
*hi*. *Note*: Even though *lo* and *hi* bounds must be rational. This
is an arbitrary decision made by the implementors to simplify coding.

Finally, if the *dom* is *lo* and *hi* must be integers when they are
non-

For *x* to be ``in'' an interval it must be of the type described by
the domain predicate *dom*, *lo* must be smaller than *x* in
the strong or weak sense denoted by *lo-rel*, and *x* must be
smaller than *hi* in the strong or weak sense denoted by
*hi-rel*.

The components of an interval may be accessed with the functions `tau-interval-dom`, `tau-interval-lo-rel`, `tau-interval-lo`,
`tau-interval-hi-rel`, and `tau-interval-hi`.