Benefits and use cases for strong mobility in presence of closure serialization
I read a paper about strong mobility in Haskell http://www.dcs.gla.ac.uk/~trinder/papers/strongm.pdf and I wondering what benefits it gives in presence of closure serialization? I guess for some languages strong mobility could be only way to transfer execution state of program, e.g.
[Mobile Pascal;)] program Test; var a: Integer; begin readln(a); // acquiring on current host moveTo("anotherHost"); // transfering state and terminating writeln(a); // printing on another host end.
but in Haskell same program can be written just using rfork :: Host -> IO () -> IO ():
main = do a <- readLn rfork AnotherHost $ do print a
The difference comparing to moveTo :: Host -> IO () version is purely syntactic: