1. A system for bi-directional, dynamically programmable injection of operations into communications between a first process and a second process, the system comprising: a processor programmed to: receive a uniform resource locator (URL) from the first process; extract one or more operators with closures from the URL, the one or more operators with closures corresponding to at least one request for data; evaluate, by the second process, the one or more operators with closures to generate the data requested by the one or more operators with closures, an evaluation of the one or more operators with closures comprising: converting the closures to simply-typed closures to yield one or more operators with converted closures, and binding the one or more operators with converted closures within a monad to encapsulate the; and send the data to the first process.