functor (Sig : SIG-> Can.T