High coupling usually indicates a large software interface between both modules , increasing the probability that one module will have to be revised if another has already been updated. Consider that a signature may be constructed by importing sorts, constants and functions from an existing signature. If signature B imports signature A in it's entirety, and signature A is modified, then the signature B will also have to be checked and possibly corrected. This change will be propagated transitively, since signature B may be imported in other signatures, which in turn will need checking. This is a simple example of the problem of coupling between interfaces.
Coupling can also occur with inheritance and a number of signature forming operations.
Data Hiding A technique developed to simplify the development of software. The strategy involves partitioning the definitions and structure of a piece of software into visible and hidden parts. Software components may use declarations advertised in the visible parts of other components whilst the hidden parts of a software component are only defined for internal use within the component itself. Thus data and declarations within a software component which are only necessary to define the visible part remain hidden from other components which use the visible definitions. Consider the construction of reducts using subsignatures.