functor (F : TYPE-> sig end