Whilst representing an AST as a list is lovely for macro writing, I've never liked that parsing is lossy. You also can't recover line nums.