RFC: Symbol definition/declaration x visibility checks

I’d expect both printer and parser to have similar behavior (i.e., if default of private can be inferred without being explicit, then the printer would also not print that default). That’s not the case today because there is just one universal default: public. I’d expect we do not want to be a place where:

func @foo()

is inferred as private but then printed as:

func "private" @foo()