2025/07/25

Newest at the top

2025-07-25 10:39:39 +0200ethereal_(~ethereal@user/ethereal-:30935) ethereal_
2025-07-25 10:38:44 +0200 <merijn> Leary: Yes, I know about Unsatisfiable, that gist was the reason I proposed adding such a thing to GHC :p
2025-07-25 10:38:10 +0200jreicher(~user@user/jreicher) jreicher
2025-07-25 10:36:33 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-07-25 10:34:59 +0200 <Leary> Re type applications to constraints, it seems to work fine? https://play.haskell.org/saved/Efh4MP7v
2025-07-25 10:34:48 +0200__monty__(~toonn@user/toonn) toonn
2025-07-25 10:34:23 +0200 <Leary> merijn: That technique is more about escaping the unordered, open world of instances for (ordered) closed type families; I don't see how it helps here. Also, you would want to use `Unsatisfiable` for those errors these days.
2025-07-25 10:31:45 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-07-25 10:30:22 +0200 <merijn> Similar abuse: https://gist.github.com/merijn/6130082
2025-07-25 10:30:08 +0200chele(~chele@user/chele) chele
2025-07-25 10:29:50 +0200 <merijn> absence: So my idea won't save you if you wanna use TypeApplications, but just in case it happens to give you inspiration: Constraints are just type level families that you can compute with type level functions: https://gist.github.com/merijn/39dc86e345e87276c523
2025-07-25 10:27:40 +0200caubert(~caubert@user/caubert) (Ping timeout: 276 seconds)
2025-07-25 10:26:46 +0200LainIwakura(~LainIwaku@user/LainIwakura) LainIwakura
2025-07-25 10:26:22 +0200 <merijn> Apparently @ application doesn't support Constraint
2025-07-25 10:26:11 +0200 <merijn> Ah, I just discovered a fun limitation xD
2025-07-25 10:22:52 +0200 <merijn> Well it matters, because I'm trying to make an example with explicit Constraints and I dunno how to change the type because I don't understand what it's doing
2025-07-25 10:22:13 +0200caubert(~caubert@user/caubert) caubert
2025-07-25 10:22:10 +0200jreicher(~user@user/jreicher) (Read error: Connection reset by peer)
2025-07-25 10:22:09 +0200 <lortabac> I don't think it matters much what test1 does. IIUC the point of the example is the type application
2025-07-25 10:21:37 +0200 <merijn> it's basically const?
2025-07-25 10:21:24 +0200trickard_(~trickard@cpe-62-98-47-163.wireline.com.au)
2025-07-25 10:21:18 +0200 <merijn> *test1
2025-07-25 10:21:15 +0200 <merijn> I was trying to make another example, but I don't understand what test is doing
2025-07-25 10:21:11 +0200trickard(~trickard@cpe-62-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-07-25 10:20:08 +0200jreicher(~user@user/jreicher) jreicher
2025-07-25 10:20:03 +0200 <lortabac> oh I see
2025-07-25 10:18:57 +0200 <lortabac> can't you apply the constraint tuple directly?
2025-07-25 10:15:44 +0200jreicher(~user@user/jreicher) (Read error: Connection reset by peer)
2025-07-25 10:14:04 +0200 <merijn> oh, might not even need TypeFamilies
2025-07-25 10:13:10 +0200 <Leary> It needs to be partially applied.
2025-07-25 10:12:53 +0200 <merijn> You can simply write a type family combining your constraints straightup
2025-07-25 10:11:39 +0200 <merijn> ok, yeah, you want ConstraintKinds and TypeFamilies
2025-07-25 10:10:58 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Ping timeout: 240 seconds)
2025-07-25 10:09:41 +0200 <merijn> But I forgot the extension name, I might have an ancient gist of it
2025-07-25 10:09:28 +0200 <merijn> oh, you can do that more directly/explicitly
2025-07-25 10:08:54 +0200caubert(~caubert@user/caubert) (Ping timeout: 276 seconds)
2025-07-25 10:06:42 +0200jreicher(~user@user/jreicher) jreicher
2025-07-25 10:04:49 +0200fp(~Thunderbi@2001:708:20:1406::10c5) fp
2025-07-25 10:04:34 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-07-25 10:04:33 +0200xff0x_(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 248 seconds)
2025-07-25 10:02:42 +0200jreicher(~user@user/jreicher) (Read error: Connection reset by peer)
2025-07-25 10:01:32 +0200 <absence> Leary: That's a nice trick, thanks!
2025-07-25 10:00:05 +0200 <Leary> Err, forgot to fork it: https://play.haskell.org/saved/8fkdZkKQ
2025-07-25 09:59:48 +0200 <Leary> You can also avoid writing it out twice if you want: https://play.haskell.org/saved/pG1IGTMm
2025-07-25 09:57:42 +0200 <Leary> Not that I'm aware of.
2025-07-25 09:57:33 +0200 <absence> Leary: Do you know if it's already defined in a common package?
2025-07-25 09:56:50 +0200 <Leary> Otherwise, it's what I'd do.
2025-07-25 09:56:39 +0200 <Leary> absence: Sure: rename `Combine` `&`.
2025-07-25 09:56:16 +0200lunaGUADECOnline(~luna@90-227-72-210-no600.tbcn.telia.com) ()
2025-07-25 09:54:46 +0200Guest9548vpan