我一直在研究這個article中給出的用於創建鏡頭的示例。鏡頭和單態限制
我創建Lens
在文章中指出和下面是我的代碼:
{-# LANGUAGE TemplateHaskell #-}
import Control.Lens
type Degrees = Double
type Latitude = Degrees
type Longitude = Degrees
data Meetup = Meetup { _name :: String, _location :: (Latitude, Longitude) }
makeLenses ''Meetup
meetupLat = location._1 :: Lens' Meetup Latitude
現在這個代碼不進行類型檢查,除非我有這樣的:
{-# LANGUAGE NoMonomorphismRestriction #-}
但沒有在那裏的文章,我可以發現他們提到了關於單態限制的 。所以這是一個正常的事情,或者我在這裏做錯了嗎?
編譯器使用:GHC 7.6.2
如果將其定義爲'meetupLat :: Lens'Meetup Latitude',該怎麼辦? 'meetupLat = location._1'? – bheklilr
@bheklilr謝謝,沒有擴展名的作品。你可以把它作爲答案嗎? – Sibi
@bheklilr完成。 :) – Sibi