- make it so that when a branch condition's and-ed sub-expression fails,
  the other sub-expressions aren't evaluated. Like this:

  if type(A) == type({}) and A.name != none:
  	.. do stuff ..

  the second sub-expr. "A.name != none" raises an error if the first one
  "type(A) == type({})" isn't true, but doesn't need to be evaluated in
  that case.