introduce the fproduct operation on Functor