ways to declare function type