alternative equivalent defs of extend