#pragma once
#include <stdio.h>
#include "cfa-pair.h"

forall(otype T, ttype Params | { void print(FILE*, T); void print(FILE*, Params); })
void print(FILE* out, T arg, Params rest);

void print(FILE* out, const char* x);
void print(FILE* out, _Bool x);
void print(FILE* out, char x);
void print(FILE* out, int x);

forall(otype R, otype S | { void print(FILE*, R); void print(FILE*, S); })
void print(FILE* out, pair(R, S) x);
