Passing constraints down the eval tree - might be really good