Los parámetros de tipo inferidos para este valor no son estables al borrar las abreviaciones de tipo. Esto se debe al uso ...

Los parámetros de tipo inferidos para este valor no son estables al borrar las abreviaciones de tipo. Esto se debe al uso de abreviaciones de tipo que colocan o reordenan parámetros de tipo; por ejemplo: 
	type taggedInt<'a> = int or
	type swap<'a,'b> = 'b * 'a.
Considere declarar los parámetros de tipo para este valor de forma explícita; por ejemplo: 
	let f<'a,'b> ((x,y) : swap<'b,'a>) : swap<'a,'b> = (y,x).