+/* Use this rather than accessing f->lines directly: loads on demand. */
+struct line_info *get_ccan_line_info(struct ccan_file *f);
+
+/* Use this rather than accessing f->simplified directly: loads on demand. */
+const char *get_ccan_simplified(struct ccan_file *f);
+
+enum line_compiled {
+ NOT_COMPILED,
+ COMPILED,
+ MAYBE_COMPILED,
+};
+
+/* Simple evaluator. If symbols are set this way, is this condition true?
+ * NULL values mean undefined, NULL symbol terminates. */
+enum line_compiled get_ccan_line_pp(struct pp_conditions *cond,
+ const char *symbol,
+ const unsigned int *value, ...);
+
+/* Get token if it's equal to token. */
+bool get_token(const char **line, const char *token);
+/* Talloc copy of symbol token, or NULL. Increment line. */
+char *get_symbol_token(void *ctx, const char **line);
+
+/* Similarly for ->doc_sections */
+struct list_head *get_ccan_file_docs(struct ccan_file *f);
+
+/* Get NULL-terminated array options for this file for this test */
+char **per_file_options(const struct ccanlint *test, struct ccan_file *f);
+
+/* Append message about this file (and line, if non-zero) to the score->error */
+void score_file_error(struct score *, struct ccan_file *f, unsigned line,
+ const char *errorfmt, ...);
+
+/* Start a command in the background. */
+void run_command_async(const void *ctx, unsigned int time_ms,
+ const char *fmt, ...);