sendReceive is evaluated lazily