> Other programmers write libraries, functionality that is meant
> to be used by other programmers to build their code upon.
> In this case, you rarely know the context in which a user of
> your library will use it, therefore you
> cannot really make any decision about types.
Uh ? Even for a library you certainly can make decisions about types, document them and enforce them. Who wants to accept unspecified data types ?