請注意GHCi會話中的第二行。什麼是Latitude類型,允許我使用「裸」數字作爲值,而不必調用構造函數?我想用我自己的一些類型做類似的事情。將「裸」數字分配給新類型
λ> :m + Data.Geo.GPX.Type.Latitude
λ> let t = 45 :: Latitude
λ> t
45.0
我已經檢查了Latitude類型的源代碼,但是我一開始就遇到了麻煩。最終我找到了答案,所以我想我會在這裏記錄它。請參閱下面的答案。
確切的說,這是一個事實,即'Seconds'是在'Num'類,使得它的工作。無論它如何成爲'Num'類的成員並不重要。 – augustss 2012-04-17 13:09:55
如果明確提供實例而不是派生實例,它也可以工作。所有你需要的是一個'實例Num'。 – 2012-04-17 13:10:09
謝謝奧古斯特和丹尼爾。我已經更新了答案。 – mhwombat 2012-04-17 13:20:57