with System;

package Thin_Pointer is

   type Stream is array (Integer range <>) of Character;

   type Stream_Ptr is access Stream;
   for Stream_Ptr'Size use Standard'Address_Size;

   type Buf is record
      A : System.Address;
   end record;

   type Buf_Wrapper is record
      B : Buf;
   end record;

   type Buf_Ptr is access Buf_Wrapper;

   procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr);

end Thin_Pointer;
