ava/notes/names.md

862 B

Names

Names are user-defined strings that name defined items. All names (variable names, function names, etc.) follow the same rules.

Names are UTF-8 strings. The following values are excluded:

  • Any reserved keyword (in total)
  • Any reserved symbol or operator (in total)
  • Any whitespace character
  • .
  • "
  • ,
  • \
  • ( or )

Convention

  • Variables use lower_snake_case
  • Functions use lower_snake_case
  • Generic Types use UpperCamelCase but prefer single letters such as A.
  • Data Types, aliases, etc. use UpperCamelCase

Name Conflicts

  • Variables may have the same names as functions.
  • Functions/infix may not share names. No overloaded functions.
  • Type classes may declare members with the same name, but if some type has an instance of each conflicting type class, names cannot be known without qualification.