     top_level_decl: -> choice(@declaration, @function_decl, @method_decl)
 
     const_decl: -> seq(
-      "const",
+      keyword("const"),
       choice(@const_spec, seq("(", repeat(@const_spec, terminator()), ")")))
     const_spec: -> seq(
       @identifier_list,
       optional(seq(optional(@type), "=", @expression_list)))
 
     type_decl: -> seq(
-      "type",
+      keyword("type"),
       choice(@type_spec, seq("(", repeat(@type_spec, terminator()), ")")))
     type_spec: -> seq(@_identifier, @type)
 
     var_decl: -> seq(
-      "var",
+      keyword("var"),
       choice(@var_spec, seq("(", repeat(@var_spec, terminator()), ")")))
     var_spec: -> seq(
       @identifier_list,

      choice(
        seq(@expression_list, "="),
        seq(@identifier_list, ":=")),
      "range",
      @expression)

    defer_stmt: -> seq("defer", @expression)

    array_type: -> seq("[", @array_length, "]", @element_type)
    array_length: -> @expression

    struct_type: -> seq(keyword("struct"), "{", repeat(seq(@field_decl, terminator())), "}")
    field_decl: -> seq(
      choice(seq(@identifier_list, @type), @anonymous_field),
      optional(@tag))
