External declarations properly handled
They were not bound as top-level values when they should have been
More prettification + a bit of factoring