Generic UnfoldIterator can be used to implement many types