On Wed, Nov 13, 2013 at 5:37 PM, Vlatko Basic
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