- | con '{' fielddecls '}' { ($1, RecCon (reverse $3)) }
-
-newconstr :: { RdrNameConDecl }
- : srcloc conid atype { mkConDecl $2 [] [] (VanillaCon [Unbanged $3]) $1 }
- | srcloc conid '{' var '::' type '}'
- { mkConDecl $2 [] [] (RecCon [([$4], Unbanged $6)]) $1 }
-
-scontype :: { (RdrName, [RdrNameBangType]) }
- : btype {% splitForConApp $1 [] }
- | scontype1 { $1 }
-
-scontype1 :: { (RdrName, [RdrNameBangType]) }
- : btype '!' atype {% splitForConApp $1 [Banged $3] }
- | scontype1 satype { (fst $1, snd $1 ++ [$2] ) }
- | '(' consym ')' { ($2,[]) }