export template <class T>
class Alloc {
public:
  Alloc() {}
//  virtual T *get();
  virtual ~Alloc();
};

export template <class T>
class GCAlloc : public Alloc<T> {
public:
  GCAlloc() {}
  virtual ~GCAlloc();
};

class Thread {};

class Process {
public:
  GCAlloc<Thread> threads;
};

void module() { Process p; }