anchor.diff:      match dOpt with 
       | Some (tOpt, _) -> 
         let t = match tOpt with Some t -> t | None -> next_type_var() in
  -      Local(x, t, (GhostLocal (Mutable, Some t)))::s
  +      Variable (x, t, (GhostLocal (Mutable, Some t)))::s
       | None -> s
     {env with scope_mods = List.fold push_lhs env.scope_mods lhss }    
     
   let push_formals (env:env) (formals:formal list): env =
  -  {env with scope_mods = List.fold (fun s (x, t) -> let t = match t with Some t-> t | _->next_type_var() in Local(x, t, (GhostLocal (Immutable, Some t))):: s) env.scope_mods formals}
  +  {env with scope_mods = List.fold (fun s (x, t) -> let t = match t with Some t-> t | _->next_type_var() in Variable (x, t, (GhostLocal (Immutable, Some t))):: s) env.scope_mods formals}
   
   let lookup_id (env:env) (x:id): (typ * id_info) = 
     match lookup_name env x false with
  
positive.code:   | XGhost -> GhostLocal ((if isRet then Mutable else Immutable), Some t)
      
  let push_rets (env:env) (rets:pformal list):env =
    {env with scope_mods = List.fold (fun s (x, t, g, io, a) -> Local(x, t, (param_info true (x, t, g, io, a))):: s) env.scope_mods rets}
  
  let push_params_without_rets (env:env) (args:pformal list) (rets:pformal list):env =
    let arg_in_rets arg l = List.exists (fun elem -> elem = arg) l in
  
negative.code:   | SCalc (oop, contents) -> err ("not implemented")
    | SVar (x, t, m, g, a, eOpt) -> 
      // TODO: insert cast if 't' and 'eOpt' type do not match
      let kind = match t with | Some t -> Some (resolve_type env t) | None -> None
      let eOpt = match eOpt with | Some e -> let (t, e) = tc_exp env e in Some e | _ -> None in
      SVar (x, t, m, g, a, eOpt)
    | SAlias (x, y) ->  err ("not implemented")
  