This also restores preAction and preReceiveAction effects, which were previouosly ignored. To support this, findResult and mapUntil were added to the prototype for arrays. These allow for functions with side effects to be searched or mapped over.