Your editor mixes tabs and spaces, and while your editor shows a tab as 4 spaces, Haskell interprets a tab as 8 character.
Note that you cannot reproduce your code here on StackOverflow in a normal code block, since StackOverflow automatically replaces tabs with spaces. Try for yourself - copy the code from your question into your editor, assuming it doesn't automatically transform spaces at the beginning into tabs.
So disable tabs in your editor and convert existing tabs to four spaces and you should be fine.