conceptually, alpha is always less than or equal to beta
if the negated score of a successor ever rises above beta, this node is
  unreachable
so it’s (from one perspective) wrong to raise alpha
—alpha is supposed to be a score you’re guaranteed, but this is an unreachable
  node, so you can’t actually get the negated score that went above beta
however, you don’t return alpha, you return the best of the negated successors
(so the algorithm looks like “search a successor, raise best if necessary, check
  if best is above beta; if yes, then break and return best, if not, raise alpha
  if necessary, continue to next move”)
^ this is how i describe it in my notes
but in pretty much every implementation, alpha is adjusted before breaking, so
  alpha can rise above beta