def let(*a)
  yield(*a)
end

let(Proc.new { |cc| puts ""; print "@"; cc }[callcc { |cc| cc }],
    Proc.new { |cc| print "*"; cc }[callcc { |cc| cc }]) do |yin, yang|
  yin[yang]
end

