use "lazy_lists.sml"; fun odometerNextState [] = [] | odometerNextState (x::xs) = if x = 5 then 1::(odometerNextState xs) else (x+1)::xs; fun odometerList state = LazyCons (state, fn () => odometerList (odometerNextState state)); val basicOdometer = odometerList [1,1,1,1,1];