The remote monad design pattern

Gill, A, Sculthorpe, N ORCID: 0000-0002-7244-0916, Dawson, J, Eskilson, A, Farmer, A, Grebe, M, Rosenbluth, J, Scott, R and Stanton, J, 2015. The remote monad design pattern. ACM SIGPLAN Notices, 50 (12), pp. 59-70. ISSN 0362-1340

PubSub5455_Sculthorpe.pdf - Post-print

Download (416kB) | Preview


Remote Procedure Calls are expensive. This paper demonstrates how to reduce the cost of calling remote procedures from Haskell by using the remote monad design pattern, which amortizes the cost of remote calls. This gives the Haskell community access to remote capabilities that are not directly supported, at a surprisingly
inexpensive cost.
We explore the remote monad design pattern through six models of remote execution patterns, using a simulated Internet of Things toaster as a running example. We consider the expressiveness and optimizations enabled by each remote execution model, and assess the feasibility of our approach. We then present a full-scale case
study: a Haskell library that provides a Foreign Function Interface to the JavaScript Canvas API. Finally, we discuss existing instances of the remote monad design pattern found in Haskell libraries.

Item Type: Journal article
Description: Special issue: "Haskell '15".
Publication Title: ACM SIGPLAN Notices
Creators: Gill, A., Sculthorpe, N., Dawson, J., Eskilson, A., Farmer, A., Grebe, M., Rosenbluth, J., Scott, R. and Stanton, J.
Publisher: ACM (Association for Computing Machinery)
Date: December 2015
Volume: 50
Number: 12
ISSN: 0362-1340
Divisions: Schools > School of Science and Technology
Depositing User: Jill Tomkinson
Date Added: 27 May 2016 15:41
Last Modified: 09 Jun 2017 14:02

Actions (login required)

Edit View Edit View


Views per month over past year


Downloads per month over past year