pavlov :: Player Dilemma
pavlov = "Pavlov" :::
    randomly `atFirstThen`
    do p <- my (lastGame's payoffs)
       m <- my (lastGame's onlyMove)
       return $ if p > 1 then m else
                if m == C then D else C

-- | Picks randomly until it has a lead, then preserves it by repeatedly
--   defecting.
pavlov :: Player Dilemma
pavlov = "Pavlov" :::
    randomly `atFirstThen`
    do p <- my (lastGame's payoffs)
       m <- my (lastGame's onlyMove)
       return $ if p > 1 then m else
                if m == C then D else C

-- | Picks randomly until it has a lead, then preserves it by repeatedly
--   defecting.
pavlov = "Pavlov" :::
    randomly `atFirstThen`
    do p <- my (lastGame's payoffs)
       m <- my (lastGame's onlyMove)
       return $ if p > 1 then m else
                if m == C then D else C

-- | Picks randomly until it has a lead, then preserves it by repeatedly
--   defecting.