allow temporary-file to optionally return a binary output port