Coupling: the Bad, the Good, and the Possible

I’m looking at the coupling issue and I’m wondering if the heart of the issue is:

a. data sharing across modules or classes;
b. inheritance across modules;
c. referencing anything outside of an object (non-OOP and non-FP type action for sure);
d. sharing or passing data to influence behavior of objects/methods anywhere?

Are any of these possible in Scala, but could easily be made impossible?