Function pointer works for a single arbitrary type for input and output