anchor.diff:              //           with ... 
               //           end 
               | CtxtWithAsAugment _,((CtxtInterfaceHead _ | CtxtMemberHead _ | CtxtException _ | CtxtTypeDefns _) as limitCtxt  :: _rest)
  -                      -> (limitCtxt.StartPos,limitCtxt.StartCol) 
  +                      -> PositionWithColumn (limitCtxt.StartPos,limitCtxt.StartCol) 
   
               // Permit unindentation via parentheses (or begin/end) following a 'then', 'else' or 'do':
               //        if nr > 0 then (  
  
positive.code:             // This is a serious thing to allow, but is required since there is no "return" in this language.
              // Without it there is no way of escaping special cases in large bits of code without indenting the main case.
              | CtxtSeqBlock _, (CtxtElse _  :: (CtxtIf _ as limitCtxt) :: _rest) 
                        -> (limitCtxt.StartPos,limitCtxt.StartCol)
  
              // Permitted inner-construct precise block alighnment: 
              //           interface ...
  
negative.code: 
              | _ -> 
                  None
  
          // Balancing rule. Every 'in' terminates all surrounding blocks up to a CtxtLetDecl, and will be swallowed by 
          // terminating the corresponding CtxtLetDecl in the rule below. 
  