#include #include //TODO std::ostream &operator<<(std::ostream &os, const willow::Diagnostic &diagnostic) { if (diagnostic.location) return os << diagnostic.location.value() << ": " << diagnostic.message; else return os << ": " << diagnostic.message; }