abstract Params = { cat S ; F ; fun FtoS : F -> S ; f1 : F ; f2 : F ; }