code: def deriv(self, x: str, ctype: ContentType) -> SchemaPattern:
          
          return (self.pattern.deriv(x, ctype) if self.check_when() else
                  NotAllowed())
docs: Return derivative of the receiver.