SOURCE imported things shouldn't be allowed to be used in TH splices
In a module loop, if you use something which is source imported in a TH splice then you get an error during linking the expression.
It seems this is a bit late during compilation and the error should be raised earlier, because there's never going to be an object file for the .hs-boot file.
https://gist.github.com/522acd04b479217e0e728ada01f309f3
[1 of 3] Compiling C[boot] ( C.hs-boot, C.o-boot, C.dyn_o )
[2 of 3] Compiling D ( D.hs, D.o, D.dyn_o )
[3 of 3] Compiling C ( C.hs, C.o, C.dyn_o )
module C cannot be linked; it is only available as a boot module