#scheme idea: READ should be parametrized by a list of regexes mapping to a procedure to build the object for the lexical tokens.
The most basic read with no tokens added would just parse things like () (()()) etc.
READ should be a left inverse of WRITE, but READ would also have an option to produce an annotated AST containing filenames and line numbers
Welcome to your niu world ! We are a cute and loving international community Ｏ(≧▽≦)Ｏ !