[Haskell-cafe] using type variables in type declarations inside function
allbery.b at gmail.com
Thu Apr 12 20:43:32 UTC 2018
It's just compatibility with the standard: there might be existing code
that depends on Haskell 98 not extending the scope of a type variable, so
you need to be explicit about which type variables' scope to extend.
"forall" is already there for other extensions, and is otherwise a no-op in
this situation, so it's a safe way to specify the extended scope.
On Thu, Apr 12, 2018 at 4:41 PM, Ryan Reich <ryan.reich at gmail.com> wrote:
> I too am curious about the forall in ScopedTypeVariables. It seems
> formally unnecessary, so I assume it is designed to avert some kind of
> inconsistency with standard behavior? Thinking about other extensions, e.g.
> FlexibleInstances or MultiParamTypeClasses, it seems like they all give
> meaning to constructs that are forbidden by the standard, while this one
> actually changes the standard behavior (for the better, imho) and so
> requires protection by some nonstandard signifier, i.e. forall.
> On Apr 12, 2018 13:27, "Dennis Raddle" <dennis.raddle at gmail.com> wrote:
> By the way, why do I sometimes have to use forall, and sometimes not?
> I'm also learning Purescript, and I noticed that the examples use 'forall'
> in every case. Why would it be different with Purescript?
> On Thu, Apr 12, 2018 at 12:51 PM, Brandon Allbery <allbery.b at gmail.com>
>> On Thu, Apr 12, 2018 at 3:47 PM, Dennis Raddle <dennis.raddle at gmail.com>
>>> myFunc :: a -> b -> c
>>> myFunc x y z = ...
>>> helper :: a -> [b]
>>> helper xx = ...
>>> Notice that I'm attempting to declare 'helper' using my type variables.
>>> I've noticed that this results in an error.
>>> Is this actually possible, and how?
>> You need the ScopedTypeVariables extension, *and* to "declare" the type
>> variables whose scope is to be extended with an explicit "forall" in the
>> brandon s allbery kf8nh sine nomine
>> allbery.b at gmail.com
>> ballbery at sinenomine.net
>> unix, openafs, kerberos, infrastructure, xmonad
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> Only members subscribed via the mailman list are allowed to post.
brandon s allbery kf8nh sine nomine associates
allbery.b at gmail.com ballbery at sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe