I guess Evan really wants that function to get rewritten in Elm - after all it's synchronous.
There should be some built-in asyn request/response mechanism for ports, in the style of the Http module where you specify a Msg for the response. This would work for synchronous stuff too.