Fix inconsistencies among algorithms

Namely, result_of now always SFINAEs.