predicateって1つ以上の引数を取ってbool型を返す関数(関数オブジェクト)じゃねーの?
関数名が断定する名称でさ、例えば、Equal(A, B) → bool