Functional language, Static typing, Pattern matching, ML family