Compiler complains of recursive types if I do that