don't we want something like `RecordReader[Ref[K], Ref[V]]` where `class Ref[T](var get: T)`