================================================================================
Simple source file
================================================================================
fn main() {}
--------------------------------------------------------------------------------

(source_file
  (function_declaration
    (identifier)
    (signature
      (parameter_list))
    (block)))

================================================================================
Source file with module
================================================================================
module main

fn main() {}
--------------------------------------------------------------------------------

(source_file
  (module_clause
    (identifier))
  (function_declaration
    (identifier)
    (signature
      (parameter_list))
    (block)))

================================================================================
Source file with top level statements
================================================================================
module main

println(100)
--------------------------------------------------------------------------------

(source_file
  (module_clause
    (identifier))
  (simple_statement
    (call_expression
      (reference_expression
        (identifier))
      (argument_list
        (argument
          (literal
            (int_literal)))))))

================================================================================
Source file with module clause and imports
================================================================================
module main

import bar
import foo as f
import foo.bar as fb
import foo.bar.baz as fbb { Foo, Bar }

--------------------------------------------------------------------------------

(source_file
  (module_clause
    (identifier))
  (import_list
    (import_declaration
      (import_spec
        (import_path
          (import_name
            (identifier)))))
    (import_declaration
      (import_spec
        (import_path
          (import_name
            (identifier)))
        (import_alias
          (import_name
            (identifier)))))
    (import_declaration
      (import_spec
        (import_path
          (import_name
            (identifier))
          (import_name
            (identifier)))
        (import_alias
          (import_name
            (identifier)))))
    (import_declaration
      (import_spec
        (import_path
          (import_name
            (identifier))
          (import_name
            (identifier))
          (import_name
            (identifier)))
        (import_alias
          (import_name
            (identifier)))
        (selective_import_list
          (reference_expression
            (identifier))
          (reference_expression
            (identifier)))))))
