failure must respect return type, if any