Under the Hood
     
     Compilation is divided into 3 steps:
     
     * Parse - Source to AST
     * Analyze - Detect and Validate types
     * Emit - Create language specific modules