[Haskell] Quantified class constraints (& back-chaining)
Conal Elliott
conal at conal.net
Thu Aug 2 10:35:30 EDT 2007
> On Wed, Aug 01, 2007 at 05:29:19PM -0700, Conal Elliott wrote:
> > Sadly, this solution runs into the problem of instance selection based
only
> > on head-matching, not back-chaining into constraints. For instance, I'd
> > like also to use the following "conflicting" declaration.
> >
> > instance (Applicative f, Monoid a) => Monoid (f a) where
> > mempty = pure mempty
> > mappend = liftA2 mappend
> No quotes - [] is both Applicative and Monoid. Should [String]
> ["ab","cd"] `mappend` ["ef","gh"] give ["ab","cd","ef","gh"] or
> ["abef","abgh","cdef","cdgh"]?
> Sure enough - a genuine conflict. Thanks for the simple counter-example,
Stefan.
> > What's the state of thinking & doing with regard to universally
quantified
> > class constraints?
> >
> > Note that hereditary Harrop formulas do include universally quantified
> > goals. Less ambitiously, I think GHC's type-checker already deals with
> > universally-quantified variables, so perhaps quantified constraints are
not
> > a great reach (just guessing).
> It's something I've wanted... Got a link for hereditary Harrop formulas
> so I can add them to my to-implement-when-Qhc-is-good-enough list?
> Google isn't telling me much about them except how to add support for
> constaints, which isn't terribly helpful.
In addition to the "uniform proofs" paper Jeff P mentioned, here's a paper
that describes a progression of interpreters in ML, including HHFs. The
culmination is a somewhat efficient implementation of a language very like
LambdaProlog.
http://citeseer.ist.psu.edu/elliott90semifunctional.html
Cheers, - Conal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell/attachments/20070802/dda680cf/attachment.htm
More information about the Haskell
mailing list