In software development, an interface can have two parts:
- explicit interface
- available functions, their signatures, globals, etc.
- implicit interface
- the meaning of functions and their interop—things that are not encoded
Even though the interface is implicit, it is important—introducing breaking changes to the meaning of the functions may break the dependents.