> I also don't like * as the public marker. > It's not readable or intuitive. > A newcomer to Nim will have no idea what * does when stumbling across it > the first time in a codebase. (the rest of Nim's syntax, by comparison, is > very straightforward.)
The "*" export marker comes from Oberon. It should replace Modula-(2/3)'s hidden types (types without export). Problem: Oberon itself could never replace it, the export-marker is ill-defined by nature. > A newcomer to Nim will have no idea what * does Same with me. I demonstrated the inconsistency with a post above. The interesting thing is always the _hidden type_ . It leads to huge complications in type theory. It can't be addressed with some simple visibility rules. _Hidden types_ require type abstraction and impredicative type inference. But Nim can't deliver that and exports types anyway.