let pretty_node fmt k =
    let print_stmt fmt s =
      let str =
        match s.skind with
        | Switch (exp,_,_,_) | If (exp,_,_,_) ->
          Pretty_utils.sfprintf "%a" ! Ast_printer.d_exp exp
        | Loop _ -> "while(1)"
        | Block _ -> "block"
        | Goto _ | Break _ | Continue _ | Return _ | Instr _ ->
          Pretty_utils.sfprintf "@[<h 1>%a@]"
            (Cil.defaultCilPrinter#pStmtKind s) s.skind
        | UnspecifiedSequence _ -> "unspecified sequence"
        | TryExcept _ | TryFinally _  -> "ERROR"
      in
      Format.fprintf fmt "%s" str
    in
    match k with
    | CallStmt call ->
      let call = call_from_id call in
      Format.fprintf fmt "Call%d : %a" call.sid print_stmt call
    | Stmt s -> print_stmt fmt s
    | Label (_,l) -> Format.fprintf fmt "%a" !Ast_printer.d_label l
    | VarDecl v -> Format.fprintf fmt "VarDecl : %a" !Ast_printer.d_var v
    | SigKey k -> Format.fprintf fmt "%a" Signature.pretty_key k
    | SigCallKey (call, sgn) ->
      let call = call_from_id call in
      Format.fprintf fmt "Call%d-%a : %a"
        call.sid Signature.pretty_key sgn print_stmt call