[Haskell-cafe] Word rigid in "`a' is a rigid type variable..."

Stijn van Drongelen rhymoid at gmail.com
Wed Nov 13 16:52:24 UTC 2013


On Wed, Nov 13, 2013 at 5:37 PM, Vlatko Basic <vlatko.basic at gmail.com>wrote:

> Hi Cafe,
>
> in an example function
>
>     f :: a -> Bool
>     f a = let b = "x" in a == b
>
> compiler complains with
>   `a' is a rigid type variable bound by  the type signature for f :: a ->
> Bool
>
> I'm puzzled with the choice of word 'rigid' here.
> I see these types as
>     - 'b' has "rigid/unchangeable" type (only String), and
>     - 'a' has "soft/variable" type (any type, no constraints).
>
> Why is it called rigid?
> Where does the meaning (in this context) come from?
>
>
>
> Best regards,
>
> vlatko
>

Hi Vlatko,

I suspect the nomenclature comes from SPJ et al.'s "Simple
Unification-based Type Inference for GADTs" (even though you're not using
GADTs). Here, 'rigid' is used as a more technical term for "user-supplied".

But I'm not sure.

Kind regards,

Stijn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20131113/415f99d3/attachment.html>


More information about the Haskell-Cafe mailing list