A basic Thunk implementation.
This is still buggy, but should be enough to discuss the basic design and API.