このスレッドから
http://groups.google.com/group/leksah/browse_thread/thread/7d3e3bf64e56f190/30278795c23b2168
これは、まだ対処されていない既知の問題です。GCHi コマンドを stdin に送信しますが、そこにもユーザー入力を送信する良い方法がありません。
これをどのように修正すればよいかわかりません。コマンド チャネルを使用してデバッグ中のプロセスにユーザー入力を送信することはできません (コードは、コマンドを送信する前に ghci からのプロンプトを待ちます)。
待機せずに stdin にデータを送信する方法を設定すると、送信する GHCi コマンドに干渉する可能性があります (すべて同じパイプを使用しているため)。
GHCi自体とGHCiがデバッグしているプログラムに対して別々のstdin/stdout/stderrパイプを持つことができる何らかの方法があるかどうかを調べる必要があります.
それまでの間、アプリでソケットまたは名前付きパイプを開いて、別の端末から入力を書き込むことができます。このようなもの(テストされていません)...
main = do
sock <- listenOn (PortNumber 8000)
-- Start a new terminal window (this command needs to be changed for OS X or Windows)
forkIO $ system "gnome-terminal -e \"telnet localhost 8000\""
(handle, _, _) <- accept sock -- Wait for the new terminal to connect
-- You might want to add a call to hSetBuffering here
line <- hGetLine handle
print line
sClose sock
(パッケージの依存関係にプロセスとネットワークを追加する必要があります。次に、Ctrl+R で必要なインポート ステートメントを追加する必要があります。)
これにより対話が可能になりますが、leksah が ghci と通信できるように stdin を明確に保ちます。理想的には、stdout と stderr もクリアに保ち、代わりにこのソケットに書き込みますが、Leksah は任意の出力にかなりうまく対処する必要があります。