Some things that should be specified
- file naming (camel case vs all caps vs underscores)
- Required methods for new types
copy, copy!, zero argument constructor/null constructor?
- Outer constructors vs inner constructors
- Contents of module file (includes + exports only?)