>Yup.  If anybody else likes my extentions to the Continuation class, let me 
>know and I'll wrap them up in an RAA project.  If I'm the only one who 
>objects to the aesthetics of callcc, then I'll just keep it for myself.  But 
>before I do create an RAA project, I want to make sure that I didn't miss a 
>subtlety and that my Continuation.new and Continuation.run will do everything 
>that you can currently do with callcc.
>  
>
Well, Continuation.run seems to me to be trivially the same as callcc, 
so you can do everything you can do with callcc with that alone.

As long as you're tweaking, you could provide the style I mentioned 
earlier of calling functions directly with callcc, like this:

def Continuation.run(*args)
    callcc do |cc|
       if block_given?
          yield cc
       else
          func, *rest = args
          if func.respond_to? :call
             func.call(cc, *rest)
          end
       end
    end
end

This lets you do something like:

def foo(cc, a, b)
    puts a
    cc.call b
end

puts Continuation.run(method(:foo), 1, 2)

Which prints

1
2

I don't know if that's desirable or not.

You could also do
    if block_given?
       yield cc, *args
    ...

To pass more arguments into the block if desired.

And like you, I'm not sure that I like Continuation.run as a name for 
it, although I can't come up with a good name either.  I'd say 
Continuation.call, but I think that'd be too corn-fusing.

Good luck.

- Dan