would be nice if require supported `has`