Reusing code in .module and .inc files I plan to develop a module (say M2) that uses a pre-existing module(M1) as a soft dependency.  In short there are a number of functions that I can reuse from M1 in my module M2...

other than specifying M1 as a dependency in M2's .info file what other steps do I need to take to re-use M1's functions.. also since these aren't classes but functions so how can I inherit them ?

using module_load_include() function only includes the .inc file... but then what about the .module file of M1 ?
If M1 is enabled, the .module file will be included on every page load anyway. And if M1 is a dependancy of M2, M1 will definitely be enabled if M2 is enabled.

It's only the other files (.inc, etc.) that might contain extra functionality that you'll need to load explicitly with module_load_include().