OCamlの並行フレームワーク(名前は忘れました)でも、(>>=)相当の関数の中に yield() が隠されていたはず。
あとたぶん goroutine というのは軽量スレッドという言葉を言い換えたものだと思うのですが、 別の名前をつけることで言語固有のすごい機能として見せるのはうまい手だなと思いました。
$
やカッコなしで、直接、 do
や case
や if
や let
や \x ->
などを記述できるようになります^^Data.ByteString.Internal
とか Data.Array.Base
とか、export されているんだけど、ドキュメントはわざと隠してあるモジュールがあります。「コンストラクタを利用できない」と諦める前に、ソースを読むことを勧めします。