In most Go programs I have seen, even those that have just one package, the names of types are written with a capital letter, which makes them exported. (Example)
Is this just a convention to make clear that they are types or is there a need for all types to be exported?
Here are some examples: