allow protocol functions named `id' and `extend'