functor (Sig : SIG-> Can.OPS