I am coding a game, and I have a class that I have created into a singleton object. That singleton object declares some variables, and everything works just fine. The problem comes when one of those variables refers to the singleton object, most likely through its instance() function. Note, to the best of my knowledge my problem isn't from a lack of inclusion gaurds in my headers, which I have. Anyways, when they refer to each other, I get a crazy slew of errors from g++ telling me that the types defined in the singleton class are not really types. Here is the compiler output:

Code:
cd '/home/max/programming/c++/gl/angelchronicles/angelchronicles/debug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k -j1 
compiling Camera.cpp (g++)
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/types.h:35:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/version.h:46:27: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/ScreenConstants.h:37:35: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/MainFrame.h:96:29: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Error.h:50:25: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/UIManager.h:70:1: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameSceneRender.h:31: error: ' Camera' is used as a type, but is not defined as a type.
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameSceneRender.h:41:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Scene.h:70:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Keys.h:99:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:44: error: syntax error before `*' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:46: error: ' Keys' is used as a type, but is not defined as a type.
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:57: error: syntax error before `*' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:58: error: ISO C++ forbids defining types within return type
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:58: error: syntax error before `(' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:59: error: parse error before `)' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:63:31: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Keys.h:99:7: warning: no newline at end of file
compiling Keys.cpp (g++)
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/types.h:35:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/version.h:46:27: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/ScreenConstants.h:37:35: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/MainFrame.h:96:29: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Error.h:50:25: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/UIManager.h:70:1: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Keys.h:99:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameSceneRender.h:41:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Scene.h:70:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:46: error: ' Keys' is used as a type, but is not defined as a type.
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:59: error: parse error before `)' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:60: error: parse error before `}' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:63:31: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Keys.h:99:7: warning: no newline at end of file
compiling Scene.cpp (g++)
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/types.h:35:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Error.h:50:25: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/version.h:46:27: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/ScreenConstants.h:37:35: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/MainFrame.h:96:29: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/UIManager.h:70:1: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Scene.h:70:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Keys.h:99:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:44: error: syntax error before `*' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:45: error: ' Scene' is used as a type, but is not defined as a type.
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:46: error: ' Keys' is used as a type, but is not defined as a type.
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:57: error: syntax error before `*' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:58: error: ISO C++ forbids defining types within return type
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:58: error: syntax error before `(' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:59: error: parse error before `)' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:63:31: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Keys.h:99:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameSceneRender.h:41:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Scene.h:70:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Scene.cpp:62:2: warning: no newline at end of file
compiling GameSceneRender.cpp (g++)
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/types.h:35:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/version.h:46:27: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/ScreenConstants.h:37:35: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/MainFrame.h:96:29: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Error.h:50:25: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/UIManager.h:70:1: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameSceneRender.h:41:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Scene.h:38: error: syntax error before `*' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Scene.h:70:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Keys.h:99:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:44: error: syntax error before `*' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:46: error: ' Keys' is used as a type, but is not defined as a type.
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:57: error: syntax error before `*' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:58: error: ISO C++ forbids defining types within return type
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:58: error: syntax error before `(' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:59: error: parse error before `)' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:63:31: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Keys.h:99:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameSceneRender.h:41:7: warning: no newline at end of file
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameSceneRender.cpp:143:2: warning: no newline at end of file
*** Exited with status: 2 ***
The errors come more towards the end when the offending file, GameManager is compiled.

Here is an example of what would cause this error:

Having an instance of the Keys class in GameManager, but then having the Keys class get the singleton object of the GameManager and referencing it from there.

Any suggestions? Am I not implementing this singleton object correctly? Thanks!