------------------------------------------------------------------------

requested:	koomen - 06/19/89
completed:	koomen - 07/05/89

Add dur symbols :INF, :=, :<, :>, :<=, :>= and :<>
to tl-dlink-codes.lisp (tld-encode-range)

------------------------------------------------------------------------

requested:	koomen - 06/23/89
completed:	koomen - 07/05/89

Add inequality (:NEQ) and intersection (:INT) rel symbols
to tl-defs.lisp and tl-rlink-codes.lisp (tlr-encode-rlink-p)

------------------------------------------------------------------------

requested:	koomen - 06/23/89
completed:	miller - 06/26/89

TimeLogic needs a hook on
	tlr-add-restriction	TL:*TLR-ASSERT-HOOK*
	tld-add-restriction	TL:*TLD-ASSERT-HOOK*

The hook is invoked, just before the call to tlr-assert-rlink, on the
two intervals involved and the rel (dur) about to be installed.  If the
hook returns NIL signal incompat error (really ought to be a similar
kind of hook error; maybe extra arg to incompat-error  For efficiency
reasons we *have* to pass the args in encoded form :-(

------------------------------------------------------------------------

requested:	koomen - 06/23/89
completed:	koomen - 07/05/89

The hooks are called during tlr-add-restriction and tld-add-restriction.
However, that can lead to problems if during propagation there is a
subsequent incompatibility -- we'd have to have another hook to undo
what the previous hook may have done!

Better:
Restore tlr-add-restriction and tld-add-restriction.
Modify tl-propagate to save the entries popped off the queues.
Modify tl-add-constraint to map the hooks over the saved entries iff all
went well during propagation.  Note that tlr-assert-rlink (and -d
version) must ignore the flag *tl-propagate-depth-first-p* if hooks are
non-nil.

------------------------------------------------------------------------

requested:	koomen - 07/02/89
completed:

Need a function DEFINE-UNIT, which is just like DEFINE-INTERVAL except
it also marks the interval as being a unit (i.e., need another flag on
interval struct).  Then modify durational constraint propagator to not
propagate past units.  That is, if (i,j) asserted then forall k such
that (j,k) do (i,k) unless j and k are units.  Likewise with stuff
hanging off i.

This avoids the problem of the following (current) inconsistency:
	addurconq(months (OR 28 29 30 31) days)
	adddurconq(years 12 months)
	adddurconq(years (OR 365 366) days)

Note that getdurconq(i,j) must now also be modified to back chain
accross units: if asserted I = 3 mins don't want to store I = 180 secs
(which above change will ensure) but do want to find out how many secs = I.

------------------------------------------------------------------------
