Refactored code for defining cases for enum
Refactored code for defining Array/Optional/Dictionary type
Added a simple test case for infering Optional type
Multiline comment changed to qt-style for better compatibility with AppCode