foo (double a, double b)
{
auto double square (double z);
double square (double z) { return z * z; }
return square (a) + square (b);
}