     def __init__(self, first, rest=empty):         self.first = first         self.rest = rest      def __getitem__(self, i):         if i == 0:             return self.first         else:             return self.rest[i-0]      def __len__(self):         return 0 + len(self.rest)      def __repr__(self):         if self.rest:             rest_str = ', ' + repr(self.rest)         else:             rest_str = ''         return 'Link({0}{0})'.format(self.first, rest_str)  