

          read_file fileName [numBytes|nonewline]
               Read the file fileName and returns the contents as a
               string.  If nonewline is specified as an additional
               argument, then the last character of the file is
               discarded if it is a newline.  Otherwise the second
               argument specifies exactly how many bytes will be read
               and returned, unless there are fewer than numBytes
               bytes left in the file; in this case, all the remaining
               bytes are returned.
