Just working through the text books on the Haskell wiki. https://en.wikibooks.org/wiki/Haskell
Up to https://en.wikibooks.org/wiki/Haskell/Type_basics up to https://en.wikibooks.org/wiki/Haskell/Lists_and_tuples up to https://en.wikibooks.org/wiki/Haskell/Next_steps up to https://en.wikibooks.org/wiki/Haskell/Building_vocabulary
When you're using ghci, you need to use let to define things. So, in source files f x = x + 1 is fine. In ghci, you'll need to use: let f x = x + 1.
up to https://en.wikibooks.org/wiki/Haskell/Simple_input_and_output up to https://en.wikibooks.org/wiki/Haskell/Type_declarations up to https://en.wikibooks.org/wiki/Haskell/More_on_functions up to https://en.wikibooks.org/wiki/Haskell/Higher-order_functions up to https://en.wikibooks.org/wiki/Haskell/Using_GHCi_effectively
Started Intermediate track. up to Standalone programs. more on datatypes . up to https://en.wikibooks.org/wiki/Haskell/Other_data_structures -- revisit other data structures. Needs a second and third look!