I can't figure out the correct syntax to write a correct template for a nested class. I'd like to do something like this

```
template <typename T>
class list {
private:
    class node {
    public:
        T value;
        node();
        ~node();
    };

public:
    node<T> *H;
    list();
    ~list();
};

```

I want to have a class to represent each element of the outer class, so I'd like to have the inner class to be hidden inside the outer. Is this possible? Or should I use a different approach?