Your code actually parses fine, but the next step after parsing is name resolution, i.e. working out what each name in your program refers to, and that fails. The problem is that the (implicitly imported) Prelude module also defines a function called (!!), so it is ambiguous which one is being referenced.
Two possible solutions:
Rename your (!!) function to something that doesn’t conflict with the imported name.
Hide the imported function by adding a line import Prelude hiding ((!!)), after the module ... where line if there is one.