Generic function typing prototype