Try this:
Type badger Field var Field nextBadger.badger End Type Type sheep Field firstBadger.badger Field lastBadger.badger End Type Function AddBadger.badger(sheep.sheep) badger.badger=New badger If sheep\firstBadger=Null Then sheep\firstBadger=badger Else sheep\lastBadger\nextBadger=badger EndIf sheep\lastBadger=badger Return badger End Function sheep1.sheep=New sheep newbadger.badger=AddBadger(sheep1) newbadger.badger=AddBadger(sheep1) newbadger.badger=AddBadger(sheep1) sheep2.sheep=New sheep newbadger.badger=AddBadger(sheep2) newbadger.badger=AddBadger(sheep2) newbadger.badger=AddBadger(sheep2) currentBadger.badger=sheep1\firstBadger While currentBadger<>Null ;do something currentBadger=currentBadger\nextBadger Wend currentBadger.badger=sheep2\firstBadger While currentBadger<>Null ;do something currentBadger=currentBadger\nextBadger Wend