Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,790,862 events total
2026-03-08 20:18:05 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-08 20:18:32 <geekosaur> also I feel like this (fundeps conflict) came up somewhere else(?) recently and there turned out to be a gotcha somewhere that this was blocking
2026-03-08 20:20:24 <geekosaur> no, this isn't what I was remembering, modulo additional LANGUAGE pragmas needed it's the same error on 8.10.7
2026-03-08 20:21:28 madresch1 joins (~Thunderbi@user/madresch)
2026-03-08 20:22:10 × madresch quits (~Thunderbi@user/madresch) (Ping timeout: 248 seconds)
2026-03-08 20:22:11 madresch1 is now known as madresch
2026-03-08 20:24:15 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
2026-03-08 20:25:33 madresch1 joins (~Thunderbi@user/madresch)
2026-03-08 20:26:05 <mauke> Add x (S y) (S y)
2026-03-08 20:26:20 <mauke> first instance says x = Z, second instance says x = S a
2026-03-08 20:26:48 × madresch quits (~Thunderbi@user/madresch) (Quit: madresch)
2026-03-08 20:26:57 j1n37 joins (~j1n37@user/j1n37)
2026-03-08 20:29:05 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-08 20:29:17 madresch joins (~Thunderbi@user/madresch)
2026-03-08 20:29:18 <haskellbridge> <ijouw> The second one has a condition that is not true when x = Z
2026-03-08 20:29:20 YuutaW joins (~YuutaW@infornography.yta.moe)
2026-03-08 20:29:33 <mauke> there are no conditions
2026-03-08 20:29:59 <mauke> 'Add a b c =>' is a function body, not a guard
2026-03-08 20:30:31 × madresch1 quits (~Thunderbi@user/madresch) (Ping timeout: 268 seconds)
2026-03-08 20:30:40 <mauke> that is, we first select an instance by matching against 'Add Z b b' and 'Add (S a) b (S c)', and only then we try to satisfy the preconditions
2026-03-08 20:31:18 AlexNoo joins (~AlexNoo@178.34.160.184)
2026-03-08 20:31:31 <mauke> or at least that's how I remember instance resolution works
2026-03-08 20:31:56 <mauke> (in function terms: add Z b b = (); add (S a) b (S c) = add a b c)
2026-03-08 20:32:03 AlexNoo_ joins (~AlexNoo@178.34.160.184)
2026-03-08 20:32:46 AlexNoo__ joins (~AlexNoo@178.34.160.184)
2026-03-08 20:33:47 <geekosaur> that's correct, only the instance head is considered to match instances
2026-03-08 20:34:05 <geekosaur> constraints are applied at use sites after an instance is selected
2026-03-08 20:34:13 × madresch quits (~Thunderbi@user/madresch) (Ping timeout: 268 seconds)
2026-03-08 20:34:24 <geekosaur> (so we're back to what I thought was going on initially, only via a different route)
2026-03-08 20:35:27 × AlexNoo quits (~AlexNoo@178.34.160.184) (Ping timeout: 246 seconds)
2026-03-08 20:36:04 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-03-08 20:36:20 <haskellbridge> <ijouw> Sadly I do not know how addition can be implemented without this issue arising.
2026-03-08 20:36:30 × AlexNoo_ quits (~AlexNoo@178.34.160.184) (Ping timeout: 246 seconds)
2026-03-08 20:36:51 × AlexNoo__ quits (~AlexNoo@178.34.160.184) (Ping timeout: 246 seconds)
2026-03-08 20:39:14 madresch joins (~Thunderbi@user/madresch)
2026-03-08 20:39:28 × madresch quits (~Thunderbi@user/madresch) (Client Quit)
2026-03-08 20:47:30 merijn joins (~merijn@62.45.136.136)
2026-03-08 20:51:58 × merijn quits (~merijn@62.45.136.136) (Ping timeout: 244 seconds)
2026-03-08 20:53:46 p3n joins (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1)
2026-03-08 20:54:09 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
2026-03-08 20:55:34 j1n37 joins (~j1n37@user/j1n37)
2026-03-08 20:56:48 machinedgod joins (~machinedg@d172-219-48-230.abhsia.telus.net)
2026-03-08 21:01:48 pavonia joins (~user@user/siracusa)
2026-03-08 21:02:55 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-08 21:08:07 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-08 21:11:08 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
2026-03-08 21:13:05 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 245 seconds)
2026-03-08 21:16:05 Digitteknohippie is now known as Digit
2026-03-08 21:18:24 × takuan quits (~takuan@d8d86b9e9.access.telenet.be) (Ping timeout: 264 seconds)
2026-03-08 21:18:43 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-08 21:23:39 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-08 21:24:37 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2026-03-08 21:24:50 stackdroid18 joins (~stackdroi@user/stackdroid)
2026-03-08 21:34:31 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-08 21:36:50 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 245 seconds)
2026-03-08 21:38:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-03-08 21:38:56 <EvanR> does overlapping instances let you break those rules, with how instances are selected
2026-03-08 21:45:08 m_a_r_k joins (~m_a_r_k@archlinux/support/mark)
2026-03-08 21:45:17 <haskellbridge> <ijouw> Since the error is arising due to the functional dependency rule, it does not occur at call site but at the definition. So i doubt overlapping instances does anything.
2026-03-08 21:46:17 <haskellbridge> <ijouw> (also tried incoherent instances, same results)
2026-03-08 21:49:54 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-08 21:55:03 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2026-03-08 22:00:43 <EvanR> do functional dependencies do anything before instant selection or is it just a consistency check after the fact that bad instances don't get accepted
2026-03-08 22:06:04 merijn joins (~merijn@62.45.136.136)
2026-03-08 22:06:32 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: jsdvnsn)
2026-03-08 22:12:34 × merijn quits (~merijn@62.45.136.136) (Ping timeout: 244 seconds)
2026-03-08 22:12:38 <haskellbridge> <ijouw> Is the question about the usage of FD or implementation details?
2026-03-08 22:13:21 karenw_ joins (~karenw@user/karenw)
2026-03-08 22:14:32 <EvanR> mathematically
2026-03-08 22:16:21 × xff0x quits (~xff0x@2405:6580:b080:900:c57f:2e5b:eec:a8fa) (Ping timeout: 268 seconds)
2026-03-08 22:17:09 xff0x joins (~xff0x@2405:6580:b080:900:3d38:9b05:9987:e9b1)
2026-03-08 22:19:04 <geekosaur> they affect type resolution, by adding a constraint on types. (it's more or less a Prolog assertion wedged into Haskell)
2026-03-08 22:21:46 <geekosaur> not sure there's much of a "mathematical" aspect to them, it's just avoiding you needing to annotate use sites to choose an instance, by telling type inference that if it knows the type on the left of the arrow, that determines the type on the right. either this or associated types are needed to make multiparameter type classes typecheck without explicit annotations
2026-03-08 22:30:07 <EvanR> well it narrows down the possible instances of a MPTC, which when unrestricted form a general relation between types
2026-03-08 22:30:16 <EvanR> possibly non-functional
2026-03-08 22:30:45 <EvanR> I figured there was something else going on more practical but it still nebulous to me
2026-03-08 22:59:55 <monochrom> Functional dependencies are type-checking-time only.
2026-03-08 23:00:44 <davean> They just add a constrait to solve for to the type checker
2026-03-08 23:03:55 × picnoir quits (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Ping timeout: 245 seconds)
2026-03-08 23:06:18 × Square quits (~Square@user/square) (Ping timeout: 244 seconds)
2026-03-08 23:06:23 Square2 joins (~Square4@user/square)
2026-03-08 23:17:20 picnoir joins (~picnoir@about/aquilenet/vodoo/NinjaTrappeur)
2026-03-08 23:36:51 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-08 23:41:42 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-03-08 23:52:17 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-08 23:56:42 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-03-08 23:57:06 stackdroid18 parts (~stackdroi@user/stackdroid) ()
2026-03-09 00:01:25 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 268 seconds)
2026-03-09 00:07:58 arandombit joins (~arandombi@user/arandombit)
2026-03-09 00:08:03 merijn joins (~merijn@62.45.136.136)
2026-03-09 00:10:37 × tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in)
2026-03-09 00:12:26 × merijn quits (~merijn@62.45.136.136) (Ping timeout: 244 seconds)
2026-03-09 00:14:12 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2026-03-09 00:14:30 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2026-03-09 00:23:29 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-09 00:28:02 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-03-09 00:29:33 × Tuplanolla quits (~Tuplanoll@88.114.89.88) (Quit: Leaving.)
2026-03-09 00:30:16 arandombit joins (~arandombi@2a02:2455:8656:7100:49f2:4a42:13a7:5052)
2026-03-09 00:30:16 × arandombit quits (~arandombi@2a02:2455:8656:7100:49f2:4a42:13a7:5052) (Changing host)
2026-03-09 00:30:16 arandombit joins (~arandombi@user/arandombit)

All times are in UTC.