theory Ex2
imports Main
begin
section {* Proof context data *}
ML {*
structure My_Data = ProofDataFun(type T = int * string fun init _ = (2, "foo"))
*}
ML {* My_Data.get @{context} *}
ML {* val ctxt0 = @{context} *}
ML {* val ctxt1 = ctxt0 |> My_Data.map (fn (i, s) => (i + 1, s ^ "o")) *}
ML {* val ctxt2 = ctxt1 |> My_Data.map (fn (i, s) => (i + 1, s ^ "o")) *}
ML {* My_Data.get ctxt2 *}
end