>  # Returns the Method that was active, if any, when the binding was
created
>  def method() ...???...
>
>  # Returns the Proc that was active, if any, when the binding was
created
>  def proc() ... ??? ...
>
>  # Returns the call stack, same format as Kernel##caller()
>  def caller( skip = 0 ); eval( "caller( #{skip})") end

What whould also be nice, is that caller in this context return an array
of Bindings (i.e. Object#method) and not of string (of "file: line:
...").