moving some generic instances into fixpoint