I made free monad using church encoding (though I couldnt make Proxy using it - couldnt make the function flipComposeResponse)
Also tried to make Church-encoded Proxy (though couldnt make connectProducerConsumer too and theorems that are present in coq version)