Kernel#define_singleton_method

Kernel#define_singleton_method
- defines a new method with the given name and the given block as body in self
- raises a TypeError when the given method is no Method/Proc
- defines a new singleton method for objects
- maintains the Proc's scope

Module#define_singleton_method
- defines the given method as an class method with the given name in self