fix documentation comments regarding soft/hard keywords
fix main function detection to rely on actually resolved types