For instance, something.toSeq only works on something that are iterable to begin with and fails to compile otherwise (see the manual on the limitations of UFCS). My above rule of thumb would only allow toSeq(something), but this only works if and IDE is an integral part of being able to program, OR you have a terrific memory (I do not).
UFCS can be used if the left argument is something that by itself has a type
That is more or less how I think about it when programming Nim. Is that phrasing how you would recommend teaching newcomers about UFCS?