I'm a bit puzzled how this is compiling correctly since we use this type below in `std::vector` and it needs the definition to figure out the correct size.

In theory we should include the appropriate header here instead of forward declaring.