Also some style cleanup. Note that defining an empty-string variable *does* change the hash. I would like to change this behaviour one day (clean up attrs when compiling the derivation).