It seems BNF grammars can't get us our semantic approach because there are distinct operators/operations.
We can think of it like this:
- ::= means "is comprised of" and is for constructing new structures out of semantically identified elements. e.g Latlong ::= tree ( lat, long )
- --> means "is a named reference to" and is used to creating a semantic use of a particular structure/construct. e.g. Lat --> Float [ranged -90 - 90]
- And maybe we need some symbole for instance. 43.2351, -103.2405 is an instance of a latlong