Ich habe die Beispiele ausgearbeitet, die in dieser article zum Erstellen von Objektiven gegeben wurden.Objektive und Monomorphie Restriktion
I erstellt Lens
wie in dem Artikel erwähnt und die folgende ist mein Code:
{-# 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
dieser Code jetzt nicht typecheck, wenn ich diese beinhalten:
{-# LANGUAGE NoMonomorphismRestriction #-}
aber nicht, wo in der Artikel konnte ich herausfinden, dass sie über die Monomorphie-Einschränkung erwähnt haben. Also ist das eine normale Sache oder bin ich etwas falsch machen hier?
Compiler verwendet: GHC 7.6.2
Was ist, wenn Sie es als 'meetupLat :: Lens 'Meetup Latitude definieren; 'meetupLat = location._1'? – bheklilr
@bheklilr Danke, das funktioniert ohne die Erweiterung. Kannst du das als Antwort posten? – Sibi
@bheklilr Fertig. :) – Sibi