[Haskell] SYB Documentation is inconclusive.

Arthur van Leeuwen arthurvl at cs.uu.nl
Thu Nov 23 18:16:20 EST 2006


On 23-nov-2006, at 23:22, Ralf Lammel wrote:

> Arthur,
>
> constrFields eventually returns some mangled strings from the  
> abstract syntax tree; see ghc-fptools/ghc/compiler/basicTypes/ 
> DataCon.lhs; and that abstract syntax promises to be order-preserving.
>
> It says (not surprisingly):
>
>        dcFields  :: [FieldLabel],
>                 -- Field labels for this constructor, in the
>                 -- same order as the argument types;
>                 -- length = 0 (if not a record) or dataConSourceArity.
>
> gmapQ maps the children to results. Since it is a map, it is order- 
> preserving. There is not even any associatively business in the  
> case of gmapQ (as opposed to gmapQl and gmapQr).
>
> So zipping together results from gmapQ and constrFields plus  
> handling the special case of non-record types, should be just fine,  
> no? What could possibly go wrong? Perhaps you are saying that the  
> documentation of constrFields should promise explicitly that it  
> does not mangle order?

Such a promise would have been nice. I assumed that The Right Thing  
(as in
no magic reorderings) would happen, but it was unclear from the  
papers and
the haddock documentation.

I should've looked into the source, of course, as that is the definitive
documentation. :)

> Let me know if I don't get what you are after ... perhaps in the café.

You have fully understood and explained. Glad to see that The Right  
Thing
is done. Now I can safely go and let my code into the hands of  
unsuspecting
non-Haskellers. :)

With regards, Arthur van Leeuwen.

-- 

   /\    / |       arthurvl at cs.uu.nl       | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/    \/__ | you can dare to be yourself   | Dance like there's nobody  
watching





More information about the Haskell mailing list