a typed functional language