A drop-in replacement for python's collections.namedtuple with default values