
8 Dec
2018
8 Dec
'18
6:29 a.m.
Hi, In the function DsMeta.repE there is a format being repeated: For example in: repE e@(ExplicitTuple _ es boxed) | not (all tupArgPresent es) = notHandled "Tuple sections" (ppr e) | isBoxed boxed = do { xs <- repLEs [e | (dL->L _ (Present _ e)) <- es] ; repTup xs } | otherwise = do { xs <- repLEs [e | (dL->L _ (Present _ e)) <- es] ; repUnboxedTup xs } There is `(dL->L _ (Present _ e)) <- es`. I don't understand how this type checks correctly. If I'll try to do data Foo a = Foo a runQ [| Foo b <- Foo 1 |] in ghciI get an error. What is the difference? Yotam