anchor.diff:        let e = eapply (Operator (x + "?[]")) [e2; e1] in
         let (t, ae) = infer_exp env u e expected_typ in
         match ae with
  -      | (AE_Apply (_, _, [e2; e1]), _) -> ret t (AE_Op (Bop BIn, [e1; e2])) // TODO: save x or t1
  +      | (AE_Apply (_, _, [e2; e1]), _) -> ret t.norm_typ (AE_Op (Bop BIn, [e1; e2])) // TODO: save x or t1
         | _ -> internalErr ("EOp Bop BIn")
       )
   (*
  
positive.code:       let e = eapply (Operator (x + "[]")) [e1; e2] in
        let (t, ae) = infer_exp env u e expected_typ in
        match ae with
        | (AE_Apply (_, _, es), _) -> ret t (AE_Op (Subscript, es)) // TODO: save x or t1
        | _ -> internalErr ("EOp Subscript")
      )
    | EOp (Update, [e1; e2; e3]) ->
  
negative.code:       let e = eapply (attrs_get_id (Reserved "alias") f.fattrs) es in
        let (t, ae) = infer_exp env u e expected_typ in
        match ae with
        | (AE_Apply (_, _, es), _) -> ret t.norm_typ (AE_Op (Uop (UCustom op), es))
        | _ -> internalErr "UCustom"
      )
  (*
  