Newest at the top
2024-05-17 21:14:40 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-05-17 21:10:58 +0200 | fliife | (~fliife@user/fliife) |
2024-05-17 21:10:13 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-05-17 21:08:53 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2024-05-17 21:07:37 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 268 seconds) |
2024-05-17 21:00:47 +0200 | raym | (~ray@user/raym) |
2024-05-17 20:59:56 +0200 | <glguy> | ncf: yeah, maybe the other way around makes more sense; I was still in the list of constraints mindset |
2024-05-17 20:59:26 +0200 | califax | (~califax@user/califx) |
2024-05-17 20:58:43 +0200 | y04nn | (~username@2a03:1b20:8:f011::e10d) |
2024-05-17 20:57:46 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-05-17 20:57:09 +0200 | suvid | (~suvid@103.144.93.164) (Remote host closed the connection) |
2024-05-17 20:57:02 +0200 | suvid | (~suvid@103.144.93.164) |
2024-05-17 20:55:55 +0200 | JimL | (~quassel@89.162.16.26) |
2024-05-17 20:55:35 +0200 | JimL | (~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2024-05-17 20:51:21 +0200 | <ncf> | like, instead of saying "the cs objects are a subset of the Show objects" (cs ⊆ Show) you're saying "Show is a member of the list of constraints represented by cs, so that you can project it out" (Show ⊆ cs) |
2024-05-17 20:49:34 +0200 | <ncf> | oh no i see it's a projection |
2024-05-17 20:49:07 +0200 | raym | (~ray@user/raym) (Ping timeout: 268 seconds) |
2024-05-17 20:48:36 +0200 | <ncf> | your ⊆ is backwards |
2024-05-17 20:46:50 +0200 | <glguy> | Fwiw I don't recommend using either this or the previous version. It's just exploring the possible |
2024-05-17 20:46:00 +0200 | <[Leary]> | glguy: Nice, looks a bit prettier at least. |
2024-05-17 20:43:57 +0200 | JimL | (~quassel@89.162.16.26) |
2024-05-17 20:43:39 +0200 | JimL | (~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2024-05-17 20:42:12 +0200 | <glguy> | [Leary]: adapted https://github.com/glguy/operations/blob/quantifiedconstraints/src/Example.hs |
2024-05-17 20:40:53 +0200 | califax | (~califax@user/califx) |
2024-05-17 20:39:40 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-05-17 20:38:38 +0200 | <ph88> | glguy, thanks |
2024-05-17 20:34:52 +0200 | petrichor | (~znc-user@user/petrichor) |
2024-05-17 20:34:39 +0200 | <[Leary]> | ph88: I can't help much when I don't know just what it is you're struggling to achieve---the line where you've commented ?? was already, err, /mysterious/ to me from the start. That said, you probably want `type c <: cs = (forall x. cs x => c x) :: Constraint` (library-side) and `instance GetMessage <: cs => GetMessage (Entity cs)` (user-side). |
2024-05-17 20:34:31 +0200 | <glguy> | ph88: you need '[Op1] |
2024-05-17 20:33:35 +0200 | califax | (~califax@user/califx) |
2024-05-17 20:31:51 +0200 | petrichor | (~znc-user@user/petrichor) (Ping timeout: 268 seconds) |
2024-05-17 20:31:32 +0200 | <ph88> | glguy, this type checks https://play.haskell.org/saved/EAupqGhV but it carries Op2 into class of Op1 .. they need to be separate |
2024-05-17 20:31:29 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-05-17 20:30:06 +0200 | <ph88> | glguy, i adapted your code. It works with 2 constraints. Why does it fail with one? https://play.haskell.org/saved/EAupqGhV |
2024-05-17 20:16:44 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
2024-05-17 20:08:38 +0200 | <ph88> | [Leary], maybe i misunderstood. When i try to use your suggestion i'm not sure how it would work https://play.haskell.org/saved/KPj9Vxob |
2024-05-17 20:02:18 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-05-17 19:58:13 +0200 | <glguy> | that repository predates quantified constraints |
2024-05-17 19:58:01 +0200 | <[Leary]> | Ah, though I guess that subset is actually just elem, due to QuantifiedConstraints limitations. |
2024-05-17 19:54:46 +0200 | <[Leary]> | glguy: Just BTW, the bare constraint is already powerful enough without the list. `class Null` ~ []; `class (c1 & c2) a` ~ c1 ++ c2; `type c <: cs = (forall x. cs x => c x) :: Constraint` ~ c subset cs. |
2024-05-17 19:50:55 +0200 | <[Leary]> | ph88: I think you've misunderstood. The `data` declaration in the library part doesn't need to change, the /user/ just uses the type at `Entity (c & GetMessage)` instead of `Entity c`. |
2024-05-17 19:45:05 +0200 | ubert | (~Thunderbi@p200300ecdf1a442dbe8e8c8f9360db77.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2024-05-17 19:44:20 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-05-17 19:43:06 +0200 | <glguy> | so on line 14 it's a constraint that Show is an element of the list (cs), 20 is that the list [Show] is a subset of the list cs . They're two ways to do write the same idea |
2024-05-17 19:42:39 +0200 | <ph88> | by the way, this reminds me of the effectful library, looks similar to how to compose effects |
2024-05-17 19:42:11 +0200 | <glguy> | ∈ is pronounced "element of" and ⊆ is pronounced "subset of or equal to" |
2024-05-17 19:41:13 +0200 | <ph88> | glguy, what are the symbols on line 14 and 20 in the gists ? |
2024-05-17 19:31:07 +0200 | nullie | (~nullie@nuremberg.nullie.name) |
2024-05-17 19:30:49 +0200 | nullie | (~nullie@nuremberg.nullie.name) (Quit: WeeChat 4.1.1) |
2024-05-17 19:27:31 +0200 | kimiamania | (~76637481@user/kimiamania) |