This page documents the spelling choices that the Go project has made for English words.

This page is a statement of policy. Do not edit it without approval/discussion.

Policy:

* American spellings over British spellings
* **iff** means "if or only iff" (https://en.wiktionary.org/wiki/iff), but we don't use it in public-facing docs (not if it'd show up in exported identifiers in godoc)
* avoid Latin abbreviations in godoc
* use **cancellation** (two ells), not cancelation. See https://golang.org/cl/170060
* use **canceled** (one ell), not cancelled.
* use **canceling** (one ell), not cancelling.
* use **marshaling**, **marshaled** etc (single ell). See https://golang.org/cl/33017
