-
-
Notifications
You must be signed in to change notification settings - Fork 405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enter and Raw don't interact well #157
Comments
Not sure this is the right instance. An alternative is:
And even what we currently do sort of makes sense, when seen from a particular perspective. I'm not suggesting those options instead. I just worry about muddling the semantics of I think perhaps a more principled way would be to have a separate newtype, |
That ( |
Yes, there is a case. But there also is a case for the opposite claim: if I thread some
It's the same design we were discussing w.r.t to
This I agree with. Another alternative is to have |
Hmm. So |
I changed my mind :) . 👍 on your original idea. I think the conceptual backing for |
@jkarni @alpmestan any problems with closing this? After speaking with @jkarni briefly on irc things are changing with |
Note that there's this workaround: https://groups.google.com/d/msg/haskell-servant/jhDWkAZixuI/Hkm8CBAuEQAJ |
This is fixed in |
As per the error illustrated here, or this one where you can see the same (cryptic) error message,
Enter
andRaw
don't play well together. That's because Enter tries to "peef off a monad stack" ofApplication
, which reduces to trying to peel a monad stack off ofRequest -> (Response -> IO ResponseReceived) -> IO ResponseReceived
, which reduces to trying to peel a monad stack off ofIO ResponseReceived
per the "distribute the arguments" instances ofEnter
, which usually won't work.We need an instance for
Enter
that says that whatever the source and destination monads forEnter
, if we encounterRaw
/Application
please leave it alone, as-is.Something like:
The text was updated successfully, but these errors were encountered: