I don't quite understand the following code:
game :: ([Move], Towers) -> Towers
game ([], towers) = towers
game situation = game (move situation)
situation here has never mentioned in any part of the codes (there are a long code before this, called the tower of Hanoi, I suppose a lot of people here know it).
Why can we directly use situation here? I know this is correct and the code works very well, but I don't know why.