In the Solidity docs, it states that
Visibility has to be specified explicitly for functions defined in contracts, they do not have a default.
Yet it also says that
By default, function types are internal, so the internal keyword can be omitted.
It seems to be saying that functions have no visibility default and their function type is
internal by default. But what is the difference between a function type and function visibility? I see
external included under both function types and function visibility within the docs.