Digamos que tengo un tipo MyType definido en el módulo My.Module. Quiero tener la cadena "My.Module.MyType" (o algo así). Si solo escribo el String directamente, es posible que tenga un error tipográfico, y si el módulo o el nombre del tipo cambian, me gustaría saberlo en tiempo de compilación.Poner en la cadena de tipo de nombre en Haskell
Ah, parece que puede haber confusión sobre lo que estoy preguntando. Por favor mira la pregunta cuidadosamente. Teniendo en cuenta el código:
module My.Module
type MyType = Int
data MyType2 = MyConstructor2 Int
main = do
putStrLn $ theMagic MyType
putStrLn $ theMagic MyType2
La salida que quiero es:
My.Module.MyType
My.Module.MyType2
Busco el nombre del tipo, no la definición de tipo. typeOf mostraría Int y tal, eso no es lo que quiero.
¿Para qué quieres utilizar este String? Su programa debería darle errores de compilación si usa un nombre de tipo incorrecto en su código. –
Quiero una cadena del nombre tipo, no el tipo en sí. Se usa para mostrar el nombre del tipo y usarlo para hacer coincidir nombres de tipos y demás. – mentics