implement LineNumberKeeperT by StateT instead of build it manually