Problem
If you define a data constructor which is made up of : followed by symbols (that is, designed for infix use), hindent will strip away the parentheses around it, which becomes a syntax error.
Input haskell
data HList (ts :: [Type]) where
HNil :: HList '[]
(:#) :: t -> HList ts -> HList (t ': ts)
Expected output haskell
data HList (ts :: [Type]) where
HNil :: HList '[]
(:#) :: t -> HList ts -> HList (t ': ts)
Actual output haskell
data HList (ts :: [Type]) where
HNil :: HList '[]
:# :: t -> HList ts -> HList (t ': ts)
Problem
If you define a data constructor which is made up of
:followed by symbols (that is, designed for infix use),hindentwill strip away the parentheses around it, which becomes a syntax error.Input haskell
Expected output haskell
Actual output haskell