2025/03/18

Newest at the top

2025-03-18 11:56:39 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2025-03-18 11:47:55 +0100kh0d(~kh0d@109.111.226.14)
2025-03-18 11:47:11 +0100ljdarj1ljdarj
2025-03-18 11:47:11 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2025-03-18 11:44:02 +0100ash3en(~Thunderbi@149.222.132.64) (Read error: Connection reset by peer)
2025-03-18 11:44:02 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-03-18 11:42:36 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-03-18 11:42:16 +0100ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-03-18 11:40:24 +0100alexherbo2(~alexherbo@2a02-8440-3507-7a57-f54b-3cee-8f5a-99cb.rev.sfr.net) alexherbo2
2025-03-18 11:38:31 +0100euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
2025-03-18 11:32:54 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 268 seconds)
2025-03-18 11:32:17 +0100kh0d(~kh0d@109.111.226.14) (Remote host closed the connection)
2025-03-18 11:32:11 +0100kh0d(~kh0d@109.111.226.14) kh0d
2025-03-18 11:31:44 +0100kh0d(~kh0d@109.111.226.14) (Remote host closed the connection)
2025-03-18 11:31:00 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 276 seconds)
2025-03-18 11:28:54 +0100alp(~alp@2001:861:8ca0:4940:ee1f:fdc:72ba:d779)
2025-03-18 11:26:19 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-18 11:25:01 +0100Leary(~Leary@user/Leary/x-0910699) Leary
2025-03-18 11:20:36 +0100 <dminuoso> I mean given what Im doing this is more a theoretical discussion
2025-03-18 11:20:15 +0100 <dminuoso> That would be sufficient for my usecase actually
2025-03-18 11:19:46 +0100rvalue(~rvalue@user/rvalue) rvalue
2025-03-18 11:14:24 +0100Googulator68(~Googulato@2a01-036d-0106-0ae4-b88c-ff83-9891-e272.pool6.digikabel.hu)
2025-03-18 11:14:04 +0100Googulator68(~Googulato@2a01-036d-0106-0ae4-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed)
2025-03-18 11:08:17 +0100Leary(~Leary@user/Leary/x-0910699) (Ping timeout: 248 seconds)
2025-03-18 11:04:15 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:4780:d0f0:79b4:9ac) ubert
2025-03-18 11:01:13 +0100 <c_wraith> So... Who knows if it's sufficient
2025-03-18 11:01:02 +0100 <c_wraith> But if you do that, you lose the ErrorAnnotation instance
2025-03-18 11:00:39 +0100 <c_wraith> You could use Typeable to see if the type matches the top level type constructor, ignoring the argument.
2025-03-18 10:58:53 +0100 <c_wraith> I guess the Exception class is a little more sophisticated. You just need to be able to write a SomeException -> e function
2025-03-18 10:45:44 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 260 seconds)
2025-03-18 10:45:36 +0100poscat(~poscat@user/poscat) poscat
2025-03-18 10:45:21 +0100poscat(~poscat@user/poscat) (Quit: Bye)
2025-03-18 10:45:18 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2025-03-18 10:44:48 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-18 10:44:28 +0100 <dminuoso> Mmm fair enough. Thanks
2025-03-18 10:43:29 +0100 <c_wraith> If it intended for you to match against all of them uniformly... yes
2025-03-18 10:42:45 +0100 <dminuoso> So I guess the library is at fault for not hiding this constraint inside a GADT?
2025-03-18 10:42:40 +0100 <c_wraith> You could use some TH hackery to make it build you a list of all instances (that are currently in scope) automatically, though
2025-03-18 10:41:15 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-18 10:41:12 +0100Inst(~Inst@user/Inst) (Remote host closed the connection)
2025-03-18 10:40:23 +0100 <c_wraith> Not really. It's all built on top of Typeable, and Typeable checks for equality between two concrete types
2025-03-18 10:39:31 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 265 seconds)
2025-03-18 10:37:30 +0100 <dminuoso> Is there a way to accomplish this, without using catches and enumerating a handler for each ErrorAnnotation instance?
2025-03-18 10:36:21 +0100fp1(~Thunderbi@wireless-86-50-140-47.open.aalto.fi) (Ping timeout: 252 seconds)
2025-03-18 10:36:20 +0100dhil(~dhil@2a0c:b381:52e:3600:dac:1d21:ce7f:30a0) dhil
2025-03-18 10:35:39 +0100 <dminuoso> Now, I want to write a `catch` handler that will catch any of these, it seems like I would have to write `handleValueSpecMismatch :: exists p. ErrorAnnotation p *> ValueSpecMismatch p -> IO a`
2025-03-18 10:34:45 +0100 <dminuoso> Mmm, I have an exception with an instance `ErrorAnnotation p => Exception (ValueSpecMismatch p)` for which a bunch of `instance ErrorAnnotation ...` exist.
2025-03-18 10:33:42 +0100 <c_wraith> lazy level-order tree renumbering
2025-03-18 10:32:48 +0100chele(~chele@user/chele) chele
2025-03-18 10:32:10 +0100fp1(~Thunderbi@wireless-86-50-140-47.open.aalto.fi) fp