It is convenient to use streams, which admit persistent updates, rather than ports, to which updates are destructive. For example, <http://mumble.net/~campbell/darcs/parscheme/>.