some support (more needed) for recursive cons lists