問題です。

次のプログラムはなんと出力するでしょう。

with ada.text_io;
with ada.integer_text_io;
procedure a is
   k : boolean := true;
   type t is record x : integer; end record;
   function z return t is
      x : integer := 10;
   begin
      if k then
         k := false;
         ada.integer_text_io.put(z.x); ada.text_io.new_line;
      end if;
      return (x => 20);
   end z;
begin
   ada.integer_text_io.put(z.x); ada.text_io.new_line;
end a;

他の言語だとネタにしようと思うのにAdaだと曖昧な文法だよorzとしか思わない謎。