class Proc
def change?
def change? pre_result = yield call post_result = yield pre_result != post_result end
def raise?(*exceptions)
def raise?(*exceptions) call rescue *(exceptions.empty? ? RuntimeError : exceptions) => e e else false end
def throw?(sym)
def throw?(sym) catch(sym) { call return false } return true end