>>840
do式で使われる<-は左辺を右辺に束縛する訳じゃない。
do
  n <- get
  put (n + 1)
は、
get >>= (\n -> put (n + 1))
の略記。