2026/01/27

2026-01-27 00:04:59 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 00:07:14 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2026-01-27 00:07:31 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds)
2026-01-27 00:08:26 +0100trickard_trickard
2026-01-27 00:09:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-27 00:10:25 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-01-27 00:17:17 +0100mange(~mange@user/mange) mange
2026-01-27 00:20:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 00:25:06 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-27 00:27:42 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2026-01-27 00:35:48 +0100trickard(~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-27 00:36:02 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 00:36:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 00:41:00 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-01-27 00:50:36 +0100pavonia(~user@user/siracusa) siracusa
2026-01-27 00:51:54 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 00:56:31 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-27 01:03:37 +0100Tuplanolla(~Tuplanoll@85-156-32-207.elisa-laajakaista.fi) (Quit: Leaving.)
2026-01-27 01:07:41 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 01:12:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-27 01:19:39 +0100 <raincomplex> do you all have any favorite resources (preferably text) about modularity, problem/system decomposition, designing and organizing complex codebases, that type of thing?
2026-01-27 01:23:06 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 01:28:57 +0100trickard_trickard
2026-01-27 01:30:04 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-01-27 01:35:51 +0100redshuffle(~quassel@45.43.70.75) (Remote host closed the connection)
2026-01-27 01:35:58 +0100redshuffle(~quassel@45.43.70.75)
2026-01-27 01:41:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 01:46:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-27 01:52:16 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-01-27 01:56:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 01:59:43 +0100xff0x(~xff0x@2405:6580:b080:900:5e15:fad5:8284:4db7) (Ping timeout: 264 seconds)
2026-01-27 02:01:31 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-27 02:12:20 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 02:17:18 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2026-01-27 02:28:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 02:31:42 +0100trickard(~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-27 02:31:55 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 02:32:20 +0100califax(~califax@user/califx) (Remote host closed the connection)
2026-01-27 02:33:12 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-01-27 02:36:45 +0100tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2026-01-27 02:38:45 +0100omidmash3(~omidmash@user/omidmash) omidmash
2026-01-27 02:40:58 +0100omidmash(~omidmash@user/omidmash) (Ping timeout: 246 seconds)
2026-01-27 02:40:58 +0100omidmash3omidmash
2026-01-27 02:43:21 +0100califax(~califax@user/califx) califx
2026-01-27 02:46:03 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 02:48:43 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-01-27 02:50:17 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-27 02:55:31 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 264 seconds)
2026-01-27 03:00:03 +0100jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2026-01-27 03:01:25 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 03:01:32 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 256 seconds)
2026-01-27 03:04:04 +0100malte(~malte@mal.tc) (Ping timeout: 246 seconds)
2026-01-27 03:05:37 +0100malte(~malte@mal.tc) malte
2026-01-27 03:06:19 +0100krei-se(~krei-se@p5dea1514.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2026-01-27 03:08:10 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-01-27 03:09:33 +0100krei-se(~krei-se@p200300f1cfff3548000000000000c8c6.dip0.t-ipconnect.de) krei-se
2026-01-27 03:19:28 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 03:20:45 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-27 03:20:59 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 03:24:46 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-01-27 03:35:14 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 03:40:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-01-27 03:51:02 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 03:52:17 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au) (Ping timeout: 244 seconds)
2026-01-27 03:52:39 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 03:55:37 +0100mixfix41(~sdeny9ee@user/mixfix41) (shift)
2026-01-27 03:55:56 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-01-27 04:06:48 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 04:07:57 +0100trickard_trickard
2026-01-27 04:10:49 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 264 seconds)
2026-01-27 04:11:37 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-01-27 04:17:09 +0100FANTOM(~fantom@87.75.185.177) (Quit: Connection error?!)
2026-01-27 04:22:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 04:26:15 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-01-27 04:27:00 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-01-27 04:32:03 +0100FANTOM(~fantom@87.75.185.177)
2026-01-27 04:38:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 04:42:48 +0100terrorjack(~terrorjac@2a01:4f8:c17:9d11::) (Quit: The Lounge - https://thelounge.chat)
2026-01-27 04:44:04 +0100terrorjack(~terrorjac@2a01:4f8:c17:9d11::) terrorjack
2026-01-27 04:44:59 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-27 04:54:06 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 04:54:06 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-01-27 04:58:11 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2026-01-27 04:58:15 +0100shr\ke(~shrike@user/paxhumana) paxhumana
2026-01-27 04:58:15 +0100shr\ke(~shrike@user/paxhumana) (Changing host)
2026-01-27 04:58:15 +0100shr\ke(~shrike@user/shrke:31298) shr\ke
2026-01-27 04:59:21 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-01-27 05:02:16 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-01-27 05:03:21 +0100omidmash(~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
2026-01-27 05:03:49 +0100jreicher(~joelr@user/jreicher) (Ping timeout: 255 seconds)
2026-01-27 05:04:16 +0100jreicher(~joelr@user/jreicher) jreicher
2026-01-27 05:04:57 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2026-01-27 05:08:03 +0100omidmash(~omidmash@user/omidmash) omidmash
2026-01-27 05:09:53 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 05:14:37 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-01-27 05:21:03 +0100Square(~Square4@user/square) (Ping timeout: 244 seconds)
2026-01-27 05:24:09 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 244 seconds)
2026-01-27 05:26:44 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 05:31:31 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-27 05:38:54 +0100trickard(~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-27 05:39:08 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 05:42:05 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 05:44:08 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-01-27 05:44:15 +0100trickard_trickard
2026-01-27 05:47:00 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-01-27 05:52:20 +0100haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2026-01-27 05:52:20 +0100haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2026-01-27 05:52:20 +0100haritz(~hrtz@user/haritz) haritz
2026-01-27 05:53:14 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-01-27 05:57:53 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 05:58:40 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 245 seconds)
2026-01-27 06:02:18 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-01-27 06:10:53 +0100jmcantrell_(~weechat@user/jmcantrell) (Ping timeout: 265 seconds)
2026-01-27 06:13:15 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 06:16:56 +0100mange(~mange@user/mange) (Quit: Quittin' time!)
2026-01-27 06:19:43 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-01-27 06:22:39 +0100werneta(~werneta@71.83.160.242) werneta
2026-01-27 06:29:19 +0100trickard(~trickard@cpe-80-98-47-163.wireline.com.au) (Ping timeout: 240 seconds)
2026-01-27 06:30:07 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 06:30:57 +0100michalz(~michalz@185.246.207.205)
2026-01-27 06:31:18 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 06:34:53 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-01-27 06:36:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-27 06:40:09 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
2026-01-27 06:47:04 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 06:48:27 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2026-01-27 06:52:15 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-01-27 06:52:37 +0100Googulator(~Googulato@77-234-89-65.pool.digikabel.hu) (Quit: Client closed)
2026-01-27 06:52:48 +0100Googulator(~Googulato@2a01-036d-0106-030a-3891-da7f-f3f3-f997.pool6.digikabel.hu)
2026-01-27 06:55:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 06:55:31 +0100karenw(~karenw@user/karenw) (Ping timeout: 264 seconds)
2026-01-27 07:01:36 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-01-27 07:10:46 +0100karenw(~karenw@user/karenw) karenw
2026-01-27 07:12:52 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 07:17:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-27 07:22:03 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2026-01-27 07:25:06 +0100jreicher(~joelr@user/jreicher) (Quit: brb)
2026-01-27 07:27:16 +0100karenw(~karenw@user/karenw) (Quit: Deep into that darkness peering...)
2026-01-27 07:29:45 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 07:34:39 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2026-01-27 07:37:24 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-27 07:37:38 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 07:40:50 +0100trickard_trickard
2026-01-27 07:45:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 07:49:43 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-01-27 07:53:28 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 255 seconds)
2026-01-27 07:56:05 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 08:00:52 +0100jreicher(~joelr@user/jreicher) jreicher
2026-01-27 08:02:32 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-01-27 08:14:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 08:15:59 +0100werneta(~werneta@71.83.160.242) (Quit: Lost terminal)
2026-01-27 08:19:27 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-01-27 08:29:30 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2026-01-27 08:38:53 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2026-01-27 08:41:24 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2026-01-27 08:47:26 +0100werneta(~werneta@71.83.160.242) werneta
2026-01-27 08:49:32 +0100YoungFrog(~youngfrog@2a02:a03f:ca07:f900:b685:3825:8bb0:ad7d) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2026-01-27 08:49:53 +0100YoungFrog(~youngfrog@2a02:a03f:ca07:f900:b685:3825:8bb0:ad7d) youngfrog
2026-01-27 08:55:44 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2026-01-27 08:57:06 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 09:02:09 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2026-01-27 09:09:38 +0100Googulator(~Googulato@2a01-036d-0106-030a-3891-da7f-f3f3-f997.pool6.digikabel.hu) (Quit: Client closed)
2026-01-27 09:09:52 +0100Googulator(~Googulato@2a01-036d-0106-030a-3891-da7f-f3f3-f997.pool6.digikabel.hu)
2026-01-27 09:13:02 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-27 09:18:01 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-27 09:21:12 +0100acidjnk(~acidjnk@p200300d6e71719605c0a3441a338f285.dip0.t-ipconnect.de) acidjnk
2026-01-27 09:28:31 +0100prdak(~Thunderbi@user/prdak) prdak
2026-01-27 09:30:26 +0100trickard(~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-27 09:30:39 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 09:31:28 +0100chele(~chele@user/chele) chele
2026-01-27 09:33:24 +0100werneta(~werneta@71.83.160.242) (Quit: Lost terminal)
2026-01-27 09:39:38 +0100prdak(~Thunderbi@user/prdak) (Quit: prdak)
2026-01-27 09:49:22 +0100takuan(~takuan@d8D86B9E9.access.telenet.be)
2026-01-27 09:53:59 +0100merijn(~merijn@77.242.116.146) merijn
2026-01-27 10:03:28 +0100bggd_(~bgg@2a01:e0a:fd5:f510:8882:d44f:ddaa:9d2)
2026-01-27 10:06:34 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2026-01-27 10:07:39 +0100f-a(ff2a@joined.irc.for-some.fun) f-a
2026-01-27 10:12:02 +0100 <f-a> What is the proper way to shut `head` deprecation warnings in ghci?
2026-01-27 10:12:22 +0100trickard_trickard
2026-01-27 10:12:48 +0100 <probie> don't use `head`
2026-01-27 10:13:16 +0100 <int-e> {-# OPTIONS_GHC -Wno-x-partial #-}
2026-01-27 10:13:31 +0100 <f-a> thanks int-e
2026-01-27 10:14:14 +0100 <int-e> import Prelude hiding (head); head (x:xs) = x
2026-01-27 10:14:26 +0100int-eruns
2026-01-27 10:15:45 +0100hakutaku(~textual@chen.yukari.eu.org) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2026-01-27 10:20:15 +0100 <gentauro> int-e: pattern matching in Haskell aren't exhaustive by default right?
2026-01-27 10:20:37 +0100 <gentauro> I recall a talk from SPJ were he stated that PM is and exponential problem
2026-01-27 10:21:56 +0100 <jreicher> What is an "exponential problem"?
2026-01-27 10:22:29 +0100 <tomsmeding> no sub-exponential algorithm known, perhaps? (I don't know)
2026-01-27 10:22:30 +0100 <int-e> that seems unrelated to these particular warnings though (and the fact that they can't be overridden in a good way that would indicate call sites that are vetted to be fine)
2026-01-27 10:22:43 +0100 <tomsmeding> yes
2026-01-27 10:25:31 +0100 <jreicher> I still don't get this. I thought pattern matching would be linear. I'm sure I'm misunderstanding the measure.
2026-01-27 10:25:52 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2026-01-27 10:26:27 +0100 <lortabac> jreicher: trying all the equations one by one would be inefficient
2026-01-27 10:26:49 +0100 <lortabac> efficient compilation of pattern matching is a little more involved
2026-01-27 10:27:10 +0100 <probie> The `case` in core is linear, but Haskell itself is a bit more lenient
2026-01-27 10:27:22 +0100 <jreicher> Linear is inefficient. I just don't understand why it would be worse than linear.
2026-01-27 10:27:30 +0100 <int-e> gentauro: Doesn't ring a bell but I imagine that if you implement Haskell's pattern matching while avoiding matching the same scrutinee twice, you'll end up with cases that have to keep track of exponentially many cases of what has been matched and what hasn't, and correspondingly, exponentially many code paths.
2026-01-27 10:27:33 +0100 <tomsmeding> jreicher: exhaustivity checking, I think
2026-01-27 10:28:02 +0100 <int-e> exponential in the number of cases in the source code
2026-01-27 10:28:04 +0100 <jreicher> tomsmeding: what's the parameter then? What's "n", if you know what I mean?
2026-01-27 10:28:15 +0100 <jreicher> That's still vague.
2026-01-27 10:29:04 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2026-01-27 10:29:18 +0100 <int-e> jreicher: I wasn't answering you anyway, just clarifying what I wrote.
2026-01-27 10:31:41 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-01-27 10:32:15 +0100 <tomsmeding> jreicher: > Sekar et al. [25] show that the problem of finding redundant clauses is NP-complete, by encoding the boolean satisfiability (SAT) problem into it.
2026-01-27 10:32:27 +0100 <tomsmeding> (citation: section 3.4 of https://people.cs.kuleuven.be/~tom.schrijvers/Research/papers/icfp2015.pdf ; cited work: https://epubs.siam.org/doi/abs/10.1137/S0097539793246252 )
2026-01-27 10:32:48 +0100 <jreicher> tomsmeding: but why is that pattern matching?
2026-01-27 10:33:00 +0100 <tomsmeding> it's pattern match exhaustivity checking
2026-01-27 10:33:12 +0100 <int-e> Something like this should do the trick: https://paste.debian.net/hidden/81e97dc6
2026-01-27 10:33:41 +0100housemate(~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/)
2026-01-27 10:34:02 +0100 <tomsmeding> (that first paper describes the algorithm in GHC before the newest LYG algorithm; the LYG paper ( https://dl.acm.org/doi/pdf/10.1145/3408989 ) claims it has the same complexity as that)
2026-01-27 10:35:07 +0100 <jreicher> Ta
2026-01-27 10:35:30 +0100 <tomsmeding> Whether this is NP-complete only because the output size may be exponential, or whether it may also be if the output size is small, I don't know
2026-01-27 10:36:17 +0100 <int-e> Where Haskell demands that you match the first argument, then optionally the fourth, then the second, then optionally the fifth, then the third argument, then optionally the sixth... and now if you want to avoid redundant pattern matches, you have to keep track of which of the first 3 arguments were equal to A when tackling the next 3 cases. And you can scale that up to 2*n arguments and 2^n...
2026-01-27 10:36:23 +0100 <int-e> ...cases to keep track of.
2026-01-27 10:37:26 +0100 <jreicher> tomsmeding: IIRC output size isn't relevant to NP-completeness. That class is only defined for decision problems
2026-01-27 10:37:28 +0100housemate(~housemate@202.7.248.67) housemate
2026-01-27 10:37:58 +0100 <tomsmeding> sure, but you can typically turn a computation problem into a decision problem by checking whether the output satisfies some condition
2026-01-27 10:38:17 +0100 <int-e> And you can encode 3-SAT if you're checking pattern completeness.
2026-01-27 10:38:31 +0100 <tomsmeding> ah right
2026-01-27 10:38:50 +0100 <tomsmeding> ok so the GMTM paper undersells the problem a little bit, because it likens it to the complexity of hindley-milner
2026-01-27 10:39:38 +0100 <tomsmeding> which is, iirc, polynomially bounded by the collective size of the types it outputs (for all subterms), and thus only exponential if you give it a program that has exponentially large inferred types
2026-01-27 10:42:22 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2026-01-27 10:43:32 +0100oskarw(~user@user/oskarw) oskarw
2026-01-27 10:45:32 +0100 <gentauro> jreicher: and int-e if you pm on `case (x_1, x_2, …, x_n) of …` then you will have an upperbound of 2^n cases
2026-01-27 10:45:54 +0100 <gentauro> that's what I recall from the SPJ talk
2026-01-27 10:46:05 +0100 <gentauro> so PM is a "very difficult" problem to solve
2026-01-27 10:46:17 +0100 <gentauro> rather said, exhaustive PM.
2026-01-27 10:47:10 +0100 <int-e> gentauro: an upper bound is not a hardness proof though :P
2026-01-27 10:47:32 +0100 <Axman6> > map (\x -> peek (reverse (pos x)) x) $ holesOf traverse $ words "hello lens world"
2026-01-27 10:47:33 +0100 <lambdabot> [["olleh","lens","world"],["hello","snel","world"],["hello","lens","dlrow"]]
2026-01-27 10:47:42 +0100 <jreicher> Hmm. I thought that would be nlogn. I haven't read the papers yet, but you have max n comparisons of logn length bitstrings
2026-01-27 10:49:00 +0100 <int-e> jreicher: pattern matching isn't strictly left to right because of wildcard patterns
2026-01-27 10:49:21 +0100 <int-e> so it's not analogous to strings at all
2026-01-27 10:50:18 +0100 <jreicher> int-e: I know, which is why I was asking for a more specific definition before, but gentauro just offered "n" as the number of cases.
2026-01-27 10:50:18 +0100 <int-e> and also, in case that wasn't clear, you /can/ translate pattern matching without any blowup if you accept redundant matches
2026-01-27 10:50:45 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 245 seconds)
2026-01-27 10:50:54 +0100 <jreicher> I'm just not seeing the problem definition clearly. I freely admit that.
2026-01-27 10:52:01 +0100 <int-e> jreicher: you're still cross-attributing messages from me and gentauro
2026-01-27 10:53:29 +0100 <gentauro> int-e: and jreicher: I think I found the talk "Simon Peyton Jones - Pattern Match Warnings - How Hard Can It Be?" https://www.youtube.com/watch?v=8hJtTIkDr5U
2026-01-27 10:53:56 +0100 <gentauro> I was actually there :)
2026-01-27 10:54:17 +0100 <gentauro> I really miss the hole eXchange concept :'(
2026-01-27 11:05:48 +0100 <int-e> jreicher: Anyway. The reason why I wrote up that example was to show that it wouldn't rely on any big patterns or huge numbers of arguments but stay polynomially bounded in the number of cases, at which point the precise parameter you pick stops to matter.
2026-01-27 11:06:06 +0100__monty__(~toonn@user/toonn) toonn
2026-01-27 11:06:41 +0100 <int-e> (unless you want to distinguish between linear and quadratic growth, say, but I didn't do that)
2026-01-27 11:09:53 +0100jreicher(~joelr@user/jreicher) (Quit: brb)
2026-01-27 11:11:23 +0100jreicher(~joelr@user/jreicher) jreicher
2026-01-27 11:12:27 +0100 <gentauro> tl;dw -> https://www.youtube.com/watch?v=8hJtTIkDr5U&t=241s (around 04:01 ish)
2026-01-27 11:12:29 +0100trickard(~trickard@cpe-80-98-47-163.wireline.com.au) (Ping timeout: 244 seconds)
2026-01-27 11:12:44 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 11:13:43 +0100oskarw(~user@user/oskarw) (Ping timeout: 246 seconds)
2026-01-27 11:16:40 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-27 11:19:15 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 265 seconds)
2026-01-27 11:23:28 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 11:25:32 +0100jreicher(~joelr@user/jreicher) (Quit: Power outage)
2026-01-27 11:27:00 +0100fp(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Ping timeout: 256 seconds)
2026-01-27 11:28:51 +0100internatetional(~nate@2404:c0:2447:3b47:188e:3e81:8514:389a) internatetional
2026-01-27 11:28:53 +0100internatetional(~nate@2404:c0:2447:3b47:188e:3e81:8514:389a) (Client Quit)
2026-01-27 11:29:43 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-01-27 11:42:56 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au) (Ping timeout: 265 seconds)
2026-01-27 11:44:23 +0100Square(~Square4@user/square) Square
2026-01-27 11:44:32 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 240 seconds)
2026-01-27 11:45:20 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 11:52:02 +0100mange(~mange@user/mange) mange
2026-01-27 12:02:59 +0100_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 250 seconds)
2026-01-27 12:04:08 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-01-27 12:07:03 +0100_d0t(~{-d0t-}@user/-d0t-/x-7915216) {-d0t-}
2026-01-27 12:08:07 +0100lucabtz(~lucabtz@user/lucabtz) (Ping timeout: 240 seconds)
2026-01-27 12:11:37 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2026-01-27 12:16:25 +0100jreicher(~joelr@user/jreicher) jreicher
2026-01-27 12:17:06 +0100danza(~danza@user/danza) danza
2026-01-27 12:18:13 +0100xff0x(~xff0x@2405:6580:b080:900:b844:e6e5:f5dd:7cc5)
2026-01-27 12:30:41 +0100hakutaku(~textual@185.106.95.100)
2026-01-27 12:42:01 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 264 seconds)
2026-01-27 12:50:58 +0100danza(~danza@user/danza) ()
2026-01-27 12:54:27 +0100fp(~Thunderbi@wireless-86-50-141-120.open.aalto.fi) fp
2026-01-27 12:55:15 +0100acidjnk_new(~acidjnk@p200300d6e700e5235c0a3441a338f285.dip0.t-ipconnect.de)
2026-01-27 12:58:22 +0100acidjnk(~acidjnk@p200300d6e71719605c0a3441a338f285.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2026-01-27 13:02:57 +0100comerijn(~merijn@77.242.116.146) merijn
2026-01-27 13:06:10 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 256 seconds)
2026-01-27 13:16:31 +0100lucabtz(~lucabtz@user/lucabtz) (Ping timeout: 264 seconds)
2026-01-27 13:29:07 +0100tremon(~tremon@83.80.159.219) tremon
2026-01-27 13:36:12 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-01-27 13:37:05 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2026-01-27 13:48:37 +0100mange(~mange@user/mange) (Ping timeout: 264 seconds)
2026-01-27 13:53:23 +0100mange(~mange@user/mange) mange
2026-01-27 13:53:43 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2026-01-27 13:53:55 +0100lucabtz(~lucabtz@user/lucabtz) (Client Quit)
2026-01-27 13:57:39 +0100mange(~mange@user/mange) (Client Quit)
2026-01-27 13:58:31 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-27 13:58:45 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 14:13:05 +0100jonnie(~jonnie@user/jonnie) (Remote host closed the connection)
2026-01-27 14:16:55 +0100fp(~Thunderbi@wireless-86-50-141-120.open.aalto.fi) (Ping timeout: 240 seconds)
2026-01-27 14:17:50 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au) (Ping timeout: 245 seconds)
2026-01-27 14:18:33 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 14:19:17 +0100fp(~Thunderbi@wireless-86-50-141-120.open.aalto.fi) fp
2026-01-27 14:20:04 +0100pie_(~pie_bnc@user/pie/x-2818909) ()
2026-01-27 14:24:25 +0100AlexZenon(~alzenon@85.174.180.154)
2026-01-27 14:24:56 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2026-01-27 14:27:23 +0100AlexNoo(~AlexNoo@85.174.180.154)
2026-01-27 14:28:56 +0100AlexZenon(~alzenon@85.174.180.154) (Ping timeout: 240 seconds)
2026-01-27 14:33:19 +0100pie_(~pie_bnc@user/pie/x-2818909) __
2026-01-27 14:37:30 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2026-01-27 14:37:51 +0100AlexZenon(~alzenon@85.174.180.154)
2026-01-27 14:44:31 +0100AlexZenon(~alzenon@85.174.180.154) (Ping timeout: 240 seconds)
2026-01-27 14:48:43 +0100AlexZenon(~alzenon@85.174.180.154)
2026-01-27 14:53:52 +0100oskarw(~user@user/oskarw) oskarw
2026-01-27 14:55:19 +0100AlexZenon(~alzenon@85.174.180.154) (Ping timeout: 240 seconds)
2026-01-27 14:59:30 +0100AlexZenon(~alzenon@85.174.180.154)
2026-01-27 15:01:33 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-27 15:01:46 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 15:03:02 +0100Digit(~user@user/digit) (Ping timeout: 265 seconds)
2026-01-27 15:14:17 +0100qqq(~qqq@185.54.21.105)
2026-01-27 15:21:39 +0100confusedalex(~confuseda@user/confusedalex) (Remote host closed the connection)
2026-01-27 15:22:17 +0100confusedalex(~confuseda@user/confusedalex) confusedalex
2026-01-27 15:32:04 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2026-01-27 15:39:23 +0100jonnie(~jonnie@user/jonnie) jonnie
2026-01-27 15:39:44 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-27 15:39:58 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 15:39:59 +0100jonnie(~jonnie@user/jonnie) (Remote host closed the connection)
2026-01-27 15:40:13 +0100jonnie(~jonnie@user/jonnie) jonnie
2026-01-27 15:46:29 +0100danza(~danza@user/danza) danza
2026-01-27 15:54:40 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2026-01-27 15:54:48 +0100Digit(~user@user/digit) Digit
2026-01-27 15:57:26 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2026-01-27 16:01:32 +0100Digitdigitteknohippie
2026-01-27 16:03:03 +0100digitteknohippieDigit
2026-01-27 16:04:41 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2026-01-27 16:04:52 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-27 16:05:06 +0100trickard_(~trickard@cpe-80-98-47-163.wireline.com.au)
2026-01-27 16:05:21 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2026-01-27 16:32:07 +0100fp(~Thunderbi@wireless-86-50-141-120.open.aalto.fi) (Ping timeout: 264 seconds)
2026-01-27 16:35:51 +0100danza(~danza@user/danza) (Remote host closed the connection)
2026-01-27 17:01:17 +0100ft(~ft@p508db580.dip0.t-ipconnect.de) ft
2026-01-27 17:02:48 +0100jonnie(~jonnie@user/jonnie) (Remote host closed the connection)
2026-01-27 17:04:36 +0100jonnie(~jonnie@user/jonnie) jonnie
2026-01-27 17:05:31 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2026-01-27 17:07:49 +0100fun-safe-math(~fun-safe-@97-120-34-41.ptld.qwest.net) (Ping timeout: 264 seconds)
2026-01-27 17:11:12 +0100Zemy_(~Zemy@2600:100c:b0ab:1f04:d8eb:a8ff:fe7d:6284)
2026-01-27 17:13:01 +0100Zemy(~Zemy@72.178.108.235) (Ping timeout: 244 seconds)
2026-01-27 17:16:06 +0100fp(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) fp
2026-01-27 17:16:11 +0100trickard_trickard
2026-01-27 17:21:52 +0100Zemy(~Zemy@mobile-107-80-206-52.mycingular.net)
2026-01-27 17:24:59 +0100Zemy_(~Zemy@2600:100c:b0ab:1f04:d8eb:a8ff:fe7d:6284) (Ping timeout: 260 seconds)