Li-Fan Chen says to YSITD Haskell compose :: (b -> c) -> (a -> b) -> a -> c Go var compose func(func(int)int, func(int)int) func(int)int C int (*compose(int (*f)(int), int (*g)(int)))(int);