#pragma once #include #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);