boolでequalityを定義しても推論されない、ということなのかよくわかっていないが、試行錯誤。