+// stdio.asm: WORD p_unstream,'UNSTREAM',fasm
+
+anchor:p_unstream[]
+
+=== Word: UNSTREAM
+....
+Data stack: ( stream* -- )
+....
+
+"UNSTREAM" is a function word that releases the memory allocated for a
+stream, and closes the associated file if it's a file stream.
+
+==== File descriptor backed stream
+
+This kind of stream has the stream header as a prefix within the
+allocated memory. Thus, stream* is the base address for the memory to
+reclaim, and the size of this is determined from the cell at (stream*
++ 16) plus the 32 bytes head itself.
+
+==== Memory block backed STREAM
+
+This kind of stream has a separate header which points at the memory
+area to reclaim. The cell at stream* is the base address, and the cell
+at (stream* + 16) is its size.