merge strict and lazy modes

implemented kai's idea to evaluate in both strict and lazy mode, and
return the union of the two solution sets