def log1(x); end
def log2(x); end
def log3(x); end
def f(&blk)
log3(
blk.call do |x|
log1(x)
:b
end
)
:d
end
f do |&blk|
log2(blk.call(:a))
:c
end
__END__
# Classes
class Object
private
def log1: (:a x) -> nil
def log2: (:b x) -> nil
def log3: (:c x) -> nil
def f: { -> :c } -> :d
end