package body Originals is

    procedure Put (B : Block) is
        S : String (1 .. Word'Length);
    begin
        Put ("First = ");
        Put (B.First);

        for N in 1 .. Word'Length loop
            if B.Second (N) = 0 then
                S (N) := '0';
            else
                S (N) := '1';
            end if;
        end loop;

        Put (", Second = ");
        Put (S);
        Put (", Third = ");
        Put (B.Third);
        Put_Line (".");
    end Put;

end Originals;


-- Define the derived types: