#include <coroutine>

class Fibo
{
    class State     // keeps track of the coroutine's state
    {
        ...
    };

    std::coroutine_handle<State> d_handle;

    public:
        using promise_type = State;

        explicit Fibo(std::coroutine_handle<State> handle);
        ~Fibo();

        size_t next();
};
