One point that I wanted to make about the mlb syntax/semantics which is a bit weird to me is the fact that because of local, a file which consists of only val x = x is not the same as the empty file. It seems a bit awkward to me that local part doesn't go in the file itself.