[Haskell-cafe] Safe lens?

Michael Sloan mgsloan at gmail.com
Mon Oct 29 22:42:00 CET 2012


It happened somewhere between 2.6 and 2.7:

http://hackage.haskell.org/packages/archive/lens/2.6.1/doc/html/Control-Lens-Internal.html
http://hackage.haskell.org/packages/archive/lens/2.7.0.1/doc/html/Control-Lens-Internal.html

The strange thing is that the only internal dependency of 2.7.0.1,
Control.Lens.Isomorphic, is still "Safe-Infered" (this spelling error
should probably be fixed)

http://hackage.haskell.org/packages/archive/lens/2.7.0.1/doc/html/Control-Lens-Isomorphic.html

It'd be pretty fancy if Safe Haskell could give reasons for "None" /
tell what would have made it unsafe in the event of "Trustworthy".
Particularly fancy if integrated into the haddocks.

-mgsloan

On Mon, Oct 29, 2012 at 2:33 PM, Edward Kmett <ekmett at gmail.com> wrote:
> Actually Control.Lens.Getter doesn't use TH. The issue is more that it
> depends on some modules I didn't flag as Trustworthy and which require some
> more high-falutin type system extensions that GHC isn't happy about treating
> as Safe. I'll try adding a few Trustworthy flags.
>
> It previously was treated as Trustworthy or SafeInfered throughout.
>
> Somewhere along the way I must have toggled on an extension and broken that
> property.
>
> -Edward
>
>
> On Mon, Oct 29, 2012 at 1:14 PM, Petr P <petr.mvd at gmail.com> wrote:
>>
>>   Hi
>>
>> I believe the reason is that it uses TemplateHaskell for automatic
>> derivation of labels. And TemplateHaskell is of course unsafe, since
>> it could convert your code into something entirely different.
>>
>>   Best regards,
>>   Petr Pudlak
>>
>> 2012/10/29 Greg Fitzgerald <garious at gmail.com>:
>> > Why are getters from the 'lens' package unsafe?  Is there a subset
>> > like Data.Label.Pure from 'fclabels' that can be imported safely?
>> >
>> >
>> > $ cat a.hs
>> > {-# LANGUAGE Safe #-}
>> >
>> > import Control.Lens.Getter
>> >
>> > main = print 123
>> >
>> > $ runghc a.hs
>> >
>> > a.hs:3:1:
>> >     Control.Lens.Getter: Can't be safely imported!
>> >     The module itself isn't safe.
>> >
>> >
>> > Thanks,
>> > Greg
>> >
>> > _______________________________________________
>> > Haskell-Cafe mailing list
>> > Haskell-Cafe at haskell.org
>> > http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>



More information about the Haskell-Cafe mailing list