---
source: full-moon/tests/fail_cases.rs
expression: result.ast
---
nodes:
  stmts:
    - - TypeDeclaration:
          type_token:
            leading_trivia: []
            token:
              start_position:
                bytes: 0
                line: 1
                character: 1
              end_position:
                bytes: 4
                line: 1
                character: 5
              token_type:
                type: Identifier
                identifier: type
            trailing_trivia:
              - start_position:
                  bytes: 4
                  line: 1
                  character: 5
                end_position:
                  bytes: 5
                  line: 1
                  character: 6
                token_type:
                  type: Whitespace
                  characters: " "
          base:
            leading_trivia: []
            token:
              start_position:
                bytes: 5
                line: 1
                character: 6
              end_position:
                bytes: 8
                line: 1
                character: 9
              token_type:
                type: Identifier
                identifier: Foo
            trailing_trivia: []
          generics:
            arrows:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 8
                      line: 1
                      character: 9
                    end_position:
                      bytes: 9
                      line: 1
                      character: 10
                    token_type:
                      type: Symbol
                      symbol: "<"
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 9
                      line: 1
                      character: 10
                    end_position:
                      bytes: 10
                      line: 1
                      character: 11
                    token_type:
                      type: Symbol
                      symbol: ">"
                  trailing_trivia:
                    - start_position:
                        bytes: 10
                        line: 1
                        character: 11
                      end_position:
                        bytes: 11
                        line: 1
                        character: 12
                      token_type:
                        type: Whitespace
                        characters: " "
            generics:
              pairs:
                - End:
                    parameter:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 0
                            line: 0
                            character: 0
                          end_position:
                            bytes: 0
                            line: 0
                            character: 0
                          token_type:
                            type: Identifier
                            identifier: "%error-id%"
                        trailing_trivia: []
                    default: ~
          equal_token:
            leading_trivia: []
            token:
              start_position:
                bytes: 11
                line: 1
                character: 12
              end_position:
                bytes: 12
                line: 1
                character: 13
              token_type:
                type: Symbol
                symbol: "="
            trailing_trivia:
              - start_position:
                  bytes: 12
                  line: 1
                  character: 13
                end_position:
                  bytes: 13
                  line: 1
                  character: 14
                token_type:
                  type: Whitespace
                  characters: " "
          declare_as:
            Callback:
              generics: ~
              parentheses:
                tokens:
                  - leading_trivia: []
                    token:
                      start_position:
                        bytes: 13
                        line: 1
                        character: 14
                      end_position:
                        bytes: 14
                        line: 1
                        character: 15
                      token_type:
                        type: Symbol
                        symbol: (
                    trailing_trivia: []
                  - leading_trivia: []
                    token:
                      start_position:
                        bytes: 14
                        line: 1
                        character: 15
                      end_position:
                        bytes: 15
                        line: 1
                        character: 16
                      token_type:
                        type: Symbol
                        symbol: )
                    trailing_trivia:
                      - start_position:
                          bytes: 15
                          line: 1
                          character: 16
                        end_position:
                          bytes: 16
                          line: 1
                          character: 17
                        token_type:
                          type: Whitespace
                          characters: " "
              arguments:
                pairs: []
              arrow:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 16
                    line: 1
                    character: 17
                  end_position:
                    bytes: 18
                    line: 1
                    character: 19
                  token_type:
                    type: Symbol
                    symbol: "->"
                trailing_trivia:
                  - start_position:
                      bytes: 18
                      line: 1
                      character: 19
                    end_position:
                      bytes: 19
                      line: 1
                      character: 20
                    token_type:
                      type: Whitespace
                      characters: " "
              return_type:
                Tuple:
                  parentheses:
                    tokens:
                      - leading_trivia: []
                        token:
                          start_position:
                            bytes: 19
                            line: 1
                            character: 20
                          end_position:
                            bytes: 20
                            line: 1
                            character: 21
                          token_type:
                            type: Symbol
                            symbol: (
                        trailing_trivia: []
                      - leading_trivia: []
                        token:
                          start_position:
                            bytes: 20
                            line: 1
                            character: 21
                          end_position:
                            bytes: 21
                            line: 1
                            character: 22
                          token_type:
                            type: Symbol
                            symbol: )
                        trailing_trivia: []
                  types:
                    pairs: []
      - ~
eof:
  leading_trivia: []
  token:
    start_position:
      bytes: 21
      line: 1
      character: 22
    end_position:
      bytes: 21
      line: 1
      character: 22
    token_type:
      type: Eof
  trailing_trivia: []

