================================================================================
constant pattern
================================================================================

let x = 1

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

(file
  (value_declaration
    (function_or_value_defn
      (value_declaration_left
        (identifier_pattern (long_identifier (identifier))))
      (const (int)))))

================================================================================
tuple pattern
================================================================================

let (x,y) = (1,2)

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

(file
  (value_declaration
    (function_or_value_defn
      (value_declaration_left
        (paren_pattern
          (repeat_pattern
            (identifier_pattern (long_identifier (identifier)))
            (identifier_pattern (long_identifier (identifier))))))
      (paren_expression
        (tuple_expression
          (const (int))
          (const (int)))))))

================================================================================
typed pattern
================================================================================

let name (x : int) = 1

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

(file
  (value_declaration
    (function_or_value_defn
      (function_declaration_left
        (identifier)
        (argument_patterns
          (typed_pattern
            (identifier_pattern (long_identifier (identifier)))
            (type (long_identifier (identifier))))))
      (const (int)))))

================================================================================
typed tuple pattern
================================================================================

let name (x: int, y: string) = 1, "test"

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

(file
  (value_declaration
    (function_or_value_defn
      (function_declaration_left
        (identifier)
        (argument_patterns
          (repeat_pattern
            (typed_pattern
              (identifier_pattern (long_identifier (identifier)))
              (type (long_identifier (identifier))))
            (typed_pattern
              (identifier_pattern (long_identifier (identifier)))
              (type (long_identifier (identifier)))))))
      (tuple_expression
        (const (int))
        (const (string))))))
