How to fix indentation? Haskell: parse error on input `|'

Dimitar Tonchev

So I am getting the error:

error:
parse error on input `|'

   | x == 'a' = True

The code itself is:

module SubstitutionCiphers where
import AssignmentHelp.Cipher

validateCipher ::  Cipher -> Boolean
  validateCipher "" = False
  validateCipher (x:xs) 
    | x == 'a' = True
    | otherwise = validateCipher xs

I tried alternating the indentation in various different ways but nothing seems to work. I guess it is still an indentation problem, but I have no clue how to fix it.

chepner

When you indent the first line of the definition, the parser (in this context) thinks you are continuing the previous line, as if you had written

validateCipher :: Cipher -> Bool validateCipher "" = False -- etc

This becomes obvious with a simpler definition

validateCipher :: String -> Bool
  validateCipher _ = True

because the parser is able to accept this. The resulting placement of the type signature, though, is invalid.

<interactive>:11:1: error:
    Illegal type signature: ‘String -> Bool validateCipher _’
      Type signatures are only allowed in patterns with ScopedTypeVariables

(I suspect that, if the ScopedTypeVariables extension did not exist, you would get a more generic parser error on the =. )

In your actual definition, the parser continues trying to parse a type signature, and doesn't run into a syntactic problem until it sees the |.

The solution is to not indent the definition:

validateCipher ::  Cipher -> Bool
validateCipher "" = False
validateCipher (x:xs) 
  | x == 'a' = True
  | otherwise = validateCipher xs

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

How to fix parse error (possibly incorrect indentation or mismatched brackets) in Haskell

How to solve Haskell parse error on input 'otherwise'

haskell parse error on input "="

parse error on input `in' Haskell

Haskell - parse error on input

Haskell error "parse error on input ‘if'"

error: parse error on input `,' - Haskell

Haskell: parse error on input `import'

Haskell: parse error on input ‘=’ in where

Why is there an indentation error here and how to fix it?

haskell parse error (possibly incorrect indentation or mismatched brackets) in control statement

Haskell + Persistent: parse error possibly incorrect indentation or mismatched brackets

Haskell problem "parse error (possibly incorrect indentation or mismatched brackets)"

How to fix 'parse error on input ‘=’' when compile the following quicksort example?

Haskell: error: parse error on input ‘else’

How to fix Python indentation

Haskell module ,parse error on input 'sayhello'"`

Haskell where statement returns parse error on input ‘=’

Haskell type class "parse error on input instance"

Parse error on input ‘->’ in 'case of' statement in Haskell

How do I fix the indentation error in my code?

Haskell Indentation Or Mismatched Brackets Error

How to fix "Parse error: syntax error, unexpected '}"

parse error (possibly incorrect indentation ...) when building a cabal file with Haskell2010

How do I use (@) operator in Haskell as I get parse error on input?

Haskell source generated by happy has error "parse error on input 'data'"

Haskell -> Printing sortBy list - error: parse error on input ‘print’

how to fix Ambiguous occurrence error in Haskell

How to solve incorrect Indentation in Haskell

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  3. 3

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  4. 4

    pump.io port in URL

  5. 5

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    Do Idle Snowflake Connections Use Cloud Services Credits?

  9. 9

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

  10. 10

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  11. 11

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  12. 12

    Generate random UUIDv4 with Elm

  13. 13

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  14. 14

    Is it possible to Redo commits removed by GitHub Desktop's Undo on a Mac?

  15. 15

    flutter: dropdown item programmatically unselect problem

  16. 16

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  17. 17

    EXCEL: Find sum of values in one column with criteria from other column

  18. 18

    Pandas - check if dataframe has negative value in any column

  19. 19

    How to use merge windows unallocated space into Ubuntu using GParted?

  20. 20

    Make a B+ Tree concurrent thread safe

  21. 21

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

HotTag

Archive