I have read the answers in this question, but I am still confused. In both GHCi (version 8.2.1) and WinGHCi (version 1.0.6), running in Windows 10, I appear to be able to bind a value to an expression, when typing at the prompt, both with and without using let (see below). And similarly I appear to be able to define identically performing functions by both let f x = xx* and f x = xx*
Prelude> x = 3
Prelude> let y = 3
Prelude> x
3
Prelude> y
3
Prelude> x == y
True
Prelude>
So when is the let actually necessary in GHCi?
In case it is relevant, the language flags set for GHCi (which I presume are default values as I haven't messed whth them) are
base language is: Haskell2010
with the following modifiers:
-XNoDatatypeContexts
-XExtendedDefaultRules
-XNoMonomorphismRestriction
-XNondecreasingIndentation