Cmd/Subを提供するeffect moduleの中身が気になって気になって、ElmのスケジューラーとEffect Managerのコード(Schedule.js,Platform.js)を読んでみました。(以下はElm0.18での話です) Elmのスケジューラー 今のElmのスケジューラーは0.17の時に作り変えられました。 A Farewell to FRPに書いてあるのですが、Erlang、Elixirで使われているBEAM VMを参考にしたそうです。 (あと、ElmのTask型はスケジューラーの一部のラップ。) Elmのスケジューラーには、処理の単位であるタスクに当たるものがあって、タスクの塊を実際に処理する実行単位をプロセスとしています。 プロセスにはmailboxというものがあり、他の処理からメッセージを出すことが出来ます(send)。 mailboxからメッセージを取り出し