sorry, got diverted by paper writing. GHC desugars Hsakell into Core, and it's Core that you are consuming in the ESC stuff. However, Core for an *overloaded* function contains dictionary applications and abstractions. Furthermore, overloaded operators turn into selectors, which pick out a particular field from a dictionary. See any description of how to compile type classes for examples of this.
So here you've got something like (>) d x y where (>) is defined like this (>) (MkOrd _ _ gr _) = gr That is, (>) picks out the gr field from the dictionary. So it's all very higher-order in reality. And that is what is giving trouble to the ESC stuff. After all, what do we know about *all* implementations of (>) at *all* types? Not much! Dana and I did not explore much how to give a good treatment to overloaded functions. I would not expect it to "just work". I hope this helps a bit Simon | -----Original Message----- | From: Colin Paul Adams [mailto:co...@colina.demon.co.uk] | Sent: 08 April 2009 11:04 | To: Simon Peyton-Jones | Cc: glasgow-haskell-users@haskell.org | Subject: Re: Functions for builtin operators (?) | | >>>>> "Simon" == Simon Peyton-Jones <simo...@microsoft.com> writes: | | Simon> Nowhere. It's a name generated by GHC itself during | Simon> compilation. | | OK. | Is there some way to recognise what the function is? | | The problem is with ESC/Haskell. I have managed to get the code | integrated into the 6.11 tree, and it works up to a point. | | It produces output like: | | Len.hs:4:0: | Len.pos does not satisfy its contract! | Counter example: | Len.pos with argument(s) x | (Inside _GHC.Classes.>_ ( tpl_B6 )) x ((GHC.Types.I# 0)) | | which is basically saying that it can't trust _GHC.Classes.>_ ( tpl_B6 | ) to do anything in particular, as it doesn't know anything about it. | | So it would be good to add code that recognises these functions. At | best, to know the semantics of each one. | | Colin> | Where is a function with a name like the following | Colin> defined in the ghc source | code? | Colin> | | Colin> | .Classes.>_ ( tpl_B6 ) | | | | -- | Colin Adams | Preston Lancashire _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users