functions are typed