redgar/list: refactor list read/writer