-------- Original Message --------
Subject: Re: [Haskell-cafe] Word rigid in "`a' is a rigid type variable..."
From: Stijn van Drongelen <rhymoid@gmail.com>
To: vlatko.basic@gmail.com
Cc: Haskell-Cafe <haskell-cafe@haskell.org>
Date: 13.11.2013 17:52
On Wed, Nov 13, 2013 at 5:37 PM, Vlatko Basic <vlatko.basic@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