-fastq_t* fastq_open(FILE*);
-void fastq_close(fastq_t*);
-int fastq_next(fastq_t*, seq_t*);
+/* Free memory associated with a fastq_t object. */
+void fastq_free(fastq_t*);
+
+
+/* Read one fastq entry.
+ *
+ * Args:
+ * f: A fastq_t parser object.
+ * seq: A seq_t object that has been allocated with seq_create.
+ *
+ * Returns:
+ * True if an entry was read, false if end-of-file was reached.
+ */
+bool fastq_read(fastq_t* f, seq_t* seq);
+
+
+/* Rewind the fastq file.
+ *
+ * The FILE passed to fastq_create must be seekable for this to work.
+ */
+void fastq_rewind(fastq_t* f);
+