-- | The same strategy as 'alt', implemented using state.
alt' :: Player Dilemma
alt' = Player "Stately Alternator" C $
  do m <- get
     put $ if m == C then D else C
     return m

-- | Cooperates every third round, implemented using state.
alt' :: Player Dilemma
alt' = Player "Stately Alternator" C $
  do m <- get
     put $ if m == C then D else C
     return m

-- | Cooperates every third round, implemented using state.
alt' = Player "Stately Alternator" C $
  do m <- get
     put $ if m == C then D else C
     return m

-- | Cooperates every third round, implemented using state.