# Undefined Behaviour

These are the undefined behaviours of pkpy. The behaviour of pkpy is undefined if you do the following things.

  1. Delete a builtin object. For example, del int.__add__.
  2. Call an unbound method with the wrong type of self. For example, int.__add__('1', 2).
  3. Type T's __new__ returns an object that is not an instance of T.
  4. Call __new__ with a type that is not a subclass of type.
  5. __eq__, __lt__ or __contains__, etc.. returns a value that is not a boolean.