Since GSL is a library, why is is covered by GPL? Suppose I convert part of GSL to C++ templates. Now I distribute the modified headers. There is no binary distribution of code. How does the GPL apply?