Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Re: Ambiguous type error: multiparam class + type alias (Baa)
----------------------------------------------------------------------
Message: 1
Date: Thu, 28 Sep 2017 16:30:19 +0300
From: Baa <[email protected]>
To: [email protected]
Subject: Re: [Haskell-beginners] Ambiguous type error: multiparam
class + type alias
Message-ID: <20170928163019.00d48434@Pavel>
Content-Type: text/plain; charset=UTF-8
> You could also avoid all this ambiguity/type application stuff with:
> data AsTitle = AsTitle
> class Repr a b where
> repr :: a -> b -> Repr b
> instance Repr Int AsTitle where
> repr n _ = ...
> ...
> print (repr n AsTitle)
Yes, "moving" of type from the right-side (result) to the left-side
(arguments) solves the problem, sure.
> (Repr b can be an associated type if you want to support different
> representations)
>
> >
> >> You only add a constraint as follows:
> >> repr n :: forall b. (Repr b ~ Repr AsTitle, ReprC Int b) => Repr
> >> b
> > Yes... So, `b` is unbound/free type param. But I can bind it with
> > func. deps, yes?
> How? If you you bind it with a functional dependency on "a", you can
> only have a single "b" for each "a".
I don't know... I wrote to David my idea - additional param on the
left-side of func. dependency, but how/what param?
===
Best regards, Paul
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 111, Issue 21
******************************************