¿Puede GHC o alguna herramienta de pelusa decirme cuándo he proporcionado una firma de tipo para una función que podría ser más polimórfica?¿Puedo recibir advertencias sobre firmas de tipo excesivamente restrictivas?
12
A
Respuesta
7
GHC no hace esto, y una búsqueda rápida de Hackage no revela nada.
Una manera simple, pero posiblemente muy eficaz para poner en práctica tal cosa sería para cargar el módulo en GHCi, utilice :browse
para obtener todas las firmas de tipos, a continuación, cargar una copia sin ningún tipo de declaraciones de tipo, utilice :browse
de nuevo, y para comparar las dos salidas; luego simplemente imprima todas las líneas que difieren más allá de paréntesis, espacios en blanco y cambio de nombre alfa. Sin embargo, esto no funcionaría perfectamente, especialmente si tiene definiciones cuyos tipos no se pueden inferir.
Tengo la sensación de que una herramienta de este tipo podría generar muchos falsos positivos en la práctica.
Cuestiones relacionadas
- 1. Haskell: leído y tipo firmas
- 2. Maven 3 advertencias sobre build.plugins.plugin.version
- 3. Flechas/HXT y firmas de tipo
- 4. Visual Studio se ralentiza excesivamente
- 5. ¿Es excesivamente costoso anidar excesivamente los paneles de diseño de WPF (por ejemplo, cuadrícula)?
- 6. Kind Firmas
- 7. Advertencias para funciones sin especificaciones de tipo?
- 8. Agregue automáticamente firmas de tipo a funciones de nivel superior
- 9. advertencias sobre interfaces misteriosas en proyectos C#
- 10. Advertencias sobre variables no utilizadas en Erlang
- 11. django-apio advertencias sobre la configuración.DEBUG
- 12. sobrecarga de funciones Firmas Haskell
- 13. ¿Por qué es tan raro usar firmas de tipo en cláusulas where?
- 14. OCaml firmas de tipos explícitas
- 15. Firmas PGP de Python?
- 16. ¿Cómo puedo recibir notificaciones sobre un cambio de horario del sistema en mi aplicación Cocoa?
- 17. ¿Cómo puedo recibir un JSON en Symfony2
- 18. ¿Cómo puedo suprimir las advertencias de javac sobre la API obsoleta?
- 19. Recibir notificación sobre una terminación de proceso Java
- 20. Python: evitando las advertencias de pylint sobre demasiados argumentos
- 21. C#: ¿Firmas de métodos?
- 22. sobre python datetime tipo
- 23. ¿Cómo puedo hacer un método polimórfico con diferentes firmas?
- 24. Reflexión sobre restricciones de tipo
- 25. Centrar verticalmente texto excesivamente grande en los botones de Android
- 26. ¿Cómo puedo recibir OutputDebugString desde un servicio?
- 27. Advertencias en Java al convertir a un tipo genérico
- 28. C# Delegados y método firmas
- 29. ¿Cómo puedo obtener FxCop para suprimir advertencias para todo un tipo?
- 30. ¿Cómo puedo activar las advertencias de Javadoc en Eclipse?
Tenga en cuenta que la firma de tipo más general no es siempre la mejor. 'asTypeOf' sería bastante sin sentido si tuviera un tipo más general :) y de manera menos trivial, algunas técnicas de sistema tipo como las regiones se basan en restricciones de clase" no utilizadas ". –