make Op' not depend on funext