Proc.new {}.class
=> Proc
lambda {}.class
=> Proc
proc {}.class
=> Proc
def block_class(&block) block.class end
block_class {}
=> Proc
That write-up does have some great info in it, though.Edit: there's an interesting comment on wycats' post that suggests the &block creates a Proc, and that blocks themselves are neither objects nor callable, ie, they can only be used directly with yield. That makes sense.
Even in that case, the original point still stands; we're still only dealing with Methods and Procs.