===
field label
===

a: {
	F=f: string
	X="my-identifier": bool
}

---

(source_file 
 (field (label (identifier)) (value (struct_lit 
																		 (field (label (identifier) (identifier)) (value (primitive_type))) 
																		 (field (label (identifier) (string)) (value (primitive_type)))))))


===
field value
===

a: X={
	s: string
	X.b
}

---

(source_file 
 (field (label (identifier)) (value (identifier) (struct_lit 
																									(field (label (identifier)) (value (primitive_type))) 
																									(selector_expression (identifier) (identifier))))))

===
list elem
===

l: [X="a", "b"]

---

(source_file 
 (field (label (identifier)) (value 
															(list_lit 
															 (identifier) (string) 
															 (string)))))

===
bracketed label
===

a: [X=string]: int

---

(source_file (field (label (identifier)) (label (optional (identifier) (primitive_type))) (value (primitive_type))))

===
let expression
===

let X = a * 2

---

(source_file (let_clause (identifier) (binary_expression (identifier) (number))))
