def pileOver(self, a, b):
        """
        Pile a over b

        Where a and b are block numbers, puts the pile of blocks consisting of 
        block a, and any blocks that are stacked above block a, onto the top of
        the stack containing block b. The blocks stacked above block a retain
        their original order when moved.
        """
        a, b = self._getBlocks(a, b)
        if not a: return # Ignore bad indexes
        # Remove all the blocks on top of a and including onto b's stack
        blocksToMove = [a] + a.above
        for bl in blocksToMove:
            bl.moveTo(b.position)

        Pile a over b

        Where a and b are block numbers, puts the pile of blocks consisting of 
        block a, and any blocks that are stacked above block a, onto the top of
        the stack containing block b. The blocks stacked above block a retain
        their original order when moved.
        
recipes/Python/361168_Vpython_example/recipe-361168.py