compiler/libec: Improved template type checks to avoid arguments mix-up