#open-input-process-port とかの :input のデフォルトが *nulldev* になっていますが、ここは do-process のデフォルトの振る舞いと揃っていた方が分かりやすいと思いました(output系も)。具体的には (process-output->string '(stty -g)) ; stty: stdin isn't a terminal でひっかかりました。
#ふむ。確かに。最初に書いた頃はプロセスポートはポートのひとつと考えてて、デフォルトでは思わぬ副作用は出さないってことで/dev/nullにした気がする。でもより高次のプロセス関数から使われる場合、シェルの子プロセス呼び出しと同じ感覚だから、明示しなければ親プロセスと共有、の方が妥当だな。
#公開APIの変更になるから面倒だけど、環境変数でスイッチできるようにしておくか。