Observe la segunda línea en esta sesión de GHCi. ¿De qué se trata el tipo de Latitude que me permite usar un número "vacío" como valor, en lugar de tener que invocar un constructor? Me gustaría hacer algo similar con algunos de mis propios tipos.Asignación de números "descubiertos" a newtypes
λ> :m + Data.Geo.GPX.Type.Latitude
λ> let t = 45 :: Latitude
λ> t
45.0
He examinado el código fuente para el tipo de Latitude, pero tuve problemas para resolverlo al principio. Eventualmente encontré la respuesta, así que pensé en documentarla aquí. Ver mi respuesta a continuación.
Para ser exactos, es el hecho de que 'Seconds' está en la clase' Num' que hace que funcione. No importa cómo se convirtió en miembro de la clase 'Num'. – augustss
También funcionaría si la instancia se proporcionara explícitamente en lugar de derivada. Todo lo que necesitas es un 'instance Num'. –
Gracias augustss y Daniel. He actualizado la respuesta. – mhwombat