我一直在研究本文中给出的用于创建镜头的示例。
我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