私は、レンズを作成するために、この記事に記載されている例に取り組んできました。
記事に記載されているように作成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