Prendere nota della seconda riga in questa sessione GHCi. Di cosa si tratta del tipo Latitude che mi consente di usare un numero "nudo" come valore, invece di dover invocare un costruttore? Mi piacerebbe fare qualcosa di simile con alcuni dei miei tipi.Assegnazione di numeri "nudi" a nuovi tipi
λ> :m + Data.Geo.GPX.Type.Latitude
λ> let t = 45 :: Latitude
λ> t
45.0
Ho esaminato il codice sorgente per il tipo di latitudine, ma ho avuto difficoltà a capire che fuori in un primo momento. Alla fine ho trovato la risposta, quindi ho pensato di documentarlo qui. Vedi la mia risposta qui sotto.
Per essere precisi, è il fatto che 'seconds' è nella classe' Num' che lo fa funzionare. Non importa come sia diventato un membro della classe 'Num'. – augustss
Funzionerebbe anche se l'istanza fosse fornita esplicitamente anziché derivata. Tutto ciò di cui hai bisogno è un 'Num di istanza '. –
Grazie augusts e Daniel. Ho aggiornato la risposta. – mhwombat