1. A system for bi-directional, dynamically programmable injection of operations into communications between a first process and a second process, said system comprising: a memory area associated with the second process, said memory area storing a uniform resource locator (URL) having one or more operators with closures embedded therein, said operators with closures corresponding to at least one request for data; and a processor programmed to: receive the URL from a first process via a network and store the received URL in the memory area; extract the operators with closures from the URL stored in the memory area; evaluate, by the second process, the extracted operators with closures to generate the requested data, said evaluation including: converting the closures to simply-typed closures, and binding the operators with converted closures within a monad to encapsulate the generated data from the operators with converted closures; and send the generated data to the first process.