::= "@" "{" "}" ::= ::= * ::= "fn" ";" ::= "->" ::= "fn" ::= "@" "<" ">" "{" "}" ::= "@" "extends" "{" "}"