Un uso de la función '{0}' no coincide con un tipo inferido en otro lugar. El tipo inferido de la función es {1}. El tipo ...

Un uso de la función '{0}' no coincide con un tipo inferido en otro lugar. El tipo inferido de la función es
    {1}.    
El tipo de la función necesaria en este punto del uso es
    {2}    {3}
Este error puede deberse a limitaciones asociadas con la recursión genérica en una colección 'let rec' o en un grupo de clases. Considere proporcionar una signatura de tipo completa para los destinos de las llamadas recursivas que incluyen anotaciones de tipo tanto para tipos de argumento como para tipos de valor devuelto.