Guard 節などで使う Type Test BIF の 'is_' Prefix は省略しちゃ駄目!

今まで、Supervisor を終了させる為に、何の気無しに下記のようなコードを書いていました。

stop() ->
    case whereis(?MODULE) of
        Pid when pid(Pid) ->
            exit(Pid, normal),
            ok;
        _ -> not_started
    end.

kai-devel-ja で、pid/1 って何?という質問があり、erlang:is_pid/1 と等価ですと答えたのですが・・・Erlang Reference Manual6.24 Guard Sequences に下記の表記がありました。

Note that each type test BIF has an older equivalent, without the is_ prefix. These old BIFs are retained for backwards compatibility only and should not be used in new code.

後方互換性の為に存在してるので、新しく作るコードでは使うなって事らしいですね。
今度から気をつけようっと。