Don't use attributes on templated functions unless they _must_ have them. Otherwise, a lot of stuff won't work with them. Most of the templated functions in Phobos which are marked with attributes that could be inferred operate only on arrays.