Time oriented design in Postgresql
The WITH keyword defines the operator which is used to test for "equality" between two rows. 

A regular unique index is just a special case of an exclusion constraint. If you were to define a "normal" unique constraint using an exclusion constraint, you would use = as the operator, e.g: exclude using btree (id with =) instead of unique (id) 



The &amp;&amp; for range types is the "overlaps" operator which tests if two ranges, well, overlap. 

e.g.    

daterange('2019-01-01', '2019-02-21') &amp;&amp; daterange('2019-02-08', '2019-03-01') 


returns true (as the ranges overlap)

while 

daterange('2019-01-01', '2019-02-21') &amp;&amp; daterange('2019-02-22', '2019-03-01') 


will return false as there is no overlap.